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

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

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

$ 路线
内核 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

我之所以问这个问题,是因为在我们开发的嵌入式系统中,我们需要获取与特定接口关联的默认网关。这是否只是显示问题,即两次显示相同的默认网关?还是说一个接口上有多个默认网关意味着我应该考虑这一点。

答案1

在同一台机器上设置多个默认网关是无效的,更不用说在单个接口上设置了。当然,在一些微小的极端情况下,这样做可能会有所帮助,但我从未遇到过任何能让我突然想到的情况。通常,你会有一个默认值,然后对除此以外的任何值使用静态值。

答案2

仔细查看后,您会发现“metric”列中的值不同。其他所有值都相同,因此我怀疑存在某种错误(自动)配置。

使用“真实”路由协议具有到同一目的地的不同路由(尽管人们不会说有多个“默认”网关),这些路由将根据其路由“成本”进行选择,例如,路由上的“度量”越高,实际使用路由的可能性就越低。当出现网络争用时,度量将动态调整以反映这种情况,因此在这种情况下,可以选择到同一目的地的另一条路由。

答案3

默认路由,即使如上所示分为两行,仍然是同一个节点。(10.1.1.1)两者之间的唯一区别是度量列。这通常以跳数计算。您的网络拓扑中是否有任何变化会影响此字段?由于这个原因,它可能只显示两次。重新启动或重启网络服务,这应该会清除。

您使用的是哪个发行版?在 Red Hat 中,您可以在 /etc/sysconfig/network 中检查默认网关。使用 route 命令时,您可能会遇到任何意外输出,如您在此处所见。坚持从操作系统记录的配置中获取默认路由,而不是从其他二进制文件中获取。

答案4

在一个路由表中拥有多个默认网关确实毫无意义。在 Linux 上,通常只使用数据包的目标地址来选择要使用的路由。将按照从最具体到最不具体的顺序检查路由,以确定该路由是否适用于目标。如果未找到特定路由,则将使用具有最低度量的默认路由。

如果您想要或需要根据其他标准(如源地址)选择路由,则需要使用高级路由功能。这意味着创建多个路由表并ip rule根据您喜欢的任何标准选择适当的表。


听起来你正在尝试让路由显示在你正在开发的某种 GUI 中?希望在你的嵌入式设置中不会出现设置多个默认网关的情况。无论如何,你可能不应该管理每个接口的默认网关。默认和大多数路由应该与特定接口的 IP 配置分开管理。路由确实是系统范围的,而不是每个接口的。

相关内容