VMware 的桥接好坑

2021-10-24 13:35:14 +08:00
 justaname
打算通过桥接把 VMware Workstation 里装的黑群晖挂在局域网里面方便访问,然后遇到了这样几个坑

1 、因为黑裙用的是万兆虚拟网卡 vmxnet3 ,但是物理卡是千兆的,如果桥接的话黑裙和宿主机的通信会被卡在千兆网,因为底层是 RAID 这样就浪费了不少性能,不过既然是桥接这一点我还是能理解。注意到这里我是直接用 VMware 把虚拟机网卡桥接到物理网卡上的。

2 、因为用了 zerotier 做内网穿透,而且因为希望共享网段直接做的家庭网络和 zerotier 虚拟网的桥接(这一步除了点奇怪的 bug ,不过在 windows 下还是连上了)。我就把 VMware 的 0 号虚拟网卡直接桥接到了新生成的虚拟网桥上,然后神奇的事情发生了。。。从局域网的其他机器能够 ping 得到黑裙虚拟机,黑裙虚拟机里面能 ping 到所有局域网和广域网的 ip ,但是黑裙虚拟机和宿主机互相 ping 不通。。。猜测是因为 VMware 虚拟桥接驱动和 Windows 虚拟网桥驱动之间不大兼容导致的 bug ,宿主机网卡可能收到本机发向桥接在自己上的 VMware 虚拟网卡的包之后因为某种神秘原因把包扔了?或者是 VMware 的驱动没有及时从物理网卡上把包读出来?

3 、既然本地直连建不起来,我就加了一条路由表把发到虚拟机的包先转发到路由器网关然后路由器会自动发回去。这样连接是 ok 了,但是速度更惨了,大概 300Mbps ,估计是因为发送和接收都跑在同一张物理网卡上,损失太大了

解决办法:

最后我突然想到既然 zerotier 的虚拟卡可以和物理卡做桥接,我为什么不试试把 VMware 的虚拟网卡添加到之前的虚拟网桥上呢。然后我就在 VMware 里把网卡类型改成了 Host Only ,这样一来等于是 VMware 自己建了一个不带 NAT 的虚拟交换机。把网段设置成和局域网一样的,然后追加到虚拟网桥上,居然能直接连上了,而且大概是因为 Windows 自带的网桥驱动优化得更好,宿主机和虚拟机之间的连接也不会受到千兆网的约束,能跑到 300-400Mbps ,虚拟磁盘性能造成了大概 30%左右的连续读取性能损失。如果有用黑群晖而且希望做桥接的朋友可以考虑用 Windows 的系统桥接做,稳定性也好很多,反正我之前桥接到物理网卡的时候总有各种奇奇怪怪的问题,比如丢包、掉速之类的,网上也有很多人有同样问题。目前看来 Windows 的虚拟网桥性能和稳定性都要比 VMware 自己的好很多
2200 次点击
所在节点    VMware
2 条回复
Tianao
2021-10-24 15:07:05 +08:00
奇了怪了,你这需求 VMware 的解决方案是 vSphere (虚拟机监视器就是 ESXi )+NSX-T ,非要用 Workstation ,咋能怨人家桥接坑?用 vSphere RAID 通给 Datastore Cluster 做 Storage DRS 或者直接上 vSAN 就完事儿了。
justaname
2021-10-24 15:19:33 +08:00
@Tianao 因为我主力是用 Windows 呀,ESXi 还得弄显卡和一堆东西,就顺便跑一个黑裙上 ESXi 整你这么一大套方案不是更坑? Workstation 部署起来比 ESXi 直通简单多了为啥不能用。
话又说回来了 workstation 自己提供了 Windows 下的桥接功能按你说的性能不够好就算了,稳定性还有问题还不让抱怨咯。workstation ping 不通宿主和虚拟机网上一大堆案例,各种原因千奇百怪的

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/810139

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX