CIDR / 서브넷 계산기
IPv4·IPv6 CIDR 블록의 네트워크, 브로드캐스트, 마스크, 호스트 범위를 계산
이 도구에 대해
10.20.0.0/16이나 2001:db8::/48 같은 CIDR 블록을 입력하면 그에 관한 모든 정보를 한 번에 볼 수 있습니다: 네트워크 주소, 브로드캐스트(IPv6에서는 마지막 주소), 넷마스크와 와일드카드 마스크, 사용 가능한 첫 호스트와 마지막 호스트, 주소 개수, 그리고 어떤 특수 용도 대역에 속하는지 — RFC 1918 사설 대역, 캐리어급 NAT, 링크 로컬, 문서용, 멀티캐스트 등. 주소만 입력해도 되고, 넷마스크 표기(192.168.1.0 255.255.255.0)와 Cisco 와일드카드 형식(0.0.0.255)도 사용할 수 있습니다.
대신 10.0.0.1 - 10.0.0.200 같은 범위를 붙여 넣으면, 그 범위를 정확히 덮는 가장 작은 CIDR 블록 목록을 얻을 수 있습니다. 방화벽 규칙, 보안 그룹, 허용 목록이 실제로 받아들이는 형태가 바로 이것입니다. 분할 보기는 블록을 같은 크기의 서브넷으로 나누어(/16을 /24로, /32를 /48로) VPC와 VLAN 설계를 돕고, 포함 여부 확인은 특정 주소가 블록 안에 들어가는지 알려줍니다.
모든 연산은 BigInt로 처리되므로 IPv6 주소 개수도 부동소수점으로 반올림되지 않고 정확합니다: /64에는 "1.8e19"가 아니라 18446744073709551616개의 주소가 있습니다. 온라인 조회는 전혀 하지 않습니다 — 이 도구가 아는 것은 IANA 특수 용도 대역이지 주소의 소유자가 아닙니다 — 그리고 내부 네트워크 구성은 브라우저 밖으로 나가지 않습니다.
자주 묻는 질문
- /24의 사용 가능한 호스트가 왜 256개가 아니라 254개인가요?
- IPv4에서 서브넷의 첫 주소는 네트워크 자체를 가리키고 마지막 주소는 브로드캐스트 주소이므로, 둘 다 호스트에 할당할 수 없습니다. 예외는 /31과 /32입니다. /31은 RFC 3021에 따라 점대점 링크에서 전부(호스트 2개) 사용할 수 있고, /32는 단일 주소입니다. IPv6에는 브로드캐스트가 없으므로 IPv6 블록의 모든 주소가 사용 가능한 주소로 계산됩니다.
- "호스트 비트가 설정되어 있음"은 무슨 뜻인가요?
- 입력한 주소가 해당 블록의 시작 주소가 아니라는 뜻입니다. 예를 들어 10.1.2.3/8이 그렇습니다. 대부분의 도구는 이를 조용히 10.0.0.0/8로 내림하지만, strict 모드의 Python ipaddress 모듈이나 일부 클라우드 콘솔처럼 거부하는 경우도 있습니다. 이 계산기는 실제 네트워크 주소를 보여주므로 정규 형식을 그대로 붙여 넣을 수 있습니다.
- 앞에 0이 붙은 주소는 왜 거부되나요?
- 시스템마다 그 의미를 다르게 해석하기 때문입니다. 고전적인 inet_aton 파서는 010을 8진수(8)로 읽지만, 대부분의 다른 파서는 10진수(10)로 읽습니다 — 이 불일치는 실제로 접근 제어 우회를 일으킨 적이 있습니다. 추측하는 대신, 계산기는 앞의 0 없이 숫자를 쓰도록 요청합니다.
- 범위는 어떻게 CIDR 블록으로 변환되나요?
- 시작 주소부터 탐욕적으로 처리합니다: 각 단계에서 현재 주소에 정렬되어 있고 범위의 끝을 넘지 않는 가장 큰 블록을 취한 뒤 다음으로 넘어갑니다. 이렇게 하면 블록 수가 최소가 됩니다. 192.168.0.0 – 192.168.255.255처럼 정렬된 범위는 /16 하나로 합쳐지고, .1 – .10처럼 어중간한 범위는 다섯 개가 필요합니다.
- 와일드카드 마스크는 어디에 쓰나요?
- 넷마스크를 반전한 것으로(/24라면 0.0.0.255), Cisco IOS 액세스 리스트와 OSPF network 구문에서 범위를 표현하는 방식입니다. 계산기에는 어느 형식이든 붙여 넣을 수 있으며, 와일드카드 마스크를 인식해 프리픽스 길이로 변환합니다.