广播如何在具有多个IP的服务器上工作?

假设你有两台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,那么它一定是为了它。

我唯一的猜测:

  1. 要么是一个我不了解或不了解的networking事物。
  2. 接口本身将数据包传递给它上面的所有IP地址,而isc-dhcp则假定它监听的IP地址应该被查看和使用。
  3. 数据包中没有任何信息,只要它到达服务器,确定它只针对一个特定的IP,这两个IP就像一个集线器可以运行一样获取数据,因此isc-dhcp HAS会假设它是否接收到它监听的IP要使用的。

重写整个问题,希望澄清情况。 希望我没有变得更糟..

典型的DHCP事务有4个步骤( wikipedia )

  1. 发现
  2. 提供
  3. 请求
  4. 确认

具有“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,但只发送一个请求 (通常是第一个服务器的服务器)。 如果一切顺利的话,服务器会以一个确认结束。