linux系统重启网卡后网络不通(NetworkManager篇)

一.故障现象

RHEL7.6系统,使用nmcli绑定双网卡后,再使用以下命令重启network服务后主机网络异常,导致无法通过ssh远程登录系统。

# systemctl restart network

二.理论知识

Network service的制御网络接口配置信息改动后,网络服务必须从新启动,来激活网络新配置的使得配置生效,这部分操作和从新启动系统时时一样的作用。制御(控制)是/etc/init.d/network这个文件,可以用这个文件后面加上下面的参数来操作网络服务。例如:
# /etc/init.d/network restart
同样也可以用service这个命令来操作网络服务例如:
# service network restart
# systemctl restart network
(NetworManager)是检测网络、自动连接网络的程序。无论是无线还是有线连接,它都可以令您轻松管理。对于无线网络,网络管理器可以自动切换到最可靠的无线网络。利用网络管理器的程序可以自由切换在线和离线模式。网络管理器可以优先选择有线网络,支持 VPN。网络管理器最初由 Redhat 公司开发,现在由 GNOME 管理

三.环境分析

系统版本:Red Hat Enterprise Linux Server release 7.6
内核版本:3.10.0-957.el7.x86_64
硬件类型:Huawei 2288H V5
首先检查系统网络配置,该系统配置两块bonding设备,分别是:
bond0:业务网络
bond1: Oracle RAC心跳网络
分析系统日志,当重启network服务时(systemctl restart network),系统messages日志中无明显异常,测试发现,当停止NetworkManager服务后,问题现象消失,即执行如下操作:

# systemctl stop NetworkManager

此时再次重启network服务:

# systemctl restart network

可以很快ping通bond0的业务地址10.116.6.194。
进一步分析发现,如果不停止NetworkManager服务,而是修改网卡配置文件,在bonding网卡和组成bonding的slave网卡的配置文件中增加一行配置,也可以解决该问题。

NM_CONTROLLED=no

参考红帽RHEL7配置网卡bonding的官方文档:
linux系统重启网卡后网络不通(NetworkManager篇)
可以看到,官方文档的配置示例中设置了NM_CONTROLLED=”no”:
linux系统重启网卡后网络不通(NetworkManager篇)

四.原厂问题建议

该问题是由于NetworkManager服务引起,可以通过如下两种方法解决:

  • 在网卡配置文件中增加参数NM_CONTROLLED=no(“no”的引号可以不写),设置后重启network服务生效。设置NM_CONTROLLED=no的目的是将网络设备脱离NetworkManager服务的管理,设置后该网络设备仅由network服务管理,不受NetworkManager服务控制,因而nmcli命令对该网络设备不再生效;
  • 停止并禁用NetworkManager服务,停用后所有网络设备由network服务管理,不能通过nmcli命令来管理网络设备:

# systemctl stop NetworkManager
# systemctl disable NetworkManager

五.解决方案

据上所述,可关闭NetworkManager服务或在BOND配置文件中添加参数,但因环境需要,需使用nmcli命令,故无法关闭NetworkManager,在多轮测试中进行思考,既然NetManager与network服务冲突,但nmcli命令属于NetworkManager,systemctl一般用来管理network,考虑两者管理命令可能也存在冲突后进行了一波测试,使用NetworkManager的nmcli进行网卡的重启操作,使用以下命令后,网络可以即刻ping通并通过SSH连接

# nmcli connection down 网口名称
# nmcli connection up 网口名称

六.结论

因NetworkManager与network服务存在冲突,且双网卡绑定时所使用的的nmcli进行绑定,nmcli归属于NetworkManager,故重启网卡时应用nmcli命令up/down,不应使用systemctl进行网卡重启

原创文章,作者:AIRF,如若转载,请注明出处:http://www.ai-rf.com/index.php/2021/11/16/linux%e7%b3%bb%e7%bb%9f%e9%87%8d%e5%90%af%e7%bd%91%e5%8d%a1%e5%90%8e%e7%bd%91%e7%bb%9c%e4%b8%8d%e9%80%9a%ef%bc%88networkmanager%e7%af%87%ef%bc%89/

(0)
AIRFAIRF
上一篇 2023年9月17日
下一篇 2021年11月21日

相关推荐

  • Windows安装远程桌面及破解120天时间限制授权

    一.问题描述 Windows Server系列服务器默认远程桌面连接数是2个用户(本文适用于所有Windows Server系列服务器),如果多余两个用户进行远程桌面连接时,系统就…

    Windows系统 2021年11月21日
  • Linux系统ssh连接无响应

    一.问题描述 某集群数据节点服务器频繁无法连接,服务器间出现可ping通但ssh无法连接的情况,使用带外地址登录后远程控制也无法显示正常界面,重启后会短暂恢复。 二.排查问题 重启…

    Linux系统 2021年11月21日
  • 探索与筑梦:人工智能射频设计平台

    连接智能与频谱的未来:为什么我们要创立这个人工智能射频设计平台 在当今科技爆炸的时代,有两个看似独立却正在发生剧烈碰撞的领域:人工智能(AI) 与 射频(RF)技术。 从智能手机到…

    Linux系统 2024年6月15日
  • 操作系统的由来及主要功能

    简介 操作系统(Operating System, OS)起源于20世纪50年代早期,当时计算机主要用于科研和军事领域,运行的是批处理操作系统。这种系统的主要特点是允许用户提交一组…

    C&C++&C# 2023年12月16日
  • Linux exec指令

    Linux exec指令 exec是Linux Shell中一个非常重要的内建命令,用于替换当前shell的进程空间,执行指定命令或脚本而不启动新的子进程。理解和灵活运用exec对…

    Linux系统 2024年12月25日
  • 使用三剑客(awk,sed,grep)过滤目录权限

    例:将/目录下etc目录的权限转换成数字输出 方法1 stat /etc | sed -n ‘4p’ | cut -d “(” -f2 | cut -d “/” -f1 方法2 s…

    Linux系统 2022年10月5日
  • Linux ls 命令提示 Input/output error

    一.问题描述 某一台跑批服务器硬盘无法正常读写,提示input/output error,服务器每天均需使用,询问情况后发现服务器首先为硬盘故障,更换硬盘后提示此错误(RAID已正…

    Linux系统 2021年11月21日
  • VMware NAT模式将虚拟机IP设置为固定IP

    简介 第一种方式:使用DHCP协议自动获取;每次启动虚拟机都需要把网口UP一下,IP可能会变第二种方式:推荐使用这种,因为以后工作中需要让服务器具有固定IP,才能访问到,要是一直变…

    2023年9月15日
  • Linux中关于glibc包编译升级导致服务器命令无法使用

    服务器上编译glibc2.30版本导致命令不能用 Inconsistency detected by ld.so: dl-call-libc-early-init.c: 37: _…

    Linux系统 2025年2月14日
  • GScan – Linux安全入侵扫描工具

    宗旨 本程序旨在为安全应急响应人员对Linux主机排查时提供便利,实现主机侧Checklist的自动全面化检测,根据检测结果自动数据聚合,进行黑客攻击路径溯源。 检测项 1、主机信…

    2023年5月9日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

评论列表(0条)

  • 吴某人
    吴某人 2021年11月17日 上午11:15

    本站第一条评论呀[f=ciya]