沙滩星空的博客沙滩星空的博客

Linux路由表和路由策略

Linux可以配置很多很多策略,数据包将依次通过各个策略,一旦匹配某个策略则进一步应用策略对应的路由表,如果当前路由表无法匹配到路由则继续执行后续策略匹配。

路由策略

查看系统路由策略:

[root@localhost ~]# ip rule list
0:      from all lookup local
32766:  from all lookup main
32767:  from all lookup default

可以看到系统自带的路由表都是有名字的,比如local、main、default。

路由表

典型的路由条目包括了源IP,目的IP,网关IP,scope,dev和type六个要素。

我们只能通过ip rule list查看策略对应的路由表,然后利用ip route list table [路由表名] 来查看具体的1张路由表:

[root@localhost ~]# ip route list table main
default via 10.0.2.2 dev eth0 proto dhcp metric 100
10.0.2.0/24 dev eth0 proto kernel scope link src 10.0.2.15 metric 100
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1
172.19.0.0/16 dev br-73ff5e04ff1a proto kernel scope link src 172.19.0.1

如果ip route list没有指定table,那么其效果相当于table main,而table main则是Linux默认的路由表,其内的规则来自于局域网DHCP广播下发。

网关IP

网关IP就是在配置路由的时候指定的via后面的地址,在路由表中叫Gateway。目的地址不是当前自己出口可以直接可达的,需要经过网关路由到下个网络才能投递。

查看main路由表

$ route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.99.0    0.0.0.0         255.255.255.0   U     0      0        0 eth0
127.0.0.0       0.0.0.0         255.0.0.0       U     0      0        0 lo
0.0.0.0         192.168.99.254  0.0.0.0         UG    0      0        0 eth0

$ip route show
192.168.99.0/24 dev eth0  scope link 
127.0.0.0/8 dev lo  scope link 
default via 192.168.99.254 dev eth0

192.168.99.0/24这一条中,定义了scope是link,代表这个网络是合法的并且是可以通过eth0这个口联通的;

最后一条default是默认路由,如果找不到目标主机的IP,就通过eth0口发送到192.168.99.254地址;
这里Flags中带的G是gateway的缩写,代表必须使用外部设备作为网关;
这个gateway:192.168.99.254必须要在我们已经存在的路由环境中。


路由条目的意义 https://zhuanlan.zhihu.com/p/43279912
简述linux路由表 https://yuerblog.cc/2019/11/18/%E7%AE%80%E8%BF%B0linux%E8%B7%AF%E7%94%B1%E8%A1%A8/
Linux路由表 https://www.jianshu.com/p/8499b53eb0a5

未经允许不得转载:沙滩星空的博客 » Linux路由表和路由策略

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址