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

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

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

@H_502_4@# 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):

@H_502_4@# 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):

@H_502_4@# 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相关文章