Esxi插入新的Pci设备,导致直通设备改变

Esxi 网卡直通的坑

省流请到文章末尾的总结。

前阵子买了个N5105 突发奇想打算给OpenWrt装一个Pci无线网卡。但装后发现Web管理界面上不去了,OpenWrt网络管理功能也全失效了。插显示器发现管理口从eth0 变成了etc3 口。拔掉Pci 网卡后又好了,管理口也变回了eth0口。

环境介绍

N5105 小主机,I225-V网卡,4网口,Esxi 8 系统。eth0 做管理口;eth1,eth2,eth3 直通给OpenWrt 。

其中 eth0 ,eth1,eth2 在OpenWrt中定义为Lan口,eth3 为Wan 口。

各网口Pci地址如下

0000:02:00.0 Ethernet controller: Intel Corporation Ethernet Controller I225-V  #eth0
0000:03:00.0 Ethernet controller: Intel Corporation Ethernet Controller I225-V	#eth1(直通
0000:04:00.0 Ethernet controller: Intel Corporation Ethernet Controller I225-V	#eth2(直通
0000:05:00.0 Ethernet controller: Intel Corporation Ethernet Controller I225-V	#eth3(直通

故障定位

连显示器进后台,

先用 lspci命令查看一下各网口的Mac地址和pci通道

插pci网卡之前

[root@localhost:~] lspci
0000:01:00.0 Non-Volatile memory controller: ****** Corporation NVMe SSD 		#固态硬盘
0000:02:00.0 Ethernet controller: Intel Corporation Ethernet Controller I225-V  #eth0
0000:03:00.0 Ethernet controller: Intel Corporation Ethernet Controller I225-V	#eth1(直通
0000:04:00.0 Ethernet controller: Intel Corporation Ethernet Controller I225-V	#eth2(直通
0000:05:00.0 Ethernet controller: Intel Corporation Ethernet Controller I225-V	#eth3(直通

插pci网卡之后

[root@localhost:~] lspci
0000:01:00.0 Non-Volatile memory controller: ****** Corporation NVMe SSD		#固态硬盘
0000:02:00.0 Network controller: MEDIATEK Corp. MT7921 802.11ax PCI Express Wireless Network Adapter																#Pci网卡
0000:03:00.0 Ethernet controller: Intel Corporation Ethernet Controller I225-V  #eth0
0000:04:00.0 Ethernet controller: Intel Corporation Ethernet Controller I225-V	#eth1
0000:05:00.0 Ethernet controller: Intel Corporation Ethernet Controller I225-V	#eth2
0000:06:00.0 Ethernet controller: Intel Corporation Ethernet Controller I225-V	#eth3

注意看前面的PCI地址 0000:02:00.0 ,新加的Pci无线网卡 MT7921 ,把原本属于eth0的 0000:02:00.0 地址占用了,导致有线网卡的Pci地址全后移了一位。

故障分析

因为 Esxi 是根据Pci地址进行直通,再插入前 我直通了eth1,eth2,eth3 三个网口,直通pci地址为:0000:03:00.0 0000:04:00.00000:05:00.0

插入之后由于Pci 地址发生了变化,导致

0000:03:00.0 从eth1 变成了eth0,
0000:04:00.0 从eth2 变成了eth3,
0000:04:00.0 从eth3 变成了eth4。

所以直通的网口变成了:eth0,eth1,eth2。如下所示:

0000:02:00.0 Network controller: MEDIATEK Corp. MT7921 802.11ax PCI Express Wireless Network Adapter																#Pci网卡
0000:03:00.0 Ethernet controller: Intel Corporation Ethernet Controller I225-V  #eth0(直通
0000:04:00.0 Ethernet controller: Intel Corporation Ethernet Controller I225-V	#eth1(直通
0000:05:00.0 Ethernet controller: Intel Corporation Ethernet Controller I225-V	#eth2(直通
0000:06:00.0 Ethernet controller: Intel Corporation Ethernet Controller I225-V	#eth3

eth0 变成了直通口,eth3变成了不直通的口,因为此时只有eth3没有直通,所以eth3变成了管理口。所以导致连不上管理界面。此时OpenWrt里的网口也乱了。然后就出现了后面的问题。至此问题以及分析完毕。

解决方案

方案一:通过命令改变直通的Pci 通道。

方案二:拔掉网卡,在Web后台更改直通设置后插入。

方案一具体实现步骤:

在Esxi 最开始界面按F1+alt就能进入控制台。通过以下命令控制直通Pci通道

esxcli hardware pci pcipassthru set -d <网卡的PCIE地址> -e TRUE  	#直通改网口
esxcli hardware pci pcipassthru set -d <网卡的PCIE地址> -e FALSE		#不直通改网口

在我的案例里 我需要输入

esxcli hardware pci pcipassthru set -d 0000:02:00.0 -e TRUE 	#直通无线网卡
esxcli hardware pci pcipassthru set -d 0000:03:00.0 -e FALSE	#不直通eth0口,作为esxi管理口
esxcli hardware pci pcipassthru set -d 0000:06:00.0 -e TRUE		#直通eth3口

然后再进入OpenWrt把网口该对就行了

补充

物理网口的mac地址是固定的,可以通过mac地址来判断 pci地址对应的是哪个物理网卡

使用命令,可以看到网口mac地址和pci地址。但是只能看到没直通的网口。

esxcli network nic list

esxi快捷键

ALT+F1 = 切换到控制台。
ALT+F2 = 切换到 DCUI。
ALT+F11 = 返回横幅屏幕。
ALT+F12 = 在控制台上显示 VMkernel 日志。

总结

因为 Esxi 是根据Pci地址进行直通,插入Pci无线网卡后,各设备的Pci地址发生了变动。导致直通的设备发生了改变,原先的管理口被直通了。根据新的Pci地址重新设直通的网口就行了。

参考文章

https://www.elliot98.top/post/tech/esxi-passthrough/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xzatebur

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值