MYMONDAY.ai
서비스스튜디오도구데이터·포맷73CSS 생성기19색상·이미지10인코딩·보안10웹·SEO11개발·데브옵스10파일·내보내기18계산기6가이드

10분 읽기 · 마지막 업데이트

서브넷팅·CIDR 치트시트: 이진수 계산, /8~/32 표, /24 분할 예제

모든 서브넷 문제는 프리픽스 길이 하나로 귀결됩니다. /26이 어떻게 마스크, 블록 크기, 호스트 수가 되는지, /24를 겹침 없이 나누는 법을 보여 드립니다.

IPv4 주소는 32비트이고, 프리픽스는 네트워크가 끝나는 지점을 알려 준다

IPv4 주소는 8비트 옥텟 네 개로 쓰는 32비트 숫자이며 192.168.10.37이 한 예입니다. CIDR 표기(RFC 4632)는 슬래시와 프리픽스 길이를 덧붙입니다. 192.168.10.37/26은 앞 26비트가 네트워크를, 나머지 6비트가 그 안의 호스트를 구분한다는 뜻입니다. 프리픽스 길이가 예전의 A·B·C 클래스 경계를 대체했기 때문에 /26이나 /19 같은 네트워크가 가능합니다.

서브넷 마스크는 같은 내용을 주소 형태로 쓴 것으로, 프리픽스 길이만큼의 1 뒤에 0이 이어집니다. /26이면 1이 26개, 0이 6개인 11111111.11111111.11111111.11000000, 즉 255.255.255.192입니다. 일부 라우터 ACL 문법에서 쓰는 와일드카드 마스크는 비트를 뒤집은 0.0.0.63입니다.

비트 연산 두 개로 모든 계산이 끝납니다. 네트워크 주소는 IP 주소 AND 마스크이고, 브로드캐스트 주소는 호스트 비트를 모두 1로 채운 값, 즉 네트워크 주소 OR 와일드카드 마스크입니다.

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
브로드캐스트 (OR 와일드카드 0.0.0.63) = 192.168.10.63
사용 가능 호스트 = 192.168.10.1 ~ 192.168.10.62        (2^6 - 2 = 62)

빠른 방법: 블록 크기

매번 이진수를 쓸 필요는 없습니다. 마스크가 255도 0도 아닌 옥텟(흥미로운 옥텟)을 찾아 256 - 그 옥텟의 마스크 값으로 블록 크기를 구하세요. /26에서는 네 번째 옥텟이 해당하고 마스크 값이 192이므로 블록 크기는 64이며, 네트워크는 0, 64, 128, 192에서 시작합니다. 주소 .37은 0에서 시작하는 블록에 속하므로 네트워크는 .0, 브로드캐스트는 다음 블록 직전인 .63입니다.

더 큰 예로 172.16.37.200/20을 봅시다. 마스크가 255.255.240.0이라 세 번째 옥텟이 해당하고 블록 크기는 256 - 240 = 16입니다. 세 번째 옥텟 37은 32에서 시작하는 블록(0, 16, 32, 48, ...)에 있으므로 네트워크는 172.16.32.0, 브로드캐스트는 172.16.47.255입니다. 사용 가능 범위는 172.16.32.1~172.16.47.254이고 호스트는 4,094개입니다.

/8~/32 참조 표

전체 주소 수는 2^(32 - 프리픽스)입니다. 사용 가능 호스트는 네트워크·브로드캐스트 주소를 뺀 2^(32 - 프리픽스) - 2이며, /31과 /32는 아래에서 설명하는 예외입니다. 표의 값은 마스크와 개수를 직접 계산해서 만들었습니다.

프리픽스서브넷 마스크와일드카드전체 주소사용 가능 호스트
/8255.0.0.00.255.255.25516,777,21616,777,214
/9255.128.0.00.127.255.2558,388,6088,388,606
/10255.192.0.00.63.255.2554,194,3044,194,302
/11255.224.0.00.31.255.2552,097,1522,097,150
/12255.240.0.00.15.255.2551,048,5761,048,574
/13255.248.0.00.7.255.255524,288524,286
/14255.252.0.00.3.255.255262,144262,142
/15255.254.0.00.1.255.255131,072131,070
/16255.255.0.00.0.255.25565,53665,534
/17255.255.128.00.0.127.25532,76832,766
/18255.255.192.00.0.63.25516,38416,382
/19255.255.224.00.0.31.2558,1928,190
/20255.255.240.00.0.15.2554,0964,094
/21255.255.248.00.0.7.2552,0482,046
/22255.255.252.00.0.3.2551,0241,022
/23255.255.254.00.0.1.255512510
/24255.255.255.00.0.0.255256254
/25255.255.255.1280.0.0.127128126
/26255.255.255.1920.0.0.636462
/27255.255.255.2240.0.0.313230
/28255.255.255.2400.0.0.151614
/29255.255.255.2480.0.0.786
/30255.255.255.2520.0.0.342
/31255.255.255.2540.0.0.122 (점대점, RFC 3021)
/32255.255.255.2550.0.0.011 (단일 호스트)

특수 사례: /31과 /32

고전적인 공식대로면 /31은 주소 2개에서 예약 2개를 빼 사용 가능 호스트가 0개이고 /32는 -1개입니다. 실제 네트워크는 그렇게 쓰지 않습니다. RFC 3021은 점대점 링크용 /31 서브넷을 정의합니다. 링크에는 장치가 둘뿐이라 브로드캐스트가 필요 없으므로 두 주소를 모두 사용할 수 있습니다. 라우터 간 링크에서 /30 대비 주소를 절반만 쓰게 되고, 요즘의 라우터와 운영체제 대부분이 지원하지만 오래된 장비는 확인이 필요합니다.

/32는 주소 하나를 정확히 가리킵니다. 루프백의 호스트 라우트(10.1.1.1/32), 단일 IP 방화벽 규칙과 허용 목록, 클라우드 보안 그룹 항목에서 볼 수 있습니다. 제외할 네트워크·브로드캐스트 주소가 없으므로 -1개가 아니라 호스트 1개입니다.

표의 반대쪽 끝도 기억해 두세요. 0.0.0.0/0은 모든 IPv4 주소(기본 경로)이고, 10.0.0.0/8 같은 /8에는 1,670만 개의 주소가 있습니다. 사설 대역도 알아 둡시다. RFC 1918은 10.0.0.0/8, 172.16.0.0/12(172.16.0.0~172.31.255.255), 192.168.0.0/16을 예약했습니다.

/24를 같은 크기로 나누기

네트워크를 같은 크기로 나누려면 호스트 비트를 빌려 옵니다. n비트를 빌리면 2^n개의 서브넷이 생기고 프리픽스는 n만큼 길어집니다. 192.168.10.0/24를 4개로 나누려면 2비트를 빌려 /26 네트워크 네 개를 얻습니다. 블록 크기는 64이므로 .0, .64, .128, .192에서 시작합니다.

  • 2개로: /25 두 개, 블록 크기 128(.0과 .128).
  • 8개로: /27 여덟 개, 블록 크기 32(.0, .32, .64, .96, .128, .160, .192, .224), 각 30호스트.
  • 16개로: /28 열여섯 개, 블록 크기 16, 각 14호스트.
  • 64개로: /30 예순네 개, 블록 크기 4, 각 2호스트로 전형적인 점대점 크기.
서브넷네트워크사용 가능 범위브로드캐스트
1192.168.10.0/26192.168.10.1 - 192.168.10.62192.168.10.63
2192.168.10.64/26192.168.10.65 - 192.168.10.126192.168.10.127
3192.168.10.128/26192.168.10.129 - 192.168.10.190192.168.10.191
4192.168.10.192/26192.168.10.193 - 192.168.10.254192.168.10.255

VLSM(가변 길이 서브넷팅) 실전

실제 네트워크는 크기가 다른 서브넷이 필요합니다. 확실한 방법은 요구 사항을 큰 것부터 정렬하고, 각각에 들어맞는 가장 작은 프리픽스(호스트 수 + 2 <= 2^(32 - 프리픽스))를 주고, 모든 서브넷이 자기 블록 크기의 배수에서 시작하도록 차례로 배치하는 것입니다.

10.0.5.0/24를 100호스트, 50호스트, 20호스트, 라우터 링크 2호스트용으로 나눈다고 합시다. /25는 126호스트를 담으므로 100호스트 서브넷은 /25입니다. 50호스트는 /26(62호스트), 20호스트는 /27(30호스트), 링크는 /30(2호스트)이 필요합니다. 범위의 위쪽부터 배치하면 10.0.5.0/25가 .0~.127, 10.0.5.128/26이 .128~.191, 10.0.5.192/27이 .192~.223, 10.0.5.224/30이 .224~.227입니다. 256개 중 128 + 64 + 32 + 4 = 228개를 쓰고 .228~.255는 앞으로의 확장용으로 남습니다.

큰 것부터 배치해야 하는 이유는 블록 정렬 때문입니다. /25는 .0이나 .128에서만 시작할 수 있습니다. 20호스트 /27을 먼저 .0에 놓으면 100호스트 /25는 앞쪽 절반에 들어가지 못하고 .128을 차지해 공간이 낭비됩니다.

10.0.5.0/25     100호스트   (사용 가능 126)   .0   - .127
10.0.5.128/26    50호스트   (사용 가능  62)   .128 - .191
10.0.5.192/27    20호스트   (사용 가능  30)   .192 - .223
10.0.5.224/30     2호스트   (사용 가능   2)   .224 - .227
남은 범위: 10.0.5.228 - 10.0.5.255

요약(summarization)과 겹침 검사

인접한 서브넷 두 개는 크기가 같고 첫 번째가 더 큰 블록 경계에 정렬되어 있을 때만 하나의 경로로 요약할 수 있습니다. 192.168.0.0/24와 192.168.1.0/24는 192.168.0.0/23으로 합쳐집니다. 그러나 192.168.1.0/24와 192.168.2.0/24는 /23이 될 수 없습니다. /23은 세 번째 옥텟이 짝수에서 시작해야 하므로 192.168.0.0/23과 192.168.2.0/23 두 개가 되고, 둘 다 내 소유가 아닌 주소를 포함하게 됩니다.

두 CIDR 블록이 겹치는지 확인하려면 각각의 네트워크 주소와 브로드캐스트 주소를 계산합니다. 한쪽 범위가 시작할 때 다른 쪽이 아직 끝나지 않았다면 겹칩니다. 10.0.0.0/16(10.0.0.0~10.0.255.255)은 10.0.128.0/17(10.0.128.0~10.0.255.255)을 완전히 포함하며, VPC 피어링 실패와 VPN 경로 충돌의 흔한 원인입니다. IPv6도 128비트로 같은 프리픽스 논리를 따르고, LAN 하나는 관례적으로 /64입니다.

정답이 있는 연습 문제 다섯 개

계산기를 열기 전에 직접 풀어 보고 확인하세요. 문제마다 위에서 설명한 방법의 서로 다른 부분을 씁니다.

문제풀이정답
10.20.30.77/27이 속한 서브넷은?블록 크기 256 - 224 = 32, 77은 64에서 시작하는 블록에 속함네트워크 10.20.30.64, 브로드캐스트 10.20.30.95, 사용 가능 .65~.94
/22 안에 /28 서브넷이 몇 개 들어가는가?2^(28 - 22) = 2^616개 주소짜리 서브넷 64개
호스트 500개에 필요한 가장 짧은 프리픽스는?500 + 2 = 502이고 2^9 = 512가 들어맞는 첫 2의 거듭제곱이므로 호스트 비트 9, 프리픽스 32 - 9/23, 사용 가능 호스트 510개
호스트 1000개에 필요한 가장 짧은 프리픽스는?1000 + 2 = 1002, 2^10 = 1024/22, 사용 가능 호스트 1,022개
192.168.1.130은 192.168.1.0/25 안에 있는가?/25는 .0~.127만 포함아니요. 192.168.1.128/25에 속함

실제 장애로 이어지는 실수

가장 흔한 오류는 .0으로 끝나는 주소는 모두 네트워크 주소, .255로 끝나는 주소는 모두 브로드캐스트라고 가정하는 것입니다. 이는 프리픽스가 /24 이상일 때만 맞습니다. 192.168.0.0/23의 범위는 192.168.0.0~192.168.1.255이므로 192.168.0.255와 192.168.1.0은 둘 다 평범한 사용 가능 호스트입니다. 이를 할당하지 않는 소프트웨어나 방화벽에서 막아 버리는 엔지니어는 /24의 습관을 /23에 적용한 것입니다.

두 번째는 여유 없이 오늘의 호스트 수에 맞춰 크기를 정하는 것입니다. 사용 가능 주소가 62개인 /26은 기기가 62대가 되면 가득 차고, 운영 중인 서브넷의 주소를 바꾸려면 이를 참조하는 모든 고정 할당, DHCP 범위, 방화벽 규칙, DNS 레코드를 건드려야 합니다. 성장이 예상되면 프리픽스를 한 단계 짧게 잡으세요. 한 단계 작은 크기의 두 배 공간이 들 뿐이고, 주소 재할당 비용은 그보다 훨씬 큽니다.

세 번째는 겹침입니다. 두 사이트가 모두 192.168.1.0/24를 골랐다면 NAT나 주소 재할당 없이는 VPN으로 연결할 수 없습니다. 여러 사무실이나 클라우드 네트워크의 주소 공간을 계획할 때는 하나의 계획에서 겹치지 않는 블록을 할당하고, 이웃을 건드리지 않고 각자 두 배로 커질 수 있게 블록 사이에 여유를 두세요.

  • 할당 계획을 CIDR 블록 목록으로 적고, 설정을 시작하기 전에 겹침이 없는지 검토하세요.
  • 2의 거듭제곱 경계를 선호하세요. 10.1.0.0/16, 10.2.0.0/16 같은 배치는 임의의 범위보다 요약하기 쉽습니다.
  • RFC 1918 주소는 공인 인터넷에서 라우팅되지 않으므로, 공개 서비스의 /32 허용 목록 항목은 공인 주소여야 합니다.

직접 해보기