[Network] 서브넷 마스크와 CIDR 표기법
방화벽 설정 및 IP 관련 작업을 하다보면 192.168.1.1/24 같은 표기를 자주 마주치게 됩니다.
IP 주소 뒤에 붙은 /24 는 무슨 말인지 255.255.255.0 같은 표기는 어떤 뜻인지 학교 다닐 때 서브넷 마스크라는 이름으로 얼핏 배웠던것 같은데 제대로 수업을 듣지 않은 관계로 아직도 잘 모르고 있습니다.
그래서 이번 시간을 통해 한번 관련 개념을 다시 한번 정리해보도록 하겠습니다.
IP 주소의 구조
IP 주소는 32비트를 8비트씩 4덩어리로 나눠 표현합니다.
1
2
xxx.xxx.xxx.xxx
8 8 8 8
여기서 8비트 한 덩어리는 옥텟이라고 불리며 각 옥텟의 범위는 00000000 으로 0~255의 범위를 표시할 수 있습니다.
서브넷 마스크란
IP 주소는 두 부분으로 나뉩니다.
- 네트워크 주소: 어느 네트워크 대역인지 (동네)
- 호스트 주소: 그 대역 안에서 특정 장치를 가리키는 주소 (몇 호)
서브넷 마스크는 이 경계선을 표시하는 32비트 값으로, 1이 연속으로 나오다가, 나머지는 전부 0입니다.
만약 255.255.255.0라면
11111111 . 11111111 . 11111111 . 00000000
네트워크 영역은 24비트이고 호스트 영역은 8비트로 표시될 수 있습니다.
호스트 8비트만큼 255개의 IP를 할당 할 수 있습니다.
굳이 255로 끝나지 않고도 255.255.254.0 라면
11111111 . 11111111 . 11111110 . 00000000
해당 표현의 경우 9비트로 510개의 IP를 할당 가능한 대역입니다.
CIDR 표기법
CIDR(Classless Inter-Domain Routing)은 서브넷 마스크를 /숫자 형태로 짧게 표현하는 방법입니다.
/숫자= 앞에서 몇 비트가 네트워크 비트냐
192.168.1.1/24 와 192.168.1.1 (서브넷 마스크: 255.255.255.0)는 완전히 같은 정보를 다르게 표현한 것입니다.
실무에서는 /24처럼 CIDR을 더 많이 쓰고, 서브넷 마스크는 Windows 네트워크 설정 같은 UI에서 주로 보입니다.
자주 쓰이는 CIDR을 정리하면 다음과 같습니다.
| CIDR | 서브넷 마스크 | 호스트 수 | 용도 |
|---|---|---|---|
| /8 | 255.0.0.0 | 16,777,214 | 대형 ISP |
| /16 | 255.255.0.0 | 65,534 | 중형 기업 |
| /24 | 255.255.255.0 | 254 | 일반 LAN |
| /30 | 255.255.255.252 | 2 | 포인트-투-포인트 |
| /32 | 255.255.255.255 | 1 | 단일 IP |
네트워크 대역 계산 (AND 연산)
할당받은 IP와 서브넷 마스크가 주어졌을 때, 네트워크 주소는 두 값의 AND 연산으로 구합니다.
마스크가 1인 자리는 IP 비트를 그대로 살리고, 0인 자리는 무조건 0으로 날립니다.
예를 들어 172.23.224.1 / 255.255.254.0의 경우:
1
2
3
4
5
172.23.224.1 = 10101100.00010111.11100000.00000001
AND
255.255.254.0 = 11111111.11111111.11111110.00000000
= 10101100.00010111.11100000.00000000
= 172.23.224.0 ← 네트워크 주소
앞의 두 옥텟은 모두 255로 1로 설정되어 있기에 실질적으로 세 번째 옥텟에서 마지막 비트만 날아가는걸 확인 할 수 있습니다.
결과적으로 이 대역은 172.23.224.0 ~ 172.23.225.255가 됩니다.
추가) /32와 /0의 특수한 의미
x.x.x.x/32: 32비트 전부가 네트워크 → 딱 그 IP 하나만을 의미합니다. 방화벽 규칙에서 특정 IP 하나만 허용/차단할 때 자주 씁니다.0.0.0.0/0: 0비트가 고정 → 모든 IP를 의미합니다. 보안 그룹에서 “전체 인터넷 허용”으로 자주 보입니다.
끝으로 서브넷 마스크나 CIDR은 처음엔 낯설지만, 결국 “32비트 중 앞에서 몇 개가 네트워크냐“는 하나의 개념을 두 가지 방법으로 표현한 것입니다.
