Linux Vlans over Bridge

前端之家收集整理的这篇文章主要介绍了Linux Vlans over Bridge前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图桥接一个dot1q主干,似乎无法搞清楚.我可以使用eth0.2接口连接到主干上的主机,但是当我使用br0桥接接口并尝试连接时,我什么也得不到.我错过了一些简单的东西吗?
  1. auto lo
  2. iface lo inet loopback
  3.  
  4. auto br0
  5. iface br0 inet manual
  6. bridge_ports eth0
  7. bridge_stp off
  8. bridge_fd 9
  9. bridge_hello 2
  10. bridge_maxwait 0
  11.  
  12. auto br0.100
  13. iface br0.100 inet static
  14. address 192.168.100.99
  15. netmask 255.255.255.0
  16.  
  17. auto eth0.2
  18. iface eth0.2 inet static
  19. address 10.1.2.225
  20. netmask 255.255.255.0
  21. network 10.1.2.1
  22. broadcast 10.2.1.255
  23. gateway 10.1.2.1
  24. mtu 1500

解决方法

如果将接口(在您的情况下为eth0)添加到网桥,则默认情况下其VLAN子接口(eth0.2)将不再获取传入流量 – 所有数据包都将传递到网桥.在Linux 2.6.37之前,VLAN子接口有时可以工作,具体取决于您的硬件(如果硬件和驱动程序支持RX VLAN加速(NETIF_F_HW_VLAN_RX),则在桥接之前处理VLAN,并且VLAN子接口有效);从2.6.37开始,所有卡和驱动程序的行为都是相同的.

有几种解决方案有不同的缺点:

>将VLAN子接口添加到网桥而不是物理接口.但在这种情况下,网桥的所有端口都可以访问所有VLAN,这可能是不可取的.
>使用ebtables将802.1Q标记流量传递到VLAN子接口:

  1. ebtables -t broute -A BROUTING -i eth0 -p 802_1Q -j DROP

(在BROUTING链中,ACCEPT表示“桥接”,DROP表示“路由”,或实际上“根据ethertype进行处理”,对于802_1Q类型,表示“传递到适当的VLAN子接口”.)

在这种情况下,网桥不会获得任何标记流量,但由于ebtables处理会产生稍微增加的开销.>重新配置网络以使接口上的所有流量都被标记,并且根本不需要桥接未标记的流量.

猜你在找的Linux相关文章