問題
centos出現(xiàn)一個問題,默認路由添加不上揩慕。使用
ip route add default via 10.1.1.1
這條命令添加默認路由時,不報錯扮休,但是使用ip route
命令 查看路由時迎卤,剛才添加的那一條不見了。 先說結(jié)論玷坠,原因是NetworkManager的一個BUG導致的蜗搔。查看NetworkManager版本劲藐,1.8版本存在這個BUG。在1.10版本修復樟凄,可以升級NetworkManager來解決這個問題聘芜。
在centos里面可以通過下面的命令查看NetworkManager的版本號,如果版本號低于1.10的話缝龄,可以通過升級NetworkManager來解決汰现。
Develop>rpm -qa | grep Network
NetworkManager-team-1.8.0-9.el7.x86_64
NetworkManager-tui-1.8.0-9.el7.x86_64
NetworkManager-wifi-1.8.0-9.el7.x86_64
NetworkManager-1.8.0-9.el7.x86_64
NetworkManager-libnm-1.8.0-9.el7.x86_64
也可以修改網(wǎng)絡配置文件/etc/sysconfig/network-scripts/ifcfg-eth0
,添加一行NM_CONTROLLED="no" 來解決叔壤。這里的配置文件中ifcfg-eth0要改成你的環(huán)境對應的接口的文件瞎饲。
調(diào)試過程
監(jiān)測路由變化
使用ip monitor命令監(jiān)控路由變化,終端輸入這個命令監(jiān)測炼绘,然后從另一端添加路由嗅战。可以看到在添加默認路由時饭望,ip monitor監(jiān)測到路由的添加仗哨,并且發(fā)現(xiàn)路由又被刪除了。
查看NetworkManager日志
首先需要打開NetworkManager的debug級別調(diào)試開關铅辞。
默認是INFO級別的厌漂。
bingfengfeifei@bingfengfeifei-PC:~$nmcli general logging
LEVEL DOMAINS
INFO PLATFORM,RFKILL,ETHER,WIFI,BT,MB,DHCP4,DHCP6,PPP,IP4,IP6,AUTOIP4,DNS,VPN,SHARING,SUPPLICANT,AGENTS,SETTINGS,SUSPEND,CORE,DEVICE,OLPC,INFINIBAND,FIREWALL,ADSL,BOND,VLAN,BRIDGE,TEAM,CONCHECK,DCB,DISPATCH,AUDIT,SYSTEMD,PROXY
我們使用下面的命令調(diào)成DEBUG級別
bingfengfeifei@bingfengfeifei-PC:~$sudo nmcli general logging level debug
bingfengfeifei@bingfengfeifei-PC:~$sudo nmcli general logging
LEVEL DOMAINS
DEBUG PLATFORM,RFKILL,ETHER,WIFI,BT,MB,DHCP4,DHCP6,PPP,IP4,IP6,AUTOIP4,DNS,VPN,SHARING,SUPPLICANT,AGENTS,SETTINGS,SUSPEND,CORE,DEVICE,OLPC,INFINIBAND,FIREWALL,ADSL,BOND,VLAN,BRIDGE,TEAM,CONCHECK,DCB,DISPATCH,AUDIT,SYSTEMD,PROXY
然后開啟Debug之后,再添加默認路由然后斟珊,執(zhí)行journalctl -u NetworkManager
來查看NetworkManager的日志苇倡。此時會看到是NetworkManager把路由刪掉了。
原因
這是因為NetworkManager的一個BUG導致的囤踩。1.8版本的NetworkManager中默認路由是NMDefaultRouteManager來處理的旨椒。如果手動刪除默認路由的話,會強制修改回配置文件中的默認路由堵漱,來阻止外部的修改综慎。如果這時候配置文件中默認路由為空的話,表現(xiàn)出來的形式就是默認路由添加不上了勤庐。在NetworkManager1.10版本中NMDefaultRouteManager被廢棄了示惊,默認路由和普通路由一樣的處理,手動添加的路由不會丟失了愉镰。
如果想要了解詳細的信息米罚,可以查看 https://bugzilla.redhat.com/show_bug.cgi?id=1503769