학습 목표
네트워크 계층(IP) 이 호스트 간 패킷 전달을 담당함을 설명할 수 있다.
IPv4 주소·CIDR·서브넷 마스크로 네트워크·호스트 구분을 설명할 수 있다.
라우터가 포워딩 테이블로 다음 홉을 고르는 방식을 설명할 수 있다.
ip route, ip addr로 로컬 라우팅을 확인할 수 있다.
문제 상황
ping 192.168.1.50은 되는데ping 10.0.1.20은 Network unreachable- 같은 LAN인지 다른 서브넷인지 모른다
- 서버에 IP를
192.168.1.10/24로 잡았는데 게이트웨이를 비웠다- 외부(8.8.8.8)로 나갈 경로가 없다
kubectl·Terraform에/16,/24가 나온다- 몇 개 호스트까지인지 감이 안 온다
- TCP는 포트까지 봤다 — 그 전에 패킷이 어느 호스트로 가는지는 IP다
전송 계층(9~12편)은 프로세스(포트) 까지. 호스트(머신) 까지는 네트워크 계층 — IP와 라우팅이다.
1. 네트워크 계층과 IP
IP(Internet Protocol) 는 호스트 간 데이터그램을 best-effort로 전달한다. TCP/UDP 세그먼트는 IP 패킷(payload) 안에 실린다.
| 계층 | 식별·전달 단위 |
|---|---|
| 애플리케이션 | 메시지 (HTTP, DNS …) |
| 전송 | 세그먼트/데이터그램 + 포트 |
| 네트워크 | IP 패킷 + IP 주소 |
| 링크 | 프레임 + MAC (이후 편) |
- IPv4 — 32비트 주소 (본 편), IPv6 — 128비트 (15편 개요)
- 비연결·비신뢰 — 순서·유실은 상위(TCP) 또는 앱이 처리
- TTL — 홉마다 감소, 0이면 폐기 — 루프 방지
2. IPv4 주소
주소는 32비트를 8비트씩 네 덩어리로 표기한다 (점십진).

| 표기 | 예 |
|---|---|
| 점십진 | 192.168.1.10 |
| 이진 | 11000000.10101000.00000001.00001010 |
| 의미 | 인터넷에서 호스트(인터페이스) 식별 |
- 한 호스트에 NIC 여러 개 → IP 여러 개 (인터페이스마다)
- 0.0.0.0, 255.255.255.255 등 특수 주소 — 브로드캐스트·미지정
- 공인 IP vs 사설 IP (RFC 1918) — 15편 NAT와 연결
3. CIDR과 서브넷
주소 공간을 네트워크 prefix + 호스트 ID로 나눈다. CIDR은 /숫자로 prefix 길이를 적는다.

| 표기 | 의미 |
|---|---|
| 192.168.1.0/24 | 상위 24비트가 네트워크, 하위 8비트 호스트 |
| 마스크 | /24 → 255.255.255.0 |
| 네트워크 주소 | 호스트 비트 전부 0 — 192.168.1.0 |
| 브로드캐스트 | 호스트 비트 전부 1 — 192.168.1.255 |
| 사용 가능 호스트 | 보통 .1 ~ .254 (254개, /24 예) |
192.168.1.10/24
네트워크: 192.168.1.0/24
호스트: 10 (마지막 옥텟)
같은 서브넷: 192.168.1.0 ~ 192.168.1.255 (개념상)
| prefix | 호스트 비트 | 대략 호스트 수 (/24 기준 개념) |
|---|---|---|
| /32 | 0 | 1 (호스트 1개) |
| /24 | 8 | ~254 |
| /16 | 16 | ~65k |
| /8 | 24 | ~16M |
- 서브넷팅 — 하나의 블록을 여러 /24 등으로 쪼개 운영·보안·라우팅 단순화
- 클라우드 VPC
10.0.0.0/16안에 서브넷10.0.1.0/24— 중첩 prefix
4. 같은 서브넷 vs 라우터 경유
목적지 IP가 내 인터페이스와 같은 prefix면 직접 전달(링크 계층, ARP — 16편). 다르면 기본 게이트웨이(라우터) 로 보낸다.

Host A 192.168.1.10/24
| dest 192.168.1.50 → same subnet → direct (ARP)
| dest 10.0.1.20 → via default gw 192.168.1.1 (router)
Router 192.168.1.1 | 10.0.1.1
| forwarding table lookup → next hop / interface
Host B 10.0.1.20/24
| 단계 | 동작 |
|---|---|
| 호스트 | dest IP와 자기 mask로 같은 네트워크인지 판단 |
| 직접 | 같은 서브넷 — ARP로 MAC 해석 후 프레임 전송 |
| 간접 | default route 또는 specific route의 next hop으로 IP 패킷 |
| 라우터 | 포워딩 테이블에서 longest prefix match 로 출력 인터페이스·다음 홉 결정 |
- Longest prefix match —
0.0.0.0/0(default)보다10.0.1.0/24가 더 구체적이면 후자 선택 - 라우팅 프로토콜(OSPF, BGP)은 테이블을 채우는 방법 — 여기서는 포워딩만
5. 포워딩 테이블 (개념)
라우터·호스트는 목적지 prefix → next hop / interface 매핑을 갖는다.
| Destination | Next hop | Interface | 설명 |
|---|---|---|---|
192.168.1.0/24 |
— |
eth0 |
직접 연결 서브넷 |
10.0.1.0/24 |
— |
eth1 |
직접 연결 |
0.0.0.0/0 |
203.0.113.1 |
eth1 |
default — 그 외 전부 |
- 호스트는 보통 connected + default via 게이트웨이 두 줄이면 충분
- 라우터는 수천·수십만 prefix (BGP) — ASIC 하드웨어 포워딩
6. 관측
# 인터페이스 IP·prefix
ip -4 addr show eth0
# inet 192.168.1.10/24 ...
# 라우팅 테이블
ip route show
# 192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.10
# default via 192.168.1.1 dev eth0
# 특정 목적지 경로 (Linux)
ip route get 10.0.1.20
# macOS
netstat -rn -f inet | head
route -n get 10.0.1.20
scope link— 같은 링크(서브넷) 직접via— 다음 홉 라우터 IP- Metric — 여러 경로 시 우선순위 (작을수록 선호)
7. TCP/UDP와의 연결
App → TCP/UDP (src/dst port) → IP (src/dst addr) → link (MAC)
curl https://93.184.216.34— DNS 후 dest IP가 라우팅 입력- Connection refused — IP는 도착, 포트에 프로세스 없음 (9편)
- No route to host / Network unreachable — 라우팅 단계 실패
8. 정리
- IP는 호스트(인터페이스) 간 데이터그램 전달 — 32비트 IPv4 주소
- CIDR
/n— 네트워크·호스트 구분, 서브넷 운영 단위 - 같은 prefix → 직접, 다르면 게이트웨이·라우터 포워딩
- Longest prefix match — 구체적인 route가 우선
다음에 다룰 것
- ICMP과 진단
- ping, traceroute, Path MTU
해당 내용은 Computer Networking: A Top-Down Approach, 8/E (James Kurose, Keith Ross) 의 내용을 기반으로 합니다.