为什么 Linux 需要将 IP 从 eth 接口移动到桥接接口

Lor*_*ein 34 linux networking ip bridge

当一个网络接口(例如,eth0)被添加到一个 Linux 网桥(例如,br0)时,IP 地址必须从 eth0 中删除并添加到 br0 以便网络正常运行。

我记得在一些 Open vSwitch 自述文件(我现在找不到)中读到,由于 Linux 内核的实现方式,需要移动 IP 地址。需要将 IP 地址从 NIC 移动到网桥的 Linux 实现是什么?

Nil*_*ils 15

NIC 代表上行链路电缆。电缆是第 1 层,而不是第 3 层。

现在,桥接器用作服务器上网络流量(传入)的寻址设备 - 在第 2 层(以太网/MAC)和/或第 3 层(IP)上。

因此,响应 ARP 请求的设备是网桥——这很好,因为它需要将流量分配到该网桥上的其他接口。

如果响应设备是 NIC,流量将不会进一步传递到网桥。

因此,在某些指南中,甚至建议从(上行链路)NIC 中删除 MAC。

  • @Jocelyn 只要它不响应 arp 请求,l2/3 上的一切都会很好。如果它不捕获数据包,它将允许将数据包传递到内核的网络部分。 (2认同)

Law*_*ceC 3

当网桥中有多个接口时,网桥会将流量分配到需要前往的地方。或多或少,网桥中的各个接口现在根据网桥确定的内容在第 2 层上工作,而不是独立地在第 3 层上工作。因此,您希望将网桥作为一个整体来处理,而不是其中的各个接口。