千家信息网

软件配置Network Manager以忽略某些网络设备

发表于:2024-11-19 作者:千家信息网编辑
千家信息网最后更新 2024年11月19日,这篇文章将为大家详细讲解有关软件配置Network Manager以忽略某些网络设备,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Network Manager 是
千家信息网最后更新 2024年11月19日软件配置Network Manager以忽略某些网络设备

这篇文章将为大家详细讲解有关软件配置Network Manager以忽略某些网络设备,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

Network Manager 是一个能够动态控制和配置网络的守护进程,对应 NetworkManager.service 服务,默认配置文件路径 /etc/NetworkManager/NetworkManager.conf。从 RHEL/CentOS 7 开始,网络功能默认由 NetworkManager 以服务的形式提供。Ubuntu 的 server 版本默认没有启用 NetworkManager。

默认情况下,NetworkManager 管理除 lo(环回)设备以外的所有设备。但是,在容器环境下很多网络设备是由网络驱动创建,NetworkManager 对容器网络设备的控制可能导致集群网络通信异常。因为需要将容器相关的设备设置为 unmanaged,以使NetworkManager 忽略这些设备。

查看设备状态

# 查看设备管理状态
nmcli device status

临时 unmanaged

如果只是临时测试,那么可以通过 nmcli 命令去设置某个网络设备为 unmanaged 状态。但是只要重启 NetworkManager 服务或者重启了主机,网络接口又会恢复为 managed 状态。

nmcli device set xxx managed no

永久 unmanaged

要想永久的排除 NetworkManager 管理某些网络设备,则需要通过配置文件去设置。

  1. 启用插件

    /etc/NetworkManager/NetworkManager.conf 配置文件的[main] 层级下启用插件 keyfile。

    [main]
    plugins=keyfile
  2. 创建 /etc/NetworkManager/conf.d/99-unmanaged-devices.conf 配置文件,包含以下内容:

    [keyfile]
    unmanaged-devices=interface-name:eth*,except:interface-name:eth0;interface-name:docker0;interface-name:flannel*;interface-name:flannel*;interface-name:cni0;;mac:66:77:88:99:00:aa
    • 以分号隔开;

    • 可以使用通配符来匹配接口;

    • interface-name:eth*,except:interface-name:eth0; 表示:除了 eth0,其他以 eth 开头的接口全部 unmanaged;

    • 可以通过 mac 地址来排除接口;

  3. 重新加载配置

    systemctl reload NetworkManager

    禁用 Network Manager

配置的错误,或者配置更新不及时都可能导致不必要的问题,如果不是必须使用 NetworkManager 服务,一般情况还是建议禁用 Network Manager 服务。

关于"软件配置Network Manager以忽略某些网络设备"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

0