路由表按哪个顺序分析?


19

在我的电脑上,我必须遵循以下路由表:

Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
0.0.0.0         192.168.1.1     0.0.0.0         UG        0 0          0 wlan0
192.168.1.0     0.0.0.0         255.255.255.0   U         0 0          0 wlan0

我不明白是如何分析的,我是指是自上而下还是自下而上?

如果从上到下进行分析,那么即使ip目标为192.168.1.15,也将始终将所有内容发送到我家中的路由器。但是我知道(错误吗?)是,如果一台PC位于同一局域网内,那么一旦我通过广播消息恢复了MAC目标,那么我的PC便可以将消息直接发送至该目标。

Answers:


19

路由表按最具体到最不具体的顺序使用。

但是,在Linux上,它比您预期的要复杂一些。首先,存在多个路由表,并且何时使用哪个路由表取决于许多规则。

要获得完整图片:

$ ip rule show
0:  from all lookup local 
32766:  from all lookup main 
32767:  from all lookup default

$ ip route show table local
broadcast 127.0.0.0 dev lo  proto kernel  scope link  src 127.0.0.1 
local 127.0.0.0/8 dev lo  proto kernel  scope host  src 127.0.0.1 
local 127.0.0.1 dev lo  proto kernel  scope host  src 127.0.0.1 
broadcast 127.255.255.255 dev lo  proto kernel  scope link  src 127.0.0.1 
broadcast 192.168.0.0 dev eth0  proto kernel  scope link  src 192.168.1.27 
local 192.168.1.27 dev eth0  proto kernel  scope host  src 192.168.1.27 
broadcast 192.168.1.255 dev eth0  proto kernel  scope link  src 192.168.1.27 

$ ip route show table main
default via 192.168.1.254 dev eth0 
192.168.0.0/23 dev eth0  proto kernel  scope link  src 192.168.1.27 

$ ip route show table default

$

local表是特殊的路由表,其中包含本地和广播地址的高优先级控制路由。

main表是包含所有非策略路由的普通路由表。这也是您可以查看是否只是简单执行ip route show(或简称为执行ip ro)的表。我建议不再使用旧route命令,因为它仅显示main表格,并且其输出格式有些陈旧。

default如果以前的默认规则未选择该数据包,则该表为空并且保留用于后处理。

您可以添加自己的表并添加规则以在特定情况下使用这些表。一个示例是您有两个Internet连接,但是必须始终通过一个特定的Internet连接路由一个主机或子网。

Linux上策略路由》详细解释了所有这些内容。


有没有办法改变优先级?
Mheni

4

通常按照从“最特定”到“最不特定”的顺序应用路由表。0.0.0.0子网掩码为的目的地(0.0.0.0即您的默认路由)是最不明确的目的地,因此始终会最后应用。

如果您在本地网络上具有另一台PC的MAC地址,但是该MAC地址在另一个子网中,则可以为该PC添加特定的主机路由,并且可能会进行通信。


s /通常/始终/。这对于路由表的工作方式非常重要。
Celada 2015年

1
@Celada我没有提到“相同特定”路由的度量标准。然后是策略路由。至少目前,我通常待命。
roaima 2015年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.