1.路由器的DHCP/BOOTP中继代理支持

在TCP/IP网络中,路由器用于连接称做"子网"的不同物理网段上使用的硬件和软件,并在每个子网之间转发IP数据包。要在多个子网上支持和使用DHCP服务,连接每个子网的路由器应具有在RFC 1542中描述的DHCP/BOOTP中继代理功能。

要符合RFC 1542并提供中继代理支持,每个路由器必须能识别BOOTP和DHCP协议消息并相应处理中转)这些消息。由于路由器将DHCP消息解释为BOOTP消息例如,通过相同的UDP端口编号发送,并包含共享消息结构的UDP消息),具有BOOTP中继代理能力的路由器可中转网络上发送的DHCP数据包和任何BOOTP数据包。如果路由器不能作为DHCP/BOOTP中继代理运行,则每个子网都必须有在该子网上作为中继代理运行的DHCP服务器或另一台计算机。如果配置路由器支持DHCP/BOOTP中继不可行或不可能,您可以通过安装DHCP中继代理服务来配置运行Windows NT Server 4.0或更高版本的计算机充当中继代理。

在大多数情况下,路由器支持DHCP/ BOOTP中继。如果您的路由器不支持,则应与路由器制造商或供应商联系以查明是否有软件或固件升级提供对该功能的支持。

2.中继代理的工作原理

中继代理将它连接的其中一个物理接口如网卡)上广播的DHCP/BOOTP消息中转到其他物理接口连至的其他远程子网。图7显示了子网2上的客户端C是如何从子网1上的DHCP服务器1获得DHCP地址租约的。具体过程如下。

1)DHCP客户端C使用众所周知的UDP服务器67号端口在子网2上以"用户数据报协议UDP)"的数据报广播DHCP/BOOTP查找消息DHCP DISCOVER)。67号UDP端口是BOOTP和DHCP服务器通信所保留和共享的。

2)中继代理,在DHCP/BOOTP允许中继的路由器的情况下,检测DHCP/BOOTP消息头中的网关IP地址字段。如果该字段有IP地址0.0.0.0,代理文件会在其中填入中继代理或路由器的IP地址,然后将消息转发到DHCP服务器1所在的远程子网1。

3)远程子网1上的DHCP服务器1收到此消息时,它会为该DHCP服务器可用于提供IP地址租约的DHCP作用域检查其网关IP地址字段。

4)如果DHCP服务器1有多个DHCP作用域,网关IP地址字段GIADDR)中的地址会标识将从哪个DHCP作用域提供IP地址租约。

例如,如果网关IP地址GIADDR)字段有10.0.0.2的IP地址,DHCP服务器会检查其可用的地址作用域集中是否有与包含作为主机的网关地址匹配的地址作用域范围。在这种情况下,DHCP服务器将对10.0.0.1和10.0.0.254之间的地址作用域进行检查。如果存在匹配的作用域,则DHCP服务器从匹配的作用域中选择可用地址以便在对客户端的IP地址租约提供响应时使用。

5)当DHCP服务器1收到DHCP DISCOVER消息时,它会处理IP地址租约DHCP OFFER)并将其直接发送给在网关IP地址GIADDR)字段中标识的中继代理。

6)路由器然后将地址租约DHCP OFFER)转发给DHCP客户端。此时客户端的IP地址仍旧无人知道,所以它必须在本地子网上广播。同样,根据RFC 1542,DHCPREQUEST消息从客户端中转发服务器,而DHCPACK消息从服务器转发到客户端。


相关内容