【NetworkManager】nmcli 加载网卡配置文件报错?

问题现象:

用户在 /etc/NetworkManager/NetworkManager.conf 文件中使用了keyfile 插件来设置需要被NetworkManager忽略管理的网卡,相关配置如下:

[main]
plugins=keyfile
[keyfile]
unmanaged-devices=interface-name:eth3

重启服务后,发现nmcli命令加载网卡配置文件报错:

# nmcli connection load "/etc/sysconfig/network-scripts/ifcfg-eth2"
Could not load file '/etc/sysconfig/network-scripts/ifcfg-eth2'

问题原因:

NetworkManager 在编译时默认启用的plugins插件中,‘ifcfg-rh’,此插件负责读写/etc/sysconfig/network-scripts/目录下的配置文件,用户设置plugins时覆盖了默认配置,造成ifcfg-rh插件不可用

解决方法:

修改NetworkManager.conf文件配置为正确格式,以下几种方式均可:

  • 1 plugins追加使能keyfle插件
[main]
plugins+=keyfile
[keyfile]
unmanaged-devices=interface-name:eth3
  • 2 plugins列举所有需要使能的插件
[main]
plugins=ifcfg-rh,keyfile
[keyfile]
unmanaged-devices=interface-name:eth3
  • 3 由于NetworkManager默认加载了keyfile,也可以直接设置unmanaged-devices,不写plugins+=keyfile语句,如下:
[main]
[keyfile]
unmanaged-devices=interface-name:eth3

那么进一步了解一下

如何确定NetworkManager使能了哪些插件?

当无法确认源码中使能插件情况,可以通过日志内容确认NetworkManager实际生效了什么插件
使用journalctl -u NetworkManager命令查看日志,查看Loaded settings plugin:关键字,确认本次NetworkManager启动加载了ifcfg-rh和 keyfile插件

Mar 17 19:37:11 new_hostname NetworkManager[1563581]: [1647517031.1073] settings: Loaded settings plugin: ifcfg-rh (“/usr/lib64/NetworkManager/1.26.2-4/libnm-settings-plugin-ifcfg-rh.so”)
Mar 17 19:37:11 new_hostname NetworkManager[1563581]: [1647517031.1074] settings: Loaded settings plugin: keyfile (internal)