当前位置:首页>Linux>Linux网卡重命名指南:从eth0到RDMA设备的映射

Linux网卡重命名指南:从eth0到RDMA设备的映射

  • 2026-09-07 11:06:59
Linux网卡重命名指南:从eth0到RDMA设备的映射

写在前面

你是否遇到过这样的困扰:Linux服务器上的网卡名称从熟悉的eth 0、eth 1变成了ens3**np*、enp1*f0np*,在配置高性能RDMA网络时,需要给eth0—eth*网口批量配置ip,而由于网口名被rename不能批量操作。。。😐

for i in {1..10};do *** ;ifconfig eth${i} *** ;ifconfig eth${i} mtu *** ;done

今天这篇文章,将教你如何解决~


一、为什么网卡名称变了?

从CentOS 7、Ubuntu 16.04开始,Linux系统引入了"可预测网络接口命名"机制。虽然这种命名方式在某些场景下提供了稳定性,但对于运维人员来说,传统的eth0、eth1命名显然更加直观。

本文将带你:

  • 🔧 恢复传统网卡命名方式

  • 📡 配置RDMA高性能网络

  • 🎯 解决设备映射混乱问题


二、3步搞定网卡重命名

第1步:修改GRUB配置

编辑GRUB配置文件:

sudo vim /etc/default/grub

找到GRUB_CMDLINE_LINUX这一行,添加两个关键参数:

GRUB_CMDLINE_LINUX="net.ifnames=0 biosdevname=0"

参数解释:

  • net.ifnames=0

    这是systemd/udev 的网络接口命名控制参数,默认情况下(net.ifnames=1),系统会按“可预测网络接口名称”规则给网卡起名。设为 net.ifnames=0时,告诉内核/udev:不要用这套新命名规则,网卡就叫 eth0、eth1…

  • biosdevname=0 

    这是 Dell 发起的 biosdevname 工具的开关,设为 biosdevname=0就是:禁用 biosdevname 这套命名逻辑,不让它参与网卡命名。

    如果该行已有其他参数,在末尾追加即可:

GRUB_CMDLINE_LINUX="crashkernel=auto quiet net.ifnames=0 biosdevname=0"

第2步:更新引导配置

RHEL/CentOS/Rocky系统:

# BIOS引导sudo grub2-mkconfig -o /boot/grub2/grub.cfg# UEFI引导sudo grub2-mkconfig -o /boot/efi/EFI/centos/grub.cfg

Ubuntu/Debian系统:

sudo update-grub

第3步:重启验证

sudo reboot

重启后检查网卡名称:

ip link show

你应该能看到熟悉的eth0、eth1了!


三、高级玩法之固定网卡与MAC地址绑定

为了防止网卡顺序混乱,建议创建udev规则固定网卡名称:

sudo vi /etc/udev/rules.d/70-persistent-net.rules

添加规则(替换为你的实际MAC地址):

SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="00:11:22:33:44:55", NAME="eth0"SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="66:77:88:99:aa:bb", NAME="eth1"

如何查看MAC地址?

ip link show | grep -A1 "enp\|eno"

四、RDMA环境配置指南

对于使用InfiniBand或RoCE的高性能计算场景,网卡重命名后需要正确配置RDMA设备映射。

4.1 检查RDMA设备状态

首先查看系统中的RDMA设备:

# 列出所有RDMA设备:ibv_devices# 查看详细信息:ibv_devinfo# 查看设备与网卡映射关系 ls -l /sys/class/infiniband/*/device/net/

4.2 验证驱动加载

确保RDMA相关内核模块已加载:

# 检查Mellanox网卡驱动:lsmod | grep mlx5# 检查InfiniBand核心模块:lsmod | grep ib_# 如未加载需手动加载:sudo modprobe mlx5_coresudo modprobe mlx5_ibsudo modprobe rdma_cm

4.3 安装配置OpenSM(InfiniBand环境)

对于InfiniBand网络,需要运行子网管理器:

# 安装OpenSM:sudo yum install opensm     # RHEL/CentOS:sudo apt install opensm     # Ubuntu# 启动并设置开机自启sudo systemctl start opensmsudo systemctl enable opensm

4.4 性能测试

使用RDMA性能测试工具验证配置:

带宽测试:

# 服务器端ib_send_bw -d mlx5_0# 客户端ib_send_bw -d mlx5_0 <服务器IP>

延迟测试:

# 服务器端ib_send_lat -d mlx5_0# 客户端ib_send_lat -d mlx5_0 <服务器IP>

五、实用工具:RDMA设备映射脚本

创建一个脚本快速查看RDMA设备与网卡的对应关系:

#!/bin/bash# 文件名: rdma_mapping.shecho "========================================"echo "  RDMA设备与网卡映射关系"echo "========================================"for dev in /sys/class/infiniband/*; do    ibdev=$(basename $dev)    netdev=$(ls $dev/device/net/ 2>/dev/null | head -1)    if [ -n "$netdev" ]; then            mac=$(cat /sys/class/net/$netdev/address)            ip=$(ip -4 addr show $netdev | grep inet | awk '{print $2}')               echo "RDMA设备: $ibdev"                echo "  └─ 网卡: $netdev"                echo "  └─ MAC: $mac"                echo "  └─ IP: ${ip:-未配置}"                echo ""            fidone

保存后赋予执行权限:

chmod +x rdma_mapping.sh./rdma_mapping.sh

六、常见问题排查

❌ 问题1:重启后网卡名称没变

排查步骤:

# 检查当前内核参数cat /proc/cmdline# 确认是否包含 net.ifnames=0 biosdevname=0

如果未包含,说明GRUB配置未生效,重新检查是否拼写错误。

❌ 问题2:RDMA设备无法识别

可能原因:

  • OFED驱动未安装

  • 内核模块未加载

  • 固件版本不兼容

解决方案:

# 检查Mellanox OFED版本ofed_info -s# 重新安装OFED(如有必要)sudo /etc/init.d/openibd restart

❌ 问题3:网络配置文件冲突

删除旧的网络配置文件:

# RHEL/CentOSsudo rm /etc/sysconfig/network-scripts/ifcfg-eno*sudo rm /etc/sysconfig/network-scripts/ifcfg-enp*# 重新生成eth0配置sudo nmcli con add type ethernet ifname eth0

七、最佳实践建议

✅ 配置前准备

  1. 备份关键配置

    sudo cp /etc/default/grub /etc/default/grub.bak
    sudo tar czf network-backup.tar.gz /etc/sysconfig/network-scripts/
  2. 记录硬件信息

    # 生成网卡信息表 ip link show | grep -E "^[0-9]+" > network-info.txtlspci | grep -i ethernet >> network-info.txt

✅ 监控与维护

建议定期检查:

  • RDMA设备状态: ibstat

  • 网络性能指标: sar -n DEV 1 10

  • 错误日志: journalctl -u NetworkManager -f


八、总结

通过本文的配置方法,你可以:

  1. 恢复直观的网卡命名 - 告别enp3**,拥抱eth0

  2. 稳定RDMA设备映射 - 确保高性能网络可靠运行

  3. 掌握问题排查技巧 - 快速定位和解决常见故障

无论是传统的以太网环境,还是高性能的RDMA场景,合理的网络配置都是系统稳定运行的基石。

最新文章

随机文章