本文旨在阐述在安装 Red Hat Enterprise Linux 9 操作系统时,如何自定义以太网网卡接口的名称前缀。同时,本文还将概述在使用systemd-udev的Linux系统中,网卡接口命名规则发生变化的原因。
一、命名规则解析
自Linux系统采用systemd-udev管理设备以来,传统的ethX命名方式已不再用于以太网网卡的默认命名。这一变化源于systemd-udev与旧版udev在行为上的显著差异。systemd-udev不再依赖于接口的MAC地址,并且放弃了维护MAC地址到接口名称的映射规则。取而代之的是,udev依据PCI插槽编号或PCI总线地址等稳定属性,以可预测的模式对所有网络接口进行重命名。只要这些属性保持不变,systemd-udev就能确保在系统重启后接口名称的一致性。因此,新版本的udev不再遵循内核的ethX命名模式,而是实现了systemd所称的“可预测网络接口”(Predictable Network Interface)特性。
二、systemd的五种网络接口命名策略
systemd 实现了五种不同的网络接口命名策略,以满足不同类型的设备命名需求:
1.传统命名策略
使用 ethX、wifiX 等形式,这些命名方式在早期的 Linux 系统中广泛使用。
2.不可热插拔板载设备
对于由固件或 BIOS 提供的不可热插拔板载设备,接口名称采用 enoX 的形式。
3.可热插拔 PCIe 设备
对于由固件或 BIOS 提供的 PCIe 可热插拔设备,接口名称使用 ensX 的格式。
4.基于硬件物理/地理地址
接口名称采用 enpXsYdZvM 的格式,其中包含了 PCI 总线、插槽、设备端口和 SR-IOV 虚拟功能编号等信息。
5.基于硬件物理地址(MAC)
接口名称为 enxFFFF0000AAAA,这种格式直接基于设备的 MAC 地址。值得注意的是,基于 MAC 地址的命名策略(第五个策略)默认情况下不会被系统采用。它仅当用户手动选择或定义了自定义的 udev 规则时才会生效。在这种情况下,udev 规则将优先于默认的命名策略执行。
三、深度解析Linux网卡名称enp4s0d1v7
例如网卡:enp4s0d1v7
en:这部分是名称的前缀,代表该接口是一个以太网(Ethernet)接口。在systemd-udev的命名规则中,不同类型的网络接口会有不同的前缀,比如en代表以太网,wl可能代表无线局域网(Wi-Fi),sw可能代表软件定义的接口等。 p:紧跟在en之后的是设备类型或位置的标识符。在这个例子中,p表示该接口是通过PCI(Peripheral Component Interconnect)总线连接的。如果是USB设备,可能会看到u;如果是内置在主板上的设备,则可能是o(表示on-board)。 4:这个数字代表了PCI总线的编号。PCI总线编号是硬件级别的标识,通常不会因系统重启而改变。 s:这个字符表示插槽(slot)或功能(function)的编号。在大多数情况下,对于网卡来说,这个编号是0,因为大多数网卡只占用一个插槽或功能。然而,在一些特殊情况下,如具有多个物理端口的网卡或支持SR-IOV(Single Root I/O Virtualization)的网卡,可能会看到不同的编号。 0:这里的0是插槽或功能的具体编号,与前面的s一起,表示这是该PCI总线上的第一个插槽或功能(尽管对于大多数网卡来说,这个编号通常是0)。 d:在某些情况下,如支持多个物理端口的网卡,会出现这个字符,代表设备(device)端口号。d1意味着这是该网卡上的第二个物理端口(因为计数通常从0开始,但0通常表示默认或主端口,不显式显示)。 1:与前面的d一起,1表示这是该网卡上的第二个物理端口。 v:这个字符专门用于表示SR-IOV(Single Root I/O Virtualization)的虚拟功能(Virtual Function,VF)。SR-IOV允许单个物理网卡被划分为多个虚拟网卡,每个虚拟网卡都可以独立地配置和使用。v7表示这是该网卡的第八个虚拟功能(因为计数从0开始,但这里直接显示了7)。 7:与前面的v一起,7表示这是分配给该网卡的第八个虚拟功能的编号。
原创文章,作者:保哥,如若转载,请注明出处:https://www.shizhanxia.com/1572.html