![Linux 上的标记(802.1q)流量和 VMware 工作站](https://linux22.com/image/1379989/Linux%20%E4%B8%8A%E7%9A%84%E6%A0%87%E8%AE%B0%EF%BC%88802.1q%EF%BC%89%E6%B5%81%E9%87%8F%E5%92%8C%20VMware%20%E5%B7%A5%E4%BD%9C%E7%AB%99.png)
我正在尝试将 vmware 工作站的 VM NIC 桥接到包含 802.1q/标记(vlan)流量的主机上的 tap 接口。不知何故,vmware 桥接剥离了 802.1q 标头,所有流量都以未标记的形式进入 VM。在主机的 tap 接口上运行 tcpdump 时,我可以看到 802.1q 标头,但在 vmware 内部的 VM NIC 上运行 tcpdump 时看不到。如果我在 vmware 工作站内创建两个 VM,它们都桥接到同一个主机 NIC/tap 接口 - 标记(vlan)流量在它们之间有效,但与外部世界(主机)无效。我在 linux 上运行 vmware 工作站 9.0.2 build-1031769,内核为 3.10.11。这是 vmware 工作站的正常行为吗?还有其他解决方法可以在 VM 中获取 802.1q 流量吗?
答案1
找到了三种解决方法
- 修补
vmnet
模块(不总是工作) - 参见http://tnt.aufbix.org/vmware/workstation#using-vlans - 使用“gretap”进行 GRE 隧道 - 请参阅http://tnt.aufbix.org/linux/network-tunneling#gre-tunnel-with-gretap/ 在客户虚拟机中,你可能会遇到 VLAN 组合问题
openvswitch
在主机和客户虚拟机上使用并在两个 openvswitches 之间创建 GRE 隧道(如果可以在客户虚拟机中运行 openvswitch,那么这是目前最好的选择)