CIDR(Classless Inter-Domain Routing, 클래스리스 인터도메인 라우팅)은 1990년대에 인터넷 전반에서 네트워크 트래픽을 라우팅하기 위한 표준 방식으로 개발되었습니다. CIDR 기술이 등장하기 전에는 인터넷 라우터가 IP 주소의 클래스(A, B, C 클래스)를 기준으로 네트워크 트래픽을 관리했으며, 이 시스템에서는 IP 주소 값 자체가 라우팅 목적상의 서브넷을 결정했습니다.
CIDR은 기존 IP 서브네팅 방식의 대안으로, IP 주소 값을 그대로 사용하지 않고 주소들을 독립적으로 서브넷 단위로 묶어 관리합니다. 여러 개의 서브넷을 하나로 묶어 라우팅할 수 있게 해주기 때문에 수퍼네팅(supernetting)이라고도 불립니다.
CIDR 표기법
CIDR은 IP 주소와 해당 네트워크 마스크를 조합하여 IP 주소 범위를 지정합니다. 기본 형식은 다음과 같습니다.
xxx.xxx.xxx.xxx/n
여기서 n은 네트워크 마스크에서 가장 왼쪽부터 이어지는 1 비트의 개수를 의미합니다.
CIDR 표기 예시
192.168.12.0/23
위 예시는 192.168 네트워크에 네트워크 마스크 255.255.254.0을 적용하고, 시작 주소가 192.168.12.0임을 나타냅니다. 즉, 이 표기는 192.168.12.0부터 192.168.13.255까지의 주소 범위를 의미합니다.
클래스 기반 네트워킹과 비교하면, 192.168.12.0/23은 각각 서브넷 마스크 255.255.255.0을 가진 두 개의 C 클래스 서브넷(192.168.12.0과 192.168.13.0)을 하나로 통합한 것입니다. 다음과 같이 시각화할 수 있습니다.
192.168.12.0/23 = 192.168.12.0/24 + 192.168.13.0/24
또한 CIDR은 특정 IP 주소 범위의 전통적인 클래스 구분에 얽매이지 않고 인터넷 주소 할당과 메시지 라우팅을 지원합니다.
10.4.12.0/22
위 예시는 10.4.12.0부터 10.4.15.255까지의 주소 범위(네트워크 마스크 255.255.252.0)를 나타냅니다. 이는 훨씬 큰 A 클래스 공간 안에서 C 클래스 네트워크 4개에 해당하는 주소를 할당한 것입니다.
CIDR이 아닌 네트워크에서도 때때로 CIDR 표기법이 사용되는 것을 볼 수 있습니다. 다만 비-CIDR IP 서브네팅에서는 n 값이 반드시 8(A 클래스), 16(B 클래스), 24(C 클래스) 중 하나로 제한됩니다.
클래스 기반 표기 예시
- 10.0.0.0/8
- 172.16.0.0/16
- 192.168.3.0/24
CIDR의 작동 원리
인터넷에 처음 도입될 당시, BGP(Border Gateway Protocol, 경계 게이트웨이 프로토콜)와 OSPF(Open Shortest Path First, 최단 경로 우선 프로토콜) 같은 핵심 라우팅 프로토콜들이 CIDR을 지원하도록 업데이트되었습니다. 반면 더 이상 사용되지 않거나 대중적이지 않은 라우팅 프로토콜은 CIDR을 지원하지 않을 수 있습니다.
참고: CIDR 구현을 위해서는 네트워크 라우팅 프로토콜 내부에 필요한 지원 기능이 포함되어 있어야 합니다.
CIDR 집계(aggregation)를 적용하려면 관련된 네트워크 세그먼트들이 주소 공간에서 연속적(숫자상 인접)이어야 합니다. 예를 들어, 중간에 있는 .13과 .14 주소 범위를 포함하지 않으면 192.168.12.0과 192.168.15.0을 하나의 경로로 집계할 수 없습니다.
ISP(인터넷 서비스 제공업체) 간의 트래픽을 처리하는 모든 인터넷 WAN 또는 백본(backbone) 라우터는 일반적으로 IP 주소 공간 절약이라는 목표를 달성하기 위해 CIDR을 지원합니다. 반면 일반 소비자용 라우터는 대체로 CIDR을 지원하지 않기 때문에, 가정용 네트워크나 소규모 공개 네트워크(LAN) 같은 사설 네트워크에서는 CIDR이 잘 활용되지 않습니다.
CIDR과 IPv6
IPv6 역시 IPv4와 동일한 방식으로 CIDR 라우팅 기술과 CIDR 표기법을 사용합니다. 애초에 IPv6는 완전한 클래스리스(classless) 주소 체계를 전제로 설계된 프로토콜입니다.