Centos默认路由添加不上

疑难杂症 麋鹿 106℃ 0评论
本文最后更新于 2019年7月8日 14:05 可能会因为没有更新而失效。如已失效或需要修正,请留言!
文章目录

问题:

centos出现一个问题,默认路由添加不上。使用

这条命令添加默认路由时,不报错,但是使用ip route命令 查看路由时,刚才添加的那一条不见了。 先说结论,原因是NetworkManager的一个BUG导致的。查看NetworkManager版本,1.8版本存在这个BUG。在1.10版本修复,可以升级NetworkManager来解决这个问题。
在centos里面可以通过下面的命令查看NetworkManager的版本号,如果版本号低于1.10的话,可以通过升级NetworkManager来解决。

也可以修改网络配置文件/etc/sysconfig/network-scripts/ifcfg-ens33,添加一行NM_CONTROLLED=”no” 来解决。这里的配置文件中ifcfg-ens33要改成你的环境对应的接口的文件。

如果能够ping通公网ip无法ping域名,请在 /etc/resolv.conf  中添加DNS  例如:

调试过程

监测路由变化

使用ip monitor命令监控路由变化,终端输入这个命令监测,然后从另一端添加路由。可以看到在添加默认路由时,ip monitor监测到路由的添加,并且发现路由又被删除了。

images

查看NetworkManager日志

首先需要打开NetworkManager的debug级别调试开关。
默认是INFO级别的

我们使用下面的命令调成DEBUG级别

然后开启Debug之后,再添加默认路由然后,执行journalctl -u NetworkManager来查看NetworkManager的日志。此时会看到是NetworkManager把路由删掉了。

images

原因

这是因为NetworkManager的一个BUG导致的。1.8版本的NetworkManager中默认路由是NMDefaultRouteManager来处理的。如果手动删除默认路由的话,会强制修改回配置文件中的默认路由,来阻止外部的修改。如果这时候配置文件中默认路由为空的话,表现出来的形式就是默认路由添加不上了。在NetworkManager1.10版本中NMDefaultRouteManager被废弃了,默认路由和普通路由一样的处理,手动添加的路由不会丢失了。
如果想要了解详细的信息,可以查看 https://bugzilla.redhat.com/show_bug.cgi?id=1503769

转载自:原文链接

转载请注明:百分数 » Centos默认路由添加不上
责任声明: 本站一切资源仅用作交流学习,请勿用作商业或违法行为!如造成任何后果,本站概不负责!
喜欢 (0)or分享 (0)
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址