Lab Exercise – DHCP
实验要求:
了解DHCP(动态主机配置协议)的工作原理。DHCP是一种基本的粘合协议,用于配置计算机的IP地址以及其他信息。
DHCP涉及四种类型的数据包:
Discover,为您的计算机定位DHCP服务器;
Offer,为服务器提供一个IP地址;
Request,为您的计算机要求提供地址;
Ack,服务器授予地址租约。
一、实验操作:
- 打开wireshark,使用(udp port 67) or (udp port 68)进过滤
- 在命令行输入ipconfig /release 再输入ipconfig /renew
- 观察wireshark,一旦捕获到DHCP包,就停止。得到结果如下。
二、DHCP协议
查看一组DHCP交换(Request和ACK)中的Request包
Message Type | 值为Boot Request,用于从你的计算机发送到DHCP服务器的所有DHCP报文。 |
---|---|
Transaction ID | 所有DHCP报文在客户端和服务器之间的特定交换携带相同的事务ID;即两端都知道报文属于该交换,而不是另一个并发的DHCP操作。 |
一系列的IP | 这些字段用于携带IP地址 |
Magic Cookie | 它携带一个值,表示报文的其余部分包含一系列DHCP option |
DHCP option | 每个DHCP选项都是自包含的,有一个类型代码表示它所代表的内容,以及长度和值。第一个选项是DHCP Message Type,表示所携带的DHCP报文的类型。其他选项根据不同的DHCP报文类型而不同。例如,DHCP Request将有一个被请求的IP地址选项来请求一个特定的地址,DHCP Ack将有一个IP地址租期选项来说明IP地址被分配的时间。 |
三、回答问题
比较DHCP ACK和DHCP Request回答下列问题。
-
BOOTP Message Type字段的两个值是什么?
答:Request是01,ACK是02 -
Transaction ID字段有多长? 说明由不同计算机进行的并发DHCP操作是否有可能选择相同的Transaction ID。
答:Transaction ID有四个字节。可能相同。Transaction ID是由客户端随机生成,然后插入DHCP DISCOVER消息的xid字段,服务器从DHCP DISCOVER消息解析得到xid值,把xid值插入到DHCP OFFER消息的xid字段,发送DHCP OFFER报文到请求客户端。如果DHCP OFFER消息中的xid值与最近发送DHCP DISCOVER消息中的xid值不同,那么客户端必须忽略这个DHCP OFFER。接收到的任何DHCPACK必须悄悄地丢弃。 -
携带被分配给客户端的IP地址的字段的名称是什么?
答:Your(client) IP Address -
代表DHCP的Magic Cookie的值是多少?
答:0x 63 82 53 63 -
第一个DHCP选项是DHCP报文类型。这个类型选项值代表什么?(直接点进去看就行)
DHCP Request : 3 DHCP ACK: 5 -
DHCP请求通常会有一个客户端标识符选项。看这个选项的值。如何能识别客户端?
答:点开Option Client Identifier 里面有客户端的MAC地址,所以能识别客户端。 -
DHCP ACK通常有一个服务器标识符选项。看这个选项的值。它如何识别服务器?
答:点开Option Server Identifier 有服务端的IP地址。 -
哪个选项值代表被请求的IP地址选项?对于IP地址租期选项呢?
答:DHCP Request有Requested IP Address来请求一个特定的地址,
DHCP Ack有IP Address Lease Time来说说明IP地址被分配的时间。 -
DHCP消息的接收方如何知道它已经到达了最后一个选项。
答:有一个End选项标识。
四、DHCP消息处理
在wireshark中选择Request报文查看
-
DHCP客户端使用什么端口号,DHCP服务器使用什么端口号?
答:客户端使用68,服务端使用67. -
Request消息上的源IP地址是什么?
答:是0.0.0.0这是一个特殊的值,表示“这个网络上的这个主机”,用于初始化。 -
Request消息上的目的IP地址是什么?
答:是255.255.255.255它也是一个预留值,在本地网络的任何地方都可以到达DHCP服务器. -
Ethernet source字段放在request消息的什么字段上,Destination字段呢?
答:Source放在Client MAC address上。
Destination是保留地址。 -
计算机如何判断它收到的DHCP报文是作为对其DHCP请求报文的应答,还是作为对另一台计算机的应答?
答:对比它的Transition ID,如果该ID是之前DHCP发出过的ID,则是对请求报文的应答,否则的话不是自己的应答,就丢弃。