在Cisco 2621路由器的接口上配置了辅助网络,并且ip helper-address
命令已到位,但是该辅助网络的任何客户端都无法提取DHCP地址。我们交换了主网络和辅助网络,一切开始正常。交换回来,和以前一样的问题。
谁能解释为什么会这样?有没有一种方法可以使DHCP请求转发在接口辅助网络上起作用,或者只能在主网络上起作用?
在Cisco 2621路由器的接口上配置了辅助网络,并且ip helper-address
命令已到位,但是该辅助网络的任何客户端都无法提取DHCP地址。我们交换了主网络和辅助网络,一切开始正常。交换回来,和以前一样的问题。
谁能解释为什么会这样?有没有一种方法可以使DHCP请求转发在接口辅助网络上起作用,或者只能在主网络上起作用?
Answers:
您有两个选择。
选项一:配置DHCP智能中继(请参阅Dave和Mierdin的答案中的更多内容):
ip dhcp智能中继
选项二:在dhcpcd.conf中设置共享网络语句(假设您正在运行基于Linux的DHCP服务器-如果不是,请参见下面的Peter回答)
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请求时,它仅包括在接口上配置的主要网络。我不认为有任何办法可以使用辅助网络。
编辑:我做了一些谷歌搜索,并确定了其他人已经指出的东西,有一个称为智能继电器的功能可以使用辅助网络,但仅在主网络超时3次之后才可以使用。
在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请求。
使用Microsoft DHCP服务器(可能还有其他),您可以使用超级作用域将其从辅助地址分发出去。
某些路由器可以配置有主要和辅助地址,这些地址允许路由器上的一个端口侦听多个(逻辑)子网。
Windows NT 4.0 Service Pack 2和更高版本引入了对DHCP的Superscoping支持。这使具有一个网络接口卡的DHCP服务器可以为多个逻辑子网分配租约。
要在DHCP管理器中设置超级作用域,请执行以下步骤:
- 在DHCP管理器中创建与路由器的主子网相对应的新作用域。
- 创建将成为路由器上配置的辅助地址一部分的超级作用域。
- 使用DHCP管理器定义Superscope以包括所有子网。
有关如何设置DHCP超级作用域的完整步骤,请参考Microsoft知识库中的以下文章:161571使用DHCP超级作用域服务多个逻辑子网
在子接口上也配置ip-helper地址,也使用相同的helper ip ..没有智能中继..我尝试了它,它在GNS3 ..