서브넷 마스크란 무엇인가
칸막이가 필요합니다
앞 장에서 IP 주소가 네트워크부와 호스트부로 나뉜다고 배웠습니다. 그런데 IP 주소만 보면 어디까지가 네트워크부이고 어디부터가 호스트부인지 알 수 없습니다. 192.168.1.10이라는 주소를 보세요. 네트워크부가 192까지인지, 192.168까지인지, 192.168.1까지인지 주소만으로는 판단이 안 됩니다.
이 경계를 알려주는 것이 서브넷 마스크(Subnet Mask)입니다. 서브넷 마스크는 IP 주소에서 네트워크부와 호스트부를 구분하는 칸막이 역할을 합니다.
서브넷 마스크의 구조
서브넷 마스크도 IP 주소와 마찬가지로 32비트 숫자입니다. 핵심 규칙은 간단합니다.
- 1이 연속된 부분: 네트워크부
- 0이 연속된 부분: 호스트부
- 1과 0은 반드시 연속되어야 합니다. 1 사이에 0이 끼거나, 0 사이에 1이 끼면 안 됩니다.
이 서브넷 마스크(255.255.255.0)는 "앞 24비트가 네트워크부, 뒤 8비트가 호스트부"라는 뜻입니다.
기본 서브넷 마스크
클래스마다 기본 서브넷 마스크가 정해져 있습니다.
| 클래스 | 기본 서브넷 마스크 | 이진수 | 네트워크 비트 |
|---|---|---|---|
| A | 255.0.0.0 | 11111111.00000000.00000000.00000000 | 8비트 |
| B | 255.255.0.0 | 11111111.11111111.00000000.00000000 | 16비트 |
| C | 255.255.255.0 | 11111111.11111111.11111111.00000000 | 24비트 |
왜 서브넷이 필요한가
클래스 B 네트워크 하나는 65,534대의 호스트를 지원합니다. 그런데 어떤 회사의 부서에 컴퓨터가 50대밖에 없다면, 나머지 65,000개 이상의 주소가 낭비됩니다. 게다가 65,000대의 장치가 하나의 네트워크에 몰려 있으면 브로드캐스트 트래픽이 엄청나게 늘어납니다.
서브넷팅(Subnetting)은 하나의 큰 네트워크를 여러 개의 작은 네트워크(서브넷)로 나누는 기술입니다. 호스트부의 일부 비트를 빌려와서 네트워크부를 확장하는 방식입니다.
기본 클래스 C:
네트워크부(24비트) 호스트부(8비트)
11111111.11111111.11111111 . 00000000
서브넷팅 후 (/26):
네트워크부(24비트) + 빌린비트(2) 호스트부(6비트)
11111111.11111111.11111111 . 11000000
↑↑
빌린 비트
2비트를 빌리면 서브넷 4개(2^2)가 생기고, 각 서브넷에는 62대(2^6 - 2)의 호스트를 연결할 수 있습니다.
서브넷팅의 이점
첫째, 주소 낭비를 줄입니다. 필요한 호스트 수에 맞게 네트워크를 나누면 남는 주소가 최소화됩니다.
둘째, 브로드캐스트 영역을 줄입니다. 큰 네트워크를 작은 서브넷으로 나누면, 브로드캐스트가 서브넷 안에서만 전파됩니다. 네트워크 전체의 트래픽이 줄어듭니다.
셋째, 보안이 향상됩니다. 서브넷 간에 라우터나 방화벽을 두면, 부서별로 접근을 제어할 수 있습니다.
서브넷 마스크 읽는 연습
서브넷 마스크를 보고 네트워크부와 호스트부를 구분하는 연습을 해봅시다.
255.255.255.0 → 11111111.11111111.11111111.00000000
→ 네트워크 24비트, 호스트 8비트
→ 호스트 수: 2^8 - 2 = 254
255.255.255.128 → 11111111.11111111.11111111.10000000
→ 네트워크 25비트, 호스트 7비트
→ 호스트 수: 2^7 - 2 = 126
255.255.255.192 → 11111111.11111111.11111111.11000000
→ 네트워크 26비트, 호스트 6비트
→ 호스트 수: 2^6 - 2 = 62
255.255.255.224 → 11111111.11111111.11111111.11100000
→ 네트워크 27비트, 호스트 5비트
→ 호스트 수: 2^5 - 2 = 30
서브넷 마스크의 마지막 옥텟에서 자주 등장하는 값들을 외워두면 계산이 빨라집니다.
| 서브넷 마스크 값 | 이진수 | 빌린 비트 | 호스트 비트 | 호스트 수 |
|---|---|---|---|---|
| 0 | 00000000 | 0 | 8 | 254 |
| 128 | 10000000 | 1 | 7 | 126 |
| 192 | 11000000 | 2 | 6 | 62 |
| 224 | 11100000 | 3 | 5 | 30 |
| 240 | 11110000 | 4 | 4 | 14 |
| 248 | 11111000 | 5 | 3 | 6 |
| 252 | 11111100 | 6 | 2 | 2 |
이 표는 서브넷팅 문제를 풀 때 계속 참조하게 됩니다. 자연스럽게 외워질 때까지 반복하는 것이 좋습니다.
시험 포인트
- 서브넷 마스크: IP 주소에서 네트워크부와 호스트부를 구분하는 32비트 값
- 1 연속 = 네트워크부, 0 연속 = 호스트부
- 서브넷팅: 호스트부의 비트를 빌려 네트워크부를 확장하는 기술
- 이점: 주소 절약, 브로드캐스트 영역 축소, 보안 향상
- 자주 나오는 마스크 값: 128, 192, 224, 240, 248, 252
실무 매핑
- 실무에서 서브넷 설계는 네트워크 엔지니어의 기본 업무입니다. "이 층에 100대, 저 층에 50대 연결해야 하는데 서브넷을 어떻게 나눌까"를 결정하는 것이 서브넷팅입니다. 시험 문제가 곧 실무 시나리오입니다.