[Network] DHCP와 NAT

Ade·7일 전
post-thumbnail

카페나 집에서 와이파이 비밀번호만 입력하면 별다른 설정 없이 즉시 인터넷에 연결된다.

이 편리함 뒤에는 공유기(게이트웨이) 안에서 실시간으로 동작하는 두 가지 핵심 네트워크 기술, DHCP와 NAT가 있다. 두 기술의 개념과 차이점, 그리고 실제로 패킷이 오고 갈 때 둘이 어떻게 맞물려 동작하는지 정리한다.


1. 한 줄 요약: 둘의 역할 차이

  • DHCP (Dynamic Host Configuration Protocol):
    • "이 방(로컬 네트워크)에 들어온 기기에게 사용할 사설 IP 번호표를 자동으로 빌려주는 역할"
  • NAT (Network Address Translation):
    • "밖으로 나갈 수 없는 사설 IP를 가진 기기들을 대신해 공인 IP로 주소를 바꿔서 인터넷과 통신해 주는 통역/중계 역할"

2. DHCP (동적 호스트 설정 프로토콜)

2.1 개념

네트워크에 연결하려는 단말(스마트폰, 노트북 등)에 IP 주소, 서브넷 마스크, 기본 게이트웨이, DNS 서버 주소 등의 네트워크 설정 정보를 자동으로 할당해 주는 통신 규약이다.

만약 DHCP가 없다면, 새로운 와이파이에 연결할 때마다 관리자에게 비어 있는 IP를 물어보고 수동으로 192.168.0.x, 255.255.255.0 등을 일일이 타이핑해야 한다.

2.2 핵심 동작 과정 (DORA 프로세스)

단말과 DHCP 서버(보통 공유기 내부 탑재)는 4단계의 UDP 브로드캐스트/유니캐스트 패킷을 주고받으며 IP를 대여한다.

[클라이언트(노트북)]                          [DHCP 서버(공유기)]
        |                                            |
        | ------ 1. Discover (IP 가진 사람 있나요?) -> |
        |                                            |
        | <-- 2. Offer (192.168.0.15 쓰실래요?) ----- |
        |                                            |
        | ------ 3. Request (그 IP 쓰겠습니다!) ----> |
        |                                            |
        | <-- 4. Ack (승인 완료, 대여 시작합니다) --- |
        v                                            v
  1. Discover (탐색): 기기가 "나에게 IP를 줄 수 있는 DHCP 서버가 네트워크에 있는가?"라며 전체 브로드캐스트(255.255.255.255)로 외친다.
  2. Offer (제안): 공유기가 "내가 줄 수 있다. 192.168.0.15 주소를 특정 기간(임대 시간) 동안 쓰겠는가?"라고 제안한다.
  3. Request (요청): 기기가 "그 주소를 사용하겠다"고 확정 요청한다.
  4. Ack (승인/확인): 공유기가 "확인했다. 해당 IP와 게이트웨이(192.168.0.1), DNS 주소를 할당한다"며 최종 승인(Acknowledge)한다.

3. NAT (네트워크 주소 변환)

3.1 개념

사설 IP 주소를 공인 IP 주소로, 또는 공인 IP 주소를 사설 IP 주소로 상호 변환해 주는 기술이다.

RFC 1918에 정의된 사설 IP(192.168.x.x 등)는 인터넷 백본망에서 라우팅되지 않고 즉시 폐기된다. 따라서 사설 IP를 가진 내부 기기들이 네이버나 구글 같은 외부 웹 서버와 통신하려면 반드시 공유기를 통과할 때 공유기 자신이 가진 '단 하나의 공인 IP'로 출발지 주소를 바꿔야 한다.

3.2 포트 기반 다중 변환: NAPT (PAT)

실무에서 흔히 말하는 공유기의 NAT는 대부분 NAPT(Network Address Port Translation) 혹은 PAT(Port Address Translation)를 의미한다.

공인 IP는 1개뿐인데 스마트폰, 노트북, 태블릿 수십 대가 동시에 인터넷을 쓰려면 어떻게 구분할까? 바로 '포트 번호(Port Number)'를 이용해 구분한다.

  • 동작 원리 (NAT 변환 테이블 예시):
내부 사설 IP & 포트변환된 공인 IP & 포트목적지 외부 서버 IP & 포트
192.168.0.10:51234203.0.113.50:10001142.250.207.46:443 (Google)
192.168.0.20:48991203.0.113.50:10002223.130.195.95:443 (Naver)

공유기는 자신이 변환한 내역을 'NAT 변환 테이블'이라는 메모리에 기록해 둔다. 나중에 구글에서 응답 데이터가 203.0.113.50:10001로 돌아오면, 테이블을 조회하여 "10001번 포트는 192.168.0.10의 노트북 거였지" 하고 본래 기기에게 패킷을 정확히 전달해 준다.


4. 실제 인터넷 사용 흐름 (End-to-End 시나리오)

노트북을 켜고 웹 브라우저에서 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)   |                                   |
  1. [DHCP 단계] IP 획득
    • 노트북이 와이파이에 연결되면서 DHCP DORA 과정을 거쳐 공유기로부터 사설 IP 192.168.0.5와 기본 게이트웨이 192.168.0.1을 부여받는다.
  2. [송신 단계] 패킷 발송
    • 노트북이 구글 서버로 요청 패킷을 만든다.
    • 출발지 IP: 192.168.0.5 / 출발지 Port: 50000 →\rightarrow 게이트웨이(공유기)로 보낸다.
  3. [NAT 변환 단계] 주소 바꿔치기
    • 공유기가 패킷을 받아 외부로 보내려 보니 사설 IP다.
    • 공유기는 패킷의 출발지 IP를 자신의 공인 IP(203.0.113.1)로, 출발지 포트를 20000으로 바꾼다.
    • 이 매핑 정보(192.168.0.5:50000 ↔\leftrightarrow 203.0.113.1:20000)를 NAT 테이블에 기록하고 인터넷망으로 내보낸다.
  4. [응답 및 역변환 단계] 수신
    • 구글 서버는 203.0.113.1:20000으로 웹페이지 데이터를 회신한다.
    • 공유기가 응답 패킷을 받아 NAT 테이블을 확인한다.
    • "목적지 포트 20000은 사설망의 192.168.0.5:50000 기기에게 전달해야 하는 데이터"임을 확인하고, 목적지 IP를 다시 192.168.0.5로 변경하여 노트북에 전달한다.

5. 핵심 요약

구분DHCPNAT
주요 목적호스트 설정 자동화 (편의성)IPv4 주소 절약 및 내부망 은닉 (효율성/보안)
작업 위치로컬 내부망 (LAN 진입 시점)내부망과 외부망의 경계 (Gateway)
동작 방식IP 대여 및 회수 (DORA 4단계)패킷 헤더의 IP/Port 변환 및 테이블 관리
동작 시점기기가 네트워크에 최초 접속할 때패킷이 외부 인터넷으로 오고 갈 때마다 실시간으로
  • DHCP 덕분에 우리는 복잡한 IP 설정 없이 와이파이를 즉시 쓸 수 있고,
  • NAT 덕분에 전 세계적으로 부족한 공인 IPv4 주소를 아끼면서 수많은 내부 기기가 안전하게 인터넷을 동시에 누릴 수 있다.

0개의 댓글