[Network] 네트워크 계층 — IP 주소, 서브네팅, 라우팅, NAT, DHCP

📚 참조
① 혼자 공부하는 네트워크 복습 노트
② 강의 1편: youtu.be/c_4x5M_GwD8   ③ 강의 2편: youtu.be/k7G1wXTB8Fk

왜 네트워크 계층이 필요한가

데이터 링크 계층(이더넷·스위치)은 같은 LAN 안에서만 통신할 수 있습니다. 인터넷처럼 서로 다른 네트워크 간 통신에는 네트워크 계층(IP) 이 필요합니다.

계층 주소 체계 통신 범위 장비
데이터 링크 계층 MAC 주소 (48 bit) 동일 LAN 내 스위치
네트워크 계층 IP 주소 (32 bit) 다른 네트워크 간 라우터

네트워크 계층이 해결하는 세 가지 문제

문제 해결 방법
다른 네트워크 호스트의 주소를 어떻게 지정? IP 주소 (Addressing)
패킷이 어떤 경로로 가야 하나? 라우팅 (Routing)
링크 MTU보다 큰 패킷은? 단편화 (Fragmentation)

IPv4 주소 구조

IPv4는 32비트(4바이트) 주소 체계로, 8비트씩 4개의 옥텟(octet)으로 구분합니다.

IPv4 주소 구조

모든 IP 주소는 두 부분으로 구성됩니다.

부분 의미 예시 (192.168.1.100/24)
네트워크 주소 어느 네트워크에 속하는가 192.168.1
호스트 주소 해당 네트워크 안의 몇 번 호스트? 100

특수 주소 규칙

호스트 주소 비트 의미 예시 (/24)
모두 0 네트워크 주소 (네트워크 자체를 표현) 192.168.1.0
모두 1 브로드캐스트 주소 (전체 전송) 192.168.1.255
나머지 실제 호스트에 할당 가능 192.168.1.1 ~ .254

Classful vs CIDR

Classful 주소 체계 (과거)

초기 인터넷은 IP 대역을 클래스로 나눠 할당했습니다.

클래스 시작 비트 네트워크 비트 호스트 비트 대역
A 0… 8 24 0.x.x.x ~ 127.x.x.x
B 10… 16 16 128.x.x.x ~ 191.x.x.x
C 110… 24 8 192.x.x.x ~ 223.x.x.x

문제점: 호스트 300개가 필요한 기업에 클래스 B(65,534개)를 통째로 줘야 해서 IP 낭비가 극심했습니다.

CIDR (Classless Inter-Domain Routing) — 현재 표준

클래스 경계 없이 슬래시(/) 표기로 네트워크 크기를 자유롭게 지정합니다.

서브넷 마스크 — 핵심 개념

서브넷 마스크 개념

CIDR 표기 별 호스트 수 계산

CIDR 표기 서브넷 마스크 호스트 수 AWS 활용
/8 255.0.0.0 16,777,214 대규모 VPC
/16 255.255.0.0 65,534 VPC 전체 대역
/24 255.255.255.0 254 서브넷 하나
/28 255.255.255.240 14 소규모 서브넷

공식: 호스트 수 = 2^(32 - prefix) - 2 (네트워크·브로드캐스트 주소 제외)


공인 IP vs 사설 IP

구분 설명 할당
공인 IP 인터넷에서 전 세계 유일 ISP(통신사)가 할당
사설 IP 내부 네트워크 전용, 인터넷 직접 통신 불가 라우터(공유기)가 할당

RFC 1918 사설 IP 대역 — AWS VPC가 이 대역을 씁니다

대역 범위 비고
10.0.0.0/8 10.0.0.0 ~ 10.255.255.255 대규모 사설망, AWS VPC 권장
172.16.0.0/12 172.16.0.0 ~ 172.31.255.255 중규모 사설망
192.168.0.0/16 192.168.0.0 ~ 192.168.255.255 가정용 공유기 기본값
127.0.0.0/8 127.x.x.x 루프백 (자기 자신)

NAT (Network Address Translation)

사설 IP를 가진 내부 호스트가 인터넷과 통신할 때, 라우터(공유기)가 주소를 변환합니다.

NAT 변환 다이어그램

NAT 변환 테이블 예시

내부 IP 내부 포트 외부(공인) IP 외부 포트
10.0.0.5 45001 203.0.113.1 60001
10.0.0.6 45002 203.0.113.1 60002
10.0.0.7 45003 203.0.113.1 60003

NAPT: 하나의 공인 IP에 포트 번호를 다르게 부여해 여러 내부 호스트가 동시에 통신합니다. 가정 공유기, 기업 방화벽, AWS NAT Gateway 모두 이 방식입니다.

포트 포워딩 개념

요청 변환 결과
외부 → 공인IP:80 → 내부 192.168.1.10:8080
외부 → 공인IP:22 → 내부 192.168.1.20:22

라우팅 (Routing)

라우터: 서로 다른 네트워크를 연결하고, 패킷이 이동할 최적 경로를 결정하는 장비

라우팅 경로 다이어그램

라우팅 테이블 구조

수신지 네트워크 서브넷 마스크 Next Hop (다음 라우터) Metric
10.0.1.0 /24 10.0.0.1 (직접 연결) 0
192.168.0.0 /16 10.0.0.254 1
0.0.0.0 /0 (Default) 203.0.113.254 (ISP) 10

Default Route (0.0.0.0/0): 테이블에 일치하는 경로가 없을 때 사용하는 기본 경로

라우팅 프로토콜 비교

구분 프로토콜 방식 특징
내부(IGP) RIP 거리 벡터 홉 수 기준, 최대 15홉, 주기적 전체 업데이트
내부(IGP) OSPF 링크 상태 변경 시만 업데이트, 대규모 네트워크 적합
외부(EGP) BGP 경로 벡터 인터넷 백본 표준, AS 간 정책 기반 라우팅

ARP (Address Resolution Protocol)

네트워크 계층과 데이터 링크 계층을 연결합니다. IP 주소 → MAC 주소 변환이 목적입니다.

ARP 프로세스

ARP 테이블 예시

IP 주소 MAC 주소 타입
192.168.1.1 00:11:22:33:44:55 동적 (캐시)
192.168.1.5 aa:bb:cc:dd:ee:ff 동적 (캐시)
192.168.1.10 ff:ee:dd:cc:bb:aa 정적 (수동 설정)

DHCP (Dynamic Host Configuration Protocol)

클라이언트에게 IP 주소를 자동으로 할당합니다. (보통 라우터·공유기가 DHCP 서버 역할)

DHCP 프로세스

DHCP가 제공하는 정보

항목 예시
IP 주소 192.168.1.100
서브넷 마스크 255.255.255.0
기본 게이트웨이 192.168.1.1
DNS 서버 8.8.8.8
임대 기간 (Lease Time) 24시간

IP 단편화 (Fragmentation)

전송 패킷이 링크의 MTU(최대 전송 단위)보다 크면 분할합니다.

구분 크기
일반 이더넷 MTU 1500 byte
IP 헤더 20 byte
최대 페이로드 1480 byte

IPv4 헤더 중 단편화 관련 필드

필드 역할
Identifier 같은 원본 패킷 조각임을 식별하는 번호
Flag – DF (Don’t Fragment) 1이면 분할 금지 → 분할 필요 시 ICMP 오류 반환
Flag – MF (More Fragments) 1이면 뒤에 조각이 더 있음
Fragment Offset 원본에서 해당 조각이 시작하는 위치 (8바이트 단위)
TTL (Time To Live) 라우터 통과 시마다 -1, 0이 되면 패킷 폐기 (루프 방지)

AWS에서 네트워크 계층 개념 적용

개념 AWS 서비스 / 기능
사설 IP 대역 (RFC 1918) VPC CIDR (10.0.0.0/16 등)
서브네팅 (CIDR) 퍼블릭 서브넷 /24, 프라이빗 서브넷 /24
라우터 VPC Router (자동 생성됨)
라우팅 테이블 Route Table (서브넷별 경로 설정)
NAT NAT Gateway (프라이빗 서브넷 → 인터넷)
DHCP VPC DHCP Options Set
Default Route 0.0.0.0/0 → Internet Gateway 또는 NAT Gateway

VPC 서브넷 설계 예시

서브넷 CIDR 용도 인터넷 연결
Public Subnet 10.0.1.0/24 ALB, Bastion Host Internet Gateway (직접)
Private Subnet 10.0.2.0/24 EC2 앱 서버, RDS NAT Gateway (간접)

정리

개념 핵심
IPv4 32 bit, 네트워크 + 호스트 주소
CIDR /숫자로 서브넷 크기 표현, AWS VPC 필수 개념
사설 IP 10.x / 172.16-31.x / 192.168.x — 외부 직접 통신 불가
NAT 사설 IP ↔ 공인 IP 변환, AWS NAT Gateway 동일 원리
DHCP IP 자동 할당 (Discover → Offer → Request → ACK)
라우팅 최적 경로 결정, 라우팅 테이블 참조
ARP IP → MAC 주소 변환

다음 포스트: 전송 계층 — TCP, UDP, 3-way Handshake, 혼잡 제어