CIDR 표기 읽는 법: 서브넷, 마스크, 호스트 수
CIDR 표기를 읽는 법을 정리합니다. /n의 의미, 프리픽스를 넷마스크로 변환하기, 사용 가능한 호스트 수 계산, 네트워크·브로드캐스트 주소 찾기, 그리고 /31과 /32 예외까지 다룹니다.
192.168.1.0/24 같은 CIDR 블록은 한 문자열에 두 가지 사실을 담습니다.
시작 주소와 프리픽스 길이입니다. 슬래시 뒤의 숫자는 대부분의 사람이
잘못 읽는 유일한 부분입니다. 그것은 호스트 수도, 주소도, 곱해야 할 2의
거듭제곱도 아닙니다. 네트워크 부분으로 고정된 앞쪽 비트의 개수입니다.
나머지는 전부 그 하나의 숫자에서 따라 나옵니다. CIDR(Classless
Inter-Domain Routing)는 RFC 4632에 정의돼 있습니다.
/n의 의미
IPv4 주소는 32비트입니다. 프리픽스 길이 /n은 앞쪽 n비트가 네트워크를
식별하며 블록 안 모든 주소에서 동일하다는 뜻이고, 나머지 32 − n비트는
호스트 비트로 자유롭게 변합니다.
192.168.1.0/24는 앞 24비트를 고정합니다. 첫 세 옥텟(192.168.1)이
잠기고, 마지막 옥텟이 호스트 부분이 되어 가능한 256개 값을 오갑니다.
프리픽스가 클수록 고정 비트가 많고, 호스트 비트가 적고, 블록이
작아집니다. /25는 /24의 두 배가 아니라 절반 크기입니다. 이 부분에서
사람들이 헷갈립니다. 프리픽스를 올리면 주소 공간은 내려갑니다.
프리픽스에서 넷마스크로
점 십진 넷마스크는 프리픽스를 32비트로 풀어 쓴 것입니다. n개의 1 다음에
32 − n개의 0이 오고, 네 옥텟으로 묶입니다.
| 프리픽스 | 넷마스크 | 호스트 비트 | 전체 주소 |
|---|---|---|---|
/8 |
255.0.0.0 |
24 | 16,777,216 |
/16 |
255.255.0.0 |
16 | 65,536 |
/24 |
255.255.255.0 |
8 | 256 |
/25 |
255.255.255.128 |
7 | 128 |
/26 |
255.255.255.192 |
6 | 64 |
/27 |
255.255.255.224 |
5 | 32 |
/28 |
255.255.255.240 |
4 | 16 |
/29 |
255.255.255.248 |
3 | 8 |
/30 |
255.255.255.252 |
2 | 4 |
/31 |
255.255.255.254 |
1 | 2 |
/32 |
255.255.255.255 |
0 | 1 |
애매한 옥텟 값은 비트를 왼쪽부터 채운 결과입니다. /26은 마지막 옥텟에서
호스트 비트 둘을 빼앗아 여섯 비트가 고정됩니다. 11000000 = 192입니다.
/30은 호스트 비트가 둘만 남습니다. 11111100 = 252입니다. 넷마스크
옥텟을 손으로 구해야 한다면, 고정 비트를 왼쪽부터 1로 쓰고 변환하세요.
128, 192, 224, 240, 248, 252, 254, 255가 부분 옥텟이 가질 수 있는 유일한
값입니다.
사용 가능한 호스트 수 계산
블록의 전체 주소는 2^(32 − n)입니다. 일반 서브넷에서는 그중 둘이 호스트
주소로 쓰이지 못합니다. 첫 번째는 네트워크 주소, 마지막은 브로드캐스트
주소입니다. 그래서 사용 가능한 호스트는 2^(32 − n) − 2입니다.
/24 — 2^8 = 256 전체, 256 − 2 = 254 사용 가능. 전형적인
가정·소규모 사무실 서브넷입니다. .0은 네트워크, .255는 브로드캐스트,
.1부터 .254까지가 호스트 몫입니다.
/26 — 2^6 = 64 전체, 64 − 2 = 62 사용 가능. /24는 /26 블록
네 개로 깔끔하게 나뉩니다(64 + 64 + 64 + 64 = 256). 각 블록에 62개 사용
가능 주소가 있습니다. 단일 서브넷을 네 VLAN으로 쪼갤 때 흔합니다.
/30 — 2^2 = 4 전체, 4 − 2 = 2 사용 가능. 주소 넷 중 둘만 쓰이며,
전통적으로 양 끝에만 주소가 필요한 두 라우터 사이 점대점 링크에 씁니다.
"낭비되는" 두 주소(네트워크 + 브로드캐스트)가 블록의 절반이고, 그래서
/31이 존재합니다.
네트워크 주소와 브로드캐스트 주소
네트워크 주소는 호스트 비트가 모두 0인 블록이고, 브로드캐스트 주소는 호스트 비트가 모두 1입니다. 둘이 함께 범위를 둘러쌉니다.
어떤 IP가 어느 블록에 들어가는지 찾으려면 주소를 넷마스크로 마스킹합니다.
192.168.1.137/26을 봅시다. 블록 크기는 2^6 = 64이므로 블록은 마지막
옥텟에서 64의 배수에서 시작합니다. .0, .64, .128, .192입니다. 주소
.137은 .128과 .191 사이에 들어가므로:
- 네트워크 주소:
192.168.1.128 - 첫 사용 가능 호스트:
192.168.1.129 - 마지막 사용 가능 호스트:
192.168.1.190 - 브로드캐스트 주소:
192.168.1.191 - 다음 블록 시작:
192.168.1.192
지름길: 해당 옥텟의 블록 크기는 256 − (넷마스크 옥텟)입니다. /26이면
256 − 192 = 64이고, 64주소마다 블록이 시작함을 확인해 줍니다. 네트워크
주소는 호스트 옥텟 이하에서 블록 크기의 가장 큰 배수입니다.
/31과 /32: 예외
**/31**은 호스트 비트가 하나여서 2^1 = 2 전체 주소입니다. 일반 규칙
대로면 네트워크와 브로드캐스트를 뺀 뒤 사용 가능 호스트가 0이 되어
쓸모없습니다. RFC 3021은 /31을 점대점 링크용으로 재정의합니다. 두 주소
모두 호스트 주소로 쓰이며, 네트워크나 브로드캐스트를 예약하지 않습니다.
이로써 /30이 낭비하는 두 주소를 되찾고, 이를 지원하는 하드웨어의 라우터
간 링크에서 이제 표준이 됐습니다. 사용 가능한 두 주소가 정확히 링크의
두 끝입니다.
**/32**는 호스트 비트가 0이어서 2^0 = 1 주소입니다. 블록 자체가 단일
호스트입니다. /32는 호스트 라우트, 한 머신만 매칭하는 방화벽 규칙,
루프백 주소, 액세스 리스트에서 봅니다. 203.0.113.5/32는 정확히
203.0.113.5 하나만 뜻합니다.
이 둘은 "네트워크와 브로드캐스트로 둘 빼기" 규칙이 더 이상 적용되지 않는 곳입니다. 일반 공식으로 덮으려 하지 말고 예외로 외워두세요.
사설 범위
세 IPv4 범위가 RFC 1918에 의해 사설용으로 예약돼 있으며 공용 인터넷에서 라우팅되지 않습니다.
| CIDR | 범위 | 주소 수 |
|---|---|---|
10.0.0.0/8 |
10.0.0.0 – 10.255.255.255 |
16,777,216 |
172.16.0.0/12 |
172.16.0.0 – 172.31.255.255 |
1,048,576 |
192.168.0.0/16 |
192.168.0.0 – 192.168.255.255 |
65,536 |
172.16.0.0/12 블록이 사람들이 가장 자주 틀리는 것입니다. 프리픽스가
/16이 아니라 /12여서 172.16부터 172.31까지 포함합니다. 172.16
하나가 아니라 /16 블록 열여섯 개입니다. 세 번째 옥텟 니블의 고정 비트
넷이, 왜 255가 아니라 31에서 멈추는지의 이유입니다.
IPv6 CIDR에 관한 메모
IPv6도 같은 슬래시 표기를 쓰지만, 주소가 32비트가 아니라 128비트여서
호스트 수 계산은 규모가 완전히 달라집니다. 전형적인 엔드사이트 서브넷은
/64이고, 호스트 비트 64개가 남습니다. 2^64, 단일 서브넷에 약 1,800경
개 주소입니다. /64의 "사용 가능 호스트"를 계산하는 사람은 없습니다.
서브넷 안 주소 고갈이 계획 거리가 되지 않을 만큼 큰 수이고, IPv6에는
어차피 뺄 브로드캐스트 주소도 없습니다.
알아둘 만한 관례: 앞 64비트는 네트워크 프리픽스(ISP나 등록기관이 보통
/48이나 /56으로 할당)이고, 아래 64비트는 인터페이스 식별자입니다.
IPv6의 서브네팅은 보통 IPv4처럼 빠듯한 블록에서 호스트 수를 짜내는 것이
아니라, /64 위의 프리픽스를 어떻게 자르느냐의 문제입니다.
손으로 vs 도구로
위 산술은 블록이 왜 그 범위를 갖는지 알려주기에 이해할 가치가 있습니다.
하지만 일상 작업에서 임의 블록의 네트워크 주소·브로드캐스트·사용 가능
범위·호스트 수를 구하는 것은, 장애 대응 중 새벽 2시에 머릿속으로 하기보다
도구에 맡기는 편이 나은 고정폭 이진 산술입니다. 우리
CIDR 계산기는 192.168.1.137/26 같은 블록을 받아
네트워크 주소, 브로드캐스트, 첫·마지막 사용 가능 호스트, 전체·사용 가능
수, 점 십진 넷마스크를 한 번에 돌려주며, /31과 /32 예외도 포함합니다.
손으로 풀 때는 세 가지만 똑바로 기억하세요. 프리픽스는 호스트가 아니라
네트워크 비트를 센다는 것, 전체 주소는 2^(32 − n)이라는 것, 그리고 둘
빼기 규칙은 /31과 /32만 빼고 어디에나 적용된다는 것입니다. 나머지는
전부 그 세 사실 위의 단순 계산입니다.