我的 centos 盒子有问题。升级几个软件包后,一段时间后网络就断了。
发生的情况是 eth0 不再起作用。我在日志文件中发现的唯一错误是这个:
Invalid IP4 netmask 'NETMASK0' "0.0.0.0"
经过一番研究,我发现这是 route-eth0 配置文件的问题,因为网络启动了,但路由没有添加。如果我手动添加它们,那么一切都会正常。
没有它,路由表就会变得很奇怪:
[root@CentOS-70-64-minimal network-scripts]# route -e
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
default gateway 0.0.0.0 UG 0 0 0 eth1
default gateway 0.0.0.0 UG 0 0 0 eth0
gateway 0.0.0.0 255.255.255.255 UH 0 0 0 eth0
CentOS-70-64-mi 0.0.0.0 255.255.255.255 UH 0 0 0 eth0
link-local 0.0.0.0 255.255.0.0 U 0 0 0 eth0
188.40.24.199 gateway 255.255.255.255 UGH 0 0 0 eth0
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
它是 CentOS Linux 版本 7.2.1511(核心)。
/etc/sysconfig/network-scripts/ifcfg-eth0:
DEVICE=eth0
BOOTPROTO=none
ONBOOT=yes
HWADDR=44:8A:5B:D8:74:B3
IPADDR=136.243.34.136
NETMASK=255.255.255.255
SCOPE="peer 136.243.34.129"
IPV6INIT=yes
IPV6ADDR=2a01:4f8:212:283::2/64
IPV6_DEFAULTGW=fe80::1
IPV6_DEFAULTDEV=eth0
/etc/sysconfig/网络脚本/route-eth0
# routing for eth0
ADDRESS0=0.0.0.0
NETMASK0=0.0.0.0
GATEWAY0=136.243.34.129
顺便说一句,eth1 工作正常。此外,在其他服务器上,所有接口都使用相同的配置。
问题可能是因为它是centos 6然后更新到centos 7。也许留下了一些设置并导致问题。
因为站点是活动的,所以我做了临时解决方案,将这一行添加到 crontab 以每分钟运行一次:
/etc/sysconfig/network-scripts/ifup-routes eth0
答案1
如果您配置了范围点对点链路(因为NETMASK=255.255.255.255
),那么您希望通过 eth0 路由所有流量:
IPADDR=136.243.34.136 NETMASK=255.255.255.255 SCOPE="peer 136.243.34.129"
我不明白你通过 eth1 配置默认路由的目的是什么?
我认为你必须更改 eth0 接口的配置:
IPADDR=136.243.34.136
NETMASK=255.255.255.127
并删除eth0接口的路由配置文件。我看到两个接口连接到两个独立的提供者。这就是为什么我建议你使用ip路由2。如何配置你可以看看在 Linux 中配置多个默认路由
答案2
我建议你使用nmtui
界面来设置IP、路由、DNS等,这会自动更新相应的配置文件。
nmtui
与 一起打包NetworkManager-tui-1.4.0-12.el7.x86_64 rpm
。
答案3
/etc/sysconfig/network-scripts/route-eth0
不是配置默认网关的正确位置,该文件应该仅用于其他静态路由。你应该GATEWAY=
在/etc/sysconfig/network-scripts/ifcfg-eth0
或中有一行ifcfg-eth1
,而不是两者都有。如果没有一些高级路由,则具有多个默认路由将无法像输出route
所示那样工作。