서브넷팅 설명
Source: Dev.to
번역을 진행하려면 번역하고자 하는 전체 텍스트를 제공해 주시겠어요? 텍스트를 주시면 요청하신 대로 한국어로 번역해 드리겠습니다.
서브넷팅이란?
큰 아파트 건물을 여러 층으로 나누는 것과 같습니다. 각 층(서브넷)에는 자체 번호가 매겨진 유닛(호스트)이 있고, 건물 주소(네트워크 ID)는 당신이 어느 층에 있는지를 식별합니다.
IPv4 주소 구조
예시 주소: 192.168.1.10
모든 IPv4 주소는 두 개의 논리적 부분으로 나뉩니다:
- 네트워크 부분 – 서브넷 마스크에 의해 결정됩니다.
- 호스트 부분 – 나머지 비트들.
/24 마스크는 처음 24비트가 네트워크 부분이고 마지막 8비트가 호스트용이라는 의미입니다.
IP: 192.168.1.10
The Subnet Mask
255.255.255.0 = /24
장치는 서브넷 마스크를 사용하여 목적지 IP가 동일한 로컬 네트워크에 있는지(직접 전송) 또는 다른 네트워크에 있는지(게이트웨이 라우터로 전송) 결정합니다.
장치가 AND 연산을 사용하는 방법
1 AND 1 = 1- 어떤 값도
AND 0 = 0
AND 연산의 결과는 네트워크 ID입니다.
Source IP: 192.168.1.10
Binary: 11000000.10101000.00000001.00001010
Mask: 11111111.11111111.11111111.00000000
Result: 11000000.10101000.00000001.00000000 → 192.168.1.0 (Network ID)
장치는 양쪽 소스와 목적지 IP에 대해 이 AND 연산을 수행합니다.
- 두 결과가 일치하면, 장치들은 같은 서브넷에 있으며 직접 통신합니다.
- 결과가 다르면, 패킷은 기본 게이트웨이로 전송됩니다.
이 논리는 하드웨어에서 와이어 속도로 모든 패킷에 대해 수행됩니다.
Network ID와 Broadcast Address
- Network ID – 모든 호스트 비트가
0. - Broadcast Address – 모든 호스트 비트가
1(서브넷의 마지막 주소).
사용 가능한 호스트 주소
Usable Hosts = 2^H − 2
여기서 H는 서브넷팅 후 남은 호스트 비트 수를 의미합니다.
예시: /24
- H = 8 →
2^8 − 2 = 254사용 가능한 호스트 (주소192.168.1.1–192.168.1.254).
서브넷팅 공식
- 필요한 서브넷 수:
2^N여기서 N = 호스트 부분에서 빌린 비트 수. - 서브넷당 호스트 수:
2^H − 2여기서 H = 남은 호스트 비트.
원래 마스크의 호스트 부분에서 N 비트를 빌리면 프리픽스 길이가 N만큼 증가합니다. 남은 H 비트는 각 서브넷이 수용할 수 있는 호스트 수를 정의합니다.
비트 빌리기 — 실제 의미
Original network: 192.168.1.0/24
Borrow 2 bits:
11111111.11111111.11111111.11000000
- 2비트를 빌리면
2² = 4개의 서브넷이 생성됩니다. - 각 서브넷은
2^6 − 2 = 62개의 사용 가능한 호스트를 가집니다.
서브넷이 많아질수록 서브넷당 호스트 수는 줄어듭니다. 이것이 기본적인 트레이드오프입니다.
Block Size — 가장 유용한 트릭
Block Size = 256 − (interesting octet value)
interesting octet 은 서브넷 마스크가 255(전체 네트워크)도 아니고 0(전체 호스트)도 아닌 옥텟을 말합니다.
예시: /26
- 마스크:
255.255.255.192 - 흥미로운 옥텟 값:
192 - 블록 크기:
256 − 192 = 64
서브넷 시작 주소: 0, 64, 128, 192
일반적인 블록 크기 암기
| CIDR | Block Size |
|---|---|
| /25 | 128 |
| /26 | 64 |
| /27 | 32 |
| /28 | 16 |
| /29 | 8 |
| /30 | 4 |
이 값들은 거의 모든 서브넷팅 문제에 등장합니다.
Subnet 문제 해결 — 단계별
6단계 방법
- 문제에서 프리픽스 길이(
/x)를 확인한다. - 흥미로운 옥텟을 찾는다.
- 블록 크기를 계산한다.
- 서브넷 범위를 나열한다.
- 주어진 호스트 주소가 포함된 범위를 결정한다.
- Network ID, Broadcast 주소, 사용 가능한 호스트 범위를 읽는다.
예제 1 — /26 서브넷
문제: IP 주소 192.168.1.70/26이 주어졌을 때, Network ID, Broadcast 주소, 사용 가능한 호스트 범위를 찾으라.
| Step | Action |
|---|---|
| 1 | Prefix = /26 |
| 2 | Interesting octet = 4번째 옥텟 (마스크 192) |
| 3 | Block size = 256 − 192 = 64 |
| 4 | Subnet ranges: 0‑63, 64‑127, 128‑191, 192‑255 |
| 5 | 70은 64‑127 범위에 속한다 |
| 6 | Network ID: 192.168.1.64Broadcast: 192.168.1.127Usable hosts: 192.168.1.65 – 192.168.1.126 |
예제 2 — /22 서브넷
문제: IP 주소 10.205.79.90/22이 주어졌을 때, Network ID, Broadcast 주소, 호스트 범위를 찾으라.
| Step | Action |
|---|---|
| 1 | Prefix = /22 |
| 2 | Interesting octet = 3번째 옥텟 (마스크 252) |
| 3 | Block size = 256 − 252 = 4 |
| 4 | 3번째 옥텟의 서브넷 범위: 0‑3, 4‑7, 8‑11, …, 76‑79, 80‑83, … |
| 5 | 3번째 옥텟 79는 76‑79 범위에 속한다 |
| 6 | Network ID: 10.205.76.0Broadcast: 10.205.79.255Usable hosts: 10.205.76.1 – 10.205.79.254 |
흥미로운 옥텟이 마지막 옥텟이 아닌 경우(
/22와 같이), 전체 호스트 범위는 마지막 옥텟의 여러 값을 포함한다. 네트워크는(block_start).0에서 시작하고(block_end).255에서 끝난다.
예제 3 — /24를 분할하기
문제: 회사가 네트워크 192.168.1.0/24를 가지고 있으며 최소 3개의 서브넷이 필요하다.
| Step | Action |
|---|---|
| 1 | 빌릴 비트 수 결정: ≥3 서브넷 필요 → 2비트 빌림 (2² = 4 서브넷) |
| 2 | 새로운 마스크: /26 → 255.255.255.192 |
| 3 | 사용 가능한 서브넷 나열: 192.168.1.0/26, 192.168.1.64/26, 192.168.1.128/26, 192.168.1.192/26 |
결과: 4개의 서브넷(하나 여분) 각각 62개의 사용 가능한 호스트를 지원한다. 세 개를 부서에 할당하고 하나는 여분으로 유지한다.
CIDR Notation
192.168.1.0/24 means 24 network bits and 8 host bits.
CIDR (Classless Inter‑Domain Routing) is used everywhere—routing tables, firewall rules, cloud security groups, and IP allocation. Understanding /x notation instantly tells you the block size and host capacity of any subnet.
빠른 참고표
| CIDR | Subnet Mask | Block Size | Total IPs | Usable Hosts |
|---|---|---|---|---|
| /24 | 255.255.255.0 | 256 | 256 | 254 |
| /25 | 255.255.255.128 | 128 | 128 | 126 |
| /26 | 255.255.255.192 | 64 | 64 | 62 |
| /27 | 255.255.255.224 | 32 | 32 | 30 |
| /28 | 255.255.255.240 | 16 | 16 | 14 |
| /29 | 255.255.255.248 | 8 | 8 | 6 |
| /30 | 255.255.255.252 | 4 | 4 | 2 |
Key Takeaways
- 서브넷팅은 호스트 비트를 빌려 하나의 네트워크를 여러 개로 나눕니다 – 서브넷이 많을수록 서브넷당 호스트 수가 줄어듭니다.
- 장치는 비트 단위 AND를 사용하여 서브넷을 찾습니다:
IP AND Mask = Network ID. - 네트워크 ID(모든 호스트 비트가
0)와 브로드캐스트(모든 호스트 비트가1)는 항상 예약되어 있으며 호스트에 할당될 수 없습니다. - 블록 크기 =
256 − 마스크 옥텟 값– 서브넷 범위를 찾는 가장 빠른 도구입니다. - 사용 가능한 호스트 =
2^H − 2여기서 H는 호스트 비트 수입니다. - CIDR
/x표기법은 네트워크 비트가 몇 비트인지 알려주며, 나머지는 호스트 비트입니다. - 서브넷을 설계할 때는 먼저 네트워크 수를 우선시하고, 그 다음 네트워크당 호스트 수를 고려합니다.