어떤 기관에 A 클래스를 할당한다고 하면 16,777,214개의 호스트를 할당할 수 있게 되는데, 이 기관이 100개의 호스트를 할당한다고 하더라도 16,777,114개의 호스트가 낭비되게 된다. 이러한 비효율성을 해결하기 위해 네트워크 장치들의 수에 따라 효율적으로 사용할 수 있는 서브넷(subnet)이 등장하게 되었다.
서브넷은 IP 주소에서 네트워크 ID와 Host ID를 분리하는 역할을 한다.
예를 들어 위의 C 클래스는 기본적으로 뒤의 8비트로만 hostID에 사용할 수가 있다. C 클래스는 하나의 서브넷에 254개의 host(256-2)를 가질 수 있다.
기본 서브넷 마스크 (Default Subnet Mask)
C 클래스를 보면 기본 서브넷 마스크가 255.255.255.0이다. 192.168.32.0이라는 IP주소와 AND연산을 하면 192.168.32.0이 나오고 이 바로 Network ID이다.
서브넷팅은 IP 주소 낭비를 방지하기 위해 원본 네트워크를 여러개의 서브넷으로 분리하는 과정을 뜻한다. 즉, 서브넷 마스크의 bit수를 증가시키는 것이다. (서브넷 마스크의 bit를 1씩 증가 시키면 할당할 수 있는 네트워크가 2개붓로 증가하고, 호스트는 2배수로 감소한다.
위의 사진에서 서브넷 마스크의 bit수를 1 증가시켜서 25로 바꾸었다고 하자. 그러면 할당할 수 있는 호스트는 원래 8비트(28-2)에서 7비트(27-2)로 줄게 된다. 서브넷은 2개가 생기게 된다.
서브넷 1의 네트워크 주소: 192.168.32.0(처음)
서브넷 1의 할당 가능한 호스트: ip(1~126)
서브넷 1의 Broadcast Address: 192.168.32.127(마지막)
서브넷 2의 네트워크 주소: 192.168.32.128
서브넷 2의 할당 가능한 호스트 ip(129~254)
서브넷 2의 Broadcast Address: 192.168.32.255(마지막)
FLSM: Fixed length subnet mask
VLSM: Variable length subnet mask
공인 IP를 쓸 때에는, VLSM을 사용하여 효율적으로 필요한 만큼 사용한다.(IP는 곧 돈이다.)
사설 IP같은 경우, FLSM을 사용한다.