networking切换问题

如果我们在同一交换机上有两台具有相同ip的主机,并且有一个数据包用于该IP,那么交换机将如何知道将数据包发送到哪里。 它会发送到两个主机或只有一个,如果有的话,为什么?

bdonian的答复是正确的关于MAC寻址,但真实世界的答案是

“除非你正在做某种forms的链接聚合,否则这是一个不正确的networkingconfiguration – 修复它。”

在同一networking上具有相同IP的多个主机没有正确的交换机configuration是不正确的networkingconfiguration,结果是不一致的。 很多事情都归因于“将要发生的事情”。 一般来说,期望从不一致的行为到无stream量的问题。

如果您希望多个主机共享一个IP来进行故障转移或多个名称已知的负载平衡, 绑定,中继,链路聚合等,通常需要一个支持这些方法中的一个或多个的交换机。 http://en.wikipedia.org/wiki/Link_aggregation

networking交换机不检查数据包的IP; 他们检查目标MAC地址。 事情会像这样:

  1. 发送主机A想要发送一个包到IP X.
  2. 主机A发送IP X的广播ARP请求。
  3. 交换机logging主机A的MAC地址和交换机端口。
  4. 主机B和C都用包含其MAC地址的单播ARP应答来响应广播ARP请求。
  5. 交换机注意到主机B和C(不同的)MAC地址和交换机端口(但不是他们的IP)!
  6. 其中一个答复首先到达 – 承担主机B.
  7. 主机A记下IP X =主机B的MAC。
  8. 主机A向主机B的MAC和IP X发送一个数据包
  9. 主机C的ARP应答到达。 主机A可能会或可能不会覆盖IP X的条目。
  10. 交换机匹配主机B的MAC地址,并将数据包转发给主机B的端口。
  11. 主机B收到数据包。

在Unix / Linux域中,一个主机会检测到具有相同地址的另一个主机,并拒绝停留在networking上。

但正如有人以前指出:如果你这样做,你的networking被打破。