IP 대역 → CIDR 계산기란?
이 도구는 시작 IPv4 주소와 끝 IPv4 주소를 입력받아, 해당 대역 전체를 담을 수 있는 가장 작은 단일 CIDR 블록(/프리픽스)을 알려줍니다. CIDR(Classless Inter-Domain Routing) 표기법은 주소 블록을 기준 주소 + 슬래시(/) + 프리픽스 길이 형태로 나타냅니다. 예를 들면 192.168.0.0/24 같은 형식이죠. IPv4 전 세계 공통 규격이라 어느 나라, 어떤 네트워크에서도 그대로 통용됩니다.
사용 방법
시작 IP 주소에 대역의 첫 주소를, 끝 IP 주소에 마지막 주소를 입력한 뒤 실행하면 됩니다. 계산기는 두 주소를 각각 32비트 정수로 변환하고, 그 사이의 주소 개수를 센 다음, 이를 모두 포함하는 가장 작은 2의 거듭제곱 블록의 프리픽스 길이를 계산합니다.
계산 공식 풀이
모든 IPv4 주소는 32비트 정수로 대응됩니다. 대역에 포함된 주소 개수는 \(\text{count} = \text{end} - \text{start} + 1\) 입니다. CIDR 블록은 항상 2의 거듭제곱 개수만큼의 주소를 담는데, /n 블록은 \(2^{(32-n)}\)개의 주소를 가집니다. count개를 모두 담으려면 가장 가까운 2의 거듭제곱으로 올림하여 다음을 구하고,
프리픽스는 다음과 같이 됩니다.
$$\text{CIDR} = 32 - \log_2(\text{blockSize})$$
실제 계산 예시
192.168.0.0부터 192.168.0.255까지의 대역을 살펴봅시다. 정수로 변환하면 각각 3,232,235,520과 3,232,235,775이므로 \(\text{count} = 256\)입니다. \(256 = 2^8\)이므로 블록 크기는 256, 프리픽스는 \(32 - 8 = 24\)가 되어 결과는 /24입니다.
자주 묻는 질문
결과가 항상 CIDR 경계에 정확히 맞아떨어지나요? 여기서 구한 프리픽스는 주소 개수를 담을 수 있는 가장 작은 값입니다. 다만 단일 CIDR 블록은 주소 경계에도 정렬되어 있어야 합니다. 시작 주소가 그 경계에 맞지 않는다면, 해당 대역은 여러 개의 더 작은 블록으로 나뉘어 표현되어야 할 수 있습니다.
시작과 끝을 거꾸로 입력하면 어떻게 되나요? 끝 주소가 시작 주소보다 작으면 계산기가 자동으로 둘을 바꿔서 처리합니다.
IPv6에도 사용할 수 있나요? 아니요. 이 도구는 IPv4(32비트) 대역만 지원합니다.