华为HCIA-Datacom网络技术学习指南
上QQ阅读APP看书,第一时间看更新

1.1.3 DHCP

在网络中计算机的IP地址、子网掩码、网关和DNS服务器等的设置既可以手动指定,也可以设置成自动获得。若设置成自动获得,就需要使用DHCP客户端从DHCP服务器请求IP地址。本节将讲解DHCP的工作过程以及DHCP的4种报文。

DHCP客户端与DHCP服务器之间通过以下4种报文进行通信,具体过程如图1-10所示。DHCP定义了4种类型的报文。

图1-10 DHCP客户端请求IP地址的过程

DHCP Discover。DHCP客户端会先发送DHCP Discover数据包到网络中,以寻找一台能够提供IP地址的DHCP服务器。

DHCP Offer。当网络中的DHCP服务器接收到DHCP客户端的DHCP Discover数据包后,就会从IP地址池中挑选一个尚未出租的IP地址,然后利用广播的方式发送给DHCP客户端。之所以使用广播方式,是因为此时DHCP客户端还没有IP地址。在尚未与DHCP客户端完成租用IP地址的流程之前,这个IP地址会被暂时保留起来,避免再分配给其他的DHCP客户端。如果网络中多台DHCP服务器均收到DHCP客户端发送的DHCP Discover数据包,并且都响应了DHCP客户端(表示它们都可以提供IP地址给此客户端),那么DHCP客户端会选择收到的第一个DHCP Offer信息。

DHCP Request。当DHCP客户端选择收到的第一个DHCP Offer信息后,就利用广播的方式,响应一个DHCP Request信息给DHCP服务器。之所以使用广播方式,是因为它不但要通知所挑选的DHCP服务器,还必须通知没有选择的其他DHCP服务器,以便这些DHCP服务器将原本欲分配给此DHCP客户端的IP地址收回,以供其他DHCP客户端使用。

DHCP ACK。DHCP服务器收到DHCP客户端请求IP地址的DHCP Request信息后,就会利用广播的方式送出DHCP ACK信息给DHCP客户端。之所以使用广播的方式,是因为此时DHCP客户端还没有IP地址,此信息包含DHCP客户端所需要的TCP/IP配置信息,如子网掩码、默认网关、DNS服务器等。

DHCP客户端在收到DHCP ACK信息后,就完成了获取IP地址的步骤,接下来可以利用这个IP地址与网络中的其他计算机通信。

在DHCP客户端上使用抓包工具Wireshark,捕获DHCP服务器给计算机分配IP地址的4种数据包——DHCP Discover、DHCP Offer、DHCP Request和DHCP ACK。

运行抓包工具Wireshark,将本地连接的地址由静态地址设置成“自动获得IP地址”,将DNS服务器地址设置成“自动获得DNS服务器地址”,单击“确定”按钮,如图1-11所示。

图1-11 设置DHCP客户端

停止抓包,在显示过滤器中输入“ip.addr == 255.255.255.255”。因为在请求IP地址和提供IP地址的过程中目的IP地址都是广播地址。可以看到DHCP服务器给计算机分配IP地址的4种报文。图1-12所示的是DHCP Offer报文的格式。DHCP不仅定义了4种报文格式,而且定义了这4种报文的交互顺序。

图1-12 DHCP Offer报文格式