linux系统重启网卡后网络不通(NetworkManager篇)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux系统重启网卡后网络不通(NetworkManager篇)相关的知识,希望对你有一定的参考价值。
参考技术A <div style="font-weight: 400;"><span></span>
<h1>个人博客:<a href="https://www.oschina.net/action/GoToLink?url=https%3A%2F%2Fwww.mianshi.host" target="_blank" rel="nofollow">点击这里进入</a></h1>
<span></span>
<h3>一.故障现象</h3>
<blockquote>
<p>RHEL7.6系统,使用nmcli绑定双网卡后,再使用以下命令重启network服务后主机网络异常,导致无法通过ssh远程登录系统。</p>
</blockquote>
<p> <code># systemctl restart network</code></p>
<span></span>
<h3>二.理论知识</h3>
<blockquote>
<p>Network service的制御网络接口配置信息改动后,网络服务必须从新启动,来激活网络新配置的使得配置生效,这部分操作和从新启动系统时时一样的作用。制御(控制)是/etc/init.d/network这个文件,可以用这个文件后面加上下面的参数来操作网络服务。例如:
<code># /etc/init.d/network restart</code>
同样也可以用service这个命令来操作网络服务例如:
<code># service network restart</code>
<code># systemctl restart network</code> (NetworManager)是检测网络、自动连接网络的程序。无论是无线还是有线连接,它都可以令您轻松管理。对于无线网络,网络管理器可以自动切换到最可靠的无线网络。利用网络管理器的程序可以自由切换在线和离线模式。网络管理器可以优先选择有线网络,支持 VPN。网络管理器最初由 Redhat 公司开发,现在由 GNOME 管理</p>
</blockquote>
<span></span>
<h3>三.环境分析</h3>
<blockquote>
<p>系统版本: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服务后,问题现象消失,即执行如下操作:</p>
</blockquote>
<p> <code># systemctl stop NetworkManager</code></p>
<blockquote>
<p>此时再次重启network服务:</p>
</blockquote>
<p> <code># systemctl restart network</code></p>
<blockquote>
<p>可以很快ping通bond0的业务地址10.116.6.194。 进一步分析发现,如果不停止NetworkManager服务,而是修改网卡配置文件,在bonding网卡和组成bonding的slave网卡的配置文件中增加一行配置,也可以解决该问题。</p>
</blockquote>
<p> <code>NM_CONTROLLED=no</code></p>
<blockquote>
<p>参考红帽RHEL7配置网卡bonding的官方文档: <a href="https://www.oschina.net/action/GoToLink?url=https%3A%2F%2Faccess.redhat.com%2Fdocumentation%2Fen-us%2Fred_hat_enterprise_linux%2F7%2Fhtml%2Fnetworking_guide%2Fsec-network_bonding_using_the_command_line_interface" target="_blank" rel="nofollow">https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/networking_guide/sec-network_bonding_using_the_command_line_interface</a>
可以看到,官方文档的配置示例中设置了NM_CONTROLLED=”no”:
<img src="https://upload-images.jianshu.io/upload_images/24736011-d9a54d4b359b41d0.png" alt="">
<img src="https://upload-images.jianshu.io/upload_images/24736011-466df81c683a5113.png" alt=""></p>
</blockquote>
<span></span>
<h3>四.原厂问题建议</h3>
<blockquote>
<p>该问题是由于NetworkManager服务引起,可以通过如下两种方法解决:</p>
</blockquote>
<ul>
<li>在网卡配置文件中增加参数NM_CONTROLLED=no(“no”的引号可以不写),设置后重启network服务生效。设置NM_CONTROLLED=no的目的是将网络设备脱离NetworkManager服务的管理,设置后该网络设备仅由network服务管理,不受NetworkManager服务控制,因而nmcli命令对该网络设备不再生效;</li>
<li>停止并禁用NetworkManager服务,停用后所有网络设备由network服务管理,不能通过nmcli命令来管理网络设备:</li>
</ul>
<p> <code># systemctl stop NetworkManager</code>
<code># systemctl disable NetworkManager</code></p>
<span></span>
<h3>五.解决方案</h3>
<blockquote>
<p>据上所述,可关闭NetworkManager服务或在BOND配置文件中添加参数,但因环境需要,需使用nmcli命令,故无法关闭NetworkManager,在多轮测试中进行思考,既然NetManager与network服务冲突,但nmcli命令属于NetworkManager,systemctl一般用来管理network,考虑两者管理命令可能也存在冲突后进行了一波测试,使用NetworkManager的nmcli进行网卡的重启操作,使用以下命令后,网络可以即刻ping通并通过SSH连接</p>
</blockquote>
<p> <code># nmcli connection down 网口名称</code>
<code># nmcli connection up 网口名称</code></p>
<span></span>
<h3>六.结论</h3>
<blockquote>
<p>因NetworkManager与network服务存在冲突,且双网卡绑定时所使用的的nmcli进行绑定,nmcli归属于NetworkManager,故重启网卡时应用nmcli命令up/down,不应使用systemctl进行网卡重启</p>
</blockquote>
Linux运维记 - 重启网卡后,网络不通
前言
不小心重启了线上服务器的网卡,结果整个网络不通了,就算使用127.0.0.1访问都不行,第一次遇到这种问题,当时就六神无主了,两个人排查了好久也没找到原因,万分火急。排查内核日志发现网卡状态不断地从Not Ready
到Ready
切换,但是却看不出任何原因。没办法还是得从日志中找原因,由于不知道错误关键词,只能肉眼盯着滚动的系统实时日志,终于功夫不负有心人,看到了这行日志:IPV4 forwarding is disabled. Networking will not work
,下面就将整个排查过程简单明了的说明一下,希望能帮助到大家。
1 如何查看日志?
遇到问题不要慌,排查日志第一步。
# 系统实时日志
journalctl -n 100 -f
# 搜索警告日志
journalctl | grep 'level=warning'
# 根据可能关键词搜索
journalctl | grep 'Networking will not work'
或者
journalctl | grep 'IPv4'
2.如何解决问题?
从原因可以看到,IP转发被禁用,导致网络不通,那么如何开启内核IP转发呢,如下:
备注:解决问题其实最容易,根据自己的知识google就行了,找出原因往往才是最难的,这里就不详细说明了。
# 2.1 会话
echo 1 > /proc/sys/net/ipv4/ip_forward
# 2.2 永久
vi /etc/sysctl.conf
添加如下代码:
net.ipv4.ip_forward=1
# 2.3 检查
重启network服务
systemctl restart network
查看是否修改成功
sysctl net.ipv4.ip_forward
3. 总结
遇到问题,不要慌张,特别是从来没遇到过的问题,更要趁着冷静,过程虽然不容易,但是结果往往非常简单,祝愿各位运维小伙伴都能顺利解决问题,实现升职加薪,迎娶自己的白富美,嘿嘿。
4. 最后
如果有什么疑问和见解,欢迎评论区交流。
如果你觉得本篇文章对您有帮助的话,感谢您的【推荐】。
如果你对Linux感兴趣的话可以【关注我】,我会定期的在博客分享我的心得。
未经允许,禁止转载。
以上是关于linux系统重启网卡后网络不通(NetworkManager篇)的主要内容,如果未能解决你的问题,请参考以下文章