一.故障现象

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的官方文档: https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/networking_guide/sec-network_bonding_using_the_command_line_interface

可以看到,官方文档的配置示例中设置了NM_CONTROLLED=”no”:



四.原厂问题建议

该问题是由于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进行网卡重启

转载请标明出处:

1.博客中标注原创的文章,版权归原作者 heardic 所有;

2.未经原作者允许不得转载本文内容,否则将视为侵权;

3.转载或者引用本文内容请注明来源及原作者;

4.对于不遵守此声明或者其他违法使用本文内容者,本人依法保留追究权等。

最新文章

  1. 一鼓作气 博客--第五篇 note5
  2. windows  远程桌面命令 mstsc
  3. 58.com qiyi
  4. jquery中对小数进行取整、四舍五入的方法
  5. for语句的用法
  6. HDU1064 第一道JAVA
  7. 转:C++中 #ifdef 和#endif的作用
  8. PHP 函数dirname()使用实例
  9. system函数遇到的问题 - 程序死掉
  10. Java 8新特性前瞻
  11. JS日期时间加减实现
  12. 【转】Python装饰器与面向切面编程
  13. es6 字符串的扩展和数值的扩展
  14. directshow、 Emgucv入门
  15. git操作:WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! (警告:远程主机标识已更改!)
  16. 小程序canvas绘制渐变色(简单入门)
  17. HTTP 中 GET 与 POST 的区别
  18. Java源码分析(1):二分查找 + 循环递归实现
  19. SQL Server 数据库对象命名参考
  20. PHP代码执行函数总结

热门文章

  1. 使用Fiddle修改请求数据
  2. Jmeter +Maven+jenkins+eclipse 接口自动化测试
  3. tp5使用PHPExcel(下载引入/composer与模板/生成方式搭配使用)
  4. Greenplum 性能优化之路 --(三)ANALYZE
  5. 一段小代码秒懂C++右值引用和RVO(返回值优化)的误区
  6. C++ string常见函数总结
  7. SPI机制剖析——基于DriverManager+ServiceLoader的源码分析
  8. SSRF深入学习
  9. Wordpress Polylang 翻译自定义格式
  10. 恶补了 Python 装饰器的六种写法,你随便问~