You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Ubuntu 22.04 Hyper-V虚拟机中SR-IOV网络配置问题咨询

Ubuntu 22.04 Hyper-V虚拟机中SR-IOV网络配置问题咨询

我用Windows Server 2022作为hypervisor,创建了两台Ubuntu虚拟机——一台Server 22.04(也试过23.xx版本),一台Desktop,两者遇到的网络问题是完全一致的。

开启SR-IOV后,Ubuntu虚拟机里会出现两个网卡:一个是带Broadcom标识的vF设备,另一个是Hyper-V驱动的网卡。执行lshw -C network命令可以看到这个现象:

Dual Network Interfaces

但同样开启SR-IOV的Windows虚拟机就没有这个问题,只会生成一个Broadcom的网卡。我本来猜测这是Hyper-V不确定Guest OS是否支持SR-IOV,所以生成了一个备用网卡,作为虚拟交换机的 fallback 方案,但这个猜想好像并不正确。

我最初尝试直接禁用Hyper-V的网卡(比如eth0),强制系统使用SR-IOV的网卡,比如执行ip link set eth0 down,结果直接失去所有网络功能——禁用eth0后,另一个网卡也自动被禁用了,就算手动把Broadcom网卡启动,也ping不通任何地址。

反过来,如果禁用那个Broadcom网卡enP33973s1,SR-IOV就会失效,所有流量只能走虚拟交换机。

我现在给两个网卡都配置了静态IP,但完全搞不懂背后的逻辑。还有个有意思的细节:如果在Hyper-V里给虚拟机设置静态MAC地址,Ubuntu里的两个网卡会共用这个MAC,导致我没法使用DHCP预留,难道这就是需要开启“MAC地址欺骗”的原因?

现在有两个核心问题想请教大家:

  • 为什么Ubuntu里必须保留两个网卡才能让网络正常工作?
  • 流量应该使用哪个IP?比如我要在DNS中设置A记录,应该指向Broadcom网卡的IP?还是两个都需要设置?

我甚至有点怀疑Hyper-V对Ubuntu的SR-IOV支持是不是不完善,都有点想切回ESXi了,有没有大佬能帮我理清这个问题?谢谢!

备注:内容来源于stack exchange,提问作者Daniel

火山引擎 最新活动