ip helper-address
命令,但是该辅助网络的任何客户端都无法提取DHCP地址。我们交换了主网络和辅助网络,一切开始正常。交换回去,和以前一样存在问题。谁能解释为什么会这样?有没有一种方法可以使DHCP请求转发在接口辅助网络上起作用,或者只能在主网络上起作用?
#1 楼
思科路由器将使用在接口上配置的主要子网来识别转发的DHCP请求。唯一的其他选择是DHCP智能中继功能,该功能允许路由器使用辅助子网,但前提是看不到主要子网的多个DHCP提供。
#2 楼
您有两个选择。选择一:配置DHCP智能中继(请参阅Dave和Mierdin的答案中的更多信息):
ip dhcp smart-relay
选择二:在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 {
}
}
}
#3 楼
在DHCPDiscover数据包中仅发送接口的主地址作为DHCP数据包的网关IP地址(giaddr)字段。您可以考虑使用允许单独的DHCP中继代理(ip helper-address)的子接口。 )。
#4 楼
我可以肯定地说,当路由器转发DHCP请求时,它仅包括在接口上配置的主要网络。我不认为有任何办法可以使用辅助网络。编辑:我做了一次Google搜索,并确定了其他人已经指出的内容,有一个名为“智能中继”的功能可以使用次网络,但仅在主网络超时3次后。
了解和排除Catalyst交换机或企业网络中的DHCP故障-Cisco Systems
如何使DHCP在辅助IP网段上工作
默认情况下,DHCP有一个限制,即仅当从配置了
主IP地址。 DHCP通信使用广播地址。当路由器接口收到
DHCP请求时,它将请求转发给
(在配置了IP helper-address的情况下)DHCP服务器,并且在服务器上配置了主IP的源
地址。接口,让DHCP
服务器在DHCP
答复数据包中知道它必须使用(对于客户端)哪个IP池。
路由器无法知道是否DHCP广播请求
来自在接口上配置的辅助IP网络上的设备。解决方法是,可以配置子接口配置(提供给连接到路由器的设备支持dot1q标记的
),以
将两个子网分开,以便它们都获得对应的IP。正确地寻址。
如果首选辅助地址,则还有另一种解决方法,即启用全局配置命令ip
dhcp smart-relay。这样做的局限性在于,如果在连续三个对主服务器的请求之后,没有来自DHCP服务器的响应,它仅使用
IP中继DHCP请求。地址池。
#5 楼
使用Microsoft DHCP服务器(可能还有其他),您可以使用超级作用域将其从辅助地址分发出去。使用DHCP将IP地址分配给辅助网络
某些路由器可以配置为主要和辅助地址,允许路由器上的一个端口侦听多个(逻辑)子网。
Windows NT 4.0 Service Pack 2和更高版本引入了对DHCP的Superscoping支持。这允许具有一个网络接口卡的DHCP服务器为多个逻辑子网分配租约。
要在DHCP管理器中设置超级作用域,请执行以下步骤:
在DHCP管理器中创建一个新作用域对应于路由器上的主
子网。
创建将成为路由器上配置的辅助地址一部分的Superscope。
使用DHCP管理器将Superscope定义为包括所有子网。有关如何设置DHCP Superscoping的完整步骤,请参阅Microsoft知识库中的以下文章:
评论
我喜欢看到所有这些路由器解决方案。已经使用了二十多年的方法是简单地在Linux /任何主要IPAM DHCP中使用共享的dhcp池配置dhcp服务器,或者在Microsoft的DHCP服务器上使用扩展的DHCP池来配置dhcp服务器。这是Microsoft扩展的“ Superscope”的链接。示例3是最常见的... technet.microsoft.com/zh-cn/library/dd759168(v=ws.11).aspx