路由表中条目的顺序重要吗?

路由表中条目的顺序重要吗?

路由顺序是否重要:

> route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
123.x.x.151     0.0.0.0         255.255.255.255 UH    0      0        0 vmbr0
123.x.x.154     0.0.0.0         255.255.255.255 UH    0      0        0 vmbr0
123.x.x.128     0.0.0.0         255.255.255.224 U     0      0        0 vmbr0
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 vmbr1
0.0.0.0         123.x.x.129     0.0.0.0         UG    0      0        0 vmbr0

它是否与以下内容相同:

> route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
123.x.x.128     0.0.0.0         255.255.255.224 U     0      0        0 vmbr0
123.x.x.151     0.0.0.0         255.255.255.255 UH    0      0        0 vmbr0
123.x.x.154     0.0.0.0         255.255.255.255 UH    0      0        0 vmbr0
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 vmbr1
0.0.0.0         123.x.x.129     0.0.0.0         UG    0      0        0 vmbr0

不同之处在于

123.x.x.128     123.x.x.129         255.255.255.224 U     0      0        0 vmbr0

高于

123.x.x.151     0.0.0.0         255.255.255.255 UH    0      0        0 vmbr0

那么如果我发送到123.x.x.151它会去哪里:

- the routed way over `123.x.x.129`, because it matches the `123.x.x.128` rule, or
- the direct way using the arp table, because it matches the `123.x.x.151` rule

答案1

表中的顺序无关紧要;前缀较长的路由始终优先。如果您不再拘泥于网络掩码,而是考虑前缀长度(显示ip route),则您将得到123.x.x.128/27123.x.x.151/32,并且后者(更具体)的路由将优先于前者(更通用的路由)。

答案2

仅当您有重复路线时顺序才重要。不要这样做。

例如,如果两个接口具有相同的目的地、网络掩码和网关 0.0.0.0,则第一个接口将抓取该网络的所有流量。

此外,我发现有些系统会在启动时随机重新排序哪个先出现。如果只有一个能用,或者只有一个设置了路由器网关,这可能会导致在重启时无法访问该网络。

相关内容