Class A-C: 일반호스트에 할당 가능한 유니캐스트 통신용 (대규모, 중규모, 소규모 네트워크)
Class A: 대규모 네트워크
Class B: 중규모 네트워크
Class C: 소규모 네트워크
호스트ID에 할당된 비트 크기가 클 수록(Class A: 24-bit; -B: 16-bit; -C: 8-bit) 하나의 네트워크에서 수용할 수 있는 기기(IP) 수가 더 많다.
Class D-E: 멀티캐스트 전용 및 연구/실험용
Class D: 멀티캐스트 그룹 통신 전용
Class E: 연구 및 실험 예약용
이미지: Firewall Flow
공인IP 범위: 1.0.0.0 - 126.255.255.255 ※0, 127번 대역 제외
네트워크 ID (공인): 8-bit ※Prefix: /8
호스트ID (공인): 24-bit
사설IP 범위: 10.0.0.0 - 10.255.255.255
네트워크ID (사설): 8-bit ※Prefix: /8
호스트ID (사설): 24-bit
Loopback: 127.0.0.0/8
루프백 호스트IP: 127.0.0.1 - 127.255.255.254
루프백 브로드캐스트: 127.255.255.255
공인IP 범위: 128.0.0.0 - 191.255.255.255 ※0, 127번 대역 제외
네트워크 ID: 16-bit ※Prefix: /16
호스트ID: 16-bit
사설IP 범위: 172.16.0.0 - 172.31.255.255
Classful 네트워크ID: 16-bit
Classful 호스트ID: 16-bit
Classless 네트워크ID: 12-bit
Classless 호스트ID: 20-bit
Classful, Classless
Classful: 클래스 규칙만 따랐을 때를 의미하며, 전통적인 클래스풀 관점에서는, 첫 번째 octet이 128-191 사이면 B클래스로 규정한다.
Classless CIDR: 실제 사설IP 범위를 의미하며, 현대 인터넷 표준(RFC 1918)에서 정의한 B클래스 사설IP 범위는 172.16.0.0 - 172.31.255.255이다.
공인IP 범위: 192.0.0.0 - 223.255.255.255 ※사설대역 제외
네트워크 ID: 24-bit ※Prefix: /24
호스트ID: 8-bit
사설IP 범위: 192.168.0.0 - 192.168.255.255
Classful 네트워크ID: 24-bit
Classful 호스트ID: 8-bit
Classless 네트워크ID: 16-bit
Classless 호스트ID: 16-bit
공인IP 범위: 224.0.0.0 - 239.255.255.255 ※멀티캐스트 그룹 통신 전용
네트워크 ID: 해당 없음 ※클래스 구분 없음
호스트ID: 해당 없음 ※호스트 할당 불가
사설IP 범위: 해당 없음 ※사설IP 구분 없음
네트워크ID: 해당 없음
호스트ID: 해당 없음
공인IP 범위: 240.0.0.0 - 255.255.255.255 ※연구 및 실험 예약용
네트워크 ID: 해당 없음 ※클래스 구분 없음
호스트ID: 해당 없음 ※호스트 할당 불가
사설IP 범위: 해당 없음 ※사설IP 구분 없음
네트워크ID: 해당 없음
호스트ID: 해당 없음
192.168.100.0/24 네트워크 대역을 동일한 IP 개수를 가진 4개의 서브넷으로 분할하시오.
필요 네트워크 조사: 4개 네트워크 구성하려면, 2-bit 필요 ※2^2 = 4
서브넷 bit 결정: 호스트ID를 이용해서, 네트워크를 만들기 위한 bit 수를 결정한다.
192.168.100.0: 1100 0000. 1010 1000. 0110 0100. 0000 0000
네트워크ID: 192.168.100 ※1100 0000. 1010 1000. 0110 0100
호스트ID: 0 ※0000 0000
네트워크ID 결정: 각각의 서브넷ID를 제외한 호스트ID를 모두 0으로 변경하면, 서브넷ID(네트워크ID) 도출이 가능하다.
192.168.100.0: 1100 0000. 1010 1000. 0110 0100. 0000 0000
서브넷ID(네트워크ID): 192.168.100.00
호스트ID: 00 0000
192.168.100.64: 1100 0000. 1010 1000. 0110 0100. 0100 0000
서브넷ID(네트워크ID): 192.168.100.01
호스트ID: 00 0000
192.168.100.128: 1100 0000. 1010 1000. 0110 0100. 1000 0000
서브넷ID(네트워크ID): 192.168.100.10
호스트ID: 00 0000
192.168.100.192: 1100 0000. 1010 1000. 0110 0100. 1100 0000
서브넷ID(네트워크ID): 192.168.100.11
호스트ID: 00 0000
서브넷마스크 계산: 네트워크ID의 모든 bit를 1로 변경하면, 서브넷마스크 도출이 가능하다.
255.255.255.192: 1111 1111. 1111 1111. 1111 1111. 1100 0000
서브넷ID(네트워크ID): 255.255.255.11 ※1111 1111. 1111 1111. 1111 1111. 11
호스트ID: 00 0000
CIDR 표기법: 255.255.255.192/26 ※/(slash)에 서브넷마스크 bit 수를 기재
사용가능 호스트 수 계산: 호스트ID bit 수가 6-bit이므로, 2^6 - 2 = 62개의 호스트 사용 가능 ※네트워크ID 및 브로드캐스트 주소 제외
브로드캐스트 주소 계산: 호스트ID의 bit를 모두 1로 변경하면, 브로드캐스트 주소 도출이 가능하다.
192.168.100.63: 1100 0000. 1010 1000. 0110 0100. 0011 1111
서브넷ID(네트워크ID): 192.168.100.00
호스트ID: 11 1111
192.168.100.127: 1100 0000. 1010 1000. 0110 0100. 0111 1111
서브넷ID(네트워크ID): 192.168.100.01
호스트ID: 11 1111
192.168.100.191: 1100 0000. 1010 1000. 0110 0100. 1011 1111
서브넷ID(네트워크ID): 192.168.100.10
호스트ID: 11 1111
192.168.100.255: 1100 0000. 1010 1000. 0110 0100. 1111 1111
서브넷ID(네트워크ID): 192.168.100.11
호스트ID: 11 1111
서브네팅에서 필요한 네트워크 수에 맞게 기존의 호스트ID에서 필요한 bit 수를 도출하고, 도출된 bit로 네트워크ID를 구한다.
192.168.4.0 - 192.168.7.0/24 네트워크 대역을 슈퍼네팅하여 네트워크ID, 서브넷마스크, 브로드캐스트 주소, 유효 IP 호스트 수를 산출하시오.
각 주소의 공통된 bit 수 찾기: 총 22-bit(prefix)가 공통된다. ※새로운 CIDR 표기법: /22
192.168.4.0/24: 1100 0000. 1010 1000. 0000 0100. 0000 0000
192.168.5.0/24: 1100 0000. 1010 1000. 0000 0101. 0000 0000
192.168.6.0/24: 1100 0000. 1010 1000. 0000 0110. 0000 0000
192.168.7.0/24: 1100 0000. 1010 1000. 0000 0111. 0000 0000
네트워크ID: 슈퍼네팅의 대표주소는 prefix를 제외한 모든 뒷자리를 0으로 채운 첫 주소가 된다.
192.168.4.0: 192.168. 0000 0100. 0000 0000 ※CIDR 표기시, 192.168.4.0/22
서브넷마스크: prefix 만큼 1을 채우고, 나머지는 0을 채운다.
255.255.252.0: 1111 1111. 1111 1111. 1111 1100. 0000 0000
브로드캐스트 주소: prefix를 제외한 나머지 하위 10-bit 호스트 영역을 1로 채운다.
192.168.7.255: 192.168. 0000 0111. 1111 1111
유효 IP 호스트 수: 네트워크ID로 사용되는 22-bit를 제외하면, 호스트 주소로 사용할 수 있는 bit는 총 10-bit이다.
전체 확보된 IP 개수: 2^10 = 1024개
유효 호스트 수: 2^10 - 2 = 1022개 ※네트워크 주소(192.168.4.0), 전체 브로드캐스트 주소(192.168.7.255) 제외
192.168.10.0/24 네트워크 대역을 서브네팅하여, 각 부서(서브넷)마다 최소 30대 이상의 호스트를 연결할 수 있도록, 가장 효율적으로 분할하고자 한다. 분할된 첫 번째 서브넷의 네트워크ID, 브로드캐스트 주소, 가용IP 범위, 서브넷마스크를 구하라.
가용 호스트 수 산출 공식: 2^host - 2 >= 30
-2: 네트워크ID, 브로드캐스트 주소 제외를 의미
I.e., 호스트는 총 5-bit 사용 가능하다.
서브넷 bit 변환 원리
IPv4는 총 32-bit이다. 기존 주소가 /24였으므로, 마스크의 마지막 4번째 octet인 8-bit 공간을 활용하여 분할을 진행하여야 한다.
호스트 전용으로 5-bit를 남기기로 하였으므로, 네트워크ID가 새로 빌릴 수 있는 bit는 앞의 3-bit가 된다. ※8-5 = 3
따라서, 새로운 prefix는 기존 24-bit에 빌려온 3-bit를 더한 24+3 = /27이 된다.
각 서브넷 추정하기
서브넷-1: 192.168.10.0 - 192.168.10.31
서브넷-2: 192.168.10.32 - 192.168.10.63
서브넷-3: 192.168.10.64 - 192.168.10.95 ...
네트워크ID: 각 서브넷의 가장 첫 번째 주소로, 해당 서브넷 전체를 대표하는 이름
서브넷-1: 192.168.10.0
브로드캐스트 주소: 각 서브넷의 가장 마지막 주소
서브넷-1: 192.168.10.31
가용IP 범위: 호스트 연결 가능한 IP ※네트워크ID, 브로드캐스트 제외
서브넷-1: 192.168.10.1 - 192.168.10.30 ※정확히 30대 연결 가능
서브넷마스크: 총 몇 개의 서브넷이 존재하는지를 라우터에게 알려준다.
/27을 2진수로 전개: 1111 1111. 1111 1111. 1111 1111. 1110 0000 ※255.255.255.224
빠른 계산식: 256(전체크기) - 32(각 서브넷 크기) = 224
/22, /28은 몇 클래스일까? Classless(CIDR) 표기법 이므로, 클래스 지정을 할 수 없다.
클래스로 나눌 수 없다?
클래스(classful) 체계는 prefix(mask)가 단 3개로만 고정되어 있다.
클래스-A: /8 (255.0.0.0)
클래스-B: /16 (255.255.0.0)
클래스-C: /24 (255.255.255.0)
하지만, /22, /28은 Classful과 달리, bit 단위로 서브네팅 또는 슈퍼네팅 한 결과물이다.
따라서, 출신성분(원래 어떤 클래스 대역을 분할한 것인가)을 따질 수는 있지만, 그 자체를 특정 클래스라고 부르지는 않는다.
(예시) /22 마스크의 경우
192.168.4.0/22의 경우: 맨 앞이 192이므로 원래는 클래스-C 대역이었는데(/24), 4개의 서브넷을 하나로 합치느라 prefix가 2-bit 당겨져서 /22(슈퍼네팅) 되었다.
172.16.0.0/22의 경우: 맨 앞이 172이므로 원래는 클래스-B 대역이었는데(/16), 서브넷을 잘게 분할하다 보니 prefix가 뒤로 밀려나서 /22(서브네팅) 되었다.
(예시) /28 마스크의 경우
192.168.1.0/28의 경우: 맨 앞이 192이므로 원래는 클래스-C 대역이었는데(/24), 서브넷을 잘게 분할하다 보니 prefix가 4-bit 뒤로 밀려나서 /28(서브네팅) 되었다.
I.e., Classless 방식은 그 자체로는 클래스가 없다. 다만, IP주소의 첫 자릿수를 보아야, 해당 주소가 원래 어느 클래스 소속이었는지를 알 수 있다.