IP 범위 ⇔ CIDR 상호 변환 도구
시작 IP와 종료 IP를 입력하면 해당 범위를 빠짐없이 커버하는 최소 개수의 CIDR 블록으로 자동 분할합니다. 반대로 CIDR 표기(예: 192.168.1.0/24)를 입력하면 블록의 첫 IP·마지막 IP·전체 주소 수를 계산할 수 있습니다. 방화벽과 ACL 규칙 작성에 유용합니다.
주소 구간과 CIDR 표기를 오가며 바꾸기
시작 주소와 끝 주소를 넣으면 그 구간을 남김없이 덮는 가장 적은 수의 CIDR 블록으로 나눠 줍니다. 거꾸로 `192.168.1.0/24` 같은 표기에서 처음과 끝의 주소, 주소의 총수를 구할 수도 있습니다. 방화벽 규칙이나 접근 제어 목록을 적을 때 쓸 수 있습니다.
**여기서 뜻밖으로 여겨지는 것이, 아무 구간이나 반드시 하나의 CIDR로 적히지는 않는다는 점입니다.** CIDR 블록에는 **「크기가 2의 거듭제곱일 것」과 「첫 주소가 그 크기의 경계에 놓일 것」**이라는 두 제약이 있습니다. 이를테면 `192.168.1.5`부터 `192.168.1.10`까지의 여섯 개는 두 조건을 다 채우지 못하므로 한 블록이 되지 못하고, **`/32`·`/31`·`/30` 같은 여러 블록으로 나눌 수밖에 없습니다.** 이 도구는 그 나눔을 가장 적은 개수로 해 줍니다. 규칙의 수가 늘어나는 것을 꺼린다면 **구간의 양 끝을 경계에 맞춰 다시 설계하는 편이 결국 더 깔끔합니다.**
사용하는 방법
- 시작 주소와 끝 주소를 넣습니다 나뉜 CIDR 블록의 목록을 얻습니다.
- 블록의 개수를 봅니다 **여러 블록으로 나뉘는 구간은 양 끝이 경계에 놓이지 않은 것입니다.**
- 거꾸로 CIDR에서 구간을 구합니다 `/24` 같은 표기를 넣으면 처음과 끝, 주소의 총수를 알 수 있습니다.
- 규칙으로 옮겨 적습니다 방화벽이나 접근 제어 목록의 설정에 그대로 쓸 수 있습니다.
더 잘 활용하기 위한 팁
- 방화벽이나 ACL의 "192.168.1.1~192.168.1.254"와 같은 범위 지정을 라우터 설정에서 실제로 허용하는 CIDR 표기로 바꾸고 싶을 때 유용합니다.
- 범위의 경계가 정확히 2의 거듭제곱에 맞춰져 있지 않은 한, IP 범위→CIDR 변환 결과는 여러 개의 블록으로 나뉩니다. 블록 수가 너무 많다면 범위의 시작과 끝을 다시 검토하면 ACL을 더 단순하게 만들 수 있습니다.
- CIDR→IP 범위 변환에서는 입력한 IP가 블록의 정확한 시작 주소가 아니더라도, 해당 IP가 속한 블록의 네트워크 주소와 브로드캐스트 주소로 자동으로 반올림하여 계산합니다.
- 단일 IP와 마스크만 확인하려면 서브넷 계산 도구를, 프리픽스 길이별 전체 조견표가 필요하다면 CIDR 조견표를 함께 활용하면 좋습니다.
이럴 때 쓸 수 있습니다
방화벽 규칙을 적을 때
**「이 구간만 허용한다」를 CIDR의 나열로 옮길 수 있습니다.**
접근 제어 목록을 추릴 때
경계를 보며 여러 규칙을 하나로 묶을 수 있을지 헤아릴 수 있습니다.
할당받은 구간을 확인할 때
사업자가 건넨 CIDR에 주소가 몇 개 드는지 셀 수 있습니다.
서브넷 설계를 되짚어 볼 때
**양 끝을 경계에 맞추는 것만으로 필요한 규칙의 수가 크게 줄기도 합니다.**
IP 주소 용어
- CIDR
- `192.168.1.0/24`처럼 주소와 접두 길이로 한 덩어리를 나타내는 표기입니다.
- 접두 길이
- 빗금 뒤의 숫자입니다. **하나 커질 때마다 드는 주소의 수가 절반이 됩니다.**
- 네트워크 주소
- 블록의 첫 주소입니다. **경계에 놓이지 않으면 그 블록은 성립하지 않습니다.**
- 브로드캐스트 주소
- 블록의 끝 주소입니다. IPv4 서브넷에서는 보통 호스트에 배정하지 않습니다.
- 서브넷 마스크
- `255.255.255.0` 같은 표기로, CIDR의 접두 길이와 같은 것을 나타냅니다.
- 2의 거듭제곱 제약
- **CIDR 블록의 크기는 2의 거듭제곱에 한합니다.** 아무 구간이나 하나로 적히지 않는 까닭이 이것입니다.
자주 묻는 질문
여담 ― IP 범위를 CIDR로 변환하는 알고리즘
IP 범위를 CIDR 블록으로 분할하는 알고리즘은 컴퓨터 과학의 "탐욕 알고리즘(그리디 알고리즘)"을 이해하기 쉬운 예로 자주 인용됩니다. 절차는 단순합니다. 매번 현재 위치에서 "그 위치가 몇 비트만큼 2의 거듭제곱 경계에 정렬되어 있는지"와 "남은 범위의 크기" 두 가지를 모두 만족하는 가장 큰 블록을 선택하고, 그 블록만큼 위치를 진행시키는 과정을 끝에 도달할 때까지 반복할 뿐입니다. 이 방식으로 얻어지는 블록 수는 이론적으로 필요한 최소 개수와 일치한다는 것이 증명되어 있습니다.
실무에서는 클라우드 보안 그룹이나 온프레미스 라우터 ACL처럼 "임의의 IP 범위가 아니라 CIDR 표기로만 범위를 지정할 수 있는" 시스템을 자주 마주치게 됩니다. 특히 클라우드 사업자로부터 할당받은 주소 범위나, 사내 관리 대장에 "10.1.0.10~10.1.0.50"처럼 기록되어 온 범위를 라우터 설정에 반영할 때 이 변환 작업은 피할 수 없습니다. 직접 비트 연산을 하는 것은 번거롭고 실수하기 쉬워, 이런 변환 도구가 큰 도움이 됩니다.
반대로 CIDR 표기에서 IP 범위를 구하는 작업은, 할당된 블록의 범위를 사람이 직관적으로 이해할 수 있는 "시작~종료" 형식으로 파악하고 싶을 때 자주 이루어집니다. 예를 들어 제공업체로부터 "203.0.113.0/28" 블록을 할당받았을 때, 실제로 사용 가능한 주소 범위가 203.0.113.0부터 203.0.113.15까지라는 것을 즉시 확인할 수 있다면 방화벽 허용 목록이나 DHCP 할당 범위 설정을 실수 없이 진행할 수 있습니다.