一.故障景象
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/doc…
能够看到,官网文档的配置示例中设置了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进行网卡重启