서브넷팅이란 하나의 네트워크를 여러 작은 단위의 네트워크로 나눠 사용할 수 있는 방법이다.
예를 들어 172.16.0.0
네트워크가 있다고 해보자.
172.16.0.0
는 클래스 C 주소이므로 호스트 부분이 8비트이고, 네트워크 주소와 브로드 캐스트 주소 2개를 제외하면 할당할 수 있는 최대 IP 수는 254개이다.
만약 이보다 더 많은 호스트를 수용할 수 있는 네트워크를 구성하거나, 여러개의 작은 네트워크로 나눠야 한다는 요구사항이 있다면 어떻게 해야할까?
서브넷팅을 활용하면 하나의 네트워크를 여러개의 네트워크로 분할할 수 있다.
서브넷을 이해하려면 서브넷 마스크를 알아야 하고, 서브넷 마스크를 이해하기 위해서는 IP 주소에 대한 이해가 선행되어야 한다.
먼저 IP 주소가 무엇이고 어떻게 구성되는지 알아보자.
IP Address
네트워크란, 라우터를 거치지 않고 통신이 가능한 영역을 의미한다. IP 주소는 하나의 네트워크안에서 호스트를 식별할 수 있는 주소 값이다. IP는 호스트의 식별 값으로 사용되기 때문에 같은 네트워크 안에서 유일해야 한다.
IP 주소는 32자리의 이진수로 구성되며, 8자리마다 점(.
) 으로 구분 된 네개의 영역으로 구성된다.
점으로 구분 된 네 개의 영역은 다시 네트워크 식별에 사용되는 영역과 호스트 구분에 사용되는 영역으로 구분된다.
IP 주소 클래스(Class)
네트워크와 호스트 영역을 나누는 기준은 A, B, C, D, E 총 5가지가 있다. 이러한 IP 주소의 분류를 클래스(Class)라 한다.
그 중 가장 많이 사용되는 A, B, C 세 클래스의 특징을 간단히 정리해보자.
Class A
- 세 개의 클래스 중 가장 많은 호스트를 수용할 수 있다.
- 첫 번째 옥텟(32자리의 이진 수 중 첫 8자리)는 십진수
1 ~ 126
의 범위를 가진다. - 첫 번째 옥텟은 네트워크 주소를 나타내고, 나머지 세 개의 옥텟은 호스트 주소를 정의한다.
Class B
- 첫 번째 옥텟은 십진수
128 ~ 191
의 범위를 가진다. - 첫 두 옥텟은 네트워크 주소, 나머지 두 옥텟은 호스트 주소를 나타낸다.
Class C
- 첫 옥텟의 범위는 십진수
192 ~ 223
이다. - 첫 세개의 옥텟은 네트워크 주소, 마지막 하나의 옥텟은 호스트 주소를 나타낸다.
디폴트 서브넷 마스크 (Default Subnet Mask)
앞서 A, B, C 각 클래스 주소가 호스트, 네트워크 부분으로 구성되어 있다는 것을 확인하였다. 각 클래스의 기본 서브넷 마스크는 다음과 같다.
- Class A :
255.0.0.0
- Class B :
255.255.0.0
- Class C :
255.255.255.0
이를 디폴트 서브넷 마스크(Default Subnet Mask)
라 한다.
서브넷 마스크 (Subnet Mask)
디폴트 서브넷 마스크에서 확인한 것과 같이 클래스 기반 IP 주소 방식은 고정된 네트워크 부분과 호스트 부분을 가지고 있다.
클래스 기반의 할당은 네트워크 관리를 어렵게 만들고, IP 주소 공간의 효율적인 사용을 제한한다. 이러한 문제를 해결하기 위해 등장한 것이 서브넷 마스크다.
서브넷 마스크는 클래스 기반의 IP 주소 체계를 유연하게 만든다. 서브넷 마스크를 사용하면 IP 주소 공간을 더 작은 단위로 세분화 할 수 있다. 클래스 방식의 한계를 넘어 자유롭게 네트워크를 분할하고, 더 작은 서브넷
으로 나눌 수 있게 되는 것이다.
그럼 이제 172.16.0.0
하나의 네트워크를 네 개의 네트워크 영역으로 분리해보자.
서브넷 마스크는 네트워크 영역에 비트 값 1, 호스트 영역에 0을 지정한다.
상단 그림의 주황색으로 표시한 마지막 8비트 부분이 네트워크 영역, 그 옆에 초록색으로 표시된 부분이 호스트 영역이다.
주황색 네트워크 영역 두 비트 자리에는 0 또는 1을 할당할 수 있으므로, 총 4개의 서브넷을 만들 수 있다.
172.16.0.0
의 26번째 비트(네트워크 영역)에 1을 할당하고 서브넷 마스크와 비트 마스킹 연산(AND)를 하면, 172.16.0.64
네트워크 주소 값이 만들어지는 것을 확인할 수 있다.
이와 같은 과정을 통해 다음과 같이 총 4개의 네트워크 주소가 만들어진다.
각 서브넷에는 호스트 영역에 0 또는 1을 지정하여 호스트 주소를 만들 수 있는데, 각 서브넷마다 총 서브넷마다 총 62개의 IP 주소를 할당할 수 있다. (네트워크 주소와 브로드 캐스트 주소 2개는 제외한다.)