接口辅助网络上的 DHCP 中继问题

网络工程 思科 cisco-ios-12 路由器 dhcp
2021-07-31 16:48:43

在 Cisco 2621 路由器的接口上配置了辅助网络,并且已执行ip helper-address命令,但该辅助网络的客户端无法提取 DHCP 地址。我们交换了主要网络和次要网络,一切都开始正常工作。把它换回来,和以前一样的问题。

谁能解释为什么会这样?有没有办法使 DHCP 请求的转发适用于接口辅助网络,或者它只能适用于主网络?

4个回答

Cisco 路由器将使用在接口上配置的主要子网来识别转发的 DHCP 请求。

唯一的其他选项是DHCP 智能中继功能,它允许路由器使用次要子网,但前提是主子网的多个 DHCP 提议都看不到。

你有两个选择。

选项一:配置 DHCP 智能中继(在 Dave 和 Mierdin 的回答中查看更多相关信息):

ip dhcp 智能中继

选项二:在您的 dhcpcd.conf 中设置共享网络语句(假设您正在运行基于 Linux 的 DHCP 服务器 - 如果您不是,请参阅下面的彼得的回答)

shared-network "testing" { 

subnet 192.168.2.0 netmask 255.255.255.0 { 
option routers 192.168.2.1; 
} 

subnet 192.168.1.0 netmask 255.255.255.0 { 
option routers 192.168.1.1; 
option domain-name-servers a.b.c.d; 
pool { 

} 
} 
} 

只有接口的主地址作为 DHCP 数据包的网关 IP 地址 (giaddr) 字段在 DHCPDiscover 数据包中发送。

您可以考虑使用允许单独的 DHCP 中继代理(ip helper-address)的子接口。

我相当肯定,当路由器转发 DHCP 请求时,它只包含在接口上配置的主要网络。我不相信有任何方法可以让它使用辅助网络。

编辑:我做了一些谷歌搜索并确定了其他人已经指出的内容,有一个称为智能中继的功能可以使用辅助网络,但只能在主超时三遍之后。

了解和排除 Catalyst 交换机或企业网络中的 DHCP 故障的相关引述- Cisco Systems

如何使 DHCP 在辅助 IP 网段上工作

默认情况下,DHCP 有一个限制,即仅当从配置了主 IP 地址的接口接收到请求时才发送回复数据包。DHCP 流量使用广播地址。当路由器接口收到 DHCP 请求时,它会将其转发给 DHCP 服务器(当配置了 IP helper-address 时),并在接口上配置了主 IP 的源地址,让 DHCP 服务器知道它必须使用哪个 IP 池在 DHCP 回复数据包中使用(用于客户端)。

路由器无法知道 DHCP 广播请求是否来自接口上配置的辅助 IP 网络上的设备。作为一种解决方法,可以配置子接口配置(前提是连接到路由器的设备支持 dot1q 标记)将两个子网分开,以便它们都能正确获取对应的 IP 地址。

如果辅助地址是首选方式,则还有另一种解决方法,即启用全局配置命令 ip dhcp smart-relay 。这有一个限制,即如果在连续三个请求主地址池后没有来自 DHCP 服务器的响应,它仅使用辅助 IP 来中继 DHCP 请求。