假设你有两台DHCP服务器,A和B.
服务器A有两个IP地址,10.0.0.1和10.0.0.2。 服务器B有一个IP地址10.0.0.3。
服务器A有两个运行isc-dhcp的实例,一个指定10.0.0.1的本地地址,另一个指定10.0.0.2的本地地址。
服务器B有一个运行isc-dhcp的实例,指定一个本地地址10.0.0.3。
如果你有另外一个子网与DHCP服务器分开,192.168.0.0/24。 此子网池位于IP 10.0.0.1的服务器A上的isc-dhcp实例下。 该子网位于具有语句“ip helper-address 10.0.0.1”的cisco设备之后。 只要路由到达那个子网就好了。
如果使用ip helper语句和子网192.168.0.0/24将设备插入到交换机/路由器中,那么服务器A上的两个实例如何接收发现,而服务器B没有发现? 服务器A上的10.0.0.1和10.0.0.2在同一个接口上。
我不明白的是,为什么一个接口将共享与这两个IP发现,如果这确实是发生了什么。 如果它共享它,为什么isc-dhcp不知道数据包打算用于什么IP,而不是假设,因为它碰到了它正在监听的IP,那么它一定是为了它。
我唯一的猜测:
重写整个问题,希望澄清情况。 希望我没有变得更糟..
典型的DHCP事务有4个步骤( wikipedia )
具有“ip helper-address 10.0.0.1”语句的路由器将dhcp-client的发现广播转换为朝向10.0.0.1的单播。
10.0.0.1将以单播的forms发送一个报价给ip-helper-router,它将以广播forms转换它。
客户端可以从多个DHCP服务器接收dhcp-offer,但只发送一个请求 (通常是第一个服务器的服务器)。 如果一切顺利的话,服务器会以一个确认结束。