linux网桥无法发送数据包,TX数据包计数器等于0

linux网桥无法发送数据包,TX数据包计数器等于0

我已经根据设置了一座桥https://help.ubuntu.com/community/NetworkConnectionBridge

我的/etc/network/interfaces

# interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback

auto eth3
allow-hotplug eth3
iface eth3 inet dhcp

auto br0
iface br0 inet manual
  bridge_ports eth1 eth0
  post-up ifconfig eth0 promisc mtu 9000 && ifconfig eth1 promisc mtu 9000

但统计数据显示桥没有发送任何东西

br0       Link encap:Ethernet  HWaddr 36:00:83:f4:bc:3b  
UP BROADCAST RUNNING MULTICAST  MTU:9000  Metric:1
RX packets:4616 errors:0 dropped:4 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0 
RX bytes:628357 (628.3 KB)  TX bytes:0 (0.0 B)

我检查了接口状态;均处于转发状态;我将它们都设置为混杂模式并扩大了它们的 MTU(我对高于默认 MTU 的数据包感兴趣)。

答案1

br0接口只是除桥接端口之外的“内部”接口。如果您没有使用此 IF 发送数据包,则不会显示任何内容,但网桥仍在端口之间转发数据包。

端口(eth1 eth0)本身的统计数据是什么?

(为什么要把它们设置为混杂模式?)

编辑

网桥作用于第 2 级 OSI,就像网络交换机一样:从概念上讲,它将在一个端口上接收到的所有数据包转发到所有其他端口,包括往返于作为网桥网络接口的内部端口。但就像连接到 LAN 网段的真实以太网接口一样,网络接口计数器只会针对寻址到内部接口(或从内部接口发送)的数据包激活。

作为一项优化,它会保留端口上看到的 MAC 地址列表,如果它识别出目标 MAC 地址,则仅转发到该端口。

它不会更改数据包中的任何内容,不会更改 MAC 地址或其他任何内容,除非您用来eftables做有趣的事情。您可以tcpdump -e -i eth0在端口上使用 etc. 自行验证。

在旧的 HOWTO 中,您可以找到必须将端口接口置于混杂模式的注释,但很长一段时间以来都没有必要这样做。 (试试吧)。

相关内容