SharedIT | 묻고 답하기(AMP)

CIDR 관련 질문

제가 네트워크를 독학하고 있는데,, 공부해도 헷갈리는게 있어서 질문드립니다 ㅠㅠ


CIDR 표기에서 Prefix가 다른값이면, 분리된 네트워크 인거잖아요? 

예를들어, 10.29.0.0/17 하고 10.29.0.0/18 하구는 Network ID가 다른것이니까요


그럼 Prefix 값이 다르면, 라우터가 있어야만 통신가능하다고 이해하면 되는게 맞는거겠지요..?


미리 감사합니다.. (꾸벅) 

Tags : 태그가 없습니다.

4개의 답변이 있습니다.

차바라기
  0 추천 | 약 일 년 전

10.29.0.0/17 하고 10.29.0.0/18는 같은 대역이라고 생각하시면 됩니다.~만약 10.29.1.0 ~ 10.29.1.0 이렇게 설정을 하면 다른 대역값이 되는거죠

wansoo
  0 추천 | 약 일 년 전

 한가지만  여쭤봐도 될까요..? 

10.29.0.0/17의 host ip 범위가 10.29.0.1 - 10.29.127.254 라고 하셨는데요, 

이게 첫번째 서브넷의 host ip 범위인거죠? 


IPv4는  32비트의 값입니다.

10.29.0.0을 2진수로 적어 보면


   10      29        0        0

00001010 00011101 00000000 00000000


/17이라는 것은 앞에서 부터 17개 비트를 마스크 씌운다는 의미가 되겠고요.

/17을 2진수로 표현해 보면

11111111 11111111 10000000 00000000

 의미하게 되고요.


10.29.0.0/17의 네트워크 IP 주소는

00001010 00011101 00000000 00000000

( and )

11111111 11111111 10000000 00000000

 결과인

00001010 00011101 00000000 00000000  되겠고요.


Prefix 부분은

서브넷 마스크가 1인 부분에 해당하기 때문에

IP 주소에서 앞에서 부터 

00001010 00011101 0  해당하는 부분이 네트워크 주소가 되겠고요.


00001010 00011101 00000000 00000000/17 이라는 

00001010 00011101 0/0000000 00000000  같이 앞에서 부터 17자리가 네트워크에 해당한다는 것이라 생각한다면 쉽게 이해되겠죠.


그리고, 네트워크 안에 있는 호스트에 할당되는 주소 부분은 

 32비트 중, Prefix 부분은 제외한 뒤에서 부터 15 비트에 해당하는 부분인 0000000 00000000가 되고요.


앞에서 부터 17비트는 네트워크 주소에 해당하기 때문에 해당 네트워크에서 변경되어서는 안되는 부분이 되겠고

뒤에서 부터 15비트 부분만 변경해서 IP 주소를 할당할  있다고 보면 되고요.


즉, 끝에서 부터 15비트가 0000000 00000000 ~ 1111111 11111111  해당하는 값이 해당 네트워크에 할당될  있는 IP가 됩니다.

2진수 0000000 00000000  0.0에 해당되고요.

2진수 1111111 11111111  127.255에 해당되고요.


10.29.0.0/17에 할당될  있는 IP 주소의 범위는 10.29.0.0 ~ 10.29.127.255가 되는데...

이중에서 제일 앞의 IP 주소는 네트워크 IP 주소가 되고, 이중에서 제일 끝의 IP 주소는 BroadCast IP 주소가 되기 때문에

실제 Host에게 할당할  있는 IP 주소는 10.29.0.1 ~ 10.29.127.254가 되게 됩니다.



10.29.0.0/18을 /17과 같은 방식으로 설명해 보면...

/18의 서브넷 마스크를 2진수로 적어 보면 11111111 11111111 11000000 00000000  되고요.


10.29.0.0/18의 네트워크 IP 주소는

00001010 00011101 00000000 00000000

( and )

11111111 11111111 11000000 00000000

 결과인

00001010 00011101 00000000 00000000  되겠고요.


00001010 00011101 00000000 00000000/18 이라는 

00001010 00011101 00/000000 00000000 이라고 생각하면 되겠죠.


Prefix 부분은

서브넷 마스크가 1인 부분에 해당하기 때문에

IP 주소에서 앞에서 부터 

00001010 00011101 00  해당하는 부분이 네트워크 주소가 되겠고요.


그리고, 네트워크 안에 있는 호스트에 할당되는 주소 부분은 

 32비트 중, Prefix 부분은 제외한 뒤에서 부터 14 비트에 해당하는 부분인 000000 00000000 되고요.


호스트에 해당 하는 부분이 000000 00000000 ~ 111111 11111111  변경되면서 할당할  있는 네트워크가 되고요.

000000 00000000  10진수 0.0  되겠고, 111111 11111111  63.255가 되고요.


즉, 10.29.0.0/18인 네트워크에서 할당 가능한 IP 주소 범위는 10.29.0.0 ~ 10.29.63.255이며,

네트워크 IP와 브로드캐스트 IP주소를 제외하면 일반 호스트에 할당될  있는 IP 주소의 범위는

10.29.0.1 ~ 10.29.63.254가 되게 됩니다.

choboit | 약 일 년 전

아하 결국 subnetmask 와 and 연산한 결과인 network ip가 

prefix가 17이든 18이든 같으므로, 두개는 통신가능하다는 말씀이신거죠?


친절한 답변 너무 감사드립니다 ㅠㅠ 

inside07
  0 추천 | 약 일 년 전

CIDR 표기에서 Prefix가 다른값이면, 분리된 네트워크 인거잖아요? 
-> 이 부분은 ip를 할당하는 주체 장비에서 설정 할 수 있어요 ~ (라우터,방화벽,L3,L4 등등)
    분리된 네트워크로 만들수도 있고, 하나의 대역으로 서로 통신할 수 있도록 설정할 수도 있습니다.
    
    18 bit 기준으로 처음 범위와 끝 범위를 예로 들면 10.29.0.0 대역과 10.29.63.0 대역인데요 ~ 
    두 대역대는 서로 다르지만 Mask Bits가 같기 때문에 설정하기 나름입니다 


예를들어, 10.29.0.0/17 하고 10.29.0.0/18 하구는 Network ID가 다른것이니까요
 -> 여기는 같은 대역대 구간이에요 ~ 사용할 수 있는 host ip 범위만 다릅니다. 
      10.29.0.0/17 : 10.29.0.1 to 10.29.127.254
      10.29.0.0/18 : 10.29.0.1 to 10.29.63.254



choboit | 약 일 년 전

저 한가지만 더 여쭤봐도 될까요..? 

10.29.0.0/17의 host ip 범위가 10.29.0.1 - 10.29.127.254 라고 하셨는데요, 

이게 첫번째 서브넷의 host ip 범위인거죠? 


prefix가 17이니까, 3번째 옥텟의 맨 첫번째 자리가 network id로 편입되고

그 자리는 0, 1 두개가 올 수 있으니 /17 에서는 서브넷이 2개 생성될 수 있다고 이해했거든요


그래서 첫번째 서브넷은 계산해보니 말씀해주신대로 10.29.0.1 - 10.29.127.254가 맞는데 

두번째 서브넷에 대해서는 언급을 안하셔서 제가 전반적으로 이해를 잘못한건가 싶어서 

여쭤봅니다. 제가 계산한 두번쨰 서브넷의 host ip 범위는 10.29.128.0~10.29.255.254 입니다.

(뒤쪽 2개 옥텟값이 10000000 00000000 ~ 11111111 11111111 인경우..) 


으아 서브넷팅 너무어렵네요.. 

inside07 | 약 일 년 전

위에 wansoo님이 상세하게 답변 주셨는데,

우선 비트 계산 순서는 알고 계시죠?? 

총 8자리 4개로 나눠져 있고 뒤에서 부터 1/2/4/8/16/32/64/128 로 계산 하시면 되구요 ~



서브넷은 IP 주소에서 네트워크 영역을 부분적으로 나눈 부분 네트워크를 말하고

이러한 서브넷을 만들  사용되는 것이 바로 서브넷 마스크죠,

그리고 브로드캐스트 ip는 서브넷팅 ip대역에서 맨 마지막에 갖는 ip를 말하는 거구요 !



그렇기 때문에 subnet에 대한 bit는 동일해요 

서브넷은 10.29.0.0이이기 때문에 17/18 bit여도 subnet bit는 동일하고,

10.29.0.0 subnet : 00001010 00011101 00000000 00000000 / 변환 -> 10.29.0.0




다른 거는 subnet mask랑 broadcast죠

궁금하신 게 아마도 subnet mask 일 거 같네요 !


10.29.0.0/17 subnet mask
 - 11111111 11111111 10000000 00000000 / 변환 -> 255.255.128.0


10.29.0.0/18 subnet mask
 - 00001010 00011101 11000000 00000000 / 변환 -> 255.255.192.0


위 처럼 계산되서 host ip 범위를 산정 할 수 있죠!


10.29.0.0/17 host broadcast

 - 00001010 00011101 00111111 11111111 / 변환 -> 10.29.127.255


10.29.0.0/18 host broadcast

 - 00001010 00011101 01111111 11111111 / 변환 -> 10.29.63.255

위는 앞서 말씀 드렸던 것처럼 브로드캐스트 ip에 대한 bit를 계산 한거구요 !

wansoo
  0 추천 | 약 일 년 전

Prefix 값이 다르면, 네트워크가 다르다는 의미가 됩니다.

네트워크가 다르기 때문에 찾아 가려는 목적지 컴퓨터에 바로 접속하려는 시도를 하지 않고 게이트웨이에게 접속을 요청하게 됩니다.

게이트웨이가 라우터가 되겠고요.


그런데...

10.29.0.0/17 하고 10.29.0.0/18은 같은 네트워크에 있는 IP입니다.


10.29.0.0/17의 네트워크 IP가 10.29.0.0이고,

10.29.0.0/18의 네트워크 IP 또한 10.29.0.0 이기 때문에 같은 네트워크에 있는 IP이기 때문에 게이트웨이 없이 서로 통신이 가능합니다.


일반적으로 잘못 알고 있는 경우가,

네트워크를 접속하려고 시도할때 상대편의 서브넷마스크가 어떤 역할을 할 것이라 생각하는데...

접속 시도할때 상대편의 서브넷 마스크를 알지 못한 상태에서 IP 주소만 알고 있는 상태에서 접속을 시도하게 됩니다.

다시 말해서 자신의 IP 주소와 상대편의 IP 주소 그리고 자신에서 설정된 서브넷 마스크를 이용해서 자신의 IP와 상대편의 IP가 같은 네트워크에 있는지, 다른 네트워크에 있는지 계산하게 됩니다.

자신의 IP에 Subnet 값을 and 연산을 한 값과, 접속하려는 상대편의 IP와 자신의 서브넷 값을 and 연산해서 두개의 결과값이 같으면 같은 네트워크에 있다고 판단하고, 다른 값이면 다른 네트워크에 있다고 판단하게 된다고 보면 됩니다.


choboit | 약 일 년 전

헐.... 그렇군요...?!!! 

어렵네요 ㅠㅠ 결국 prefix가 달라도 (네트워크 id가 달라도) 통신이 가능할 수 있단 거군요...

이론과 실제가 다른거가 이런건가요.. 

wansoo | 약 일 년 전

"자신의 IP에 Subnet 값을 and 연산을 한 값과, 접속하려는 상대편의 IP와 자신의 서브넷 값을 and 연산해서 두개의 결과값이 같으면 같은 네트워크에 있다고 판단하고, 다른 값이면 다른 네트워크에 있다고 판단하게 된다고 보면 됩니다."


에서 사용한 Subnet 값을 Subnet mask 값으로 수정합니다.



"자신의 IP에 Subnet mask 값을 and 연산을 한 값과, 접속하려는 상대편의 IP와 자신의 서브넷 마스크 값을 and 연산해서 두개의 결과값이 같으면 같은 네트워크에 있다고 판단하고, 다른 값이면 다른 네트워크에 있다고 판단하게 된다고 보면 됩니다."




글을 적을 때 중요하고 급한 일이 있어서 빨리 글을 적다 보니...

지금 다시 읽어 보니 좀 더 바로 잡았으면 좋았을 걸하는 부분들이 여러 군데 보이네요~ ^^;;