본문 바로가기

네트워크

[네트워크] 6. 서브넷 마스크, 서브네팅

이 게시물은 후니의 쉽게 쓴 CISCO 네트워킹 4판을 공부한 내용을 바탕으로 작성됨.

 


 

IP Subnetting - Part 2: Subnet Masks & Their Effect (firewall.cx)

 

 

 

 

서브넷 마스크 Subnet Mask - 무엇인가?

 

class B 네트워크를 배정받았다고 생각해보자. class B는 네트워크 당 호스트 수가 65,534개로, 이를 그대로 사용하면 Broadcast domain이 상당히 커 실제 상황에서 이를 그냥 사용하는 것은 불가능하다. (6.5만개 호스트가 전부 같은 broadcast domain에 속한다고 생각해보라!)

 

→ 네트워크를 작게 쪼개주는 subnetting이 필요

 

 

예를 들어 class B 네트워크 150.150.0.0을 서브네팅 한다면 서브넷 마스크는 255.255.0.0에서 255.255.255.0이 되고, 150.150.1.0, 150.150.2.0 ... 으로 네트워크를 세분화 할 수 있다. 각 서브넷은 서로 다른 network가 되었으므로 서브넷 간 통신은 router를 이용하여야 한다.

 

 

 

서브넷 마스크는 항상 존재한다. 서브네팅을 했든 안했든 IP 주소가 존재하면 서브넷마스크도 존재한다. 그래야 그 주소가 서브네팅이 된 것인지 아닌지 파악할 수 있다.

 

 

서브넷 마스크 Subnet Mask란? →  network part / host part를 나타내는 역할

 

 

디폴트 서브넷 마스크

Class A 255.0.0.0
Class B 255.255.0.0
Class C  255.255.255.0

 

A는 1옥텟, B는 2옥텟, C은 3옥텟이 Network part라고 했었다. 즉 서브넷 마스크가 이진수로 1인 부분은 Network part이고, 0인 부분은 host part이다. 

 

 

 

서브넷 마스크는 서브넷 네트워크를 쉽게 구하는 데 사용된다. 어떤 IP 주소와 그것의 서브넷 마스크가 있을 때 이 둘을 AND 연산하면 서브넷 네트워크 (network part)를 쉽게 얻어낼 수 있다.

IP 주소 210.100.100.1
서브넷 마스크 255.255.255.0
서브넷 네트워크 210.100.100.0

 

 

Class B network의 디폴트 서브넷 마스크는 255.255.0.0이다. 이때 네트워크를 쪼개기 위해서는 서브넷 마스크의 1인 부분이 더 많으면 된다. 예를들어 255.255.255.0 이라는 서브넷 마스크를 씌우는 것이다. 그러면 기존에 16옥텟이었던 호스트 부분이 8옥텟으로 줄어들고, 네트워크 부분이 8옥텟 늘어난다.

 

 

이처럼 서브넷 마스크를 조작하여 큰 네트워크를 작은 여러개의 네트워크로 바꾸는 것을 서브네팅이라고 한다. 

 

 

(여기서는 이해하기 쉽게 1옥텟 단위로 subnetting을 했는데, 실전에서는 굳이 1옥텟 단위로 할 이유가 없다. 1bit, 2bits 등 자유롭게 서브네팅 할 수 있다.)

 

 

 

 


서브넷 마스크 Subnet Mask - 기본 성질

 

  • 서브네팅을 통해 나뉘어진 네트워크들은 이제 서로 다른 네트워크이므로 router를 이용해야만 통신할 수 있다.
  • 서브넷 마스크는 1이 연속적으로 등장해야 한다. 예를 들어 255.255.255.10 = 1111 1111. 1111 1111. 1111 1111. 0000 1010은 사용할 수 없다. 1의 사이에 절대 0이 껴서는 안된다.
  • 255.255.255.252 = 1111 1111. 1111 1111. 1111 1111. 1111 1100은 가능하다.

 

 

 

 

예제 하나를 잠깐 보겠다.

IP 주소 130.15.121.13
서브넷 마스크 255.255.255.0
클래스 B
서브넷 130.15.121.0

 

맨 처음 옥텟이 130이므로 B class에 속하는 것은 자명하다. 이때 서브넷 마스크를 C class와 동일하게 255.255.255.0으로 지정해주면 해당 서브넷들은 Class C가 되는 것일까? 그렇지 않다. Class B를 서브네팅하여 Class C처럼 사용하는 것이지, 근본은 Class B로 동일하다.

 

 

 

 


서브넷 마스크 Subnet Mask - 약간의 활용

 

 

문제 1

 

공인 IP 주소 210.100.1.0 (subnet mask = 255.255.255.0)을 받았다고 하자. 요 하나의 큰 네트워크를 이용하여 PC 30대를 수용할 수 있는 네트워크 4개를 만들려면 어떻게 해야하는가?

 

 

먼저 한 네트워크에 PC 30대를 담당하기 위해 host part가 몇 비트 필요한지 파악해보자.

 

호스트 비트수 호스트 수
1 2 - 2 = 0
2 4 - 2 = 2
3 8 - 2 = 6
4 16 - 2 = 14
5 32 - 2 = 30
6 64 - 2 = 62

 

호스트 비트가 전부 0인 경우는 네트워크 그 자체를 의미하므로 사용이 불가능하고, 전부 1인 경우는 브로드캐스트 주소이므로 사용이 불가능하기 때문에 항상 전체에서 2개를 빼줘야 한다. 위 표에서 알 수 있듯이 PC 30개를 수용하기 위해서는 호스트 비트를 최소 5개 사용해야 한다.

 

 

호스트 비트 5개 할당하자. (IP 주소를 남김없이 효율적으로 사용하기 위해 서브네팅이 개발된 것이므로, 딱 5bit만 할당하는 것이 바람직하다.)

 

default subnet mask = 255.255.255.0000 0000

변경된 subnet mask = 255.255.255.sssh hhhh (s : subnet, h : host)

 

이때 사용자가 조작 가능한 network part는 3bits이므로 총 8개의 network를 가지며, 각각의 network는 호스트를 30대 수용할 수 있다.

 

 

 

 

 

 

문제 2

 

주어진 네트워크 : 201.222.5.0 (subnet mask : 255.255.255.0)

 

서브넷 요구조건 : 서브넷 당 호스트 5개 이상 / 총 서브넷 수 20개 이상

 

서브넷당 호스트가 5개 이상이려면 호스트 비트수를 3으로 설정하면 알맞다. (호스트 비트 3일때 호스트 수 6)

 

host bits를 3개 할당해보자.

 

default subnet mask = 255.255.255.0000 0000

변경된 subnet mask = 255.255.255.ssss shhh (s : subnet, h : host)

 

변경 가능한 네트워크 비트수가 5 = 총 32개의 서브넷을 얻을 수 있다. 

 

 

가장 첫 번째 서브넷에 대하여 호스트 IP를 살펴보자.

 

201.222.5.0000 0000 host part가 전부 0 : 네트워크 그 자체
201.222.5.0000 0001 201.222.5.1 (host 1)
201.222.5.0000 0010 201.222.5.2 (host 2)
201.222.5.0000 0011 201.222.5.3 (host 3)
201.222.5.0000 0100 201.222.5.4 (host 4)
201.222.5.0000 0101 201.222.5.5 (host 5)
201.222.5.0000 0110 201.222.5.6 (host 6)
201.222.5.0000 0111 host part가 전부 1 : Broadcast 용

 

 

→  host part가 전부 0 / 1인 경우는 host에 할당하지 않는다는 것을 항상 명심해야 한다.

 

 

 

 

 

이번 게시글에서는 서브넷마스크와 서브네팅에 대하여 간단하게 알아보았다. 사실 수업들을 땐 진짜 이해가 안됐는데 후니 책으로 읽으니까 이해가 진짜 쉽다. 굿~

 

책에 있는 모든 내용을 담지는 않았지만, 서브넷마스크는 기본적이면서도 아주 중요한 개념이기 때문에 시간 될 때마다 책 꼼꼼히 읽어봐야겠다.