DHCP 八种报文

DHCP(Dynamic Host Configuration Protocol)工作过程中一共会用到八种报文,下面逐一介绍。

Discover

DHCP 客户端寻找 DHCP 服务器位置时所使用的报文。DHCP 请求客户端时,因不知服务器位置,便在本地网络中以广播形式发送 Discover 请求报文。所有收到该报文的 DHCP 服务器会发送应答报文,以此知道服务器在网络中的位置。

Offer

DHCP 服务器收到 Discover 报文后,就会在所配置的地址池中查找一个合适的 IP 地址,加上相应的租约期限和其他配置信息(如网关、DNS 服务器等),构造一个 Offer 报文,发送给 DHCP 客户端,告知用户本服务器可以为其提供 IP 地址。但这个报文只是告诉 DHCP 客户端可以提供 IP 地址,但最终还需要客户端通过 ARP 来检测该 IP 地址是否重复。

Request

DHCP 客户端可能会收到很多 Offer 请求报文,所以必须在这些应答中选择一个。通常是第一个 Offer 应答报文对应的服务器作为自己的目标服务器,并向该服务器发送一个广播的 Request 请求报文通告选择的服务器,希望获得所分配的 IP 地址。另外,DHCP 客户端在成功获取 IP 地址后,在地址使用租期到达 50% 时,会向 DHCP 服务器发送单播 Request 请求报文延续租约,如果没有收到 ACK 报文,在租期达到 87.5% 时,会再次发送广播的 Request 请求报文以请求延续租约。

ACK

DHCP 服务器收到 Request 请求报文后,根据 Request 报文中携带的用户 MAC 来查找有没有相应的租约记录,如果有则发送 ACK 应答报文,通知用户可以使用分配的 IP 地址。

NAK

如果 DHCP 服务器收到 Request 请求报文后,没有发现有相应的租约记录,或者由于某些原因无法正常分配地址,则向 DHCP 客户端发送 NAK 应答报文,通知用户无法分配合适的 IP 地址。

Release

当 DHCP 客户端不再需要使用分配 IP 地址时(一般出现在客户端关机、下线等状况)就会主动向 DHCP 服务器发送 Release 请求报文,告知服务器用户不再需要分配 IP 地址,请求 DHCP 服务器释放对应的 IP 地址。

Decline

DHCP 客户端收到 DHCP 服务器 ACK 应答报文后,通过地址冲突检测发现服务器分配的地址冲突或者由于其他原因导致不能使用,则会向 DHCP 服务器发送 Decline 请求报文,通知服务器所分配的 IP 地址不可用,以获得新的 IP 地址。

Inform

DHCP 客户端如果需要从 DHCP 服务器端获取更为详细的配置信息,则向 DHCP 服务器发送 Inform 请求报文;DHCP 服务器在收到该报文后,将根据租约进行查找到相应的配置信息后,向 DHCP 客户端发送 ACK 应答报文。




Enjoy Reading This Article?

Here are some more articles you might like to read next:

  • RFC 3581 中的 rport 例子详解
  • IPv6 地址类型详解
  • DNS 记录的类型及其功能
  • 我的大学
  • DTMF 的三种模式(SIP INFO、RFC 2833、IN BAND)