컴퓨터 네트워킹에서 Classless Inter-Domain Routing, 또는 CIDR ("사이더"라고 발음합니다)은 인터넷에서의 효율적인 라우팅을 위해 디바이스의 IP 주소를 할당하는 방법입니다. 이 포스팅에서는 아주 쉽게 CIDR을 이해하는 방법을 알아 보겠습니다.
IP 주소의 기본 개념
현재 아주 많이 사용되는 주소인 IPv4 주소는 32비트의 주소이죠. 왜 32비트일까요? IPv4의 주소는 위의 이미지와 같이 ###.###.###.### 의 패턴이 있죠. 그러면 4개의 숫자들로 이루어져 있는 IP 주소가 만들어 지는데 각 숫자는 0~255 까지 256개의 수들이 존재하기 때문에 8비트가 됩니다 (2의 8승 = 256이죠).
2의 8승인 경우인데 베이스인 2는 컴퓨터가 사용하는 언어인 0과 1로 이루어진 2진수이기 때문입니다. 그러면 8비트의 수가 네개가 존재하므로 IPv4는 32비트의 주소인 셈입니다. 이 개념이 아주 중요합니다. 그러므로 32비트의 주소는 최대 2의 32승의 수 만큼(4,294,967,296 개)의 주소가 존재한다는 이야기가 됩니다.
IP 주소의 타입
IPv4 주소에는 클래스가 있고 없고가 있습니다.
클래스
우선 보편적으로 사용되는 세 가지의 클래스가 존재하는데 가장 많은 주소를 할당할 수 있는 클래스 순으로 A, B, C가 존재합니다. 8비트 단위로 A는 처음의 8비트가 고정이 되어있고 (서브넷 255.0.0.0), B는 처음의 16비트 (서브넷 255.255.0.0), 그리고 C는 처음의 24비트 (서브넷 255.255.255.0, 그러므로 마지막의 8비트가 할당가능)가 고정이죠.
하지만 클래스 방식은 할당 가능한 수는 항상 2개가 줄어들게 됩니다. 호스트의 주소와 0을 제외해야 하는 이유입니다. 예를들어 클래스 C는 8비트 (2의 8승 = 256)가 할당 가능한데 0 (네트워크 주소)과 255 (브로드캐스트 주소)를 제외하면 254가 되죠.
클래스만 사용하게 되면 8비트 단위로 할당 가능 수가 변경이 되므로 어중간한 수의 디바이스가 있다면 모자라거나 너무 많은 주소를 가질 수 있는 경우가 생기는 단점이 있습니다.
CIDR
클래스가 없는 경우는 CIDR인 경우인데 주소의 패턴 마지막에 “/##” 라는 고정 비트 수를 표기합니다 (subnet을 비트수로 표기하는 방법입니다). 예를 들면 192.168.1.0/24 이면 24비트를 고정하고 마지막 8비트를 할당하는 클래스 C를 CIDR로 표기한 것입니다.
CIDR은 클래스와는 달리 고정 비트의 수를 8비트 단위로 고정하지 않아도 되는 장점이 있어서 필요한 IP 수에 맞게 지정을 할수 있죠.
여기에서 대게 어려워 하는 부분이 마지막 /## 부분이고 몇개의 IP 할당 개수가 있는지 쉽게 아는 노하우인데요. 아래의 세 가지 예제로 알아 보겠습니다.
192.168.2.0/24
앞에서 말씀드렸다 시피 IPv4의 비트수는 32입니다. 그러면 위의 CIDR에서 처음의 24비트가 고정이므로, 처음의 세 (8 곱하기 3의 “3”) 자리 (192.168.2)는 고정이라는 이야기가 됩니다. 마지막의 8비트 (32 - 24 = 8)는 할당이 가능하므로 마지막 네 번째 자리의 전체가 디바이스의 IP 주소로 이용 가능하죠. 256개 (2의 8승)의 주소 할당이 가능하다는 말이 됩니다 (192.168.2.0 ~ 192.168.2.255).
192.168.5.0/26
32 - 26 = 6 이므로 마지막 6비트 수만큼 IP 주소 할당이 가능하다는 말이죠. 2의 6승은 64이고 사용 가능한 주소는 192.168.5.0 ~ 192.168.5.63이라는 뜻이 됩니다.
192.168.0.0/20
32 - 20 = 12. 그러므로 12비트의 수만큼 IP 주소 할당이 가능 (2의 12승 = 4096)하므로 4096개의 주소가 할당 가능. 4096개는 포지션의 최고 주소 개수로 나누면 4096 / 256 = 16이므로 총 16개의 세 번째 주소가 포함(0 ~ 15)이 됩니다. 쉽게 말하면 16개의 세번째 포지션은 각각 256개의 네번째 포지션 주소를 가지고 있으므로 16 x 256 = 4096 주소 할당이 가능합니다. 그러므로 사용 가능한 주소는 192.168.0.0 ~ 192.168.15.255.
요약을 하자면, 마지막 고정 비트수를 32에서 빼면 사용할 수 있는 IP 주소의 총 개수가 간단하게 나오게 됩니다. 그 후 비트 수에 따라 IP 패턴을 적용 시키면 사용 가능한 IP 주소들이 계산됩니다.