Linux网卡命名策略详解:从ethX到systemd-udev的变迁

本文旨在阐述在安装 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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
保哥的头像保哥
上一篇 2024年8月16日
下一篇 2024年8月23日

相关推荐

发表回复

登录后才能评论