Red Hat Training

A Red Hat training course is available for RHEL 8

第 1 章 一致的网络接口设备命名

Linux 内核通过将固定前缀与随着内核初始化网络设备而增加的数字连接在一起,来为网络接口分配名称。例如,eth0 代表启动时被探测的第一个设备。如果您在系统中添加另一个网卡,则内核设备名称的分配将不再是固定的。因此,重启后内核可能会以不同的方式为该设备命名。

要解决这个问题,udev 设备管理器支持很多不同的命名方案。默认情况下,udev 根据固件、拓扑和位置信息分配固定名称。它有以下优点:

  • 设备名称完全可预测。
  • 即使添加或删除了硬件,设备名称也会保持不变,因为不会进行重新枚举。
  • 因此,有问题的硬件可以被无缝地替换。
警告

红帽不支持禁用了一致设备命名的系统。详情请查看 是否可以安全地设置 net.ifnames=0?

1.1. 网络接口设备命名等级

如果启用了一致的设备命名(在 Red Hat Enterprise Linux 中是默认设置),则 udev 设备管理器会根据以下方案生成设备名称:

方案描述示例

1

设备名称包含固件或者 BIOS 提供的索引号,用于板上的设备。如果此信息不可用或不适用,则 udev 将使用方案 2。

eno1

2

设备名称包含固件或 BIOS 提供的 PCI Express(PCIe)热插件插槽索引号。如果此信息不可用或不适用,则 udev 将使用方案 3。

ens1

3

设备名称包含硬件连接器的物理位置。如果此信息不可用或不适用,则 udev 将使用方案 5。

enp2s0

4

设备名称包含 MAC 地址。Red Hat Enterprise Linux 默认不使用这个方案,但管理员可选择性地使用它。

enx525400d5e0fb

5

传统的无法预计的内核命名方案。如果 udev 无法应用任何其他方案,则设备管理器使用这个方案。

eth0

默认情况下,Red Hat Enterprise Linux 根据 /usr/lib/systemd/network/99-default.link 文件中的 NamePolicy 设置选择设备名称。NamePolicy 中值的顺序非常重要。Red Hat Enterprise Linux 使用文件中指定的和 udev 生成的第一个设备名称。

如果您手动配置 udev 规则来更改内核设备名称,则这些规则优先。