Linux网桥(brctl)正在丢弃数据包

前端之家收集整理的这篇文章主要介绍了Linux网桥(brctl)正在丢弃数据包前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我已经研究了这个问题几天了,还没有找到答案.非常感谢您的帮助!

我在物理服务器上运行了一些虚拟机(虚拟机).服务器使用Linux桥接器(br100)将这些VM连接在一起:

# brctl show
bridge name     bridge id               STP enabled     interfaces
br100           8000.984be15fe7e3       no              eth1.1729
                                                        vnet0
                                                        vnet1

vnet0和vnet1是VM的虚拟NIC.

br100(物理服务器)分配给IP 172.16.0.11.连接到vnet1的VM分配给172.16.0.3,vnet0分配给172.16.0.5.

到现在为止还挺好. 172.16.0.3可以ping 172.16.0.5没有问题.

现在我正在尝试将172.16.0.3设置为路由器(openvpn服务器,如果这很重要)到子网10.8.0.0/16.

这是我的问题:10.8.0.0/16中的机器(在本例中为10.8.0.6)可以ping 172.16.0.3,但无法ping 172.16.0.5.

(我认为)我已经排除了所有明显的原因:ip_forward打开,iptables刷新等等.现在我已经缩小了原因:br100不会转发数据包,因为它应该!

当我从10.8.0.6 ping 172.16.0.5时,数据包被传递到物理服务器上的vnet1(VM 172.16.0.3):

# tcpdump -leni vnet1 icmp
tcpdump: WARNING: vnet1: no IPv4 address assigned
tcpdump: verbose output suppressed,use -v or -vv for full protocol decode
listening on vnet1,link-type EN10MB (Ethernet),capture size 65535 bytes
07:45:03.858356 02:16:3e:6a:42:57 > 02:16:3e:02:40:82,ethertype IPv4 (0x0800),length 98: 
10.8.0.6 > 172.16.0.5: ICMP echo request,id 63242,seq 1046,length 64
07:45:04.858239 02:16:3e:6a:42:57 > 02:16:3e:02:40:82,length 98:
10.8.0.6 > 172.16.0.5: ICMP echo request,seq 1047,length 64
^C
2 packets captured
2 packets received by filter
0 packets dropped by kernel

但是没有转发到vnet0(172.16.0.5):

# tcpdump -leni vnet0 icmp
tcpdump: WARNING: vnet0: no IPv4 address assigned
tcpdump: verbose output suppressed,use -v or -vv for full protocol decode
listening on vnet0,capture size 65535 bytes
^C
0 packets captured
0 packets received by filter
0 packets dropped by kernel

我也遵循this post中的建议并将0设置为/ proc / sys / net / bridge / bridge-nf- *,但它似乎没有帮助.

除了刷新iptables过滤器之外,我还在iptables中启用了TRACE,这表明这些数据包从未命中过iptables.

Linux桥接器不能在端口之间转发数据包的任何其他原因?

解决方法

找到答案了! Linux以太网桥咨询ebtables以决定转发哪些数据包以及丢弃哪些数据包. Flushing ebtables解决了我的问题.

猜你在找的Linux相关文章