-
흔히 사용되는 IPv4 주소 체계는 클래스를 나누어 IP를 할당한다.
-
하지만 이 방식은 매우 비효율적이다. 예를 들어 어떤 기관에 A 클래스를 할당한다고 하면 16,777,214개의 호스트를 할당할 수 있게 되는데, 이 기관이 100개의 호스트를 할당할 때 16,777,114개의 호스트는 그대로 낭비된다.
-
이러한 비효율성을 해결하기 위해 네트워크 장치들의 수에 따라 효율적으로 사용할 수 있는 서브넷(subnet)이 등장하게 되었다.
-
서브넷은 IP 주소에서 네트워크 영역을 부분적으로 나눈 부분 네트워크를 뜻한다. 이러한 서브넷을 만들 때 사용되는 것이 바로 서브넷 마스크이다.
-
즉, 서브넷 마스크는 IP 주소 체계의 Network ID와 Host ID를 분리하는 역할을 한다.
서브넷팅을 자세히 알아보기 전에 기본 서브넷 마스크(Default Subnet mask)에 대해 알아보자.
-
각 클래스마다 기본 서브넷 마스크는 위 표와 같다(D, E클래스는 사용하지 않음). 이러한 기본 서브넷 마스크를 이용하면 IP 주소의 Network ID와 Host ID를 구분할 수 있다.
-
IP주소에 서브넷 마스크를 AND 연산하면 Network ID가 된다.
-
예를 들어 C클래스인
192.168.32.0
이라는 IP주소가 있다고 하자.- C클래스의 기본 서브넷 마스크는
255.255.255.0
이므로 AND연산을 하면192.168.32.0
이 나오고 이것이 바로 Network ID이다. - 이때 서브넷 마스크의 Network ID부분은 1이 연속적으로 있어야 하고 Host ID부분은 0이 연속적으로 있어야 한다.
- C클래스의 기본 서브넷 마스크는
-
예시의 IP주소를 보면
192.168.32.0/24
처럼/24
같은 표시가 붙어있는 것을 확인할 수 있다.- 이러한 표기법을 슬래시 표기법이라 부른다.
- 이것은 서브넷 마스크의 bit 수(왼쪽에서부터 1의 개수)를 나타낸다.
- 즉
/24
는 해당 IP의 서브넷 마스크의 왼쪽에서부터 24개가 1이라는 것을 의미한다.
- 서브넷팅은 IP 주소 낭비를 방지하기 위해 원본 네트워크를 여러개의 서브넷으로 분리하는 과정을 뜻한다.
- 서브넷 마스크의 bit 수를 증가시키는 것이라고 생각하면 된다.
- 서브넷마스크의 bit수를 1씩 증가시키면 할당할 수 있는 네트워크가 2배수로 증가하고 호스트 수는 2배수로 감소한다.
예제
-
C클래스인
192.168.32.0/24
를 서브넷 마스크의 bit수를 1 증가시켜서192.168.32.0/25
로 변경하는 상황을 살펴보자. -
192.168.32.0/24
는 원래 하나의 네트워크였다. 이때 할당 가능한 host의 수는2^8-2 = 254
개이다.- 여기서 2개를 빼는 이유는 첫번째 주소인 192.168.32.0은 Network Address로 쓰이고 마지막 주소인 192.168.32.255는 Broadcast로 쓰이기 때문에 호스트에 할당할 수 없기 때문이다.
-
이 때 서브넷 마스크의 bit 수를 1 증가시켜서(서브넷팅)
192.168.32.0/25
로 변경하게 되면 Network ID부분을 나타내는 부분이 24비트에서 25비트로 증가하고 Host ID를 나타내는 부분이 8개 비트에서 7개 비트로 줄어든다.- 즉 할당 가능한 네트워크 수가 2개로 증가하고 각 네트워크(서브넷)당 할당가능한 호스트수는 2^7-2 = 126개로 줄어든다. 또한 서브넷 마스크가
255.255.255.128
로 변한 것을 확인할 수 있다.
- 즉 할당 가능한 네트워크 수가 2개로 증가하고 각 네트워크(서브넷)당 할당가능한 호스트수는 2^7-2 = 126개로 줄어든다. 또한 서브넷 마스크가
-
정리하자면 다음과 같다.
- 192.168.32.0 : 서브넷1의 Network Address
- 192.168.32.1 ~ 192.168.32.126 : 서브넷1의 host 할당 가능한 부분
- 192.168.32.127 : 서브넷1의 Broadcast Address
- 192.168.32.128 : 서브넷2의 NetworkAddress
- 192.168.32.129 ~ 192.168.32.254 : 서브넷2의 host 할당 가능한 부분
- 192.168.32.255 : 서브넷2의 Broadcast Address
reference