IP 범위 → CIDR 변환기
시작 IP와 끝 IP를 최소 개수의 CIDR 블록으로 변환합니다.
방화벽 규칙, 라우팅 테이블, 접근제어목록(ACL)을 작성하다 보면 “192.168.1.10부터 192.168.1.200까지”처럼 임의의 IP 범위를 다뤄야 할 때가 있습니다. 하지만 대부분의 네트워크 장비와 클라우드 보안그룹은 임의 범위가 아닌 CIDR 표기(예: 192.168.1.0/24)만 받습니다. 이 도구는 시작 IP와 끝 IP를 입력하면 그 구간을 정확히 덮는 최소 개수의 CIDR 블록으로 변환해 줍니다.
변환은 표준 IP 범위 → CIDR 알고리즘을 사용하며, 모든 계산은 브라우저에서만 수행되어 입력한 IP가 외부로 전송되지 않습니다. 결과로 나온 각 CIDR 블록과 전체 목록을 바로 복사할 수 있고, 총 블록 수와 총 주소 수도 함께 확인할 수 있어 방화벽·VPC·라우팅 설정에 그대로 붙여넣기 좋습니다. 반대로 하나의 CIDR을 자세히 분석하려면 CIDR 계산기를 사용하세요.
192.168.1.0/25192.168.1.128/31192.168.1.130/32
| 블록 수 | 3 |
|---|---|
| 총 주소 수 | 131 개 |
IP 범위를 CIDR로 바꾸는 원리
임의의 IP 범위는 하나의 CIDR로 표현되지 않는 경우가 많습니다. CIDR 블록은 항상 2의 거듭제곱 크기이고 그 크기에 맞게 정렬(aligned)되어 있어야 하기 때문입니다. 그래서 범위를 여러 개의 정렬된 블록으로 쪼개야 합니다. 알고리즘은 시작 주소에서 다음을 반복합니다.
- 현재 시작 주소가 정렬을 깨지 않고 가질 수 있는 최대 블록 크기를 구합니다(최하위 비트 위치로 결정).
- 남은 주소 개수를 넘지 않는 최대 블록 크기를 구합니다.
- 둘 중 더 작은 크기를 블록으로 확정하고, 시작 주소를 그만큼 앞으로 이동합니다.
이렇게 하면 범위를 정확히 덮으면서 블록 개수가 최소가 됩니다. 예를 들어 192.168.1.0 ~192.168.1.130은 192.168.1.0/25(0~127), 192.168.1.128/31(128~129),192.168.1.130/32(130) 세 블록으로 나뉩니다.
어디에 쓰나요
- 방화벽 / 보안그룹: AWS Security Group, GCP/Azure 방화벽 규칙은 CIDR만 받습니다.
- 라우팅 / 정적 경로: 라우터·로드밸런서의 경로 항목은 CIDR 형태가 필요합니다.
- ACL / WAF 화이트리스트: 특정 IP 대역을 허용/차단할 때 CIDR로 압축하면 규칙 수가 줄어듭니다.
변환 전에 대상 범위가 사설·예약 대역인지 확인하려면 사설 IP 판별기가 유용합니다.
주의할 점
이 도구는 IPv4만 지원합니다. 끝 IP는 시작 IP보다 크거나 같아야 하며, 두 값이 같으면 /32 단일 호스트로 변환됩니다. 반대로 0.0.0.0 ~ 255.255.255.255 전체 범위는 0.0.0.0/0하나로 표현됩니다.
프리픽스 길이와 블록 크기 빠른 표
블록 분할 결과를 빠르게 검산하려면 각 프리픽스(/n)가 몇 개의 주소를 덮는지 알아두면 편합니다. 블록 크기는 항상 2^(32 − n)이고, 시작 주소는 그 크기의 배수(정렬된 값)여야 합니다.
| 프리픽스 | 주소 수 | 서브넷 마스크 | 시작 주소가 가능한 조건(마지막 옥텟) |
|---|---|---|---|
/32 | 1 | 255.255.255.255 | 임의(모든 값) |
/31 | 2 | 255.255.255.254 | 짝수 (0, 2, 4 …) |
/30 | 4 | 255.255.255.252 | 4의 배수 (0, 4, 8 …) |
/29 | 8 | 255.255.255.248 | 8의 배수 (0, 8, 16 …) |
/28 | 16 | 255.255.255.240 | 16의 배수 (0, 16, 32 …) |
/24 | 256 | 255.255.255.0 | 마지막 옥텟 0 |
/16 | 65,536 | 255.255.0.0 | 세 번째·네 번째 옥텟 0 |
예시로 따라가 보기: 10.0.0.5 ~ 10.0.0.20
정렬되지 않은 시작 주소가 어떻게 작은 블록부터 시작하는지 보여주는 예입니다. 시작 10.0.0.5는 홀수라 /32밖에 가질 수 없습니다(짝수가 아니므로 /31 불가). 단계별로 보면:
| 단계 | 현재 시작 | 정렬 허용 최대 | 출력 CIDR |
|---|---|---|---|
| 1 | 10.0.0.5 | 1 (홀수) | 10.0.0.5/32 |
| 2 | 10.0.0.6 | 2 (6=2의 배수) | 10.0.0.6/31 |
| 3 | 10.0.0.8 | 8 (8의 배수), 남은 13개라 8 선택 | 10.0.0.8/29 |
| 4 | 10.0.0.16 | 남은 5개(16~20)라 4 선택 | 10.0.0.16/30 |
| 5 | 10.0.0.20 | 남은 1개 | 10.0.0.20/32 |
16개 주소(5~20)가 5개의 CIDR로 나뉩니다. 시작이 깔끔하게 정렬된 10.0.0.0 ~ 10.0.0.15였다면10.0.0.0/28 단 하나로 끝났을 것입니다. 즉 같은 크기라도 정렬 위치에 따라 블록 수가 크게 달라집니다.
흔한 실수 / 함정
- 주소 수로 프리픽스를 추정: “16개니까
/28하나”라고 생각하기 쉽지만, 시작이 16의 배수가 아니면 절대 단일/28이 될 수 없습니다. 개수보다 정렬이 먼저입니다. - 끝 IP를 배타적(exclusive)으로 입력: 이 도구의 끝 IP는 포함됩니다.
10.0.0.20까지 덮고 싶으면10.0.0.20을 그대로 넣으세요.10.0.0.21을 넣으면 한 주소를 더 포함해 블록이 달라집니다. - 네트워크/브로드캐스트 주소 누락 우려: CIDR 블록은 네트워크·브로드캐스트 주소를 포함한 전체 주소 범위를 그대로 덮으므로, 범위 안의 어떤 주소도 빠지지 않습니다.
자주 묻는 질문
왜 한 범위가 여러 CIDR로 나뉘나요?
결과가 정말 최소 개수인가요?
IPv6도 변환되나요?
입력한 IP가 서버로 전송되나요?
관련 가이드
- 서브넷·CIDR 기초: /24를 나누는 법CIDR 표기와 서브넷 마스크의 의미, /24를 더 작은 서브넷으로 나누는 실전 예시.