机器 A 可能收到多个 DHCP Server 的回复,它一般会选择最先到达的那个,并且会向网络发送一个 DHCP Request 广播数据包,包中包含客户端的 MAC 地址、接受的租约中的 IP 地址、提供此租约的 DHCP 服务器地址等,并告诉所有 DHCP Server 它将接受哪一台服务器提供的 IP 地址,告诉其他 DHCP 服务器撤销它们提供的 IP 地址。
由于还没有得到 DHCP Server 的最后确认,客户端仍然使用 0.0.0.0 为源 IP 地址、255.255.255.255 为目标地址进行广播。
头
内容
MAC 头
A 的 MAC
广播的 MAC(ff:ff:ff:ff:ff:ff)
IP 头
A 的 IP:0.0.0.0
广播 IP:255.255.255.255
UDP 头
源端口:68
目标端口:67
BOOTP 头
Boot request
我的 MAC 是这个,我准备租用这个 DHCP Server 给我分配的 IP
ACK
返回给客户机一个 DHCP ACK 消息包。
头
内容
MAC 头
DHCP Server 的 MAC
广播的 MAC(ff:ff:ff:ff:ff:ff)
IP 头
DHCP Server 的 IP:192.168.1.2
广播 IP:255.255.255.255
UDP 头
源端口:67
目标端口:68
BOOTP 头
Boot reply
DHCP ACK
客户端广播
最终租约达成的时候,还是需要广播一下,让大家都知道。
回收与续租
租期到了,管理员就要将IP收回。
客户机会在租期过去 50% 的时候,直接向为其提供 IP 地址的 DHCP Server 发送 DHCP request 消息包。客户机接收到该服务器回应的 DHCP ACK 消息包,会根据包中所提供的新的租期以及其他已经更新的 TCP/IP 参数,更新自己的配置。这样,IP 租用更新就完成了。