系统版本:
X86 / fnOS 6.18.18-trim
设备环境:
- 物理机
- 局域网
- 多网卡服务器,使用 Intel 网卡组建 bond1(LACP 802.3ad模式)
BUG 现象:
服务器重启或系统更新后,bond1 网络聚合接口状态变为 DOWN,导致绑定在 bond1 上的 IP 地址(192.168.31.118)无法正常通信。
经排查,发现原因是网卡设备命名发生变化:
- 原 slave 配置期望接口名:
enp1s0f0 和 enp1s0f1
- 当前系统实际接口名:
enp1s0f0np0 和 enp1s0f1np1
NetworkManager 的 bond1-slave1 和 bond1-slave2 连接配置中 connection.interface-name 字段仍为旧名称,无法匹配到新的网卡接口,导致 slave 无法激活,bond1 处于 NO-CARRIER 状态。
解决方案:
方案一(修正接口名,重启后有效,但可能再次出现问题):
nmcli connection modify bond1-slave1 connection.interface-name enp1s0f0np0
nmcli connection modify bond1-slave2 connection.interface-name enp1s0f1np1
nmcli connection up bond1-slave1
nmcli connection up bond1-slave2
方案二(推荐:使用 MAC 地址绑定,更稳定):
nmcli connection modify bond1-slave1 802-3-ethernet.mac-address 00:e0:ed:96:29:64 connection.interface-name ""
nmcli connection modify bond1-slave2 802-3-ethernet.mac-address 00:e0:ed:96:29:65 connection.interface-name ""
nmcli connection up bond1-slave1
nmcli connection up bond1-slave2
通过 MAC 地址绑定,无论接口名如何变化,都能正确匹配到对应的网卡设备。
建议:
系统在创建 bond 配置时,应默认使用 MAC 地址绑定方式而非接口名绑定,避免因内核升级或驱动更新导致网卡命名规则变化时网络配置失效。
出现频率:
系统更新/重启后触发
联系方式:
论坛或timands#gmail.com