이전에 VPC의 CIDR 대역을 설정하는 기준과 서브넷을 구분하는 방법에 대해 정리하던 중, 서브넷팅 및 서브넷에 관한 내용을 정리하였다. 그러나 서브넷 마스크에 대한 부분은 다소 부족하다고 판단되어, 이번에는 해당 내용을 정리하고자 한다.
01. 서브넷 마스크란?
# 서브넷 마스크 이진수 변환
1) 전체 IP 주소 : 192.168.1.10
2) 서브넷 마스크 : 255.255.255.0
3) 이진수 변환 : 11111111.11111111.11111111.00000000
서브넷 마스크는 IP 주소에서 어디부터가 네트워크(Network) 주소 비트(bit)이고, 어디서부터가 호스트(Host) 주소 비트인지를 구분하기 위해 사용되는 32비트 숫자(예: 255.255.255.0)다. 서브넷 마스크는 네트워크 주소 부분을 비트(bit) “1”로, 호스트 주소 부분을 비트 “0”으로 표현한다. 또한 각 8비트 영역(옥텟)은 1(네트워크) 또는 0(호스트)로 연속적으로만 표현되어야 하며, 1과 0이 섞여 있는 형태(예: 11111111.11111111.11110011.00000000)는 허용되지 않는다.
또한, IP 주소가 192.168.1.10이고 서브넷 마스크가 255.255.255.0이라면, 255로 표시된 앞의 세 옥텟(192.168.1)은 네트워크 주소에 해당하고, 0으로 표시된 마지막 옥텟은 호스트 주소에 해당한다. 이는 255를 이진수로 나타내면 11111111이 되기 때문에, 해당 부분이 네트워크를 나타냄을 의미한다. 반대로 0은 00000000으로, 해당 부분이 호스트 영역임을 의미한다.
그렇다면, 네트워크 주소와 호스트 주소란 무엇인가?
01-1. 네트워크 주소 & 호스트 주소

네트워크 주소란, 같은 네트워크에 속한 모든 기기들이 공통적으로 갖는 주소를 의미한다. 예를 들어 가락마을 1501동이 존재하고, 호수가 102호라고 보았을때, 1501동은 네트워크 주소, 102호는 호스트 주소라고 볼 수 있다. 즉, 가락마을 1501동에 여러 세대가 살고 있듯이, 한 네트워크에도 여러 호스트들이 속할 수 있다.
01-2. AND 연산을 통한 네트워크 주소 구하기
IP 주소 : 192.168.0.10/24
11000000.10101000.00000000.00001010
서브넷 마스크 : 255.255.255.0
11111111.11111111.11111111.00000000
11000000.10101000.00000000.00001010 (IP 주소)
11111111.11111111.11111111.00000000 (서브넷 마스크)
-----------------------------------
11000000.10101000.00000000.00000000 (네트워크 주소)
192.168.0.0
1 x 128 + 1 x 64 + 0 x 32 + 0 x 16 + 0 x 8 + 0 x 4 + 0 x 2 + 0 x 1
= 128 + 64 = 192
네트워크 주소는 동일한 네트워크에 속한 여러 기기가 공유하는 공통된 주소이다. 이 네트워크 주소는 IP 주소와 서브넷 마스크를 AND 연산하여 구할 수 있다. 즉, IP 주소와 서브넷 마스크를 각각 이진수로 변환한 뒤, 각 비트를 AND 연산하면 네트워크 주소가 계산된다. 그럼 AND 연산에 대한 부분은 알아보았으니, CIDR라는 개념이 나오기 전에는 어떻게 네트워크를 구분하였는지에 대해 알아보자. 클래스풀, 클래스리스 네트워크다.
01-3. 클래스풀 네트워크(Classful Network) vs 클래스리스 네트워크(Classless Network)
“클래스풀 네트워크 시절에는, 네트워크를 나누는 Subnet 개념이 사실상 없었다”
# 전체 클래스 대역
클래스 A : 1.0.0.0 - 126.255.255.255 | 255.0.0.0 (/8) -> 약 1,670만개 IP
클래스 B : 128.0.0.0 - 191.255.255.255 | 255.255.0.0 (/16) -> 약 6.5만개 IP
클래스 C : 192.0.0.0 - 223.255.255.255 | 255.255.255.0 (/24) -> 약 256개
┌──────────────────────────────────────────────────────────┐
│ A 클래스 전체 주소 공간 │
│ 각 /8 단위 = 1,670만 개 IP (2²⁴) │
├──────────────────────────────────────────────────────────┤
│ 1.0.0.0/8 → [ A 회사 ] │
│ ├── 1.0.0.0 │
│ ├── 1.1.0.0 │
│ ├── 1.2.0.0 │
│ └── ... → 전부 A 회사가 소유 │
│ │
│ ⚠️ B 회사는 1.1.1.1, 1.10.10.10 같은 주소 사용 불가 │
│ ⚠️ 이미 A 회사가 1.0.0.0/8 전체를 보유했기 때문 │
├──────────────────────────────────────────────────────────┤
초창기에는 IPv4 주소를 클래스풀(Classful) 방식으로 할당했다. 이 방식은 IP 주소를 A, B, C 클래스와 같이 고정된 범위와 크기로 나누어 사용하는 구조였다. 예를 들어, 1.x.x.x ~ 126.x.x.x에 해당하는 주소는 A 클래스(/8), 128.x.x.x ~ 191.x.x.x는 B 클래스(/16), 192.x.x.x ~ 223.x.x.x는 C 클래스(/24)로 분류되며, IP 주소의 첫 번째 옥텟만으로도 클래스 구분이 가능하다는 특징이 있다.
하지만 이렇게 주소 범위와 크기가 고정된 방식은 여러 가지 문제를 낳았다. 예를 들어, A 회사는 IP가 200개만 필요하지만 /24 단위인 C 클래스 전체(256개)를 통째로 할당받아야 하고, 반대로 B 회사는 더 많은 IP가 필요해도 이미 A 클래스 대역이 다른 조직에 할당되어 있어 사용할 수 없는 상황이 발생할 수 있다.
이러한 비효율과 낭비 문제를 해결하기 위해, 이후에는 CIDR(Classless Inter-Domain Routing)이라는 유연한 주소 구분 방식이 도입되었고, 더불어 NAT(Network Address Translation)와 사설 IP 개념을 통해 IPv4 주소 고갈 문제에 대응하게 되었다.
01-4. CIDR(Classless Inter-Domain Routing)
Interactive visual CIDR and IP range calculator
Instantly compute and visualize CIDR subnets, IP ranges and masks. Free online tool for accurate network design, planning and IT education.
cidr.xyz
클래스풀(Classful) 방식은 IPv4 주소를 고정된 범위로 나누어 사용했기 때문에, IP가 낭비되거나 부족해지는 문제가 발생했다. 이러한 비효율을 해결하기 위해 CIDR(Classless Inter-Domain Routing) 개념이 도입되었다. CIDR은 이름 그대로 클래스를 사용하지 않는 방식으로, 필요한 크기만큼 IP 주소를 유연하게 할당할 수 있다는 장점이 있다.
CIDR는 IP 주소 뒤에 슬래시(/)와 숫자를 붙여 사용한다. 이 숫자는 네트워크 주소의 비트 수를 의미하며, 이를 통해 네트워크 주소와 호스트 주소를 구분할 수 있다. 이 때, 서브넷 마스크는 CIDR의 구분을 명확히 하기 위해 사용이 된다.
99. 참고 자료
서브넷 마스크 쉽게 이해하기
이번 문서에서는 컴퓨터 네트워크를 공부할 때 빠지지 않고 등장하는 개념인 서브넷 마스크에 대해 알아보겠습니다. Subnet Mask서브넷 마스크는 IP 주소와 비슷한 방식으로 접두어의 길이를 표시
se-juno.tistory.com
Subnet Mask란?
오늘의 나보다 성장한 내일의 나를 위해…. 서브넷 마스크(Subnet Mask)란? 서브넷 마스크의 개념에 앞서 서브네팅(Sub-netting)의 개념에 대해 먼저 알아야 한다. 서브넷팅은 하나의 주 네트워크(Major N
youngkyonyou.github.io
'Network > Network - Practice' 카테고리의 다른 글
| [Network] 공유기 설정 시 왜 포트포워딩을 해야할까? (0) | 2025.06.15 |
|---|---|
| [Network] HTTP / HTTPS / TLS+SSL / 대칭키+비대칭키 (0) | 2025.03.26 |
| [Network] DNS(Domain Name Server)란? (0) | 2025.03.07 |