카페나 집에서 와이파이 비밀번호만 입력하면 별다른 설정 없이 즉시 인터넷에 연결된다.
이 편리함 뒤에는 공유기(게이트웨이) 안에서 실시간으로 동작하는 두 가지 핵심 네트워크 기술, DHCP와 NAT가 있다. 두 기술의 개념과 차이점, 그리고 실제로 패킷이 오고 갈 때 둘이 어떻게 맞물려 동작하는지 정리한다.
네트워크에 연결하려는 단말(스마트폰, 노트북 등)에 IP 주소, 서브넷 마스크, 기본 게이트웨이, DNS 서버 주소 등의 네트워크 설정 정보를 자동으로 할당해 주는 통신 규약이다.
만약 DHCP가 없다면, 새로운 와이파이에 연결할 때마다 관리자에게 비어 있는 IP를 물어보고 수동으로 192.168.0.x, 255.255.255.0 등을 일일이 타이핑해야 한다.
단말과 DHCP 서버(보통 공유기 내부 탑재)는 4단계의 UDP 브로드캐스트/유니캐스트 패킷을 주고받으며 IP를 대여한다.
[클라이언트(노트북)] [DHCP 서버(공유기)]
| |
| ------ 1. Discover (IP 가진 사람 있나요?) -> |
| |
| <-- 2. Offer (192.168.0.15 쓰실래요?) ----- |
| |
| ------ 3. Request (그 IP 쓰겠습니다!) ----> |
| |
| <-- 4. Ack (승인 완료, 대여 시작합니다) --- |
v v
255.255.255.255)로 외친다.192.168.0.15 주소를 특정 기간(임대 시간) 동안 쓰겠는가?"라고 제안한다.192.168.0.1), DNS 주소를 할당한다"며 최종 승인(Acknowledge)한다.사설 IP 주소를 공인 IP 주소로, 또는 공인 IP 주소를 사설 IP 주소로 상호 변환해 주는 기술이다.
RFC 1918에 정의된 사설 IP(192.168.x.x 등)는 인터넷 백본망에서 라우팅되지 않고 즉시 폐기된다. 따라서 사설 IP를 가진 내부 기기들이 네이버나 구글 같은 외부 웹 서버와 통신하려면 반드시 공유기를 통과할 때 공유기 자신이 가진 '단 하나의 공인 IP'로 출발지 주소를 바꿔야 한다.
실무에서 흔히 말하는 공유기의 NAT는 대부분 NAPT(Network Address Port Translation) 혹은 PAT(Port Address Translation)를 의미한다.
공인 IP는 1개뿐인데 스마트폰, 노트북, 태블릿 수십 대가 동시에 인터넷을 쓰려면 어떻게 구분할까? 바로 '포트 번호(Port Number)'를 이용해 구분한다.
| 내부 사설 IP & 포트 | 변환된 공인 IP & 포트 | 목적지 외부 서버 IP & 포트 |
|---|---|---|
192.168.0.10:51234 | 203.0.113.50:10001 | 142.250.207.46:443 (Google) |
192.168.0.20:48991 | 203.0.113.50:10002 | 223.130.195.95:443 (Naver) |
공유기는 자신이 변환한 내역을 'NAT 변환 테이블'이라는 메모리에 기록해 둔다. 나중에 구글에서 응답 데이터가 203.0.113.50:10001로 돌아오면, 테이블을 조회하여 "10001번 포트는 192.168.0.10의 노트북 거였지" 하고 본래 기기에게 패킷을 정확히 전달해 준다.
노트북을 켜고 웹 브라우저에서 google.com에 접속할 때 DHCP와 NAT가 맞물리는 전체 과정이다.
[노트북] [공유기 (Router)] [인터넷 백본 / 웹 서버]
| | |
| --- 1. DHCP DORA 요청 --------> | |
| <-- 2. 사설IP(192.168.0.5) 할당 -| |
| | |
| --- 3. HTTP 요청 전송 ---------> | |
| (출발지: 192.168.0.5:50000) | |
| | --- 4. NAT 변환 후 인터넷 전송 ---> |
| | (출발지: 203.0.113.1:20000) |
| | |
| | <-- 5. 응답 수신 ----------------- |
| | (목적지: 203.0.113.1:20000) |
| <-- 6. 역변환 후 노트북에 전달 --- | |
| (목적지: 192.168.0.5:50000) | |
192.168.0.5와 기본 게이트웨이 192.168.0.1을 부여받는다.출발지 IP: 192.168.0.5 / 출발지 Port: 50000 게이트웨이(공유기)로 보낸다.203.0.113.1)로, 출발지 포트를 20000으로 바꾼다.192.168.0.5:50000 203.0.113.1:20000)를 NAT 테이블에 기록하고 인터넷망으로 내보낸다.203.0.113.1:20000으로 웹페이지 데이터를 회신한다.20000은 사설망의 192.168.0.5:50000 기기에게 전달해야 하는 데이터"임을 확인하고, 목적지 IP를 다시 192.168.0.5로 변경하여 노트북에 전달한다.| 구분 | DHCP | NAT |
|---|---|---|
| 주요 목적 | 호스트 설정 자동화 (편의성) | IPv4 주소 절약 및 내부망 은닉 (효율성/보안) |
| 작업 위치 | 로컬 내부망 (LAN 진입 시점) | 내부망과 외부망의 경계 (Gateway) |
| 동작 방식 | IP 대여 및 회수 (DORA 4단계) | 패킷 헤더의 IP/Port 변환 및 테이블 관리 |
| 동작 시점 | 기기가 네트워크에 최초 접속할 때 | 패킷이 외부 인터넷으로 오고 갈 때마다 실시간으로 |