서브넷이란?
저번 포스트에서 A, B, C 클래스를 나누는 것, 범위를 알아보았다.
A 클래스의 경우 첫 8비트가 네트워크 ID, 나머지 24비트가 호스트 ID이다.
그러면 A클래스는 호스트ID가 24비트이므로 총 1677만 7214개나 되는 IP주소를 사용하게 되는 셈이다.
이렇게 많은 주소에 만약 브로드캐스트로 데이터를 보내게 된다면 모든 컴퓨터에 패킷이 전송되므로 혼잡해진다.
즉, IPv4의 주소가 고갈상태이기 때문에 생겨난 것이다.
그래서 이 대규모 네트워크를 작은 네트워크로 분할하는 것을 서브넷팅(subneting)이라고 하며 분할된 네트워크를 서브넷(subnet)이라고 한다.
기존에 네트워크 ID와 호스트 ID로만 구성되어 있었던 것이 이제는 네트워크 ID, 서브넷 ID, 호스트 ID로 나누어지게 된다.
즉, 호스트ID의 앞부분을 떼고 그 부분을 Network ID로 사용하게 되는 셈이고 하나의 Network ID를 여러개의 서브넷으로 나누게 되는 것이다.
서브넷 마스크
IP주소를 서브넷팅 하게 되면 어디까지가 네트워크 ID이고 어디까지가 호스트ID인지 판별하기가 어렵다.
그래서 서브넷 마스크를 사용해 네트워크와 호스트 ID를 식별한다.
192.168.1.1/24나 255.255.255.0 같은 IP를 본 적 있을 것이다. 바로 이게 서브넷 마스크이고 결론적으로 이 두 개는 같다.
연속된 1의 개수가 바로 슬래쉬 뒤에 붙는 숫자이다. 위 그림에서는 /24가 된다.
결론
서브넷 마스크는 왜 필요한가를 생각해보면 결국은 IPv4가 클래스 단위로 할당을 하여 나누어 놓았지만
고갈 상태이므로 정해놓은 대역별 기본 서브넷 마스크를 사용할 수 없다.
서브넷팅을 통해서 라우터의 브로드캐스팅을 부담을 줄일 수 있다는 것에 의의가 있다.
CIDR 사이더
AWS에 보면 CIDR이라는 것이 있다.
CIDR는 Classless Inter-Domain Routing의 약자이고 접두어를 이용해 주소 지정방식을 가지는 방법을 사용한다.
클래스 별로 제한된 범위를 큰 범위로 합치는 것을 Supernet이라고 한다. 이 슈퍼넷은 네트워크의 비트 중 일부를 호스트 ID로 편입시키는 방법을 사용해 가벼운 네트워크를 만드는데 목적이 있다.