Doctor Pepper

서브넷 마스크(Subnet mask) 본문

자격증/CCNA

서브넷 마스크(Subnet mask)

Doctor Pepper 2024. 10. 17. 14:16

 

1. 서브넷 마스크

서브넷 마스크는 호스트나 라우터가 IP 주소에서 네트워크와 호스트 부분을 구분하기 위해 사용됩니다. IP 주소의 서브넷 마스크는 해당 IP 주소와 동일한 길이를 가지며, IPv4에서는 32비트, IPv6에서는 128비트입니다. 서브넷 마스크는 IP 주소와 마찬가지로 정적 또는 동적 방식으로 구성되며, 일반적으로 호스트는 DHCP와 같은 동적 시스템을 통해 IP 주소와 서브넷 마스크를 할당받지만, 라우터는 보통 정적으로 설정됩니다.

 

 IPv4에서 서브넷 마스크는 IPv4 주소와 동일한 32비트 형식으로 표현된다. 초기에는 다양한 형태로 서브넷 마스크가 사용되었으나, 현재는 앞 부분에 1비트가 연속적으로 나타나고, 그 뒤에 0비트가 이어지는 구조로 고정되어 있다. 이러한 1비트와 0비트의 구분으로 인해 마스크에서 1비트가 나타나는 개수를 이용한 간단한 형식으로 서브넷 마스크를 표현할 수 있다. 이 형식은 접두사 길이(Prefix length)라고 불리며, /24와 같은 형식으로 많이 사용된다.

도트 10진수 표현 간이 표현 (접두사 길이) 2진 표현
128.0.0.0 /1 10000000 00000000 00000000 00000000
255.0.0.0 /8 11111111 00000000 00000000 00000000
255.192.0.0 /10 11111111 11000000 00000000 00000000
255.255.0.0 /16 11111111 11111111 00000000 00000000
255.255.254.0 /23 11111111 11111111 11111110 00000000
255.255.255.192 /27 11111111 11111111 11111111 11100000
255.255.255.255 /32 11111111 11111111 11111111 11111111

 

 라우터나 호스트는 IP 주소의 네트워크/서브넷 부분과 호스트 부분의 경계를 결정하기 위해 서브넷 마스크를 사용한다. 서브넷 마스크에서 1로 설정된 비트는 IP 주소의 해당 비트가 데이터그램 포워딩의 기초가 되는 네트워크/서브넷 부분임을 나타낸다. 반대로, 0으로 설정된 비트는 해당 비트가 호스트 부분임을 의미한다. 이렇게 구분된 네트워크와 호스트 정보는 패킷의 라우팅과 전송을 효과적으로 관리하는 데 중요한 역할을 한다.

 

 

 IP 주소인 128.32.1.14는 이진수로 표현되었을 때 10000000 00100000 00000001 00001110로 나타난다. 이와 함께 사용된 서브넷 마스크는 255.255.255.0이며, 이는 이진수로 11111111 11111111 11111111 00000000로 표현된다. 서브넷 마스크의 접두사 길이는 /24로, 이는 24개의 비트가 네트워크 부분을 나타내고 있음을 의미한다.

 

 서브넷 마스크가 적용된 결과는 128.32.1.0으로, 이는 해당 IP 주소에 대해 네트워크 주소를 구분한 결과이다. 이 정보는 IP 주소의 네트워크 부분과 호스트 부분을 식별하고, 데이터그램의 라우팅 및 전송에 있어 중요한 역할을 한다.

 

 서브넷을 구성할 때 일부 주소가 사용할 수 없게 되는 서브네팅의 단점이 존재한다. 예를 들어, 클래스 C 네트워크 주소 211.214.138.0/26를 서브넷팅하면 다음과 같은 주소들이 생성된다.

 

 26비트 마스크는 처음 3바이트를 네트워크 ID로 사용하고, 마지막 바이트의 처음 2비트를 서브넷 ID로 구성한다. 이 경우 서브넷은 처음 3개의 바이트를 공유하며, 차이는 네 번째 바이트에서 발생한다. 네 번째 바이트의 처음 2비트는 각 주소가 어떤 서브넷에 속하는지를 결정한다.

IP 주소의 마지막 바이트 서브넷 번호 서브넷 주소 브로드캐스트
0~63 subnet 0 00000000 00111111
64~127 subnet 1 01000000 01111111
128~191 subnet 2 10000000 10111111
192~255 subnet 3 11000000 11111111

 

 Subnet 0은 서브넷 주소가 주 네트워크 주소와 혼동될 수 있기 때문에 사용해서는 안 된다. 예를 들어, 네트워크 211.214.138.0이 서브넷 마스크 255.255.255.192로 서브네팅될 경우, subnet 0은 주 네트워크 주소와 동일한 211.214.138.0으로 할당될 것이다.

 

 Subnet 3은 서브넷의 브로드캐스트 주소와 주 네트워크의 브로드캐스트 주소가 동일해지는 문제를 가지고 있다(211.214.138.255). 이러한 서브넷이 모두 소실되면, 이전 주소 공간의 절반을 잃게 되는 결과를 초래할 수 있다. 서브네팅으로 발생하는 주소 공간 낭비를 줄이기 위한 방법은 서브넷 필드의 크기를 늘려 호스트 필드에서 더 많은 비트를 빌려오는 것다. 빌려오는 비트 수가 증가할 때마다 소실되는 주소 공간은 반으로 줄어든다.

서브넷 주소
비트의 수
만들 수 있는
서브넷 수
서브넷 당
호스트 수
총 호스트 수 사용률(%)
2 2 62 124 49
3 6 30 180 71
4 14 14 196 77
5 30 6 180 71
6 62 2 124 49

 

 클래스 C 주소인 211.214.138.0에 대해 서브네트워크로 나누지 않을 때와 2비트, 3비트, 4비트의 호스트 주소를 서브넷 주소로 사용했을 경우, 특수 용도로 사용되는 주소들과 사용할 수 있는 주소들의 관계를 비교해보면 다음과 같다. 서브넷을 4개(2비트)로 나눌 경우와 64개(6비트)로 나눌 경우, 네트워크 주소와 브로드캐스트 주소의 증가로 인해 총 호스트 수가 오히려 줄어드는 것을 확인할 수 있다.

 

 서브네팅으로 인해 생성되는 네트워크 주소와 브로드캐스트 주소는 각각의 서브넷에서 하나씩 차지하게 되어, 호스트 주소의 수가 감소하게 된다. 따라서, 서브네팅을 통해 더 많은 서브넷을 생성하더라도 실제 사용할 수 있는 호스트의 수가 줄어들 수 있다는 점을 고려해야 한다.

 

 

서브네팅은 네트워크 관리에 유용한 기술이지만, 동시에 일부 주소의 사용 불가로 인해 주소 공간의 낭비를 초래할 수 있다. 이로 인해 네트워크의 효율성이 저하될 수 있으며, 서브넷을 통해 생성된 네트워크 주소와 브로드캐스트 주소가 호스트 주소의 수를 감소시킬 수 있다는 점은 특히 중요하다.

 

 따라서, 네트워크 설계 시 서브네팅을 신중하게 고려해야 하며, 필요에 따라 적절한 서브넷 마스크를 선택하여 최대한의 주소 활용도를 확보하는 것이 필요하다. 이를 통해 네트워크의 안정성과 효율성을 극대화할 수 있으며, 향후 확장성 또한 보장할 수 있다.

 

 결론적으로, 서브네팅은 효과적인 네트워크 관리를 위한 필수적인 과정이지만, 주소 공간의 낭비를 최소화하고, 호스트 수를 극대화하기 위한 전략이 요구된다.