CIDR 표기와 서브넷 계산: /24가 정확히 무엇을 의미하는가
192.168.1.0/24 같은 표기는 IP 주소 하나가 아니라 주소의 범위를 나타냅니다. 슬래시 뒤의 숫자는 32비트 주소에서 앞쪽 몇 비트가 네트워크를 식별하는 고정 부분인지를 말합니다. 이 숫자 하나가 네트워크 크기, 사용 가능한 호스트 수, 방화벽 규칙이 허용하는 범위를 모두 결정합니다.
프리픽스 길이가 뜻하는 것
IPv4 주소는 32비트입니다. /24 는 앞 24비트가 네트워크 부분이고 남은 8비트가 호스트 부분이라는 뜻입니다. 호스트 비트가 8개면 2^8 = 256개의 주소가 이 범위에 들어가고, 그중 첫 주소는 네트워크 주소, 마지막 주소는 브로드캐스트 주소로 예약되므로 실제로 장비에 할당할 수 있는 것은 254개입니다.
프리픽스가 1 늘어나면 호스트 비트가 하나 줄어들어 크기가 절반이 됩니다. /25 는 128개, /26 은 64개입니다. 반대로 /23 은 512개로 두 배가 됩니다.
| 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 |
| /27 | 255.255.255.224 | 32 | 30 |
| /26 | 255.255.255.192 | 64 | 62 |
| /25 | 255.255.255.128 | 128 | 126 |
| /24 | 255.255.255.0 | 256 | 254 |
| /16 | 255.255.0.0 | 65,536 | 65,534 |
| /8 | 255.0.0.0 | 16,777,216 | 16,777,214 |
| /0 | 0.0.0.0 | 전체 | 모든 주소 (기본 경로) |
사용 방법
- CIDR 표기(예: 10.0.0.0/16)를 입력합니다.
- 네트워크 주소, 브로드캐스트 주소, 사용 가능한 IP 범위, 호스트 수를 확인합니다.
- 서브넷 마스크가 필요한 설정 화면에는 계산된 마스크 값을 그대로 씁니다.
- 특정 IP가 이 범위에 포함되는지 확인하려면 범위의 시작과 끝 주소를 비교하세요.
비트로 이해하기
여기서 중요한 점은 192.168.1.130/26 의 네트워크가 192.168.1.128 에서 시작한다는 것입니다. /26 은 64개 단위로 경계가 정해지므로 네트워크는 .0, .64, .128, .192 에서만 시작할 수 있습니다. 서브넷을 설계할 때 임의의 숫자에서 시작할 수 없는 이유입니다.
주소: 11000000.10101000.00000001.10000010
마스크: 11111111.11111111.11111111.11000000 (/26)
↑ 여기까지 네트워크
네트워크 주소: 192.168.1.128 (호스트 비트를 모두 0)
브로드캐스트: 192.168.1.191 (호스트 비트를 모두 1)
사용 가능 범위: 192.168.1.129 ~ 192.168.1.190 (62개)사설 IP 주소 범위
RFC 1918이 인터넷에 라우팅되지 않는 사설 주소 대역 세 개를 정의합니다. 사내망이나 클라우드 VPC는 이 대역에서 주소를 씁니다.
| 대역 | CIDR | 주소 수 | 흔한 용도 |
|---|---|---|---|
| 10.0.0.0 – 10.255.255.255 | 10.0.0.0/8 | 약 1,678만 | 대규모 사내망, 클라우드 VPC |
| 172.16.0.0 – 172.31.255.255 | 172.16.0.0/12 | 약 104만 | 중간 규모 네트워크, Docker 기본 대역 |
| 192.168.0.0 – 192.168.255.255 | 192.168.0.0/16 | 65,536 | 가정용 공유기, 소규모 네트워크 |
| 100.64.0.0 – 100.127.255.255 | 100.64.0.0/10 | 약 419만 | 통신사 NAT (CGNAT), RFC 6598 |
| 169.254.0.0 – 169.254.255.255 | 169.254.0.0/16 | 65,536 | 링크 로컬 (DHCP 실패 시 자동 할당) |
VPC 서브넷 설계에서 주의할 점
- 클라우드 제공자는 각 서브넷에서 주소 몇 개를 예약합니다. AWS는 서브넷당 5개(첫 4개와 마지막 1개)를 쓰므로 /28 서브넷의 실제 가용 IP는 11개입니다. 작은 서브넷을 만들 때 체감이 큽니다.
- VPC CIDR은 생성 후 축소할 수 없습니다. 처음부터 여유 있게 /16 정도를 잡아 두고 그 안에서 서브넷을 잘라 쓰는 편이 안전합니다.
- 다른 네트워크와 연결할 계획이 있다면 대역이 겹치지 않게 설계해야 합니다. 겹치는 두 VPC는 피어링할 수 없고, VPN으로 사내망과 연결할 때도 같은 문제가 생깁니다. 조직 차원에서 대역 할당표를 관리하는 것이 좋습니다.
- 192.168.0.0/24 나 172.17.0.0/16 처럼 흔한 대역은 피하세요. 전자는 가정용 공유기와, 후자는 Docker 기본 브리지와 충돌해 원격 근무자가 접속하지 못하는 일이 생깁니다.
- 가용 영역마다 서브넷을 나눌 때는 같은 크기로 균등하게 자르면 나중에 계산이 단순해집니다.
방화벽 규칙에서 자주 보는 표기
마지막 항목은 보안상 특별히 기억해 둘 값입니다. AWS·GCP·Azure 모두 이 주소에서 인스턴스 메타데이터를 제공하며, 여기에는 임시 자격증명이 포함될 수 있습니다. 사용자가 지정한 URL을 서버가 요청하는 기능이 있다면 이 주소로의 접근을 반드시 막아야 합니다.
| 표기 | 의미 |
|---|---|
| 0.0.0.0/0 | 모든 IPv4 주소. 인터넷 전체 개방을 의미하므로 신중히 |
| ::/0 | 모든 IPv6 주소 |
| 10.0.0.5/32 | 특정 호스트 하나만 |
| 10.0.0.0/8 | 사설 10 대역 전체 |
| 127.0.0.0/8 | 루프백. 자기 자신 |
| 169.254.169.254/32 | 클라우드 메타데이터 엔드포인트. SSRF 방어 시 반드시 차단 대상 |
자주 묻는 질문
- 왜 /24 에서 254개만 쓸 수 있나요?
- 첫 주소는 네트워크 자체를 가리키는 식별자로, 마지막 주소는 브로드캐스트용으로 예약되어 있어서 장비에 할당할 수 없습니다. 그래서 총 256개에서 2개를 뺀 254개가 됩니다. 다만 클라우드 환경에서는 제공자가 추가로 예약하는 주소가 있어 더 줄어듭니다.
- /31 과 /32 는 호스트가 없는데 왜 쓰나요?
- /32 는 단일 호스트를 정확히 지정하는 표기로, 방화벽 규칙이나 라우팅 테이블에서 특정 IP 하나를 가리킬 때 씁니다. /31 은 RFC 3021이 정의한 점대점 링크용으로, 라우터 두 대를 직접 연결할 때 브로드캐스트가 불필요하므로 2개 주소를 모두 사용합니다.
- 서브넷 마스크와 CIDR 프리픽스는 같은 것인가요?
- 같은 정보를 다르게 표기한 것입니다. 255.255.255.0 을 이진수로 쓰면 1이 24개 연속되므로 /24 와 같습니다. CIDR 표기가 더 짧아 요즘은 대부분 이쪽을 씁니다. 다만 일부 네트워크 장비 설정 화면은 여전히 점 십진 마스크를 요구합니다.
- IP 대역이 겹치는지 어떻게 확인하나요?
- 각 대역의 시작 주소와 끝 주소를 계산해 구간이 교차하는지 보면 됩니다. 프리픽스가 짧은 쪽이 넓은 범위이므로, 10.0.0.0/8 과 10.1.0.0/16 처럼 한쪽이 다른 쪽을 완전히 포함하는 경우도 겹침입니다. VPC 피어링이 거부되는 이유가 대개 이 포함 관계입니다.
- IPv6의 프리픽스는 어떻게 다른가요?
- IPv6 주소는 128비트이므로 프리픽스도 /0 부터 /128 까지입니다. 관례적으로 사이트에 /48 을 할당하고 서브넷은 /64 로 자릅니다. /64 하나에 들어가는 주소가 IPv4 전체보다 훨씬 많으므로, IPv4에서 하던 '주소 절약' 방식의 설계는 IPv6에서 의미가 없습니다.
- 서브넷을 나중에 더 잘게 나눌 수 있나요?
- 아직 사용하지 않은 대역이라면 가능합니다. /24 를 두 개의 /25 로 나누는 것은 계산상 문제가 없습니다. 다만 이미 IP가 할당되어 운영 중인 서브넷을 나누려면 재배치가 필요하고, 클라우드 환경에서는 서브넷 크기 자체를 변경할 수 없어 새로 만들고 리소스를 이전해야 합니다.
💡 참고: 네트워크 주소가 입력한 IP와 다르게 나오는 것은 정상입니다. 프리픽스가 정한 경계로 내림 정렬되기 때문이며, 그 값이 그 IP가 속한 네트워크의 시작점입니다.