网络交换机问题

网络交换机问题

如果同一台交换机上有两个具有相同 IP 的主机,并且数据包发往该 IP,那么交换机如何知道将数据包发送到哪里。它会发送到两个主机还是只发送到其中一个主机?如果是,为什么?

答案1

bdonian 的答案关于 MAC 寻址是正确的,然而现实世界的答案是

“除非您正在进行某种形式的链路聚合,否则这是一个不正确的网络配置 - 请修复它。”

同一网络上的多个主机具有相同的 IP,但交换机配置不正确,则属于不正确的网络配置,结果不一致。许多因素都会影响“将会发生什么”。通常,问题会从行为不一致到没有流量。

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

答案2

网络交换机不检查数据包的 IP;它们检查目标 MAC 地址。事情大概是这样的:

  1. 发送主机A想要向IP X发送数据包。
  2. 主机 A 发送 IP X 的广播 ARP 请求。
  3. 交换机记录主机 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 接收该数据包。

答案3

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

但正如之前有人指出的那样:如果你这样做,你的网络就会崩溃。

相关内容