如何将路由添加到 Red Hat Enterprise Linux 的内核 IP 路由表?

如何将路由添加到 Red Hat Enterprise Linux 的内核 IP 路由表?

遇到了一个奇怪的问题,无法从 Red Hat Enterprise Linux Server 版本 5.11(我们网络上的 10.110.10.230)连接到网络上的另一台机器(10.255.10.82)

我的路由表如下所示

# /sbin/route 
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
169.254.0.0     *               255.255.0.0     U     0      0        0 eth1
10.0.0.0        *               255.0.0.0       U     0      0        0 eth1
default         10.110.10.1     0.0.0.0         UG    0      0        0 eth1

我删除了这条路线...

10.0.0.0        *               255.0.0.0       U     0      0        0 eth1

用这个命令...

/sbin/ip route del 10.0.0.0/8 dev eth1  proto kernel  scope link  src 10.110.10.230

这解决了我的问题,即能够访问相关 IP,但当我重新启动机器时,路由会重新填充到表中。我想也许有人在这个服务器上设置了静态路由,但看起来文件中没有定义任何内容

# cat /etc/sysconfig/networking/devices/ifcfg-eth1 
# Please read /usr/share/doc/initscripts-*/sysconfig.txt
# for the documentation of these parameters.
GATEWAY=10.110.10.1
TYPE=Ethernet
DEVICE=eth1
BOOTPROTO=none
IPADDR=10.110.10.230
ONBOOT=yes
USERCTL=no
IPV6INIT=no
PEERDNS=yes
HWADDR=00:50:56:b9:48:f6

(eth1 是该服务器上的活动适配器)/etc/sysconfig/ 目录中也没有用于设置静态路由的文件。

所以,我的问题是,还可以通过哪些其他方式设置这样的路线,以及为什么它会“粘性”......在删除它之后重新启动后又会恢复?

答案1

由于您的 eth1 网络接口具有在 ifcfg-eth1 中定义的静态 IP 地址 10.110.10.230,因此会自动添加路由 10.0.0.0/8。作为 NETMASK 属性如果配置文件中没有设置,RedHat 会假定您使用的是 A 类默认掩码(CIDR 表示法中的 255.0.0.0 或 /8)。因此,此路由将自动添加,这就是它的工作方式。

如果您使用 ip route 命令删除该路由,并且由于默认网关 10.110.10.1,您可以连接到另一台机器,因此您可能需要检查 eth1 的网络掩码是否应该不同。检查您的 10.255.10.82 机器的网络掩码是多少或检查您的路由器配置。

相关内容