详解DHCP协议的工作过程

DHCP是(Dynamic Host Configuration Protocol)动态主机配置协议,是应用层协议,基于UDP传输,负责给主机分配IP等信息。

工作过程

  1. 租用过程
  2. 续约过程

首先明确DHCP服务器采用67端口,客户端采用68端口,网络中有多个DHCP服务器。

租用过程

  1. 客户端C向网络发送DHCP DISCOVER报文,源MAC地址,事务ID,源端口68,目的端口67,源IP为0.0.0.0,目的IP为255.255.255.255进行广播。
  2. 网络中的除DHCP服务器外,不会有监听端口67的进程,因此丢弃报文;DHCP服务器一直监听67端口,因此可以接收该报文。
  3. 所有DHCP服务器收到报文后,先根据MAC地址查找是否有该主机的配置信息,如果有就发送,没有就根据默认配置一组信息(包含IP地址,子网掩码,租期,默认网关,DNS服务器等),根据ARP协议确保所选IP没有被占用。
  4. 所有DHCP服务器都发送DHCP OFFER报文,源端口67,目的端口68,事务ID,目的MAC地址,源IP为服务器IP,目的IP为255.255.255.255。
  5. 网络中所有设备都会收到报文,但是服务器端只监听67端口,因此丢弃该报文;所有客户端监听68号端口,都可以接收该报文,通过报文里的事务ID来确认该报文是否属于自己。
  6. 不属于自己则丢弃,属于自己再根据ARP协议判断该IP是否可用,如果不可用就发送DHCP DECLINE报文,并重新发送DHCP DISCOVER报文;如果可用就再向该DHCP服务器发送DHCP REQUEST报文,源IP为0.0.0.0,目的IP为255.255.255.255。(因为要告知所有服务器自己选择了它还是没有选择它,如果单播就要发送很多个,因此广播很方便)客户端会收到所有服务器分配的IP,只需要选择其中一个就行,一般选择最先达到的即可。
  7. 服务器收到报文后,根据里面包含的信息,事务ID,源MAC地址,接收的IP地址,提供IP地址服务器的IP地址,来判断是否是自己所提供的IP信息,如果不是就丢弃,如果是就发送DHCP ACK报文,源IP为本机IP地址,目的IP为255.255.255.255,来确认客户端使用此配置。

续约过程

  1. 在客户端达到了0.5倍地址租期后,就向DHCP服务器单播DHCP REQUEST报文,请求续约。
  2. 服务端如果发送DHCP ACK报文,则客户端得到新的租期;如果服务端发送DHCP NACK报文,客户端就立即停止使用该IP,并发送DHCP DISCOVER报文重新获得IP地址。
  3. 如果客户端发送了DHCP REQUEST报文后,未收到服务端的响应报文,并且时间来到了0.875倍的地址租期,就需要重发DHCP REQUEST报文,继续等待响应;如果达到了过期时间,就必须立刻停止使用IP,并重发DHCP DISCOVER报文。

在任意时刻,客户端都可以发送DHCP RELEASE报文来终止使用IP。

在所有网络里都添加DHCP服务器会导致浪费资源,因此可以选择在网络里添加DHCP中继器,一般选择为路由器,它配置了DHCP服务器的IP信息,使得路由器可以作为DHCP服务器和客户端的桥梁。

上一篇:Windows服务器——DHCP服务


下一篇:DHCP与配置命令