CIDR 표기법과 서브넷 계산 완전 가이드
CIDR 표기법과 서브넷 계산 완전 가이드
네트워크를 설계하거나 방화벽 규칙을 설정할 때, 192.168.1.0/24나 10.0.0.0/8 같은 표기를 자주 접하게 됩니다. 이것이 바로 CIDR(Classless Inter-Domain Routing) 표기법입니다. CIDR을 이해하면 IP 주소 범위를 효율적으로 관리하고, 네트워크를 필요에 맞게 분할할 수 있습니다.
이 글에서는 CIDR의 역사적 배경부터 실전 서브넷 계산까지, 네트워크 엔지니어와 개발자가 알아야 할 핵심 내용을 다룹니다.
클래스풀 vs 클래스리스: 왜 CIDR이 필요한가
클래스풀 주소 체계 (1981~1993)
초기 인터넷은 IP 주소를 클래스(Class) 단위로 할당했습니다.
| 클래스 | 시작 비트 | 네트워크 비트 | 범위 | 호스트 수 |
|---|---|---|---|---|
| A | 0 | 8비트 | 1.0.0.0 ~ 126.0.0.0 | 16,777,214 |
| B | 10 | 16비트 | 128.0.0.0 ~ 191.255.0.0 | 65,534 |
| C | 110 | 24비트 | 192.0.0.0 ~ 223.255.255.0 | 254 |
문제는 명백했습니다. 500대의 호스트가 필요한 조직에 클래스 C(254개)는 부족하고, 클래스 B(65,534개)는 지나치게 낭비적이었습니다. 이런 비효율적인 할당이 IPv4 주소 고갈을 가속화했습니다.
클래스리스 주소 체계 (CIDR, 1993~)
1993년 RFC 1518/1519에서 CIDR이 도입되었습니다. 클래스 경계에 구애받지 않고, 프리픽스 길이(prefix length) 를 자유롭게 지정하여 필요한 만큼만 주소를 할당할 수 있게 되었습니다.
# 클래스풀: 클래스 C 1개 = 무조건 256개 주소
192.168.1.0 (Class C)
# CIDR: 필요한 만큼 유연하게
192.168.1.0/25 → 128개 주소
192.168.1.0/26 → 64개 주소
192.168.1.0/28 → 16개 주소
CIDR 프리픽스 길이 이해하기
CIDR 표기법의 슬래시(/) 뒤에 오는 숫자는 네트워크 부분의 비트 수를 나타냅니다. IPv4 주소는 총 32비트이므로, 나머지 비트가 호스트 부분이 됩니다.
192.168.1.0/24
IP 주소: 11000000.10101000.00000001.00000000
서브넷 마스크: 11111111.11111111.11111111.00000000
←── 네트워크 (24비트) ──→←호스트(8)→
총 주소: 2^8 = 256개
사용 가능: 256 - 2 = 254개 (네트워크 주소와 브로드캐스트 제외)
핵심 공식:
- 총 주소 수 = 2^(32 - 프리픽스 길이)
- 사용 가능한 호스트 = 총 주소 수 - 2
프리픽스 길이가 1 증가할 때마다 주소 공간은 절반으로 줄어듭니다.
서브넷 마스크 ↔ CIDR 변환표
네트워크 관리에서 가장 자주 참조하는 표입니다.
| CIDR | 서브넷 마스크 | 총 주소 | 사용 가능 호스트 | 용도 |
|---|---|---|---|---|
/32 | 255.255.255.255 | 1 | 1 | 단일 호스트 |
/31 | 255.255.255.254 | 2 | 2* | 점대점 링크 |
/30 | 255.255.255.252 | 4 | 2 | 점대점 링크 |
/29 | 255.255.255.248 | 8 | 6 | 소규모 서브넷 |
/28 | 255.255.255.240 | 16 | 14 | 소규모 LAN |
/27 | 255.255.255.224 | 32 | 30 | 소규모 사무실 |
/26 | 255.255.255.192 | 64 | 62 | 중소규모 LAN |
/25 | 255.255.255.128 | 128 | 126 | 중규모 네트워크 |
/24 | 255.255.255.0 | 256 | 254 | 표준 LAN |
/23 | 255.255.254.0 | 512 | 510 | 대형 LAN |
/22 | 255.255.252.0 | 1,024 | 1,022 | 캠퍼스 네트워크 |
/21 | 255.255.248.0 | 2,048 | 2,046 | 대규모 서브넷 |
/20 | 255.255.240.0 | 4,096 | 4,094 | ISP 할당 |
/16 | 255.255.0.0 | 65,536 | 65,534 | 대기업/ISP |
/8 | 255.0.0.0 | 16,777,216 | 16,777,214 | 초대형 네트워크 |
*/31은 RFC 3021에 따라 점대점 링크에서 네트워크/브로드캐스트 없이 2개 주소를 모두 사용합니다.
네트워크 주소, 브로드캐스트, 사용 가능 호스트 계산
서브넷 계산의 핵심은 세 가지 주소를 구하는 것입니다.
계산 방법
192.168.1.130/26을 예로 들어보겠습니다.
1단계: 블록 크기 계산
/26 → 호스트 비트 = 32 - 26 = 6비트
블록 크기 = 2^6 = 64
2단계: 네트워크 주소
마지막 옥텟을 블록 크기로 나눠 내림합니다.
130 ÷ 64 = 2.03... → 2 × 64 = 128
네트워크 주소: 192.168.1.128
3단계: 브로드캐스트 주소
네트워크 주소 + 블록 크기 - 1:
128 + 64 - 1 = 191
브로드캐스트 주소: 192.168.1.191
4단계: 사용 가능한 호스트 범위
첫 번째 호스트: 192.168.1.129 (네트워크 주소 + 1)
마지막 호스트: 192.168.1.190 (브로드캐스트 - 1)
사용 가능: 62개
정리
| 항목 | 값 |
|---|---|
| 입력 IP | 192.168.1.130/26 |
| 네트워크 주소 | 192.168.1.128 |
| 첫 번째 호스트 | 192.168.1.129 |
| 마지막 호스트 | 192.168.1.190 |
| 브로드캐스트 | 192.168.1.191 |
| 사용 가능 호스트 | 62개 |
실전 예제
예제 1: /24 — 일반 사무실 네트워크
네트워크: 10.0.1.0/24
서브넷 마스크: 255.255.255.0
호스트 범위: 10.0.1.1 ~ 10.0.1.254
브로드캐스트: 10.0.1.255
사용 가능: 254대
가장 널리 사용되는 서브넷입니다. 소규모~중규모 사무실에 적합하며, 가정용 공유기도 대부분 /24를 사용합니다.
예제 2: /16 — 대규모 기업 네트워크
네트워크: 172.16.0.0/16
서브넷 마스크: 255.255.0.0
호스트 범위: 172.16.0.1 ~ 172.16.255.254
브로드캐스트: 172.16.255.255
사용 가능: 65,534대
대기업이나 데이터센터에서 사용합니다. 일반적으로 이 범위를 다시 /24나 /23 단위로 서브넷팅하여 부서나 용도별로 나눕니다.
예제 3: /8 — 초대형 네트워크
네트워크: 10.0.0.0/8
서브넷 마스크: 255.0.0.0
호스트 범위: 10.0.0.1 ~ 10.255.255.254
브로드캐스트: 10.255.255.255
사용 가능: 16,777,214대
RFC 1918 사설 IP 대역 중 가장 큰 블록입니다. 클라우드 환경(AWS VPC, GCP VPC)에서 기본 네트워크로 자주 사용됩니다.
예제 4: VLSM — 가변 길이 서브넷 마스크
실무에서는 하나의 네트워크를 다양한 크기로 분할합니다.
원본: 192.168.10.0/24 (254 호스트)
분할:
├── 192.168.10.0/26 → 서버팜 (62대)
├── 192.168.10.64/26 → 개발팀 (62대)
├── 192.168.10.128/27 → 영업팀 (30대)
├── 192.168.10.160/27 → 관리팀 (30대)
├── 192.168.10.192/28 → 게스트 Wi-Fi (14대)
└── 192.168.10.208/28 → 네트워크 장비 (14대)
192.168.10.224/27 → 여유 공간
IPv6에서의 CIDR
IPv6도 CIDR 표기법을 사용합니다. 128비트 주소 공간에서 프리픽스 길이를 지정합니다.
2001:db8::/32 → ISP 할당 블록
2001:db8:abcd::/48 → 사이트(고객) 할당
2001:db8:abcd:1::/64 → 단일 서브넷 (일반적)
IPv6에서는 /64가 단일 서브넷의 표준입니다. 호스트 부분이 64비트이므로 하나의 서브넷에 약 1.8 × 10^19개의 주소를 사용할 수 있어, 주소 절약을 위한 서브넷팅은 사실상 불필요합니다.
자주 하는 실수
1. 네트워크 주소를 호스트에 할당
192.168.1.0/24에서 .0은 네트워크 주소이므로 호스트에 할당하면 안 됩니다. 일부 운영체제에서는 동작할 수 있지만, 표준을 따르는 것이 안전합니다.
2. 서브넷 경계 무시
192.168.1.100/26의 네트워크 주소는 .64이고 브로드캐스트는 .127입니다. .0이나 .128이 아닙니다. 블록 크기에 맞춰 정확히 계산해야 합니다.
3. /32와 /0의 의미
/32= 정확히 1개의 IP (호스트 라우트)/0= 모든 IP (디폴트 라우트,0.0.0.0/0)
방화벽 규칙에서 이 두 가지를 혼동하면 심각한 보안 문제가 발생할 수 있습니다.
CIDR 계산을 더 쉽게
수동 계산이 번거롭다면, 도구를 활용하세요. ip.utilo.kr의 CIDR 계산기에서 CIDR 표기를 입력하면 네트워크 주소, 브로드캐스트, 호스트 범위, 서브넷 마스크를 자동으로 계산해 줍니다.
IP 주소의 기본 개념부터 다시 확인하고 싶다면, IP 주소 완전 가이드도 참고하세요.