早期的DHCP协议只适用于DHCP客户端和服务器处于同一个网段内的情况,不能跨网段。因此,为进行动态主机配置,需要在每个网段置一个DHCP服务器,这显然是很不经济的。DHCP中继(DHCP Relay)功能的引入解决了这一难题。
客户端可以通过DHCP中继与其他网段的DHCP服务器通信,最终取得合法的IP地址。这样,多个网段的DHCP客户端可以使用同一个DHCP服务器,既节省了成本,又便于进行集中管理。
我们以下图为例介绍DHCP中继的工作过程。
DHCP中继的工作过程:
1> DISCOVER阶段
DHCP客户端广播发送DHCP DISCOVER报文来寻找DHCP服务器。DHCP中继接收到DHCP DISCOVER报文后,将报文中的giaddr字段填充为DHCP中继的IP地址,并且以单播的方式发送给DHCP服务器。
2> OFFER阶段
DHCP服务器收到DHCP DISCOVER报文后,根据giaddr字段会从地址池选择一个合适的IP地址,连同 IP地址租约期限和其他配置信息(如网关地址、域名服务器地址等)通过DHCP OFFER报文以单播方式发送给DHCP中继。DHCP中继将DHCP OFFER报文转发给DHCP客户端。
3> REQUEST阶段
DHCP客户端广播发送DHCP REQUEST报文来请求DHCP服务器分配的IP地址。DHCP中继接收到DHCP REQUEST报文后,将报文中的giaddr字段填充为DHCP中继的IP地址,并且以单播的方式发送给DHCP服务器。
4> ACK阶段
DHCP服务器根据收到的DHCP REQUEST报文中携带的MAC地址来查找有没有对应的租约记录。如果有,则向DHCP中继发送包含它所提供的IP地址和其它设置的DHCP ACK确认报文。DHCP中继将DHCP OFFER报文转发给DHCP客户端。