[네트워크] DHCP와 NAT

임유진·2025년 8월 19일

클라우드/인프라

목록 보기
23/25

공유기의 주요 기능인 DHCP와 NAT

  • DHCP : 공유기에 연결하 컴퓨터에 자동으로 IP 주소 설정하는 기능
  • NAT : 공인 IP 하나를 여러 컴퓨터가 공유해서 사용할 수 있게 해주는 기능

DHCP(Dynamic Host Configuration Protocol)

: 컴퓨터와 공유기를 랜선을 통해 유선으로 연결하거나 와이파이를 통해 무선으로 연결하면 IP 주소를 자동으로 할당해주는 동적 호스트 구성 프로토콜

  • 공유기는 UDP 67번 포트를 사용하는 DHCP 서버가 기본 설치되어 있고, 공유기에 연결된 컴퓨터는 DHCP 클라이언트로 공유기와 통신
항목
전송 계층UDP
포트Client 68 ↔ Server 67
초기 통신L2/L3 브로드캐스트 (MAC ff:ff:ff:ff:ff:ff, IP 0.0.0.0 → 255.255.255.255)
핵심 옵션(일부)53: Message Type, 50: Requested IP, 54: Server Identifier, 51: Lease Time, 1: Subnet Mask, 3: Router(GW), 6: DNS, 58/59: T1/T2, 55: Parameter Request List, 82: Relay Agent Info

공유기 통신 흐름 : DORA

Client (0.0.0.0:68, chaddr=클라이언트MAC)
   └─DISCOVER────────────────────────────────────────────▶ 255.255.255.255:67
         (옵션: 53=Discover, 55=PRL, 61=Client-ID, 12=HostName ...)
Server(s) (UDP 67)
   ◀─OFFER───────────────────────────────────────────────┘ (브로드캐스트 또는 유니캐스트)
         (옵션: 53=Offer, 54=Server-ID, 51=Lease, 1/3/6/15..., yiaddr=제안IP)
Client
   └─REQUEST────────────────────────────────────────────▶ 255.255.255.255:67
         (옵션: 53=Request, 50=Requested-IP, 54=선택한 Server-ID)
선택된 Server
   ◀─ACK─────────────────────────────────────────────────┘ (브로드캐스트 또는 유니캐스트)
         (옵션: 53=ACK, 51=Lease, 1/3/6/15..., yiaddr=최종IP, 58/59=T1/T2)

여러 서버가 OFFER를 보낼 수 있고, 클라이언트는 하나를 선택해 REQUEST에서 Server Identifier(54)로 명시

1. Discover (클라이언트 → 모든 곳)

계층출발지도착지주요 내용
Ethernet클라이언트 MACff:ff:ff:ff:ff:ff (브로드캐스트)아직 서버 MAC 모름
IPv40.0.0.0255.255.255.255아직 IP 없음, 전체 브로드캐스트
UDP포트 68 (클라이언트)포트 67 (서버)DHCP 전용 포트
DHCPXID(트랜잭션 ID), 클라이언트 MAC-메시지 타입=Discover, 원하는 옵션 요청
  • DHCP 프로토콜에 각 단계의 통신 이어갈 수 있게 랜덤한 값의 트랜잭션 ID 넣음 (Offer에서 어디서 보냈는지 알기 위해)

2. Offer (서버 → 클라이언트)

계층출발지도착지주요 내용
Ethernet서버 MAC브로드캐스트 또는 클라이언트 MAC아직 클라이언트 주소 모름
IPv4서버 IP255.255.255.255 yiaddr(제안 IP) 유니캐스트아직 클라이언트 주소 모름
UDP포트 67 (서버)포트 68 (클라이언트)
DHCPyiaddr=제안된 IP-메시지 타입=Offer, Server ID, 임대 시간, 게이트웨이, DNS 등 포함
  • 클라이언트의 Broadcast flag가 1이면 브로드 캐스트, 0이면 유니캐스트(클라이언트 MAC 주소로 바로 응답)

3. Request (클라이언트 → 모든 곳)

계층출발지도착지주요 내용
Ethernet클라이언트 MACff:ff:ff:ff:ff:ff (브로드캐스트)Offer 여러 개 올수도 있음
IPv40.0.0.0 (초기) / 현재 IP(갱신 시)255.255.255.255 (초기) / 서버 IP(갱신 시)
UDP포트 68 (클라이언트)포트 67 (서버)
DHCP옵션=Requested IP, Server ID-메시지 타입=Request, 클라이언트 MAC 주소와 사용할 IP 주소, 공유기 IP 주소, 추가 정보
  • 클라이언트가 Broadcast flag를 꺼놓거나 Discover 단계에서 클라이언트의 MAC 주소를 chaddr 필드로 알게되면 유니캐스트가 되어 IPv4에 서버 IP 담을수도 있음. 단 원칙은 브로드캐스트.
  • IP 갱신할 때도 서버IP 담을수도 있음.

4. Ack (서버 → 클라이언트)

계층출발지도착지주요 내용
Ethernet서버 MAC클라이언트 MAC (또는 브로드캐스트)
IPv4서버 IP255.255.255.255 또는 클라이언트 IP
UDP포트 67 (서버)포트 68 (클라이언트)
DHCPyiaddr=최종 IP-메시지 타입=ACK, 트랜잭션 ID, 추가 정보
  • 서버는 클라이언트가 사용할 IP 주소를 품절 처리 함

NAT(Network Address Translation)

: 사설 IP 주소(Private IP)를 공인 IP 주소(Public IP)로 변환하는 기술

  • 필요성
    • IPv4 주소 부족 문제 해결
    • 내부 네트워크 구조 숨김(보안 강화)
    • 다수의 내부 호스트가 하나의 공인 IP로 인터넷 사용 가능

NAT 종류

구분정적 NAT (Static NAT)동적 NAT (Dynamic NAT)PAT (Port Address Translation, Overload NAT)
특징1:1 매핑1:N 매핑 (풀에서 자동 할당)N:1 매핑 (여러 사설 IP → 하나의 공인 IP, Port로 구분)
매핑 방식특정 사설 IP ↔ 특정 공인 IP 고정사설 IP ↔ 공인 IP 풀 중 하나 동적 할당사설 IP ↔ 공인 IP 하나, Port 번호로 식별
공인 IP 수요내부 호스트 수와 동일내부 호스트 수 ≤ 공인 IP 풀 크기공인 IP 1개만 있어도 가능
보안성비교적 낮음 (항상 고정 노출)상대적으로 높음가장 높음 (내부 IP 식별 어려움)
사용 예시서버(웹, 메일) 운영기업 내부 직원이 인터넷 접속 시가정용 인터넷, 소규모 회사
예시항상 192.168.1.10 → 210.10.10.10192.168.1.20 → 210.10.10.11
다른 때는 192.168.1.20 → 210.10.10.12
192.168.1.20:1025 → 210.10.10.11:30001
192.168.1.30:1026 → 210.10.10.11:30002

Port Forwarding (포트포워딩, Port Mapping, Destination NAT(DNAT))

: 외부(공인 IP)에서 특정 포트 번호로 들어온 요청을 내부(사설 IP)의 특정 장치/포트로 전달해주는 기능

  • 주요 목적 : 내부 서버(웹, 게임, CCTV 등)에 외부에서 접근 가능하도록 함

특징

  • 동작 방향 : 외부 → 내부 (공인 IP:Port → 사설 IP:Port)
  • NAT의 한 종류(DNAT)로, NAT가 내부 → 외부 변환이라면 포트포워딩은 외부 → 내부 변환에 초점
  • 활용 예시 : 집 PC 웹 서버, CCTV 원격 접속, NAS 접속, 게임 서버 공개
  • 장점 : 내부망 보호하면서 필요한 서비스만 외부에 노출 가능
  • 단점 : 잘못 설정 시 보안 위험 (해커가 포트를 통해 내부 서버 접근 시도 가능)

동작 예시

  1. 외부 접근 : 203.0.113.10:8080
  2. 공유기(NAT 장비) 설정 확인 : 포트포워딩 규칙: 8080 → 192.168.1.100:80
  3. 내부 서버로 전달 : 192.168.1.100:80 (웹 서버)
  • 외부 사용자는 http://203.0.113.10:8080 접속만 알면 됨 → 공유기가 내부 웹 서버로 연결해줌

복습 문제

Q1. DHCP를 이용한 통신 과정 중 첫 번째로, 클라이언트가 같은 LAN에 존재하는 DHCP 서버를 찾기 위해 브로드캐스트로 보내는 패킷의 이름은 무엇인가? Discover

Q2. DHCP를 이용한 통신 과정 중 두번째이자 서버가 클라이언트에게 받은 첫 번째 패킷에 대한 응답으로, 클라이언트가 사용할 IP, 서브넷 마스크, 공유기의 IP, DNS 서버의 IP, IP 주소를 사용할 수 있는 임대 기간 등을 브로드캐스트로 알려주는 패킷의 이름은 무엇인가? Offer

Q3. DHCP를 이용한 통신 과정 중 세 번째이자 서버가 보낸 두 번째 패킷에 대한 응답으로, 클라이언트가 서버에게 받은 IP 주소를 사용하겠다는 요청을 보내는 패킷의 이름은 무엇인가? Request

Q4. DHCP를 이용한 통신 과정 중 네 번째로 서버가 클라이언트에게 IP 주소를 사용해도 된다는 의미로 보내는 패킷의 이름은 무엇인가? ACK

Q5. 서버를 실행 중인 컴퓨터가 고정된 IP 주소를 사용해야 하는 이유는 무엇인가? 변경된 서버의 IP 주소를 클라이언트가 몰라서 클라이언트가 서버에 접속할 수 없게 됨

Q6. 사설 IP와 공인 IP를 각각 일대일로 미리 설정해두는 NAT 방식은 무엇인가? 정적 NAT

Q7. 사설 IP 주소를 사용하는 컴퓨터가 공인 IP 주소 목록에서 사용 가능한 하나의 공인 IP 주소를 필요할 때마다 할당받아 사용하는 NAT 방식은 무엇인가? 동적 NAT

Q8. 사설 IP 주소를 사용하는 컴퓨터가 하나의 공인 IP 주소를 공유하되, 각 컴퓨터는 고유한 포트 번호로 구분하여 사용하는 NAT 방식은 무엇인가? PAT

Q9. 공유기에 연결해서 사설 IP 주소를 사용하는 컴퓨터에 서버 프로그램이 실행중이다. 이 서버 프로그램에 외부의 클라이언트가 접속할 수 있게 하려면 공유기에 무엇을 설정해야 하는가? 포트포워딩

Q10. 공유기의 공인 IP 주소가 123.123.123.123이고, 다음처럼 포트포워딩 설정이 되었을 때 외부의 클라이언트가 서버에 접속하기 위해서 입력해야 하는 IP 주소와 포트 번호는 무엇인가? 123.123.123.123:1234

내부 IP외부 포트내부 포트
100.100.100.100TCP(1234~1234)TCP(80~80)
profile
말하는 고구마

0개의 댓글