서브넷 마스크와 CIDR, 예제로 이해하기
/24가 왜 254개인지, 서브넷을 어떻게 나누는지 숫자 계산 예제로 정리했습니다.
IPv4 주소는 32비트 숫자입니다. 서브넷 마스크는 이 32비트 중 앞쪽 몇 비트가 네트워크를 나타내고 나머지가 호스트를 나타내는지 정합니다. 192.168.0.10/24에서 /24는 앞 24비트가 네트워크라는 뜻이고, 마스크로 쓰면 255.255.255.0입니다.
왜 /24에서는 254개만 쓸 수 있을까
/24는 호스트 비트가 8개이므로 주소가 256개입니다. 맨 앞 192.168.0.0은 네트워크 주소, 맨 뒤 192.168.0.255는 브로드캐스트 주소라서 장비에 줄 수 없습니다. 그래서 사용 가능한 호스트는 254개입니다. 일반식은 2의 (32 - 프리픽스)제곱에서 2를 뺀 값입니다.
서브넷 나누기 예제
192.168.0.0/24를 /26으로 나누면 프리픽스가 2비트 늘어나므로 4개 서브넷이 생기고, 각 서브넷은 주소 64개, 호스트 62개를 가집니다.
- 192.168.0.0/26: 호스트 .1 ~ .62, 브로드캐스트 .63
- 192.168.0.64/26: 호스트 .65 ~ .126, 브로드캐스트 .127
- 192.168.0.128/26: 호스트 .129 ~ .190, 브로드캐스트 .191
- 192.168.0.192/26: 호스트 .193 ~ .254, 브로드캐스트 .255
서버에서 내 네트워크 확인하기
ip -4 addr show
ip routeip addr 결과의 inet 192.168.0.10/24처럼 프리픽스까지 표시됩니다. 같은 서브넷의 장비끼리는 라우터 없이 통신하고, 다른 서브넷은 기본 게이트웨이를 거칩니다.
자주 하는 실수
- 서버 두 대의 마스크를 다르게 설정해 한쪽에서만 통신이 되는 경우
- 게이트웨이가 다른 서브넷에 있어 외부 통신이 안 되는 경우
- 사설 대역(10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16) 범위를 잘못 기억해 172.32.x.x를 사설로 착각하는 경우