IPv4 네트워킹 핵심 정리 — 서브넷, CIDR, NAT, ARP, DHCP
IP 클래스부터 서브넷 마스킹, CIDR, 사설/공인 IP, NAT, ARP, DHCP까지 IPv4 네트워킹의 핵심 개념을 한 번에 정리합니다.
IP 주소란?
인터넷에서 컴퓨터를 찾아가려면 주소가 필요하다. IP(Internet Protocol) 주소는 네트워크 상의 장치를 식별하는 고유 번호다.
현실 세계 비유로 하면:
- IP 주소 = 건물 주소 (어디에 있는지)
- 포트 = 호수 (그 건물 안 몇 호인지)
- MAC 주소 = 주민등록번호 (전세계 고유 식별자)
IPv4 주소는 32비트로 구성되며, 사람이 읽기 쉽도록 8비트씩 4덩어리로 나눠 10진수로 표기한다.
11000000.10101000.00000001.00000001
192 . 168 . 1 . 1
각 덩어리는 0~255 사이 값이며, 전체 주소 공간은 약 43억 개다.
IP 클래스 (Class A/B/C/D/E)
IPv4가 처음 설계될 때는 주소를 클래스 단위로 구분해 네트워크 규모를 나눴다.
| 클래스 | 시작 비트 | 범위 | 기본 서브넷 마스크 | 용도 |
|---|---|---|---|---|
| A | 0xxxxxxx |
0.0.0.0 ~ 127.255.255.255 | 255.0.0.0 (/8) | 대규모 조직 |
| B | 10xxxxxx |
128.0.0.0 ~ 191.255.255.255 | 255.255.0.0 (/16) | 중규모 조직 |
| C | 110xxxxx |
192.0.0.0 ~ 223.255.255.255 | 255.255.255.0 (/24) | 소규모 조직 |
| D | 1110xxxx |
224.0.0.0 ~ 239.255.255.255 | — | 멀티캐스트 |
| E | 1111xxxx |
240.0.0.0 ~ 255.255.255.255 | — | 예약/실험용 |
클래스의 문제점
클래스 기반 주소 할당은 낭비가 심했다. 예를 들어, 직원이 300명인 회사에 Class B를 할당하면 65,534개 주소 중 300개만 쓰고 나머지 65,000개를 낭비한다.
이 문제를 해결하기 위해 나온 것이 CIDR이다.
서브넷 마스크와 서브넷팅
서브넷 마스크란?
IP 주소를 네트워크 부분과 호스트 부분으로 나누는 값이다.
IP 주소: 192.168.1.100
서브넷 마스크: 255.255.255.0
2진수:
IP: 11000000.10101000.00000001.01100100
마스크: 11111111.11111111.11111111.00000000
|←─── 네트워크 부분 ───→||← 호스트→|
마스크에서 1인 비트 영역 → 네트워크 주소
마스크에서 0인 비트 영역 → 호스트 주소
네트워크 IP 구하기
IP 주소와 서브넷 마스크를 AND 연산한다.
192.168.1.100 11000000.10101000.00000001.01100100
AND
255.255.255.0 11111111.11111111.11111111.00000000
─────────────────────────────────────────────────
192.168.1.0 11000000.10101000.00000001.00000000
→ 네트워크 IP: 192.168.1.0
브로드캐스트 IP 구하기
네트워크 IP에서 호스트 부분을 전부 1로 바꾼다.
네트워크: 192.168.1.0 11000000.10101000.00000001.00000000
호스트 비트를 모두 1로: 11000000.10101000.00000001.11111111
브로드캐스트: 192.168.1.255
→ 브로드캐스트 IP: 192.168.1.255
사용 가능한 호스트 IP
네트워크 IP(첫 번째)와 브로드캐스트 IP(마지막)를 제외한 나머지가 실제 장치에 할당 가능한 주소다.
192.168.1.0 → 네트워크 주소 (사용 불가)
192.168.1.1 → 사용 가능
192.168.1.2 → 사용 가능
...
192.168.1.254 → 사용 가능
192.168.1.255 → 브로드캐스트 (사용 불가)
→ /24 서브넷의 사용 가능한 호스트 수: 254개 (256 - 2)
CIDR (Classless Inter-Domain Routing)
클래스 없이 프리픽스 길이로 네트워크 크기를 자유롭게 지정하는 방식이다.
/숫자 형태로 표기하며, 숫자는 서브넷 마스크에서 1인 비트 수를 의미한다.
192.168.1.0/24
↑↑
24개의 비트가 네트워크 부분
= 서브넷 마스크 255.255.255.0 과 동일
자주 쓰는 CIDR 정리
| CIDR | 서브넷 마스크 | 호스트 수 | 용도 |
|---|---|---|---|
| /8 | 255.0.0.0 | 16,777,214 | Class A 대역 |
| /16 | 255.255.0.0 | 65,534 | Class B 대역 |
| /24 | 255.255.255.0 | 254 | 일반 가정/소규모 망 |
| /28 | 255.255.255.240 | 14 | AWS 서브넷 등 |
| /30 | 255.255.255.252 | 2 | P2P 링크 |
| /32 | 255.255.255.255 | 1 | 단일 호스트 지정 |
호스트 수 계산 공식
사용 가능한 호스트 수 = 2^(32 - CIDR) - 2
예) /24 → 2^(32-24) - 2 = 2^8 - 2 = 256 - 2 = 254개
예) /28 → 2^(32-28) - 2 = 2^4 - 2 = 16 - 2 = 14개
사설 IP vs 공인 IP
공인 IP (Public IP)
인터넷에서 직접 사용하는 주소. 전 세계에서 유일하며, ISP(인터넷 서비스 제공자)가 할당한다.
사설 IP (Private IP)
내부 네트워크(가정, 회사 내부)에서만 사용하는 주소. 인터넷에서는 직접 라우팅되지 않는다.
RFC 1918에서 예약된 사설 IP 대역:
| 클래스 | 사설 IP 범위 | CIDR |
|---|---|---|
| A | 10.0.0.0 ~ 10.255.255.255 | 10.0.0.0/8 |
| B | 172.16.0.0 ~ 172.31.255.255 | 172.16.0.0/12 |
| C | 192.168.0.0 ~ 192.168.255.255 | 192.168.0.0/16 |
[인터넷]
│
[공유기] ── 공인 IP: 210.120.5.10 (1개)
│
├── PC1: 192.168.0.2 (사설 IP)
├── PC2: 192.168.0.3 (사설 IP)
└── 폰: 192.168.0.4 (사설 IP)
집에서 공유기를 사용하면, 공유기 하나가 공인 IP 1개를 받고 내부 장치들은 사설 IP를 나눠 갖는 구조다.
특수 목적 주소
| 주소 | 용도 |
|---|---|
| 127.0.0.1 | 루프백(loopback) — 자기 자신 |
| 0.0.0.0 | 미지정(모든 인터페이스) |
| 169.254.0.0/16 | APIPA — DHCP 실패 시 자동 할당 |
NAT (Network Address Translation)
NAT이란?
사설 IP로 인터넷에 접근하려면 공인 IP로 바꿔줘야 한다. 이 변환을 담당하는 것이 NAT이다.
PC (192.168.0.2) → 공유기 → 변환 → (210.120.5.10) → 인터넷
동작 원리
공유기(NAT 장치)는 NAT 테이블을 유지한다.
[나가는 패킷]
출발지: 192.168.0.2:5000 → 변환 → 210.120.5.10:40001
[NAT 테이블]
내부 IP:포트 외부 IP:포트
192.168.0.2:5000 ↔ 210.120.5.10:40001
192.168.0.3:6000 ↔ 210.120.5.10:40002
[들어오는 패킷]
목적지: 210.120.5.10:40001 → 변환 → 192.168.0.2:5000
NAT의 종류
| 종류 | 설명 |
|---|---|
| SNAT (Source NAT) | 출발지 IP 변환. 가정에서 쓰는 일반적인 방식 |
| DNAT (Destination NAT) | 목적지 IP 변환. 포트 포워딩에 사용 |
| PAT (Port Address Translation) | 포트까지 변환. NAPT라고도 하며, 가장 흔한 방식 |
ARP (Address Resolution Protocol)
ARP가 왜 필요한가?
네트워크에서 실제로 데이터를 주고받으려면 IP 주소만으론 부족하다. 물리적인 네트워크 통신은 MAC 주소를 기반으로 한다.
비유: IP 주소는 "서울시 강남구 테헤란로 123", MAC 주소는 "그 건물 진짜 GPS 좌표"
같은 네트워크 안에서 통신할 때 "이 IP 주소의 MAC 주소가 뭐지?" 를 물어보는 프로토콜이 ARP다.
ARP 동작 흐름
1. PC-A가 192.168.0.5의 MAC 주소를 모름
2. ARP Request 브로드캐스트 → "192.168.0.5는 누구냐?"
3. 192.168.0.5가 ARP Reply 유니캐스트 → "나야, MAC은 AA:BB:CC:DD:EE:FF"
4. PC-A가 ARP 캐시에 저장해 다음 통신에 재사용
[PC-A] ──ARP Request(브로드캐스트)──▶ [모든 장치]
◀──ARP Reply(유니캐스트)──────── [192.168.0.5]
ARP 캐시 확인
# Mac / Linux
arp -a
# 출력 예시
? (192.168.0.1) at a0:b1:c2:d3:e4:f5 on en0
? (192.168.0.5) at aa:bb:cc:dd:ee:ff on en0
ARP 스푸핑 (보안 위협)
ARP 프로토콜은 인증이 없어서, 악의적인 장치가 가짜 ARP Reply를 보내 트래픽을 가로챌 수 있다. 이를 ARP 스푸핑(ARP Spoofing) 또는 ARP 포이즈닝이라 한다.
[PC-A] ──ARP Request──▶ [모든 장치]
◀──가짜 Reply────── [공격자] "192.168.0.1은 내 MAC이야"
→ PC-A의 게이트웨이 트래픽이 공격자에게 전달됨
DHCP (Dynamic Host Configuration Protocol)
DHCP가 없다면?
모든 장치에 IP 주소를 사람이 직접 하나씩 설정해야 한다. 집에 기기가 10개라면 10번의 수동 설정이 필요하고, 대규모 네트워크에선 불가능하다.
DHCP란?
네트워크에 접속하는 장치에게 IP 주소, 서브넷 마스크, 게이트웨이, DNS 서버를 자동으로 할당해주는 프로토콜이다.
DHCP DORA 과정
[장치] [DHCP 서버 (공유기)]
│──1. Discover (브로드캐스트)──▶│ "IP 주소 주는 서버 있나요?"
│◀──2. Offer ─────────────────│ "192.168.0.10 어때요?"
│──3. Request (브로드캐스트)──▶│ "192.168.0.10 쓸게요!"
│◀──4. Acknowledge ───────────│ "확인! 24시간 사용 가능"
| 단계 | 이름 | 설명 |
|---|---|---|
| D | Discover | 클라이언트가 DHCP 서버를 찾는 브로드캐스트 |
| O | Offer | 서버가 사용 가능한 IP를 제안 |
| R | Request | 클라이언트가 제안된 IP를 요청 |
| A | Acknowledge | 서버가 IP 할당을 확정 (리스 시간 포함) |
DHCP가 전달하는 정보
IP 주소: 192.168.0.10
서브넷 마스크: 255.255.255.0
게이트웨이: 192.168.0.1
DNS 서버: 8.8.8.8, 8.8.4.4
리스 시간: 86400초 (24시간)
리스 시간이 만료되기 전에 갱신(Renew)하지 않으면 IP 주소가 회수된다.
전체 흐름 요약
가정에서 google.com에 접속할 때 일어나는 일:
1. [DHCP] 공유기에서 사설 IP 192.168.0.10 자동 할당
2. [DNS] google.com → 142.250.X.X 로 IP 변환
3. [ARP] 게이트웨이(공유기) MAC 주소 조회
4. [NAT] 192.168.0.10 → 공인 IP로 변환 후 인터넷 전송
5. [서브넷] 구글 서버의 네트워크 경로 계산 후 라우팅
정리
| 개념 | 핵심 한 줄 |
|---|---|
| IP 클래스 | A/B/C 클래스로 네트워크 규모 구분, 비효율로 CIDR에 자리 내줌 |
| 서브넷 마스크 | IP를 네트워크 부분과 호스트 부분으로 나누는 값 |
| 네트워크 IP | IP AND 마스크 연산으로 구함 |
| 브로드캐스트 IP | 네트워크 IP에서 호스트 비트를 전부 1로 채운 것 |
| CIDR | /숫자로 서브넷 크기를 자유롭게 지정하는 방식 |
| 사설 IP | 내부망 전용, 인터넷에서 직접 라우팅 불가 |
| 공인 IP | 인터넷에서 유일, ISP가 할당 |
| NAT | 사설 IP ↔ 공인 IP 변환, 포트까지 변환하면 PAT |
| ARP | IP 주소로 MAC 주소를 알아내는 프로토콜 |
| DHCP | IP/마스크/게이트웨이/DNS를 자동 할당 (DORA 과정) |