Ctrl + Shift + ESC

와이어샤크로 DHCP 프로토콜 DORA 살펴보기 본문

Network

와이어샤크로 DHCP 프로토콜 DORA 살펴보기

단축키실행해보세요 2025. 11. 11. 23:58

실습 동기

https://github.com/esc-beep/TIL/blob/main/Network/3.IP-%EC%A3%BC%EC%86%8C.md

 

TIL/Network/3.IP-주소.md at main · esc-beep/TIL

Today I Learned. Contribute to esc-beep/TIL development by creating an account on GitHub.

github.com

저번처럼 인터넷 계층에 대한 내용을 이론뿐만 아니라 실습으로, 직접 패킷을 잡아서 헤더에 들어 있는 정보들을 확인해보면 좋을 것 같다는 생각이 들어서 실습을 진행하였다.

이번에는 특별히 다룬 내용 중 DHCP 프로토콜에 대해서 살펴보기로 했다.

 

DHCP 동작

DHCP는 4단계 절차로 IP 주소를 자동으로 할당하고, 이 과정을 DORA라고 부른다.

출처: https://www.linkedin.com/pulse/how-computer-gets-dhcp-address-dora-process-yogesh-sawant/

단계 메시지 이름 송신자 → 수신자 내용
1 Discover 클라이언트 → 브로드캐스트 “누가 나한테 IP 줄 사람 있나요?”
2 Offer 서버 → 브로드캐스트 “이 IP 써도 돼요.”
3 Request 클라이언트 → 브로드캐스트 “그 IP 주세요.”
4 ACK 서버 → 브로드캐스트 “좋아요, 이 IP 당신 겁니다.”

 

각 메시지의 앞글자를 따서 DORA이다.

 

WireShark로 패킷 캡처

DHCP 프로토콜의 패킷을 찾기 위해 와이어샤크 캡처를 시작한 뒤 wifi를 해제하고 5초 후에 다시 연결했다.

그 결과 DHCP Request와 DHCP ACK를 확인할 수 있었다.

 

DHCP Request

 

Request 패킷의 내용을 정리하면 다음과 같다.

구분 필드명 의미
Ethernet  Src MAC XX:XX:XX:XX:XX:XX 내(클라이언트)의 물리 주소
  Dst MAC ff:ff:ff:ff:ff:ff 브로드캐스트 전송 (모든 장치에게 전달)
IP Src IP 0.0.0.0 아직 IP를 할당받지 않은 상태
  Dst IP 255.255.255.255 DHCP 서버를 찾기 위한 브로드캐스트 목적지
UDP Src Port 68 클라이언트 측 DHCP 포트
  Dst Port 67 서버 측 DHCP 포트
DHCP Message Type Request (3) “IP 주소를 요청합니다”
  Transaction ID 0x330226e0 이 요청 세션을 구분하는 식별자
  Client MAC Address XX:XX:XX:XX:XX:XX 내 장치의 식별 주소
  Requested IP Address
(Option 50)
172.20.7.17 서버에게 이 IP를 달라고 요청
  IP Lease Time (Option 51) 90 days (7776000s) 이 IP를 90일간 사용하고 싶다는 의미
  Host Name (Option 12) Mac 클라이언트 이름
  Parameter Request List
(Option 55)
Subnet Mask, Router, DNS 등 클라이언트가 서버에게 받고 싶은 설정 목록
  Client Identifier
(Option 61)
Ethernet XX:XX:XX:XX:XX:XX 클라이언트를 식별하는 고유 ID

 

해당 패킷을 통해 MAC 주소가 XX:XX:XX:XX:XX:XX인 장치가 이전에 사용했던 IP 172.20.7.17을 계속 사용하기 위해 DHCP Request를 보냈다는 것을 알 수 있다.

DHCP는 초기 요청 시 브로드캐스트를 사용하므로 Src: 0.0.0.0 → Dst: 255.255.255.255인 것을 확인할 수 있다.

 

DHCP ACK

 

ACK 패킷의 내용을 정리하면 다음과 같다.

구분 필드 설명
프레임 Frame 70 342 bytes 실제 네트워크 상의 전송 크기
Ethernet II Src MAC YY:YY:YY:YY:YY:YY DHCP 서버(또는 라우터)의 MAC 주소
  Dst MAC XX:XX:XX:XX:XX:XX 클라이언트(나의 PC) MAC 주소
IP Src IP 172.20.7.254 DHCP 서버의 IP 주소
  Dst IP 172.20.7.17 클라이언트에게 할당된 IP 주소
UDP Src Port 67 DHCP 서버 포트 (DHCP Server Port)
  Dst Port 68 DHCP 클라이언트 포트
BOOTP Message type Boot Reply (2) 서버에서 클라이언트로 가는 응답
  Transaction ID 0x330226e0 클라이언트의 요청(Request)과 일치해야 함
  Client IP address 0.0.0.0 아직 설정되지 않은 상태 (DHCP 단계에서 표준)
  Your IP address 172.20.7.17 클라이언트에게 할당된 최종 IP 주소
  Relay agent IP 172.20.7.254 DHCP 릴레이(게이트웨이 역할을 하는 장비)
  Client MAC address XX:XX:XX:XX:XX:XX 내 컴퓨터의 MAC 주소
DHCP Option 53 ACK (5) DHCP 메시지 타입 (요청 승인)
  Option 54 DHCP Server Identifier: 203.252.192.1 IP를 할당한 DHCP 서버 주소
  Option 51 Lease Time: 30분 (1800초) IP 임대 시간 (만료 후 갱신 필요)
  Option 1 Subnet Mask: 255.255.255.0 서브넷 마스크
  Option 3 Router: 172.20.7.254 기본 게이트웨이 주소
  Option 6 DNS: 168.126.63.1 DNS 서버 주소
  Option 255 End DHCP 옵션 종료

 

 

해당 패킷을 통해 DHCP 서버(203.252.192.1)가 클라이언트(XX:XX:XX:XX:XX:XX)에게 IP 주소 172.20.7.17을 30분 동안 임대함을 승인한 것을 확인할 수 있다.

해당 패킷에서는 기본 게이트웨이(172.20.7.254), DNS(168.126.63.1), 서브넷 마스크(255.255.255.0) 등의 네트워크 설정 정보를 함께 전송한다.

ACK 패킷은 DHCP 프로세스의 마지막 단계로, 클라이언트는 이후 이 정보를 사용해 네트워크 통신을 수행한다.

 

 

DHCP Discover, Offer의 행방

그렇다면 DHCP의 DORA중 Discover, Offer은 어디로 간 것일까?

 

DHCP는 IP가 이미 있을 때, 처음부터 다시 DORA를 전부 수행하지 않고 단축된 과정인 Request → ACK만 수행한다.

이미 해당 Wifi에 연결한 정보가 있어 IP가 할당되어 있기 때문에 갱신만 일어난 것이다.

 

따라서 Discover, Offer를 하기 위해서는 현재 IP를 완전히 반납하고 처음부터 재요청을 해야 한다.

MAC 기준 다음 명령어를 입력하면 된다.

sudo ipconfig set en0 DHCP

 

와이어샤크에서 DHCP Discover, Offer, Request, ACK 과정이 일어나는 것을 확인할 수 있다.