서브네팅(subnetting)은 하나의 IP 주소 블록을 더 작은 블록(서브넷)으로 나누는 일이다. IPv4 주소 32비트를 네트워크 부분과 호스트 부분으로 가르고, 경계를 어디에 두느냐가 서브넷 마스크(prefix length)다. 경계는 클래스(A/B/C)가 아니라 비트 단위로 자유롭게 둘 수 있으며 이 방식이 CIDR(Classless Inter-Domain Routing)이다[1].
표기는 192.168.10.0/24 처럼 주소/프리픽스 길이 로 쓴다. /24 는 앞 24비트가 네트워크, 뒤 8비트가 호스트라는 뜻이고 서브넷 마스크로는 255.255.255.0 이다.
IPv4 주소는 8비트 옥텟 4개다. 마스크는 네트워크 비트를 1, 호스트 비트를 0으로 채운 값이며 프리픽스 길이는 1의 개수다.
주소 192.168.10.37 = 11000000.10101000.00001010.00100101
마스크 /26 = 11111111.11111111.11111111.11000000 (255.255.255.192)
AND 네트워크 주소 = 11000000.10101000.00001010.00000000 → 192.168.10.0/26
한 서브넷 안에서 다음 값이 정해진다.
| 항목 | 계산 | 위 예시 (192.168.10.37/26) |
|---|---|---|
| 네트워크 주소 | 주소 AND 마스크 | 192.168.10.0 |
| 브로드캐스트 주소 | 호스트 비트를 모두 1로 | 192.168.10.63 |
| 호스트 범위 | 네트워크+1 ~ 브로드캐스트-1 | 192.168.10.1 ~ 192.168.10.62 |
| 호스트 수 | 2^(32-prefix) - 2 | 2^6 - 2 = 62 |
| 블록 크기 | 2^(32-prefix) | 64 |
/31 은 점대점 링크에 한해 네트워크·브로드캐스트 주소 없이 2개 모두 쓸 수 있고(RFC 3021), /32 는 호스트 하나(host route)를 가리킨다.
| Prefix | 서브넷 마스크 | 블록 크기 | 사용 가능 호스트 | 비고 |
|---|---|---|---|---|
| /8 | 255.0.0.0 | 16,777,216 | 16,777,214 | 옛 클래스 A |
| /16 | 255.255.0.0 | 65,536 | 65,534 | 옛 클래스 B |
| /24 | 255.255.255.0 | 256 | 254 | 옛 클래스 C |
| Prefix | 서브넷 마스크 | 블록 크기 | 사용 가능 호스트 | /24 안의 서브넷 수 |
|---|---|---|---|---|
| /24 | 255.255.255.0 | 256 | 254 | 1 |
| /25 | 255.255.255.128 | 128 | 126 | 2 |
| /26 | 255.255.255.192 | 64 | 62 | 4 |
| /27 | 255.255.255.224 | 32 | 30 | 8 |
| /28 | 255.255.255.240 | 16 | 14 | 16 |
| /29 | 255.255.255.248 | 8 | 6 | 32 |
| /30 | 255.255.255.252 | 4 | 2 | 64 |
| /31 | 255.255.255.254 | 2 | 2 (점대점) | 128 |
| /32 | 255.255.255.255 | 1 | 1 (호스트 경로) | 256 |
| Prefix | 서브넷 마스크 | 블록 크기 | 사용 가능 호스트 | /16 안의 서브넷 수 |
|---|---|---|---|---|
| /16 | 255.255.0.0 | 65,536 | 65,534 | 1 |
| /17 | 255.255.128.0 | 32,768 | 32,766 | 2 |
| /18 | 255.255.192.0 | 16,384 | 16,382 | 4 |
| /19 | 255.255.224.0 | 8,192 | 8,190 | 8 |
| /20 | 255.255.240.0 | 4,096 | 4,094 | 16 |
| /21 | 255.255.248.0 | 2,048 | 2,046 | 32 |
| /22 | 255.255.252.0 | 1,024 | 1,022 | 64 |
| /23 | 255.255.254.0 | 512 | 510 | 128 |
| Prefix | 서브넷 마스크 | 블록 크기 | 사용 가능 호스트 |
|---|---|---|---|
| /8 | 255.0.0.0 | 16,777,216 | 16,777,214 |
| /9 | 255.128.0.0 | 8,388,608 | 8,388,606 |
| /10 | 255.192.0.0 | 4,194,304 | 4,194,302 |
| /11 | 255.224.0.0 | 2,097,152 | 2,097,150 |
| /12 | 255.240.0.0 | 1,048,576 | 1,048,574 |
| /13 | 255.248.0.0 | 524,288 | 524,286 |
| /14 | 255.252.0.0 | 262,144 | 262,142 |
| /15 | 255.254.0.0 | 131,072 | 131,070 |
마스크 옥텟 값은 항상 0 · 128 · 192 · 224 · 240 · 248 · 252 · 254 · 255 중 하나다. 블록 크기는 256 - 마스크 옥텟 값 으로 바로 나온다 (예: 224 → 32).
주소 10.20.37.200/21 을 예로 든다.
/21 = 16 + 5 → 255.255.248.0. 경계는 세 번째 옥텟에 있다.256 - 248 = 8.37 → 32. 네트워크 주소 10.20.32.0.10.20.40.0 에서 1을 빼면 브로드캐스트 — 10.20.39.255.10.20.32.1 ~ 10.20.39.254, 호스트 수 2^11 - 2 = 2046.리눅스에서는 ipcalc 로 같은 결과를 확인할 수 있다 (RHEL 계열 ipcalc 패키지, Debian/Ubuntu ipcalc 또는 sipcalc).
ipcalc 10.20.37.200/21
프리픽스를 1비트 늘릴 때마다 블록은 절반씩 둘로 갈라진다. 192.168.10.0/24 를 /26 넷으로 나누면 다음과 같다.
| 서브넷 | 호스트 범위 | 브로드캐스트 |
|---|---|---|
| 192.168.10.0/26 | .1 ~ .62 | .63 |
| 192.168.10.64/26 | .65 ~ .126 | .127 |
| 192.168.10.128/26 | .129 ~ .190 | .191 |
| 192.168.10.192/26 | .193 ~ .254 | .255 |
크기가 다른 서브넷이 필요하면 VLSM(Variable Length Subnet Mask)으로 큰 것부터 차례로 잘라 쓴다. 예를 들어 /24 하나를 100대 · 50대 · 20대 · 점대점 2개로 나누면 /25 + /26 + /27 + /30 ×2 가 되고, 남는 공간은 뒤에 모인다.
반대로 연속한 블록을 짧은 프리픽스 하나로 묶는 것이 수퍼네팅(route aggregation)이다. 192.168.0.0/24 ~ 192.168.3.0/24 네 개는 192.168.0.0/22 하나로 광고할 수 있다. 묶이려면 시작 주소가 새 블록 크기의 배수여야 한다 (192.168.1.0/24 ~ 192.168.4.0/24 는 /22 하나로 묶이지 않는다).
RFC 1918 이 사설망 용도로 예약한 IPv4 블록이다[2]. 인터넷으로 라우팅되지 않으며 외부로 나갈 때는 NAT 를 거친다.
| 블록 | 범위 | 크기 |
|---|---|---|
| 10.0.0.0/8 | 10.0.0.0 ~ 10.255.255.255 | /8 하나 (옛 클래스 A 1개) |
| 172.16.0.0/12 | 172.16.0.0 ~ 172.31.255.255 | /16 16개 |
| 192.168.0.0/16 | 192.168.0.0 ~ 192.168.255.255 | /24 256개 |
그 밖에 자주 마주치는 특수 블록은 다음과 같다.
| 블록 | 용도 |
|---|---|
| 127.0.0.0/8 | 루프백 |
| 169.254.0.0/16 | 링크 로컬 (APIPA, DHCP 실패 시 자동 할당) |
| 100.64.0.0/10 | CGNAT 공유 주소 (RFC 6598) |
| 192.0.2.0/24 · 198.51.100.0/24 · 203.0.113.0/24 | 문서·예제용 (RFC 5737) |
| 224.0.0.0/4 | 멀티캐스트 |
IPv6 는 128비트이고 같은 프리픽스 표기를 쓴다. 호스트 수를 세지 않고 /64 를 서브넷 단위로 쓰는 것이 관례다 — SLAAC 가 인터페이스 ID 64비트를 전제로 한다. 사이트에는 보통 /48 이나 /56 이 할당되고, 그 안에서 /64 를 65,536개 또는 256개 잘라 쓴다.
| 항목 | 값 |
|---|---|
| 사설 주소 (ULA) | fc00::/7 — 실제로는 fd00::/8 에 무작위 40비트 Global ID 를 붙여 쓴다[3] |
| 링크 로컬 | fe80::/10 |
| 루프백 | ::1/128 |
| 문서·예제용 | 2001:db8::/32 |
IPv6 에는 브로드캐스트 주소가 없다. 서브넷의 첫 주소(Subnet-Router anycast)도 일반 호스트에는 배정하지 않는다.
RFC 4632 "Classless Inter-domain Routing (CIDR): The Internet Address Assignment and Aggregation Plan" (BCP 122, 2006-08) — 2026-09-20 확인. https://www.rfc-editor.org/rfc/rfc4632.html ↩︎
RFC 1918 "Address Allocation for Private Internets" (BCP 5, 1996-02) — 2026-09-20 확인. https://www.rfc-editor.org/rfc/rfc1918.html ↩︎
RFC 4193 "Unique Local IPv6 Unicast Addresses" (2005-10) — 2026-09-20 확인. https://www.rfc-editor.org/rfc/rfc4193.html ↩︎