将虚拟机连接在一起的最常见做法是使用 Tap 接口并在它们之间建立桥接。在 Linux 上,桥接驱动程序会过滤某些类型的链路本地多播流量,例如 LACP 帧。没有简单的机制允许通过桥接接口转发 LACP 帧,并且需要手动修补桥接模块代码。
我想在虚拟机之间的测试网络中使用 LACP,而无需在主机上手动修补 Linux 桥接代码,不需要主机和虚拟机之间有连接。
我确定了两个潜在的解决方案
- 套接字 p2p 选项 - 但它是基于 TCP 的,而且我担心 TCP over TCP 的性能;
- hub - 这个选项似乎很快就会消失
满足我的需求的最简单的解决方案是什么?
答案1
如果您有较新的 (2.6.31+) 内核,您应该能够使用 ebtables 通过 Linux 桥转发 LACP 帧,前提是桥上的 STP 被禁用。
brctl stp virbr0 off
ebtables -I INPUT -p 0x8809 -j ACCEPT
ebtables -I FORWARD -p 0x8809 -j ACCEPT