路由表按哪个顺序分析?

zer0uno

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

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就可以直接将消息发送到该目标。

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

但是,在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上策略路由》详细解释了所有这些内容。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章