핵심 인사이트 (3줄 요약)
- 본질: NAT(Network Address Translation)는 전 세계적으로 고갈된 IPv4 주소를 아껴 쓰기 위해, 회사나 집 내부에서는 무료인 '사설 IP'를 마음껏 쓰고 인터넷(외부)으로 나갈 때만 문지기 장비(공유기)가 '공인 IP'로 주소를 변조(번역)해 주는 IP 신분 세탁 기술이다.
- 보안 효과 (격리): 외부의 해커가 우리 집 IP(공인 IP)를 털어서 공격을 들어와도, 이 IP는 공유기가 가진 껍데기 주소일 뿐 내 방에 있는 노트북의 진짜 주소(사설 IP)는 숨겨져 있으므로 의도치 않은 강력한 방화벽(보안) 효과를 얻는다.
- NAT 테이블: 공유기는 패킷의 출발지 주소를 공인 IP로 바꿔서 내보낼 때, 내부 메모리(NAT Table)에 "아까 사설 IP 192.168.0.5가 네이버에 요청했었지"라는 장부를 꼼꼼히 기록해 두었다가, 네이버에서 답장이 오면 장부를 보고 원래의 노트북으로 되돌려준다.
Ⅰ. 개요 및 필요성 (Context & Necessity)
-
개념: 라우터나 방화벽 등의 장비가 패킷의 IP 헤더 안에 있는 출발지(Source) 또는 목적지(Destination) IP 주소를 다른 주소로 바꿔치기하는 기술이다 (RFC 1631).
-
필요성: 집에 스마트폰 4대, 노트북 2대, 스마트 TV 1대 등 인터넷 기기가 총 7대다. 만약 NAT가 없었다면 통신사(KT)에 전화를 걸어 "인터넷 회선 7개 깔아주시고 공인 IP 7개 주세요! 매달 14만 원 낼게요!"라고 해야 했다 (실제로 90년대 말엔 그랬다). 하지만 공유기(NAT 장비)가 등장하면서, 1만 원짜리 회선(공인 IP 1개)만 끌고 오면 집 안에서는 수십 대가 공유기 뒤에 숨어서 인터넷을 즐길 수 있게 되었다.
-
💡 비유: NAT는 거대한 회사 건물 1층의 **"대표 번호 안내 데스크"**와 같습니다. 외부(인터넷)에서 전화를 걸 때는 무조건 대표 번호(공인 IP) 하나로만 걸어야 하고, 안내 데스크 직원이 전화를 받아서 몇 팀 누구(사설 IP)를 찾는지 물어보고 내부 내선 번호로 돌려줍니다. 밖에서는 직원 1000명의 직통 번호를 아무도 알 수 없습니다.
📢 섹션 요약 비유: 사설 IP를 단 노트북이 인터넷이라는 클럽에 들어가려면 신분증(공인 IP)이 필요합니다. NAT 장비(공유기)는 문 앞에서 10명의 노트북들에게 자신이 가진 단 1개의 "합법적 신분증(공인 IP)"을 돌려가며 빌려주어 모두가 클럽에 입장할 수 있게 해주는 기막힌 브로커입니다.
Ⅱ. NAT의 주소 변환 과정과 내부 맵핑 (Deep Dive)
1. 나갈 때 (Inside Local ──▶ Inside Global)
내 방 노트북(192.168.0.5)에서 구글(8.8.8.8)로 웹 브라우저를 켰다.
- 패킷 헤더:
[출발지: 192.168.0.5, 목적지: 8.8.8.8] - 공유기가 이 패킷을 받는다. "이 녀석, 이 사설 IP로 나가면 인터넷 미아 되는데? 내 통신사 주소로 바꿔치기해야겠다!"
- 공유기는 출발지 주소를 자신의 공인 IP(
211.200.x.x)로 지우개로 지우고 덮어쓴다. - 그리고 즉시 수첩(NAT Table)을 꺼내 적는다. "수첩 기록: 192.168.0.5가 구글로 나갔음."
2. 들어올 때 (Outside Global ──▶ Inside Local)
구글 서버(8.8.8.8)는 요청을 받고 응답 패킷을 보낸다. 구글은 공유기 뒤에 누가 있는지 알 바가 아니므로 목적지를 그냥 공유기(211.200.x.x)로 적어서 쏜다.
- 패킷 헤더:
[출발지: 8.8.8.8, 목적지: 211.200.x.x] - 공유기가 이 패킷을 받는다. 자기가 웹서핑을 한 적이 없으니 수첩(NAT Table)을 뒤져본다.
- "아! 아까 192.168.0.5 녀석이 구글에 요청한 거였지!"
- 공유기는 목적지 주소를 다시
192.168.0.5로 지우고 덮어쓴 뒤 거실의 노트북으로 쏴준다.
┌─────────────────────────────────────────────────────────────┐
│ NAT의 IP 헤더 바꿔치기 마법 도식 │
├─────────────────────────────────────────────────────────────┤
│ │
│ [ 내 노트북 ] ── (192.168.0.5 -> 8.8.8.8) ──┐ │
│ ▼ │
│ [ 거실 공유기 ] │
│ (211.200.x.x 공인IP) │
│ │ │
│ ┌─── (211.200.x.x -> 8.8.8.8 로 변조!) ───┘ │
│ ▼ │
│ [ 인터넷 ] ── (구글 서버 도착) ─────────────────────────┘ │
│ │
│ ▶ 핵심: 노트북은 공유기가 주소를 바꾼 사실조차 모른다 (투명성). │
│ 구글은 공유기 뒤에 노트북이 숨어있다는 사실을 전혀 모른다. │
└─────────────────────────────────────────────────────────────┘
3. 용어 정리 (Cisco 표준 기준)
시험에 자주 나오는 악랄한 용어 매칭이다. (라우터 안쪽이냐 바깥쪽이냐 기준)
- Inside Local: 우리 집 안에서 쓰는 내 진짜 사설 주소 (예:
192.168.0.5) - Inside Global: 외부 인터넷 망에서 바라보는 우리 집의 변조된 공인 주소 (예: 공유기 주소
211.200.x.x) - Outside Global: 구글 서버의 진짜 공인 주소 (예:
8.8.8.8) - Outside Local: 아주 특이한 룰 설정 시, 우리 집에서 바라볼 때 조작되어 보이는 구글 서버의 주소.
📢 섹션 요약 비유: NAT 테이블(수첩)은 중국집 사장님의 **"배달 장부"**와 같습니다. 전단지(패킷)에는 사장님 번호(공인 IP)만 적혀 있어서 손님(구글)은 사장님에게만 전화를 걸 수 있습니다. 사장님은 전화를 받으면 배달 장부를 보고 "아! 이 짜장면은 철가방 A(사설 IP 5번)가 배달 갔던 집이네!" 하고 내부 직원에게 연결해 줍니다.