Linux 添加了错误的默认路由

Zoo*_*oon 6 networking linux static-routes route linux-networking

出于某种原因,我的 Centos 5.9 Linux 2.6.18 x86_64 希望我有两个默认路由。

每当我重新启动服务器时,我的路由表如下所示:

[root@server1 ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
255.255.255.255 0.0.0.0         255.255.255.255 UH    0      0        0 bond0
192.168.0.0     0.0.0.0         255.255.255.0   U     0      0        0 bond1
192.168.10.0    0.0.0.0         255.255.255.0   U     0      0        0 bond0
169.254.0.0     0.0.0.0         255.255.0.0     U     0      0        0 bond1
0.0.0.0         192.168.10.1    0.0.0.0         UG    0      0        0 bond0
0.0.0.0         192.168.0.254   0.0.0.0         UG    0      0        0 bond1
Run Code Online (Sandbox Code Playgroud)

bond1 是一个本地网络,因此最后一条默认路由指向该网络会使所有 Internet 请求失败。

通过执行很容易修复它route del default gw 192.168.0.254,我可以将该命令添加到某个启动脚本中。但是,我想了解发生了什么并找出问题的根源。

我希望任何人都可以告诉我,为什么会发生这种情况。我的研究证实应该总是只有一个默认网关,但我找不到为什么会自动有两个的答案。

这是一些配置文件:

[root@server1 ~]# cat /etc/sysconfig/network
NETWORKING=yes
NETWORKING_IPV6=no
HOSTNAME=myhostname.com

[root@server1 ~]# cat /etc/sysconfig/network-scripts/ifcfg-bond0
DEVICE=bond0
IPADDR=192.168.10.11
NETMASK=255.255.255.0
NETWORK=192.168.10.0
BROADCAST=192.168.10.255
GATEWAY=192.168.10.1
ONBOOT=yes
BOOTPROTO=none
USERCTL=no

[root@server1 ~]# cat /etc/sysconfig/network-scripts/ifcfg-bond1
DEVICE=bond1
IPADDR=192.168.0.15
NETMASK=255.255.255.0
NETWORK=192.168.0.0
BROADCAST=192.168.0.255
GATEWAY=192.168.0.254
ONBOOT=yes
BOOTPROTO=none
USERCTL=no
Run Code Online (Sandbox Code Playgroud)

我知道交换 bond0 和 bond1 也会使两条默认路由交换位置,从而有效地让我在启动时访问互联网。但我仍然认为这不是一个好的解决方案。

互联网上的人们都在谈论 文件/etc/sysconfig/network-scripts/route-X,但我没有任何这些文件。

谢谢你的时间。

Joh*_*ohn 6

“默认”路由是根据ifcfg-<interface>文件中的 GATEWAY 行设置的。正如 Dom 在他的评论中提到的,如果您删除不正确的 GATEWAY 行,您的路由表将如您所愿。