一:实验目的
1:深入理解DHCP(动态主机配置协议)的工作原理和数据包交换过程。
2:掌握如何通过命令行释放和重新获取IP地址,并通过抓包软件分析DHCP消息的具体内容。
二:实验仪器设备及软件
硬件:Windows操作系统的计算机等。
软件:命令提示符、记事本、wireshark等。
三:实验方案
在cmd窗口下执行相关的DHCP命令,同时在wireshark中进行抓包操作,最后分析实验结果。
四:实验步骤
在 windows下用ipconfig/release命令释放DHCP的IP地址,然后再用命令ipconfig/renew重新获取IP地址,抓包分析DHCP Release和DHCP获取IP的过程。
五:实验结果及分析
1:DHCP 消息是通过 UDP 还是 TCP 发送的?
DHCP消息通过UDP发送,如下图所示。
2:绘制时间流图形。说明客户端和服务器之间一组四个DHCP发现,DHCP提供,DHCP请求以及 DHCP响应的顺序,说明每个数据包的源和目标端口号,单播还是广播?
时间流图形,如下图所示。
顺序如下:DHCP 发现 DHCP 提供 DHCP请求 DHCP 响应。
DHCP发现的源端口号是68,目标端口号是67,广播。
DHCP提供的的源端口号是67,目标端口号是68,广播。
DHCP请求的源端口号是68,目标端口号是67,广播。
DHCP响应的的源端口号是67,目标端口号是68,广播。
3:DHCP发现中的哪些值与DHCP请求不同?
DHCP发现消息的报文,如下图所示。
DHCP请求消息的报文,如下图所示。
在DHCP发现消息中,客户端主要是向网络广播自己需要一个IP地址,通常不会携带具体的IP地址。而在DHCP请求消息中,客户端会请求服务器提供的特定IP地址,并包括服务器的IP地址信息。
4:四个DHCP发现,DHCP提供,DHCP请求以及DHCP响应的Transaction-ID值是多少?Transaction-ID字段目的是什么?
四个报文的Transaction-ID值都是0x17fae000,如下图所示。
Transaction-ID字段目的是确保客户端和服务器之间的消息匹配,即客户端可以识别出响应是针对其请求的。
5:如果主机没有 IP 地址,那么 IP 数据报的值是什么?
如果主机没有IP地址,则IP数据报中的源地址是:0.0.0.0,目标地址是:255.255.255.255(广播地址)。
6:主机和 DHCP 服务器之间有没有中继代理?如何设置实现?
没有中继代理。因为报文里面Relay agent IP address是0.0.0.0,如下图所示。
可以通过在网络设备(如路由器或服务器)上配置中继代理来实现。在路由器上配置的伪代码,如下所示。
Router> enable Router# configure terminal Router(config)# interface <interface_name> Router(config-if)# ip helper-address <DHCP_server_IP> Router(config-if)# end Router# write memory |
7:解释所抓包中的租约时间含义。
租约时间表示DHCP服务器允许客户端使用分配的IP地址的有效期。在抓包数据中,租约时间通常以小时为单位,如下图所示。
六:实验总结及体会
1:中继代理的作用是转发来自客户端的DHCP请求和来自服务器的DHCP响应,尤其是在客户端和服务器不在同一网络段时。通过中继代理,DHCP服务器可以为多个网络段中的客户端分配IP地址。
2:giaddr字段,即网关IP地址字段,位于DHCP协议的数据包中。giaddr字段会显示为“Gateway IP Address”。该字段显示中继代理的IP地址,如果没有中继代理,则该字段为0.0.0.0。
3:通过ipconfig /release释放IP地址,ipconfig /renew重新获取IP地址,体验了DHCP客户端的基本操作。
4:DHCP Discover:客户端发送广播消息以查找可用的DHCP服务器。
5:DHCP Offer:DHCP服务器回应客户端的Discover消息,提供一个IP地址。
6:DHCP Request:客户端选择一个DHCP服务器提供的IP地址,并请求使用该地址。
7:DHCP Acknowledge (ACK):DHCP服务器确认IP地址分配,并提供其他网络配置信息。