如何停止网络管理器在/run/NetworkManager/system-connections下创建连接?

问题描述 投票:0回答:1

我正在尝试使用 NetworkManager 1.42 在 RHEL9 服务器上配置网络。我通过按照

here
将一堆密钥文件写到/etc/NetworkManager/system-connections来做到这一点。

我运行的服务器有一个怪癖,这是在 chroot 环境中完成的(遗憾的是这是不可避免的,因为它是作为操作系统升级的一部分运行的),所以我在写入密钥文件后无法运行

nmcli connection reload
。尽管如此,我希望重新启动整个机器就足以让 NetworkManager 重新加载连接。

这是我写入的文件

/etc/NetworkManager/system-connections/ethMgmt

[connection]
id=ethMgmt
type=ethernet
interface-name=ethMgmt
autoconnect=true


[ethernet]
mac-address=00:0d:3a:aa:97:31

[ipv4]
method=manual
address1=10.60.4.101/27,10.60.4.97

[ipv6]
method=disabled

然后重新启动后,我可以看到连接已被读取,但已经创建了其他几个连接:

$ nmcli -f TYPE,FILENAME,NAME connection
TYPE      FILENAME                                                     NAME
loopback  /run/NetworkManager/system-connections/lo.nmconnection       lo       // green - connected
ethernet  /run/NetworkManager/system-connections/ethMgmt.nmconnection  ethMgmt  // green - connected
ethernet  /etc/NetworkManager/system-connections/ethMgmt.nmconnection  ethMgmt  // grey - not connected

我应该提到,我还安装了

NetworkManager-config-server
RPM,因此我的 NetworkManager 配置为:
no-auto-default=*

删除

/run/NetworkManager/system-connections/*
下的文件并使用
systemctl restart NetworkManager
重新启动 NetworkManager 会将它们恢复,所以我确信是 NetworkManager 创建了它们。它们看起来像这样(配置明显不同):

[connection]
id=ethMgmt
uuid=12899f61-26c1-4b62-826e-5ec70a545802
type=ethernet
autoconnect=false
interface-name=ethMgmt
timestamp=1701105499

[ethernet]
mac-address=00:0D:3A:AA:97:31

[ipv4]
address1=10.60.4.101/27,10.60.4.97
method=manual
route1=168.63.129.16/32,10.60.4.97,0
route2=169.254.169.254/32,10.60.4.97,0

[ipv6]
addr-gen-mode=default
method=link-local

[proxy]

[.nmmeta]
nm-generated=true
volatile=true
external=true

我似乎可以通过以下方式解决问题:

rm -rf /run/NetworkManager/system-connections/*
nmcli connection reload

...结果是:

$ nmcli -f TYPE,FILENAME,NAME connection
TYPE      FILENAME                                                     NAME
loopback  /run/NetworkManager/system-connections/lo.nmconnection       lo      -- green / connected
ethernet  /etc/NetworkManager/system-connections/ethMgmt.nmconnection  ethMgmt  -- green / connected

...但这是一个相当不优雅的解决方案(特别是必须记住在重新启动机器后运行一些命令)。

我可以采取什么措施来阻止 NetworkManager 创建这些文件并在启动时读取

/etc/NetworkManager/system-connections/ethMgmt.nmconnection

rhel networkmanager rhel9
1个回答
0
投票

我缺少配置的“保持配置”位。将以下内容添加到

/usr/lib/NetworkManager/conf.d/01-custom.conf
解决了这个问题:

[device]
keep-configuration=no

来自文档

启动时,NetworkManager 会尝试不干扰已配置的接口。它通过根据接口当前配置生成内存中连接来实现此目的。 如果生成的连接与现有持久连接之一匹配,则该持久连接将被激活。如果不匹配,生成的连接将被激活为“外部”,这意味着该连接被视为活动的,但 NetworkManager 实际上并不接触该接口。

可以通过将 keep-configuration 设置为 no 来禁用此行为。通过这种方式,在启动时 NetworkManager 总是尝试激活最合适的持久连接(具有最高自动连接优先级的连接,或者,如果出现平局,则激活最近激活的连接)。

请注意,当 NetworkManager 重新启动时,它会将之前的状态存储在 /run/NetworkManager 中;特别是,它会保存之前处于活动状态的连接的 UUID,以便在重新启动后可以再次激活它。因此keep-configuration对服务重启没有任何影响。

© www.soinside.com 2019 - 2024. All rights reserved.