CIDR·서브넷 마스크 변환 쉽게 이해하기 — 개념과 원리
이 변환기는 CIDR 프리픽스 길이(/0~/32)를 점으로 구분한 십진 서브넷 마스크, 와일드카드 마스크, 블록 전체 주소 수, 사용 가능 호스트 수, 2진수 마스크로 바꿔 보여 줍니다. 장비 설정 화면은 "255.255.240.0"을 요구하는데 설계 문서에는 "/20"이라고 적혀 있을 때, 또는 어떤 대역이 한 사업장을 수용하기에 충분한지 빠르게 확인할 때 유용합니다.
계산 방법
- 서브넷 마스크: 앞의 n비트가 1, 나머지 32 − n비트가 0인 32비트 값입니다. 8비트씩 끊어 십진수로 씁니다.
- 와일드카드: 마스크의 비트를 반전한 값으로, 옥텟마다 255에서 마스크 값을 뺀 것과 같습니다.
- 전체 주소 수: 2^(32 − n)
- 사용 가능 호스트 수: n ≤ 30이면 2^(32 − n) − 2, /31은 2개(점대점, RFC 3021), /32는 1개입니다.
- 2진 마스크: 같은 32비트를 8비트씩 네 묶음으로 보여 줍니다.
1이 왼쪽부터 연속해야 하므로 올바른 마스크의 옥텟 값은 0, 128, 192, 224, 240, 248, 252, 254, 255 중 하나뿐입니다.
원리
CIDR은 예전의 고정된 클래스 경계 대신 "앞의 n비트가 네트워크"라는 단순한 규칙을 씁니다. 마스크는 이 n을 다르게 적은 표기일 뿐입니다. 네트워크 쪽 비트를 하나 줄여 호스트 쪽으로 넘길 때마다 블록 크기는 두 배가 됩니다. 그래서 /24는 256개, /23은 512개, /20은 4,096개의 주소를 갖습니다. 호스트 비트가 모두 0인 네트워크 주소와 모두 1인 브로드캐스트 주소는 예약되므로 일반 서브넷의 사용 가능 수는 전체보다 2개 적습니다.
예제 풀이
- 입력: /20
- 앞의 16비트가 두 옥텟을 255로 채웁니다. 셋째 옥텟에는 1이 4개 남아 11110000 = 128 + 64 + 32 + 16 = 240이고, 넷째 옥텟은 0입니다.
- 마스크는 255.255.240.0, 2진수로는 11111111.11111111.11110000.00000000입니다.
- 와일드카드는 255 − 240 = 15, 255 − 0 = 255이므로 0.0.15.255입니다.
- 전체 주소는 2^12 = 4,096개, 사용 가능 호스트는 4,096 − 2 = 4,094개입니다.
| 프리픽스 /n | 서브넷 마스크 |
|---|---|
| 5 | 248.0.0.0 |
| 10 | 255.192.0.0 |
| 15 | 255.254.0.0 |
| 20 | 255.255.240.0 |
| 25 | 255.255.255.128 |
| 30 | 255.255.255.252 |
| 40 | 255.0.0.0 |
결과 해석
프리픽스가 1 줄 때마다 용량이 두 배가 됩니다. /30은 2개, /29는 6개, /28은 14개, /27은 30개, /26은 62개, /25는 126개, /24는 254개, /22는 1,022개, /20은 4,094개, /16은 65,534개입니다. /20 블록은 연속된 /24 네트워크 16개에 해당하므로 셋째 옥텟이 16의 배수에서 시작해야 합니다. 현재 호스트 수에 증설 여유를 더해 담을 수 있는 가장 작은 블록을 고르는 것이 좋습니다.
흔한 실수
- 255.255.0.255처럼 1이 연속하지 않는 값을 마스크로 쓰는 경우
- 서브넷 마스크 자리에 와일드카드를 넣거나 그 반대로 넣는 경우
- 사용 가능 수에서 네트워크·브로드캐스트 주소가 빠진다는 점을 잊는 경우
자주 묻는 질문
/20의 마스크는 무엇인가요?
255.255.240.0이며 주소 4,096개, 사용 가능 호스트 4,094개입니다.
/20 안에 /24가 몇 개 들어가나요?
2^(24 − 20) = 16개입니다.
와일드카드 마스크는 어디에 쓰나요?
시스코 방식 ACL이나 일부 OSPF 명령에서 비교할 비트를 지정할 때 씁니다. 0인 비트는 일치해야 하고 1인 비트는 무시합니다.
출처: IETF RFC 4632, Classless Inter-domain Routing (CIDR) · IETF RFC 950, Internet Standard Subnetting Procedure