网工干货知识

超全学习笔记
当前位置:首页 > 干货知识

计算机网络中的DHCP中继代理

更新时间:2026年03月27日   作者:spoto   标签(Tag):

先决条件:动态主机配置协议(DHCP)。那么,DHCP服务器是如何动态地为主机分配IP地址的呢?
为了动态地为主机分配IP地址,DHCP客户端会在DORA过程中与DHCP服务器进行通信,以交换相关的DHCP消息。
在DORA过程中,发现消息和请求消息会被广播。而报价消息和确认消息则会根据“广播标志”的值来决定是进行广播还是单播发送。 如果广播标志的值为1,那么发送和确认消息会被广播出去;如果值为0,则这些消息会采用单播方式传输。 不过,这种情况只适用于DHCP服务器位于同一网络中的情况。因为路由器不会转发任何广播数据包。 如果服务器位于不同的网络中,那该怎么办呢?这时,DHCP中继代理就发挥作用了。
DHCP中继代理程序 – 
DHCP中继代理是指任何用于在DHCP服务器位于不同网络时,将请求和响应消息在服务器与客户端之间传递的TCP/IP主机。中继代理会接收DHCP消息,然后生成新的DHCP消息,以发送到另一个接口上。此外,DHCP中继代理还会添加“giaddr”字段(即数据包的网关地址),如果启用了中继代理信息选项82的话,那么该选项也会被添加进去。当服务器回复被转发到主机时,这些选项字段就会被移除。

DHCP中继代理通常用于大型企业网络中,这些网络中的DHCP服务器位于与客户端设备不同的网络段上。DHCP中继代理会监听来自客户端设备的DHCP广播消息,然后将这些消息转发给DHCP服务器,同时将这些消息封装在单播数据包中。DHCP中继代理可以配置一个或多个DHCP服务器的IP地址,以便将其请求转发给相应的服务器。DHCP中继代理消息中的giaddr字段用于指示接收该消息的中继代理接口的IP地址。Relay Agent Information选项(选项82)可用于向DHCP请求消息中添加额外的信息,例如接收请求的接口或端口号,或者请求设备的VLAN ID。DHCP中继代理可以通过专用硬件设备来实现,也可以通过在路由器或其他网络设备上的软件来实现。一些DHCP中继代理还具备其他功能,如DHCP数据包过滤、速率限制,或者根据源地址或目标地址来实施访问控制。如果DHCP中继代理的配置不正确,就可能会导致DHCP过程的延迟或故障,进而引发客户端设备的网络连接问题。
注意:这些发现和请求消息是由DHCP中继代理进行单播传输的。
例如—— 

这里有一个拓扑结构,其中有一个没有IP地址的DHCP客户端。此外,还有一个具有IP地址192.168.2.2的DHCP服务器。中间还有一个路由器,我们希望将其作为DHCP中继代理设备使用。该路由器的接口fa0/0上的IP地址为192.168.1.1,而接口fa0/1上的IP地址为192.168.2.1。

首先,DHCP客户端会发送发现消息,以寻找属于自己的DHCP服务器。由于这些设备处于同一个广播域中,因此交换机会接收到这些消息。交换机在网络中广播这些DHCP数据包,这些数据包会被PC和路由器(即DHCP中继代理)接收。不过,PC会丢弃这些数据包,因为DHCP服务器位于不同的网络中,所以这些数据包只能被传递到默认网关处。

该路由器在启用了DHCP中继代理功能的情况下,会将源地址替换为自己的地址,而将目标IP地址替换为DHCP服务器的地址。也就是说,DHCP中继代理会将数据包转发给DHCP服务器。DHCP中继代理会在数据包中添加giaddr字段,然后将其转发给DHCP服务器。之所以要在数据包中添加giaddr字段,是为了让服务器能够知道应该从哪个地址池中分配IP地址。
在我们的例子中,giaddr字段将包含192.168.1.1这一数值。192.168.1.1就是路由器[DHCP中继代理]接收发现消息时所使用的接口的IP地址。


服务器向路由器发送一个单播DHCP请求,其中包含了所分配的IP地址。

作为回报,路由器会将DHCP Offer消息广播到发送过DHCP请求的网络中。该广播消息会被交换机接收,如上文所示。

该交换机会将DHCP Offer消息广播给各个主机。因此,这些消息会被DHCP客户端接收到。

现在,DHCP客户端会发送DHCP请求消息,表示接受服务器的IP地址。该消息会被交换机接收后,再广播给其他主机以及路由器(即DHCP中继代理)。如上图所示。

该路由器会将源IP地址替换为自己的IP地址,而目标IP地址则保持不变。也就是说,这是一种通过DHCP中继代理实现的单播传输方式。

服务器会向路由器(即DHCP中继代理)发送一个单播形式的DHCP确认消息,如图中所展示的那样。

路由器会向收到DHCP请求的网络发送DHCP确认消息。上述图中所示,该广播消息会被交换机接收。

DHCP客户端接收到该广播消息时,是因为DHCP服务器通过所有的端口发送了该消息。
配置 – 
这是客户端、路由器以及DHCP服务器的基本配置。路由器已经在fa0/0接口上分配了IP地址192.168.1.1,而在fa0/1接口上则分配了IP地址192.168.2.1。

ROUTER(config)#int f0/0ROUTER(config-if)#ip address 192.168.1.1 255.255.255.0ROUTER(config-if)#no shutdownROUTER(config)#int f0/1ROUTER(config-if)#ip address 192.168.2.1 255.255.255.0ROUTER(config-if)#no shutdown

DHCP_SERVER在接口fa0/0上被分配了IP地址192.168.2.2。此外,还定义了一个名为POOL1的DHCP池,该池的网络范围为192.168.1.0,子网掩码为255.255.255.0。

 DHCP_SERVER(config)#int f0/0DHCP_SERVER(config-if)#ip address 192.168.2.2 255.255.255.0DHCP_SERVER(config-if)#no shutdownDHCP_SERVER(config)#ip dhcp pool POOL1DHCP_SERVER(dhcp-config)#network 192.168.1.0 255.255.255.0DHCP_SERVER(dhcp-config)#default-router 192.168.1.1DHCP_SERVER(dhcp-config)#exit

现在,可以使用IP helper-address命令来配置路由器,使其充当DHCP中继代理的角色。此时,192.168.2.2将被设置为DHCP服务器的地址。

ROUTER(config)#int f0/0ROUTER(config-if)#ip helper-address 192.168.2.2ROUTER(config-if)#exit
              马上抢免费试听资格
意向课程:*必选
姓名:*必填
联系方式:*必填
QQ:
思博SPOTO在线咨询

相关资讯

即刻预约

免费试听-咨询课程-获取免费资料