32비트 IP 주소에서 어디까지가 네트워크이고 어디부터가 호스트인지를 정하는 값.
각 옥텟이 가질 수 있는 값은 9개뿐
비트 위치 : 1 2 3 4 5 6 7 8
자릿값 : 128 64 32 16 8 4 2 1
누적 마스크 : 128 192 224 240 248 252 254 255
마스크는 1이 왼쪽부터 끊김 없이 이어져야 하므로 각 옥텟은 0, 128, 192, 224, 240, 248, 252, 254, 255 중 하나만 될 수 있다. 255.255.255.100은 100이 01100100이라 1이 불연속이므로 유효한 마스크가 아니다.
/26 → 11111111.11111111.11111111.11000000 → 255.255.255.192
↑↑
앞 2비트만 1 → 128+64 = 192
세 값을 뽑으면 나머지는 자동이다
프리픽스 /n 이 주어지면
호스트 비트 h = 32 - n
블록 크기 = 2^(마지막 옥텟의 호스트 비트) ← 서브넷 간 간격
사용 가능 호스트 = 2^h - 2
/26 → h=6, 블록 64, 사용 가능 62
- 마지막 옥텟 경계가 0, 64, 128, 192
자주 쓰는 값
/24 255.255.255.0 블록 256 호스트 254
/25 255.255.255.128 블록 128 호스트 126
/26 255.255.255.192 블록 64 호스트 62
/27 255.255.255.224 블록 32 호스트 30
/28 255.255.255.240 블록 16 호스트 14
/30 255.255.255.252 블록 4 호스트 2 ← 라우터 간 점대점
같은 세그먼트는 마스크가 일치해야 한다
A : 192.168.1.10/24 A 가 보는 범위 .0 ~ .255 B : 192.168.1.20/28 B 가 보는 범위 .16 ~ .31
A → B A 는 B 가 같은 랜이라 판단 → ARP 로 직접 부른다 B → A B 는 A(.10) 가 범위 밖이라 판단 → 게이트웨이로 보낸다
결과: 한 방향만 되는 것처럼 보이는 비대칭 장애
면접 함정
- ❌ "마스크는 임의 값을 쓸 수 있다" → 1이 연속이어야 한다.
- ❌ 세그먼트마다 마스크가 달라도 된다 → 비대칭 통신 장애를 일으킨다.
손으로 푸는 순서
-
192.168.1.130/26 을 받았다
-
① 호스트 비트 — 32 - 26 = 6
-
② 블록 크기 — 2^6 = 64
-
③ 경계 — 0, 64, 128, 192
-
④ 130 이하 최대 경계 → 128 → 네트워크 주소 192.168.1.128
-
⑤ 다음 경계 -1 — → 191 → 브로드캐스트
-
⑥ 사용 가능 — 129 ~ 190 (62개)
셋째 옥텟에 걸치는 경우
/22 → 호스트 비트 10
- 마지막 옥텟이 8비트를 가져가고 남은 2비트가 셋째 옥텟에 걸린다
- 셋째 옥텟 블록 크기 = 2^2 = 4 → 경계 0, 4, 8, 12 …
10.0.5.20/22 → 셋째 옥텟 5, 4 이하 최대 → 네트워크 10.0.4.0
호스트 비트가 걸쳐 있는 옥텟에서 블록 크기를 구한다는 원리는 어느 프리픽스에서나 같다.
/31과 /32
- /31 — RFC 3021 — 점대점 링크는 브로드캐스트가 무의미하므로 2개 모두 사용
- /32 — 단일 호스트. 루프백 인터페이스·정적 경로 지정에 쓴다
개발자가 자주 쓰는 자리
- 보안 그룹·방화벽 규칙 — 10.0.0.0/8 허용, 0.0.0.0/0 은 전체 개방(주의)
- 쿠버네티스 — Pod CIDR · Service CIDR 가 겹치면 안 된다
- VPC 설계 — 서브넷을 AZ 별로 나눌 때 겹치지 않게 계획한다