每个终端都需要配置IP地址等网络参数才能接入网络。在小型网络中,终端数量很少,可以手动配置IP地址。但是在大中型网络中,终端数量很多,手动配置IP地址工作量大,而且配置时容易导致IP地址冲突等错误。
DHCP可以为网络终端动态分配IP地址,解决了手工配置IP地址时的各种问题。
我们以下图为例描述DHCP工作过程:
DHCP客户端首次登录网络时,主要通过四个阶段从DHCP服务器获取IP地址。
1> DISCOVER阶段,即DHCP客户端寻找DHCP服务器的阶段。
在发现阶段,DHCP客户端通过发送DHCP DISCOVER报文来寻找DHCP服务器。由于DHCP服务器的IP地址对于客户端来说是未知的,所以DHCP客户端以广播方式发送DHCP DISCOVER报文。 所有收到DHCP DISCOVER报文的DHCP服务器都会发送回应报文,DHCP客户端据此可以知道网络中存在的DHCP服务器的位置。
2> OFFER阶段,即DHCP服务器提供IP地址的阶段。
网络中接收到DHCP DISCOVER报文的DHCP服务器,会从地址池选择一个合适的IP地址,连同 IP地址租约期限和其他配置信息(如网关地址、域名服务器地址等)通过DHCP OFFER报文发送给DHCP客户端。
3> REQUEST阶段,即DHCP客户端选择IP地址的阶段。
如果有多台DHCP服务器向DHCP客户端回应DHCP OFFER报文,则DHCP客户端只接收第一个收到的DHCP OFFER报文。然后以广播方式发送DHCP REQUEST请求报文,该报文中包含服务器标识选项(Option54),即它选择的DHCP服务器的IP地址信息。
以广播方式发送DHCP REQUEST请求报文,是为了通知所有的DHCP服务器,它将选择Option54中标识的DHCP服务器提供的IP地址,其他DHCP服务器可以重新使用曾提供的IP地址。
4> ACK阶段,即DHCP服务器确认所提供IP地址的阶段。
当DHCP服务器收到DHCP客户端发送的DHCP REQUEST报文后,DHCP服务器会根据 DHCP REQUEST报文中携带的MAC地址来查找有没有相应的租约记录。如果有,则向客户端发送包含它所提供的IP地址和其它设置的DHCP ACK确认报文。
DHCP客户端收到该确认报文后,会以广播的方式发送免费ARP报文,探测是否有主机使用服务器分配的IP地址,如果在规定的时间内没有收到回应,客户端才使用此地址。