解决ESXi透传USB设备的虚拟机桥接网卡无法上网问题

问题

昨天遇到了一个问题。一台ESXi 6.7的宿主机,启动了一个透传USB硬盘的Debian 11的虚拟机,再内部又启动了一个kvm的嵌套的OpenWRT,通过桥接网卡连接到外部网络。一开始没有建网桥的时候,Debian 11可以正常上网。但是建立了网桥后,过了一会儿就上不了网了。试了下使用本地非USB硬盘的时候是好的,这该如何解决呢?

方案

尝试关闭嵌套虚拟化,降低内核到4.19,都没有效果。难道非得使用内置的磁盘么?

经过搜索,网上也没有好的方案,参见这个链接,描述了和我一样的情况。

经过了一段时间的折腾,终于解决了问题。在ESXi的网络配置页,选择对应的虚拟交换机,我是vStwitch0。点击编辑设置,展开安全配置项,将混杂模式改为接受,保存后,Debian 11就能上网了。

后记

按理说一台标准交换机,无论是否透传USB设备,对允许传输非物理网卡MAC地址的数据包没有影响,但是实际上却产生了差异。后来明确接收非物理网卡的MAC地址的数据包,才解决了问题。ESXi在这点上行为还是有些怪异的。鉴于虚拟机配置时是指定了MAC地址的,所以ESXi的交换机确实比一般的交换机多知道了不少信息。或许这是为了性能和安全考虑的措施,但确实不容易被一般用户注意到。

发表评论

为防机器,验证码请直接输入4个数字1

*