Analysis

기본적인 DHCP Packet 분석

DarkSoul.Story 2013. 1. 30. 11:24
반응형

DHCP 다양한 설정 옵션에 대한  연결형 서비스를 제공하기 위한 전송으로 UDP 사용한다.

DHCP 통신에서 사용되는 기본 포트는 68번과 67번을 사용한다. 68번은 클라이언트 프로세스가 사용하는 포트이며, 67번은서버 데몬이 사용하는 포트 이다.

 

DHCP 패킷은 기본적으로 다음과 같이 구성되어 있다.

 


최초 DHCP 요청의 경우에는 위와 같은 형태로 전송이 되지만 이미 한번 받았던 DHCP IP 존재할 경우에 클라이언트는DHCP Request 부터 시도를 하게 된다물론 서브  에서는 DHCP Request 요청이 들어와도 IP 이미 사용 되고 있다면, DHCP NAK(Negative Acknowledgment) 패킷을 전송하여클라이언트로 하여금  시도를 하게끔 한다.



[그림.2 실제 DHCP 메시지]

 

1. DHCP Discover

클라이언트는 67 포트로 사용 가능한 DHCP 서버를 찾기 위해 브로드캐스트 전송

 

2. DHCP Offer

클라이언트가 보낸 DHCP Discover 대한 응답

 

3. DHCP Request

클라이언트는 DHCP Offer 보낸 DHCP 서버 중에서 하나를 선택하고, DHCP Request 선택된 서버에게 구성 매개변수를반환하면서 응답 한다.

 

4. DHCP Ack

DHCP Request 대해 응답하며 요청된 매개변수를 확인 하며, 클라이언트에게 IP 할당 한다. 

 

위의 DHCP 메시지 유형 이외에 9가지의 DHCP 메시지 유형이 존재하며, http://www.iana.org/assignments/bootp-dhcp-parameters/bootp-dhcp-parameters.xml DHCP Message Type 53 Values 부분을 참고 하기 바란다.

 

이제 본격적으로 DHCP 패킷 구조를 살펴 보자.


[그림.3 DHCP Offer 패킷 내용]

 

패킷 구조는 모든 DHCP 메시지 유형이 동일 하며, 각 필드에 채워지는 내용이 약간씩 차이가 난다.

 

1. Message Type

이 필드는 연산 필드(Opcode Field)라고도 하며, 현재 패킷의 유형을 나타낸다.

이 필드가 1이면 Request 패킷을 의미 하고, 2이면 Reply 패킷을 의미한다.

 

2. Hardware Type

이 필드는 하드웨어 유형을 정의하며, ARP Hardware Type 정의와 일치 한다.

 

3. Hardware address length

이 필드는 하드웨어 주소의 길이를 나타내며, 6은 이더넷 주소라는 것을 의미한다.

 

4. Hops

이 필드는 DHCP 서버에 도착하기 위해서 통과하는 네트워크의 수를 정의한다.

 

5. Transaction ID

이 필드는 클라이언트에 의해 Request Packet에 채워지고, Reply Packet에서 자신이 보낸 Request에 대한 Reply인지를 구별하는데 사용된다.

 

7. Seconds elapsed

이 필드는 클라이언트가 새로운 IP를 요청하거나 IP 갱신 요청을 시작했을 때부터 경과한 시간을 나타낸다. (기본 단위 : )

 

8. Bootp flags

IP 스택이 구성되기 전 클라이언트가 유니캐스트 또는 브로드캐스트 MAC 패킷을 받을지를 정의한다.

 

9. Client IP address

이 필드는 클라이언트가 DHCP 서버로부터 할당 받은 IP 주소로 채워진다. 만약 IP를 할당 받지 못한 경우 이 필드는 모두 0으로 채워진다.

 

10. Your(Client) IP address

이 필드는 클라이언트의 Request에 의해 DHCP 서버에서 할당하는 IP를 나타낸다. 오직 DHCP 서버만 이 필드를 채운다.

 

11. Next server IP address

이 필드는 중계 Agent가 사용될 때 DHCP 서버의 주소가 채워진다.

 

12. Relay agent IP address

이 필드는 중계 Agent를 사용할 때 DHCP 중계 Agent IP로 채워진다.

 

13. Client MAC address

이 필드는 클라이언트의 MAC 주소를 표시한다. 물론 서버는 다른 프레임에서 이 정보를 얻을 수 있지만, Client MAC address를 표시 함으로써 이 정보에 대한 신뢰성을 확보할 수 있다.

 

14. Server host name

이 필드는 DHCP 서버의 Host name을 포함하며, 반드시 포함해야 하는 것은 아니다.

 

15. Boot file name

이 필드는 Boot File의 이름을 포함하며, 반드시 포함 해야 하는 것은 아니다.

 

16. Magic cookie

이 필드는 다음 데이터 유형을 나타낸다. 헥사 값 63 82 53 63 값은 데이터가 DHCP임을 의미한다.

 

17. Option

DHCP 서버에 IP주소와 설정 요청을 하는데 사용하며, 클라이언트에 응답한다. 아래 표는 Option내용을 일부 나열한 것이며,더 자세한 내용은 http://www.iana.org/assignments/bootp-dhcp-parameters/bootp-dhcp-parameters.xmlBOOTP Vendor Extensions and DHCP Options 부분을 참고 하기 바란다.

 

Tag

Name

0

Pad

1

Subnet Mask

2

Time Offset

3

Router

4

Time Server

5

Name Server

6

Domain Server

[표.1 Option 값]


반응형

'Analysis' 카테고리의 다른 글

기본적인 FTP Packet 분석  (0) 2013.01.30
기본적인 TCP Packet 분석  (0) 2013.01.30
기본적인 DNS Packet 분석  (2) 2013.01.30
기본적인 UDP Packet 분석  (0) 2013.01.30
기본적인 ICMP Packet 분석  (0) 2013.01.30