多个默认网关在同一个接口上

有多个默认网关与同一接口关联是否有效? 我以为这没有意义,但我在笔记本电脑上看到了这一点

 $路线
内核IP路由表                                                                                                              
目标网关Genmask标志度量参考使用Iface
 10.1.0.0 * 255.255.248.0 U 1 0 0 eth0
默认10.1.1.1 0.0.0.0 UG 0 0 0 eth0
默认10.1.1.1 0.0.0.0 UG 202 0 0 eth0

我问的原因是,在我们正在开发的embedded式系统中,我们需要获得与特定接口关联的默认网关。 这只是一个显示问题,它显示相同的默认网关两次? 或者在1个接口上有多个默认网关意味着我应该考虑的东西。

在同一台机器上有多个默认网关,更不用说在一个单一的接口上。 当然,有一些小小的情况可能会有所帮助,但是我从来没有遇到过这种情况。 你通常有一个默认的,然后静态以外的任何东西。

仔细观察后,您会在“公制”列中看到不同的值。 其他一切都是平等的,所以我怀疑一些mis(-auto-)configuration。

使用“真正的”路由协议,您可以拥有不同的路由和相同的目的地(虽然不会说多个“默认”网关),根据其路由“成本”select路由,例如路由上的“度量” ,实际使用路线的机会就越低。 当存在networking争用时,指标将被dynamic调整以反映这一点,因此在这种情况下可能会select到达同一目的地的另一条路线。

即使如上面2行所示,默认路由仍然是同一个节点。 (10.1.1.1)两者之间的唯一区别是Metric列。 这通常以跳跃计数。 您的networking拓扑中是否有任何变化会影响该领域? 这可能只会显示两次。 重新启动或重新启动networking服务,这应该清除。

你使用什么分布? 在Red Hat中,可以在/ etc / sysconfig / network中检查默认网关。 通过使用route命令,您将受到任何意想不到的输出的影响,就像您在这里看到的那样。 坚持从OS文档configuration获取默认路由,而不是另一个二进制文件。

在一个路由表中有多个默认网关是没有意义的。 通常在Linux上,只有数据包的目标地址用于select使用哪个路由。 路线将从最具体到最具体的路线进行检查,以确定该路线是否适用于目的地。 如果没有find具体路由,则使用具有最低度量的默认路由。

如果您想要或需要根据源地址等其他条件select路由,则需要使用高级路由function 。 这将意味着创build多个路由表,并使用ip rule根据您喜欢的任何标准select适当的表。


这听起来像你正在试图让你在开发的某种GUI中显示的路线? 希望在你的embedded式设置中,你没有多个默认网关设置的情况。 无论如何,你可能不应该pipe理每个接口的默认网关。 默认和大多数路由应该与特定接口的IPconfiguration分开pipe理。 路由确实是系统范围的,而不是每个接口。