(4) DHCP Packet 설명 1

지난 시간에 이어서 Wireshark로 Capture한 Packet에 대한 설명을 하면서 DHCP가 어떻게 동작하는지 알아보겠습니다.


 

DHCP가 무엇인지 잘 모르신다면 아래의 링크를 확인해주세요.

DHCP 시작하기 !  – https://jinheeahn.wordpress.com/2015/04/29/dhcp시작하기!

DHCP 전체 동작 과정 및 Protocol 분석 – https://jinheeahn.wordpress.com/2015/06/04/dhcp 분석


더불어서 DHCP의 Packet을 잡는 방법도 게시하였습니다.

DHCP packet 잡아보기 – https://jinheeahn.wordpress.com/2015/10/28/3-DHCP 패킷 잡기!!


 

자, Packet에 대한 설명 시작하도록 하겠습니다.

제목 없음1

DHCP의 Packet은 위 그림처럼 구성되어 있는데요, 각 영역이 TCP/IP Protocol 계층과 동일하게 구성되어 있습니다.

그런데 여기서 실제 Wireshark로 Packet을 Capture한 것이 정말 저런식으로 Packet이 전송되는지 비교 해보겠습니다.


 

  1. Ethernet Layer (Header)

 

제목 없음4

위 그림 처럼 Ethernet Frame은 저런 Pakcet을 그려요. 그림이랑 비교해보시면 동일하다는 것을 아실 수 있습니다.

첨언을 하자면 DHCP은 Application이죠.

각 Packet Frame을 전송할 때는 OSI 7계층 or TCP/IP 4계층을 이용해서 전송할 수 있는 통로를 만들고 Application을 이용하여 Data 통신을 합니다. 예로 HTTP(웹), FTP(파일전송시스템) 등이 있죠

만약 무슨말인지 모르겠다면, 제가 업로드한 다른 글을 참조해주세요. 자세하게 설명되어 있습니다.

DHCP 전체 동작 과정 및 Protocol 분석 – https://jinheeahn.wordpress.com/2015/06/04/dhcp 분석


 

2. IP Layer (Header)

제목 없음5

IP Header은 위 그림처럼 구성되어 있습니다.

IP영역에서는 상위 계층인 Transport가 어떤 형태로 되어있는지 알려줍니다.

8번을 보시면 프로토콜 종류는 “UDP”라고 되어있죠.

이 밖에 위 그림을 보고 Header 구성이 어떻게 되어있는지 아는 것도 무척 중요하겠죠??


 

3. Transport Layer

 

제목 없음6

IP영역에서 UDP인지 알려주었고 UDP 계층으로 넘어왔습니다.

여기서 중요하게 보셔야할 점은 Port입니다. Source Port / Destination Port가 어떻게 되어 있는지를 유심히 보시면 되요.

나머지는 위 그림을 참조해주세요.

 


자 이제 본격적으로 DHCP Packet을 보도록 하겠습니다.

  1. DHCP Discover

 

 

제목 없음7

Discover는 요청하는 메세지입니다.

이 메세지를 보내면 DHCP Server에서는 Offer라는 메세지를 보내주게 됩니다.

그런데 위 패킷을 보면 Bootstrap Protocol이라고 적혀있습니다.

이 말은 Packet 자체는 BOOTP로 Format 형식을 지원한다는 의미입니다.


 

Packet에 대한 좀 더 자세한 설명은 다음과 같습니다.

  • Operation code (Message type)

–이 8bit는 BOOTP packet의 type을 나타낸다. Request: 0x01, Reply: 0x02

  • Hardware type

–이 필드는 physical network의 type을 나타낸다. Ethernet: 0x01

  • Hardware address length

–Physical address의 길이를 나타낸다. Ethernet: 0x06

  • Hop count

–Packet이 지날 수 있는 최대의 hop을 결정한다. (Gateway 수) Local 망이면 0x00

  • Transaction ID

–이 필드는 client에 의해 request packet에 채워지고, reply packet에서 자기가 보낸 request에 대한 reply인지를 구별하는데 사용된다. (응답 시 구분을 위함)

–즉, 각 DHCP client의 메시지를 구분하는 용도로 사용.(메시지의 ID)
Server는 당연히 이 필드에 같은 값을 반환한다

  • Sec (seconds elapsed)

–Client가 IP주소를 취득 / 갱신을 시작한 이후의 경과 시간(초)

  • Flag

–Client가 보내는 BOOTP Flag Type에 따라 Reply packet Type이 정해진다. (Unicast : 0x0000 , Broadcast : 0x8000)

–로컬에서는 IP와 subnet만 있어도 주변 통신 가능

–하지만 다른 외부 네트워크와 연결 시에는 Router(gateway)가 있어야 통신 가능

  • Client IP address

–Client의 현재 IP address

–Client가 할당 받은 IP address이기도 하다.

–IP의 임대 기간을 갱신하거나, 반납할 때 사용된다.

  • Your IP address

–DHCP Server로 부터 할당 받는 IP

  • Server IP address (Next server IP address)

–DHCP Server로 부터 응답 Packet이 올 때 포함되는 Server의 IP address

  • Gateway IP address (Relay agent IP address)

–DHCP Server로 부터 할당 받는 Router IP address를 나타낸다.

  • Client hardware address ( Client MAC address)

–16byte의 Client의 Physical address가 채워진다.

–IPv4에서 MAC주소는 6byte를 사용한다.

  • Server name (host name)

–64byte의 공간을 가지며 Server에 의해 응답 Packet으로 온다. 이곳에는 Server의 domain name을 포함한다.

  • Boot filename

–Server에 의해 응답 Packet으로 오며, 128byte의 공간에 boot file의 full pathname을 포함한다. 이 정보를 이용해 Client는 다른 부팅 정보를 얻을 수 있다. (for TFTP , use to BOOTP)

  • Magic Cookie (Options에 포함됨)

–DHCP와 BOOTP를 판별하는 코드

–Magic cookie는 Vender의 정보를 가지며 FRC951, RFC1048을 보면 다음과 같은 값으로 정해져 있다.

–10진수(99,130,83,99) , 16진수(63,82,53,63)

  • Options

–이 64bytes의 필드는 두 가지 목적으로 사용된다. 즉, 부가적인 정보를 실을 수 있으며, 특정 vendor의 정보도 실어 나를 수 있다.(Magic cookie) 이 필드는 오직 reply에 의해서만 사용된다. Client가 message reading을 끝마치면, 이 정보를 찾고 만약 있다면 다음 60bytes는 option임을 나타낸다.Option은 3개의 필드로 구성된다. 1byte tag, 1byte length, variable-length-value. Length 필드는 value field의 길이를 나타내며, 4byte를 곱하면 길이가 나온다.


 

BOOTP(DHCP) Packet 설명이 아직 끝나지 않았습니다.

추가적으로 Option Packet이 있습니다.

이 Option Packet은 DHCP에서 아주 중요한 역할을 합니다.

Option Packet에서 실제 Network정보가 담겨있습니다. 더불어 Packet에 대한 각종 정보 및 원하는 IP를 요청하는 부분까지 Option Packet에서 처리가 됩니다.

제목 없음8

위 그림을 보시면 Option Packet은 위와같이 구성되어 있습니다.

제목 없음9

**DHCP에서는 Option Packet이 매우 중요합니다.

그렇다고 수십 종류의 Option Packet을 다 알필요는 없고, 정말 필요한 Option만 알면 됩니다.

실제 Option Pakcet은 60, 53, 54, 51, 55 이 정보만 있으면 구현이 가능합니다.


 

다음으로는 DHCP Packet Option에 대한 설명을 보겠습니다.

제목 없음10

제목 없음11

제목 없음12

 

가장 많이 사용되는 Option Packet입니다. 참고해주세요.

다음은 Offer Packet에 대해 알아보도록 하겠습니다.

Advertisements

답글 남기기

아래 항목을 채우거나 오른쪽 아이콘 중 하나를 클릭하여 로그 인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Twitter 사진

Twitter의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Google+ photo

Google+의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

%s에 연결하는 중