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的官方文檔: 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進行網卡重啟




免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM