AWS 콘솔이나 방화벽 설정 화면에서
10.0.0.0/16같은 표기를 보고 “이게 정확히 뭘 의미하는 거지?” 싶었다면 이 글이 출발점이 될 것이다.
이 글에서 다루는 내용
- CIDR이 무엇이고 왜 생겨났는지
/24같은 숫자가 실제로 의미하는 것- 서브넷 마스크와 CIDR의 관계
- IP 주소 하나를 놓고 직접 읽어보는 예시
CIDR이 뭔가요
CIDR(Classless Inter-Domain Routing)은 하나의 IP 주소가 어디까지가 네트워크를 가리키고, 어디부터가 그 안의 개별 호스트(장치)를 가리키는지를 표기하는 방법이다.
192.168.1.0/24
이렇게 IP 주소 뒤에 슬래시와 숫자를 붙인 형태를 CIDR 표기법이라고 부른다. 여기서:
192.168.1.0— 네트워크 대역을 나타내는 주소/24— IP 주소 32비트 중 앞의 24비트가 네트워크를 식별하는 부분이라는 뜻
즉 /24는 “이 대역에서 앞 24비트는 고정, 나머지 8비트만 이 네트워크 안에서 자유롭게 쓸 수 있다”는 의미다.
IP 주소는 사실 32개의 스위치
CIDR을 이해하려면 IP 주소가 사람이 읽기 좋게 점(.)으로 나눈 10진수일 뿐, 실제로는 32비트(0과 1로 이루어진 32칸) 라는 걸 알아야 한다.
192.168.1.0
= 11000000.10101000.00000001.00000000 (32비트)
/24는 이 32칸 중 앞의 24칸을 네트워크 식별용으로 고정하겠다는 선언이다. 나머지 8칸(마지막 옥텟)만 이 네트워크 안에서 호스트마다 다르게 쓸 수 있다.
- 남은 자리가 많을수록(프리픽스 숫자가 작을수록) 그 네트워크에 담을 수 있는 호스트가 많아진다
- 남은 자리가 적을수록(프리픽스 숫자가 클수록) 네트워크는 더 좁고 작아진다
왜 이런 방식이 생겼나
CIDR 이전에는 IP 대역을 Class A/B/C처럼 미리 정해진 고정 크기로만 나눠 썼다. 예를 들어 Class C는 무조건 256개(현재의 /24) 단위였는데, 20개짜리 소규모 네트워크 하나를 위해 256개짜리 대역을 통째로 배정하는 식이라 낭비가 심했다.
CIDR(1993년, RFC 1519)은 이 고정 크기 제약을 없애고, 필요한 만큼만 유연하게 잘라 쓸 수 있게 한 방식이다. “Classless”라는 이름 자체가 “더 이상 Class A/B/C 같은 고정 등급에 묶이지 않는다”는 뜻이다.
서브넷 마스크와 같은 말
네트워크 설정 화면에서 CIDR 대신 255.255.255.0 같은 서브넷 마스크 표기를 보게 되는 경우도 많다. 둘은 같은 정보를 다른 방식으로 표현한 것뿐이다.
| CIDR | 서브넷 마스크 | 의미 |
|---|---|---|
| /8 | 255.0.0.0 | 앞 8비트만 네트워크 |
| /16 | 255.255.0.0 | 앞 16비트만 네트워크 |
| /24 | 255.255.255.0 | 앞 24비트만 네트워크 |
| /32 | 255.255.255.255 | 32비트 전부 = 호스트 1개 단독 지정 |
서브넷 마스크는 “1로 채워진 자리가 네트워크 부분”이라는 걸 그대로 10진수로 옮겨 적은 것이고, CIDR은 그 1의 개수를 숫자 하나로 축약한 것이다. /24 = 11111111.11111111.11111111.00000000 = 255.255.255.0 — 셋 다 같은 걸 가리킨다.
예시로 한 번 읽어보기
172.16.5.10/20이라는 표기를 만났다고 하면:
/20→ 앞 20비트가 네트워크, 나머지 12비트가 호스트 영역- 12비트로 표현 가능한 범위이므로 이 네트워크는 꽤 큰 규모(수천 대 단위)를 수용할 수 있는 대역이라는 것을 알 수 있다
172.16.5.10이라는 특정 IP는 그 대역에 속한 장치 하나의 주소다
이 시점에서 “그래서 정확히 몇 개까지 들어가고, 시작과 끝 주소는 어떻게 구하지?“가 궁금해질 텐데, 그 계산을 공식 없이 암산으로 뽑아내는 실전 트릭은 다음 글에서 이어서 다룬다.