CS/네트워크 기초

와이어샤크 (Wireshark)를 통한 DHCP 패킷 분서

koka 2021. 1. 27. 23:07

AP(Access Point) 를 탐색한다.

가까운 AP들이 자신의 범위에 있는 모든 노드에게 비컨(Beacon) 프레임을 브로드캐스팅하며 자신의 존재를 알리고 있기 때문에 클라이언트는 AP리스트를 확인하고 연결할 수 있다.

ex: wifi

이런 방식을 패시브 스캐닝 이라고한다 (Passive scanning)

 

반대로 노드가 AP를 탐색하는 방식을 액티브 스캐닝(Active scanning)이라고 한다

 

 흔히 사용하는 Wi-FI 통신이 이러한 IEEE 802.11 표준을 바탕으로 한다.

 

 

DHCP (Dynamic Host Configuration Protocol)

 

(1) 이미지의 1번째 라인 즉 DHCP Discover 은 클라이언트가 DHCP 서버를 찾기 위해 브로드캐스팅을 하는 패킷이다.

(2) 2번째 라인 DHCP Offer은 DHCP 서버에서 클라이언트에 할당할 IP Address와 다양한 네트워크 정보를 함께 전달하는 패킷이다.

(3) 3번째 라인 DHCP Request는 클라이언트가 DHCP의 존재를 알았고 DHCP서버가 클라이언트에 제공할 네트워크 정보 를 알았기때문에 최종적으로 사용할 네트워크 정보를 요청하는 패킷이다.

(4) 마지막 DHCP ACKRequest요청에 의해서 DHCP서버가 DHCP Offer에서 보낸 네트워크 정보대로 해당 클라이언트에 할당하는 패킷이다.

 

 

1. DHCP Discover

 

이 DHCP Discover 메시지는 클라이언트 68번 포트로 출발해 수신지의 67번 포트로 도착한다.

DHCP Discover 메시지는 UDP로 전송된다.

Src port 는 클라이언트의 출발 포트, Dst Port 는 수신지의 도착 포트를 말한다.

DHCP Discover는 DHCP 서버를 찾기위해 클라이언트에서 메시지를 뿌리는 것을 말한다.

브로드 캐스팅은 2계층에서 Mac 주소를 ff:ff:ff:ff:ff:ff 를 해당 클라이언트와 연결된 모든 노드에 메시지를 뿌리는 것을 브로드 캐스팅이라고한다. 목적지의 IP주소도 알 수 없기때문에 255.255.255.255로 설정한다.

Discover 메시지 브로드 캐스팅 시 DHCP 의 프로토콜 정보

브로드 캐스팅을 하면서 DHCP프로토콜의 헤더 정보에는 클라이언트의 MAC address 가 들어있는 것을 확인할 수 있다.

그리고 옵션에서 DHCP의 메시지타입 (Discover,offer,request,ack) 를 구별할 수 있다.

 

 

2. DHCP Offer

위 이미지를 보면 DHCP Offer 역시 브로드 캐스팅을 하기 위해 수신지의 맥주소를 (ff : ff : ff : ff : ff : ff) 을 주었다.

출발지는 EFMNetwo_b4:8f:54 맥 주소는 (90 : 9f : 33 : b4 : 8f : 54)로 잡혀있는데 이는 필자가 사용하는 IPTIME 공유기의 MAC주소 이다.

 

하단의 출발지의 주소는 192.168.0.1이고 목적지의 주소는 브로드캐스팅을 위해 255.255.255.255 로 잡혀있다.

DHCP Discover에서 출발지 포트가 68 이고 도착지의 포트가 67 이었다면 DHCP Offer 의 포트는 출발지가 67이고 도착지의 포트는 68 이다.

DHCP Offer 는 클라이언트에게 할당할 수 있는 IP Address 그리고 클라이언트의 맥주소와 DHCP 서버의 맥주소를

가지고 있다.

그리고 할당하는 DHCP 서버의 주소와 서브넷 마스크 등의 주소도 확인 할 수 있다.

 

 

주요 파라미터

  1. Server & Client MAC
  2. Server & Client IP
  3. Your IP: 단말에 할당(임대)할 IP 주소
  4. Subnet Mask (Option 1)
  5. Router (Option 3): 단말의 Default Gateway IP 주소
  6. DNS (Option 6): DNS 서버 IP 주소
  7. IP Lease Time (Option 51): 단말이 IP 주소(Your IP)를 사용(임대)할 수 있는 기간(시간)
  8. DHCP Server Identifier (Option 54): 본 메시지(DHCP Offer)를 보낸 DHCP 서버의 주소. 만약, 2개 이상의 DHCP 서버가 Offer 메세지를 보낼 수 있으므로 이를 해결하기 위해 각 DHCP 서버는 자신의 IP 주소를 본 필드에 넣어서 단말에 보냄

 

3. DHCP REQUEST

 

해당 부분은 Offer로 부터 받은 네트워크 정보들을 사용하겠다고 보내는 메세지 이다.

Offer에서 받은 Your Address 가 하단 Requested IP Address 부분에 들어가있는 것을 확인할 수 있다.

 

주요 파라미터

  1. Server & Client MAC
  2. Server & Client IP
  3. Requested IP Address (Option 50): 난 이 IP 주소를 사용하겠다. (DHCP Offer의 Your IP 주소가 여기에 들어감.)
  4. DHCP Server Identifier (Option 54): 2대 이상의 DHCP 서버가 DHCP Offer를 보낸 경우, Client는 가장 처음 응답이 온 DHCP 서버의 IP주소를 받게 된다. 그 서버의 IP 주소가 여기에 들어감. 즉, DHCP Server Identifier에 명시된 DHCP 서버에게 “DHCP Request” 메시지를 보내어 단말 IP 주소를 포함한 네트워크 정보를 얻는 것임

4. DHCP ACK

 

ACK는 DHCP Offer에서 보내준 네트워크 정보에 따라 클라이언트에 할당한다. 

 

주요 파라미터

  1. Server & Client MAC
  2. Server & Client IP
  3. Your IP: 단말에 할당(임대)할 IP 주소
  4. Subnet Mask (Option 1)
  5. Router (Option 3): 단말의 Default Gateway IP 주소
  6. DNS (Option 6): DNS 서버 IP 주소
  7. IP Lease Time (Option 51): 단말이 본 IP 주소(Your IP)를 사용(임대)할 수 있는 기간(시간)
  8. DHCP Server Identifier (Option 54): 본 메시지(ACK)를 보낸 DHCP Server의 주소