테마
IPv4 주소와 서브네팅 2
앞 문서에서 본 서브넷 마스크(subnet mask)와 CIDR(Classless Inter-Domain Routing, 클래스 없는 도메인 간 라우팅) 표기를 가지고 실제로 계산해 본다. 실기 시험은 주소와 마스크를 주고 네트워크 주소, 브로드캐스트 주소(broadcast address), 호스트 수, 서브넷 개수를 쓰게 한다. 절차만 몸에 익히면 2진수를 전부 풀어 쓰지 않아도 답이 나온다.
계산 절차 예
192.168.10.77/26의 네트워크 주소·브로드캐스트 주소·호스트 수를 구해 보자. 프리픽스(prefix)는 슬래시 뒤 숫자, 곧 네트워크 부분으로 쓰는 비트 수다.
- 호스트 비트 수를 센다. 32 − 26 = 6비트다.
- 블록 크기를 구한다. 2^6 = 64이므로 마지막 옥텟(octet, 주소를 8비트씩 나눈 한 칸)이 0, 64, 128, 192에서 끊긴다.
- 77이 들어가는 블록을 찾는다. 64 ≤ 77 < 128이므로 네트워크 주소는 192.168.10.64다.
- 다음 블록 시작 바로 앞이 브로드캐스트 주소다. 128 − 1 = 192.168.10.127이다.
- 호스트 수는 2^6 − 2 = 62개, 사용 범위는 .65~.126이다.
마스크 경계가 셋째 옥텟에 걸려도 같다. 172.16.45.200/20은 셋째 옥텟 블록이 2^(24−20) = 16이므로(셋째 옥텟까지가 24비트이고 마스크가 20비트이기 때문이다) 45는 32~47 블록에 속한다. 네트워크 주소는 172.16.32.0, 브로드캐스트 주소는 172.16.47.255, 호스트 수는 2^12 − 2 = 4094개다.
서브네팅: FLSM과 VLSM
서브네팅(subnetting)은 네트워크 하나를 호스트 비트 일부를 빌려 여러 작은 네트워크로 쪼개는 일이다. 빌린 비트가 k개면 서브넷은 2^k개가 된다.
FLSM(Fixed Length Subnet Mask, 고정 길이 서브넷 마스크)은 모든 서브넷을 같은 크기로 나눈다. 예를 들어 198.51.100.0/24를 부서 5곳에 하나씩 주려면 2^3 = 8 ≥ 5이므로 3비트를 빌려 /27 여덟 개(.0, .32, .64 … .224)로 나누고, 각각 호스트 30개를 쓴다. 계산이 단순하지만 작은 부서에도 같은 크기를 줘서 주소가 남는다.
예전에는 서브넷 비트가 모두 0인 첫 서브넷과 모두 1인 마지막 서브넷을 쓰지 않아 쓸 수 있는 서브넷이 2^k − 2개였다. RFC(Request for Comments, 인터넷 표준 문서) 1878은 이 관행을 이미 낡은 것으로 보고, 요즘 장비는 모든 서브넷을 쓴다. 시험 문제가 "IP Subnet-Zero 적용"이라고 조건을 주면 첫 서브넷(.0)도 쓴다는 뜻이다.
VLSM(Variable Length Subnet Mask, 가변 길이 서브넷 마스크)은 서브넷마다 크기를 다르게 준다. 필요한 호스트가 많은 서브넷부터 큰 블록을 앞에서부터 배정해야 블록 경계가 어긋나지 않는다. 192.168.5.0/24에 100·50·20대, 라우터 사이 연결 2대를 배정하면 다음과 같다.
| 요구 | 프리픽스 | 서브넷 | 호스트 수 |
|---|---|---|---|
| 100대 | /25 | 192.168.5.0 | 126 |
| 50대 | /26 | 192.168.5.128 | 62 |
| 20대 | /27 | 192.168.5.192 | 30 |
| 2대 | /30 | 192.168.5.224 | 2 |
시험 포인트
- 네트워크 주소 → 블록 크기(256 − 마스크 값)의 배수로 내림, 브로드캐스트 주소 → 다음 블록 시작 − 1.
- 호스트 수 → 2^(호스트 비트) − 2.
- 서브넷 k개 필요 → 2^비트 ≥ k인 최소 비트를 빌린다. Subnet-Zero를 쓰지 않는 조건이면 2^비트 − 2 ≥ k.
- FLSM은 모두 같은 크기, VLSM은 서로 다른 크기이고 큰 서브넷부터 배정한다.
