뭉게뭉게 엔지니어

Subnetting 본문

☁ 네트워크 기초 따라가기/IP

Subnetting

어푸어푸🌊 2022. 6. 9. 01:00

평생을 문과 계열에서만 공부하고 종사했던 내가 가장 멘붕이 왔던 구간을 정리한다.

나를 첫 혼돈으로 빠뜨린 것은 바로... Subnetting(서브네팅) 되시겠다.

 


 

우선 Subnetting이란?

하나의 네트워크 대역의 IP를 sub network로 분할하는 작업으로, Host ID에 할당된 bit들을 Net ID로 사용하는 것을 말한다.

그러니까, Net ID를 증가시키기 위해 Subnetting을 한다고 이해하면 된다.

 

그럼 Net ID는 왜 증가시켜야 하는가? 

Classful Network의 문제점인 IP낭비(부족) 문제를 해결하기 위해서 이다.

 

Subnetting의 순서는 아래와 같다.     

 (⁕subnetting은 bit로 생각해야 한다는 것을 명심!)

 

1. 필요한 Network 또는 Host의 수 확인 

- 필요한 개수가 포함되는 최소의 2의 거듭제곱 값을 Host id의 왼쪽부터 세어서 구하기!

 예) 7개의 Network가 필요하다. ➡ 2^2 < 7 < 2^3  Subnet id = 3 ➡ Host id의 왼쪽에서 3비트 까지 subnet id

      Subnet id는 Network를 추가하는 데에 필요한 bit의 수 이므로, 분할되는 Network의 수 = 2^subnet id 이다.

2. Subnet Mask 구하기

※ Subnet Mask는 Net ID와 Host ID를 구분해주는 경계선 역할을 한다. (이전 글 참조)

- 필요 개수를 이용하여 Subnet Mask 변경

예) 200.200.200.0/24 ➡ (이진수 변환) 11001000.11001000.11001000.00000000

                                             (Default Subnet Mask) 255.255.255.0

                                   ➡ C class 이므로 세 번째 octet까지 Net id, 네 번째 octet부터 Host id임.

       7개의 Network가 필요(subnet id = 3) ➡ 11001000.11001000.11001000.00000000  255.255.255.224   

                                                                        (Host id의 왼쪽에서부터 지수 값만큼 subnet id(1)로 변경)

                                                                       = 200.200.200.0/27 (prefix표기법)


※필요한 Host의 수 또는 IP 할당을 제시하는 경우는 반대로 생각해야 함을 주의할 것!

시나리오에서 "몇 개의 Network가 필요한지, 몇 개의 Host가 필요한지, 몇 개의 IP를 할당받는 지" 

어떤 방식으로 물었는지에 따라 구하는 방식이 조금 다르다.

 

1)  "N 개의 Network가 필요하다." 라고 한다면 위의 방식대로 확인하면 된다.

2) "N개의 Host가 필요하다." 또는 "N개의 IP를 할당한다."라고 한다면 반대의 방식,

    즉 요청하는 개수를 포함하는 최소의 2의 거듭제곱 값만큼 오른쪽에서 왼쪽으로 세어주어야 한다.

    예) 할당 받은 Network : 200.200.200.0 (C class) , 하나의 Network 영역에 50개의 Host가 필요하다.

       ➡ Network의 개수가 아닌 Host 개수를 요청했으므로, 요청하는 개수를 포함하는 최소의 2의 거듭제곱 값만큼

            오른쪽에서 왼쪽으로 세어주면 된다. 그러므로 8bit에서 해당 거듭제곱 값 bit를 빼주면 subnet id가 된다.

2^5 < 50 < 2^6 ➡ 8-6 = 2 (subnet id)

                                                       subnet id

200.200.200.0  ➡  11001000.11001000.11001000.00000000                             

               요청한 Host의 개수를 포함하는 거듭제곱 값(6)


3. Network 영역 구하기

- Network 영역은 subnet id 구간에서 발생할 수 있는 모든 경우의 수를 적용하면 된다.

네 번째 octet의 3번째 비트까지 변환(8개의 네트워크로 분할)하는 경우,  000/001/010/011/100/101/110/111 을 적용하여 8가지 경우의 수가 나온다(2^3 = 8). 이를 적용한 것을 정리하면 아래와 같다. 

① 11001000.11001000.11001000.00000000  ➡  200.200.200.0     
② 11001000.11001000.11001000.00100000  ➡  200.200.200.32
③ 11001000.11001000.11001000.01000000  ➡  200.200.200.64
④ 11001000.11001000.11001000.01100000  ➡  200.200.200.96
⑤ 11001000.11001000.11001000.10000000  ➡  200.200.200.128
⑥ 11001000.11001000.11001000.10100000  ➡  200.200.200.160
⑦ 11001000.11001000.11001000.11000000  ➡  200.200.200.192
⑧ 11001000.11001000.11001000.11100000  ➡  200.200.200.224

4. NA, BA, HA 구하기

- NA, BA, HA는 IP주소를 용도에 따라 나눈 것이며, 모두 32bit 형식을 유지함. 

  ① NA(Network Address) : Network  전체를 대표하는 주소(≠Net id)

                                               Host id가 모두 0bit (Host id = 0) 

                                               ➡ Network 범위에서 가장 작은 IP

  ② BA(Broadcast Address) : Network 전체가 목적지인 것으로, 같은 Net id를 가진 Host들에게 메세지 전달 시 사용함. 

                                                  Host id가 모두 1bit (Host id = 255)

                                                  ➡ Network 범위에서 가장 큰 IP

  ③ HA(Host Address) : 컴퓨터 장비에서 사용 가능한 주소 (Host id = 1~254)

                                              ➡ NA와 BA 사이의 범위

 

 

 


막상 정리하고 보니.. 왜 그렇게 멘붕이 왔나 싶다.

역시.. 공부하면 다 된다:]

'☁ 네트워크 기초 따라가기 > IP' 카테고리의 다른 글

VLSM  (0) 2022.06.18
Class  (0) 2022.06.08
IP 주소  (0) 2022.06.07
Comments