路由器上DHCP中继代理

在大型的网络中,可能会存在多个子网。DHCP客户机通过网络广播消息获得DHCP服务器的响应后得到IP地址。但广播消息是不能跨越子网的。因此,如果DHCP客户机和服务器在不同的子网内,客户机还能不能向服务器申请IP地址呢?这就要用到DHCP中继代理。DHCP中继代理实际上是一种软件技术,安装了DHCP中继代理的计算机称为DHCP中继代理服务器,它承担不同子网间的DHCP客户机和服务器的通信任务。
中继代理是在不同子网上的客户端和服务器之间中转DHCP/BOOTP消息的小程序。根据征求意见文档(RFC),DHCP/BOOTP中继代理是DHCP和BOOTP标准和功能的一部分。
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 sever 2003或Windows NT Server 4.0或更高版本的计算机上启用DHCP中继代理。
在大多数情况下,路由器支持DHCP/ BOOTP中继。如果您的路由器不支持,则应与路由器制造商或供应商联系以查明是否有软件或固件升级提供对该功能的支持。
2.中继代理的工作原理

中继代理将它连接的其中一个物理接口(如网卡)上广播的DHCP/BOOTP消息中转到其他物理接口连至的其他远程子网。

客户端C如何从子网1上的DHCP服务器1获得DHCP地址租约的具体过程如下。

步骤:
(1)DHCP客户端C使用众所周知的UDP服务器67号端口在子网2上以“用户数据报协议(UDP)”的数据报广播DHCP/BOOTP查找消息(DHCPDISCOVER)。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收到DHCPDISCOVER消息时,它会处理IP地址租约(DHCPOFFER)并将其直接发送给在网关IP地址(GIADDR)字段中标识的中继代理。
(6)路由器然后将地址租约(DHCPOFFER)转发给DHCP客户端。此时客户端的IP地址仍旧无人知道,所以它必须在本地子网上广播。同样,根据RFC 1542,DHCPREQUEST消息从客户端中转发服务器,而DHCPACK消息从服务器转发到客户端。

你可能感兴趣的:(DHCP)