m0_65343271 2026-04-22 16:11 采纳率: 0%
浏览 1

ibdev2netdev映射关系有有问题怎么办

cpu为kunpeng-920 搭配Mellanox Technologies MT27710 Family [ConnectX-4 Lx]网卡

正常情况
#ibdev2netdev
mlx5_0 port 1 ==> enp2s0f0np0 (Down)
mlx5-1 port 1 ==> enp2s0f1np1 (Down)
mlx5_bond_0 port 1 ==> bond0 (Up)

异常情况
#ibdev2netdev
mlx5_0 port 1 ==> enp2s0f0np0 (Down)
mlx5_1 port 1 ==> enp2s0f1np1 (Down)
mlx5_bond_0 port 1 ==> eth6 (Up)

  • 写回答

2条回答 默认 最新

  • 檀越@新空间 2026-04-22 16:12
    关注

    下午好🌅🌅🌅
    本答案参考通义千问

    在您提供的环境中,Kunpeng 920 CPU 搭配 Mellanox MT27710(ConnectX-4 Lx)网卡,使用 ibdev2netdev 工具查看 InfiniBand 设备与 Linux 网络接口的映射关系时,出现了异常情况。正常情况下,mlx5_bond_0 应该映射到 bond0,但在异常情况下,它却映射到了 eth6


    问题分析

    1. 异常现象描述

    • 正常情况:

      mlx5_0 port 1 ==> enp2s0f0np0 (Down)
      mlx5_1 port 1 ==> enp2s0f1np1 (Down)
      mlx5_bond_0 port 1 ==> bond0 (Up)
      
    • 异常情况:

      mlx5_0 port 1 ==> enp2s0f0np0 (Down)
      mlx5_1 port 1 ==> enp2s0f1np1 (Down)
      mlx5_bond_0 port 1 ==> eth6 (Up)
      

    关键差异:
    mlx5_bond_0 映射的网络接口从 bond0 变成了 eth6,这可能是由于以下原因之一:


    可能原因

    1. 内核驱动或固件不兼容

      • Kunpeng 920 是 ARM 架构 CPU,而 Mellanox 的驱动(如 mlx5_core)主要为 x86 优化。
      • 如果驱动版本过旧或未适配 Kunpeng 平台,可能导致设备映射异常。
    2. 网桥或 bonding 配置错误

      • mlx5_bond_0 是一个虚拟的 InfiniBand 接口,通常通过 mlx5_ibmlx5_core 驱动创建。
      • 如果系统中存在多个 mlx5 接口,可能会出现映射冲突。
    3. ibdev2netdev 工具配置或版本问题

      • 该工具依赖于 libibverbslibmlx5 等库。
      • 如果这些库版本不一致或损坏,可能导致映射错误。
    4. 系统重启或配置文件变更

      • 在系统重启后,某些配置未正确加载,导致设备映射混乱。

    解决方案

    第一步:检查驱动和固件版本

    1. 查看 mlx5 驱动版本

    modinfo mlx5_core
    

    2. 查看 Mellanox 固件版本

    sudo ibv_devinfo
    

    3. 查看 libibverbs 版本

    ldconfig -p | grep libibverbs
    

    建议升级到最新版本的 Mellanox 驱动(如 MLNX_OFED)以适配 Kunpeng 平台。


    第二步:确认网络接口绑定状态

    1. 查看当前 bonding 状态

    cat /proc/net/bonding/bond0
    

    2. 检查是否有多余的 mlx5 接口被误绑定

    ip link show
    

    3. 检查是否有重复的网络接口名称

    ls /sys/class/net/
    

    第三步:修复 ibdev2netdev 映射关系

    1. 手动设置映射关系(临时)

    sudo ibdev2netdev mlx5_bond_0 port 1 enp2s0f0np0
    sudo ibdev2netdev mlx5_bond_0 port 1 enp2s0f1np1
    

    注意:此操作仅用于调试,重启后失效。

    2. 修改 /etc/udev/rules.d/ 中的规则文件(持久化)

    sudo nano /etc/udev/rules.d/80-mlx5.rules
    

    添加以下内容(根据您的设备 ID 调整):

    SUBSYSTEM=="infiniband", KERNEL=="mlx5_0", NAME="mlx5_0"
    SUBSYSTEM=="infiniband", KERNEL=="mlx5_1", NAME="mlx5_1"
    SUBSYSTEM=="infiniband", KERNEL=="mlx5_bond_0", NAME="mlx5_bond_0"
    

    然后重新加载 udev 规则:

    sudo udevadm trigger
    sudo udevadm settle
    

    第四步:修改 mlx5_bond_0 映射到 bond0

    如果发现 mlx5_bond_0 映射到 eth6,可以尝试手动绑定:

    1. 停止当前绑定

    sudo ip link set eth6 down
    

    2. 将 mlx5_bond_0 绑定到 bond0

    sudo ibdev2netdev mlx5_bond_0 port 1 bond0
    

    注意: bond0 必须是已经配置好的 bonding 接口。


    第五步:检查并修复网络配置文件

    确保 /etc/network/interfaces/etc/sysconfig/network-scripts/ 中没有错误配置。

    例如,在 Ubuntu 中:

    auto bond0
    iface bond0 inet static
        address 192.168.1.100
        netmask 255.255.255.0
        gateway 192.168.1.1
        dns-nameservers 8.8.8.8
        slaves enp2s0f0np0 enp2s0f1np1
    

    总结

    | 步骤 | 内容 | |------|------| | 1 | 检查驱动和固件版本,确保兼容性 | | 2 | 确认网络接口绑定状态,排查冲突 | | 3 | 使用 ibdev2netdev 手动修复映射关系 | | 4 | 修改 udev 规则,实现持久化绑定 | | 5 | 检查网络配置文件,确保无误 |


    推荐操作流程(重点)

    1. 升级 Mellanox 驱动到最新版本(支持 Kunpeng 920)
    2. 检查并修正 mlx5_bond_0bond0 的映射
    3. 验证 ibdev2netdev 映射是否稳定
    4. 重启系统后再次检查映射关系

    附录:修改后的示例配置(适用于 bonding)

    # /etc/network/interfaces
    
    auto enp2s0f0np0
    iface enp2s0f0np0 inet manual
    
    auto enp2s0f1np1
    iface enp2s0f1np1 inet manual
    
    auto bond0
    iface bond0 inet static
        address 192.168.1.100
        netmask 255.255.255.0
        gateway 192.168.1.1
        dns-nameservers 8.8.8.8
        slaves enp2s0f0np0 enp2s0f1np1
        bond-mode 802.3ad
        bond-miimon 100
        bond-lacp-rate 1
    

    如果您能提供具体的日志信息(如 /var/log/messagesdmesg),我可以进一步帮助您定位问题根源。

    评论

报告相同问题?

问题事件

  • 创建了问题 4月22日