NAT

agnusdei·2025년 11월 7일

1. 전체 흐름 요약 (한눈에 보기)

단계장비/기능핵심 동작
1내 PC/폰IP 패킷 생성 (목적지 IP = naver.com)
2공유기 (홈 라우터)NAT → 공인 IP로 변환 + 라우팅 테이블 조회 → ISP 라우터로 송출
3ISP 엣지 라우터 (SKT/KT)CGNAT(옵션) + 라우팅 테이블 → 상위 백본 라우터
4ISP 백본 라우터BGP로 최적 경로 선택 → 국내 IX or 해외 Tier-1 백본
5국내 IX (KIX, DIX 등)국내 트래픽 교환
6Tier-1 백본 (KT, SKB, LGU+, 해외 Cogent, NTT 등)전 세계 백본망으로 전달
7목적지 ISP역방향 라우팅 → 목적지 서버

2. 단계별 상세 설명


1단계: 내 디바이스에서 IP 패킷 생성

내 폰 IP: 192.168.0.55 (사설)
목적지: naver.com → DNS → 223.130.195.200 (공인)
  1. 애플리케이션 → TCP SYN 패킷 생성
  2. 운영체제 IP 스택
    • 출발지 IP: 192.168.0.55
    • 목적지 IP: 223.130.195.200
    • TTL: 64
    • 프로토콜: TCP, 포트 443
  3. 패킷 캡슐화: Ethernet 프레임에 넣음
    • 출발지 MAC: 내 폰 MAC
    • 목적지 MAC: 기본 게이트웨이(공유기) MAC → ARP로 미리 알아냄

핵심: 내 디바이스는 목적지 IP만 알고 있음. 다음 홉은 기본 게이트웨이로 고정.


2단계: 공유기 (NAT + 라우팅)

공유기 LAN IP: 192.168.0.1
공유기 WAN IP: 211.34.56.78 (SKT 공인 IP)
  1. 패킷 도착 → Ethernet 프레임 벗김
  2. NAT 테이블 생성
    192.168.0.55:54321 → 211.34.56.78:54321 (목적지 223.130.195.200:443)
  3. 라우팅 테이블 조회
    0.0.0.0/0 via WAN 인터페이스 (ISP 라우터)
  4. 패킷 재캡슐화
    • 출발지 IP: 211.34.56.78
    • 목적지 IP: 223.130.195.200
    • 출발지 MAC: 공유기 MAC
    • 목적지 MAC: ISP 라우터 MAC (ARP로 획득)

핵심: 사설 IP → 공인 IP 변환이 여기서 일어남.
라우팅 판단은 단순: 모든 외부 트래픽 → WAN으로!


3단계: ISP 엣지 라우터 (CGNAT 포함)

ISP 엣지 IP: 211.34.56.1
CGNAT 풀: 211.34.100.0/20 (예: 16,000개 공인 IP)
  1. CGNAT (Carrier Grade NAT) – SKT/KT 모바일/광랜 모두 사용
    • 문제: 공인 IP 부족 → 1개 공인 IP로 수천 명 공유
    • NAT 테이블 예시
      211.34.56.78:54321 → 211.34.100.50:12345
  2. 라우팅 테이블 조회 (OSPF/iBGP)
    • 목적지 223.130.195.200국내 백본 방향
    • Next Hop: 백본 라우터 10.100.0.1

핵심: 수억 대 디바이스가 몇 개 안 되는 공인 IP로 통신 가능한 이유 = CGNAT
(1개 공인 IP당 60,000 포트 × 65,535 = 이론상 39억 세션 가능)


4단계: ISP 백본 라우터 (BGP 라우팅)

백본 라우터 A → B → C (10G/100G 광링크)
  1. BGP 테이블 예시
    223.130.195.0/24 via KIX (AS9318 SKB)  [Local Pref 200]
    223.130.195.0/24 via DIX (AS17858 LGU+) [Local Pref 150]
    → KIX 경로 선택 (최적)
  2. MPLS 라벨 스위칭 (옵션)
    • 패킷에 라벨 부착 → 라우터 간 고속 스위칭
  3. Next Hop: KIX(국내 인터넷 교환센터) 연결 라우터

핵심: 경로 최적화는 BGP 정책 + IGP(OSPF/IS-IS)

  • AS-Path, Local Pref, MED, Community 등으로 제어

5단계: 국내 IX (KIX, DIX, ANYIX)

KIX: SKT, KT, LGU+, 네이버, 카카오 등 직접 피어링
  1. 직접 피어링백본 거치지 않고 바로 전달
    • 네이버 서버가 KIX에 연결 → 1홉만에 도착 가능
  2. 라우팅: IX 스위치는 L2, 라우터는 BGP로 경로 교환

국내 트래픽 90% 이상이 IX에서 끝남 → 지연 1~3ms


6단계: 해외 백본 (Tier-1)

네이버가 아니라 구글 접속 시:

SKT → Cogent (미국) → Google (AS15169)
  1. BGP로 해외 경로 선택
    • 최단 AS-Path, 낮은 지연, 비용 최소화
  2. 해저 케이블 (예: EAC-C2, AAG) → 싱가포르 → 미국

7단계: 목적지 서버 도착

네이버 서버: 223.130.195.200
  1. 역방향 NAT 해제 (CGNAT → 사설 IP)
  2. TCP 3-way handshake 완료 → HTTPS 연결

3. 핵심 질문 답변 정리

질문답변
IP만 넣었는데 다음 라우터로 끝?아니요. 첫 홉만 공유기 → ISP → 백본 → IX → 목적지까지 수십 홉
어떻게 경로 판단?라우팅 테이블 + BGP 정책 (AS-Path, Local Pref 등)
백본망은 어떻게 판단?BGP로 경로 교환, IGP로 내부 최적화, MPLS로 고속 전달
우리나라 SKT/KT는 수억 대 디바이스를 몇 개 IP로?CGNAT → 1개 공인 IP당 수만~수십만 세션 동시 처리
국내 트래픽은 빠른 이유?KIX/DIX 같은 IX에서 직접 피어링 → 백본 우회

4. 실제 패킷 흐름 예시 (traceroute)

$ traceroute naver.com
 1  192.168.0.1          (공유기)
 2  211.34.56.1          (SKT 엣지)
 3  211.34.100.50        (CGNAT 후)
 4  10.100.0.1           (SKT 백본)
 5  203.233.100.1        (KIX)
 6  223.130.195.200      (네이버 서버)

5. 요약 다이어그램 (텍스트)

[내 폰 192.168.0.55]
       ↓ (ARP → 공유기 MAC)
[공유기 192.168.0.1 / 211.34.56.78] ← NAT
       ↓ (BGP → KIX)
[ISP 엣지 211.34.56.1] ← CGNAT
       ↓ (BGP)
[ISP 백본] → [KIX] → [네이버 서버 223.130.195.200]

profile
DevSecOps, Pentest, Cloud(OpenStack), Develop, Data Engineering, AI-Agent

0개의 댓글