IP 범위 ⇔ CIDR 상호 변환 도구

시작 IP와 종료 IP를 입력하면 해당 범위를 빠짐없이 커버하는 최소 개수의 CIDR 블록으로 자동 분할합니다. 반대로 CIDR 표기(예: 192.168.1.0/24)를 입력하면 블록의 첫 IP·마지막 IP·전체 주소 수를 계산할 수 있습니다. 방화벽과 ACL 규칙 작성에 유용합니다.

단일 IP와 서브넷 마스크만 확인하고 싶다면 서브넷 계산 도구 , 프리픽스 길이별 조견표가 필요하다면 CIDR 조견표 도 참고해 보세요.

주소 구간과 CIDR 표기를 오가며 바꾸기

시작 주소와 끝 주소를 넣으면 그 구간을 남김없이 덮는 가장 적은 수의 CIDR 블록으로 나눠 줍니다. 거꾸로 `192.168.1.0/24` 같은 표기에서 처음과 끝의 주소, 주소의 총수를 구할 수도 있습니다. 방화벽 규칙이나 접근 제어 목록을 적을 때 쓸 수 있습니다.

**여기서 뜻밖으로 여겨지는 것이, 아무 구간이나 반드시 하나의 CIDR로 적히지는 않는다는 점입니다.** CIDR 블록에는 **「크기가 2의 거듭제곱일 것」과 「첫 주소가 그 크기의 경계에 놓일 것」**이라는 두 제약이 있습니다. 이를테면 `192.168.1.5`부터 `192.168.1.10`까지의 여섯 개는 두 조건을 다 채우지 못하므로 한 블록이 되지 못하고, **`/32`·`/31`·`/30` 같은 여러 블록으로 나눌 수밖에 없습니다.** 이 도구는 그 나눔을 가장 적은 개수로 해 줍니다. 규칙의 수가 늘어나는 것을 꺼린다면 **구간의 양 끝을 경계에 맞춰 다시 설계하는 편이 결국 더 깔끔합니다.**

사용하는 방법

  1. 시작 주소와 끝 주소를 넣습니다 나뉜 CIDR 블록의 목록을 얻습니다.
  2. 블록의 개수를 봅니다 **여러 블록으로 나뉘는 구간은 양 끝이 경계에 놓이지 않은 것입니다.**
  3. 거꾸로 CIDR에서 구간을 구합니다 `/24` 같은 표기를 넣으면 처음과 끝, 주소의 총수를 알 수 있습니다.
  4. 규칙으로 옮겨 적습니다 방화벽이나 접근 제어 목록의 설정에 그대로 쓸 수 있습니다.

더 잘 활용하기 위한 팁

  • 방화벽이나 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의 거듭제곱에 한합니다.** 아무 구간이나 하나로 적히지 않는 까닭이 이것입니다.

자주 묻는 질문

CIDR 블록은 항상 2의 거듭제곱 개수(1, 2, 4, 8...)의 연속된 주소를, 경계가 올바르게 정렬된 형태로 표현해야 합니다. 지정한 범위가 정확히 하나의 CIDR 블록과 일치하지 않으면, 경계가 정렬된 여러 개의 더 작은 블록을 조합해야 전체 범위를 빠짐없이 겹치지 않게 표현할 수 있습니다.

/24는 호스트 비트가 8비트인 블록으로, 192.168.1.0부터 192.168.1.255까지 256개의 주소를 포함합니다. 관례적으로 첫 주소인 192.168.1.0은 네트워크 주소로, 마지막 주소인 192.168.1.255는 브로드캐스트 주소로 예약됩니다.

대부분의 라우터와 방화벽 제품의 ACL 문법은 네트워크 범위를 지정할 때 CIDR 표기(또는 서브넷 마스크와 와일드카드 마스크의 조합)만 허용합니다. 임의의 시작-종료 범위를 그대로 표현할 방법이 없기 때문에, 본 도구처럼 먼저 CIDR 블록으로 변환한 뒤 설정에 반영해야 합니다.

IP 범위는 단순히 "시작 IP~종료 IP"라는 연속된 주소 구간을 나타내는 표현 방법입니다. 반면 CIDR 블록은 경계가 프리픽스 길이에 따른 2의 거듭제곱 위치에 정렬된 특수한 형태의 IP 범위만을 가리킵니다. 모든 CIDR 블록은 IP 범위이지만, 모든 IP 범위가 CIDR 블록인 것은 아닙니다.
툴군

여담 ― 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 할당 범위 설정을 실수 없이 진행할 수 있습니다.