很多网络问题都跟路由有关,那么首先必须学会看懂路由表,本文将讲述如何读懂路由及如何决策.

在命令行下输入route -n 或 netstat -rn,就可以打印本机的路由表,我的如下:

Destination Gateway Genmask Flags Metric Ref Use Iface

192.168.161.0 192.168.161.1 255.255.255.0 UG 0 0 0 em1

192.168.161.0 0.0.0.0 255.255.255.0 U 0 0 0 em1

192.168.61.0 0.0.0.0 255.255.255.0 U 0 0 0 em2

169.254.0.0 0.0.0.0 255.255.0.0 U 1002 0 0 em1

169.254.0.0 0.0.0.0 255.255.0.0 U 1003 0 0 em2

192.168.0.0 192.168.61.1 255.255.0.0 UG 0 0 0 em2

0.0.0.0 192.168.61.1 0.0.0.0 UG 0 0 0 em2

0.0.0.0 192.168.161.1 0.0.0.0 UG 0 0 0 em1

PS:我的电脑是双网卡,分别在192.168.61.0和192.168.161.0两个网段

1.字段解释

字段名

说明Destination

目的网段,最长匹配192.168.161.0 > 192.168.0.0 > 0.0.0.0,0可匹配任意数值

Gateway

所走网关,0.0.0.0表示无网关,即与本机IP同一网段,不需要经过网关(同一个局域网内2台主机通信不需要经过网关)

Genmask

掩码

标志,U - Up表示有效

G - Gateway表示连接路由,若无这个字段表示直连目的地址

H - Host表示目标是具体主机,而不是网段

Metric

待补充

Ref

待补充

Use

待补充

Iface

网卡

2.路由匹配

路由表的作用就是指定下一级网关,那么根据路由表怎么确定下一级网关,这里就有一个匹配过程,匹配规则

*(1)优先级匹配(暂不讨论)

*(2)最长匹配

3.实例讲述

还是针对上面的路由表,为了方便表述,加上条目号字段

条目号 Destination Gateway Genmask Flags Metric Ref Use Iface

1 192.168.161.0 192.168.161.1 255.255.255.0 UG 0 0 0 em1

2 192.168.161.0 0.0.0.0 255.255.255.0 U 0 0 0 em1

3 192.168.61.0 0.0.0.0 255.255.255.0 U 0 0 0 em2

4 169.254.0.0 0.0.0.0 255.255.0.0 U 1002 0 0 em1

5 169.254.0.0 0.0.0.0 255.255.0.0 U 1003 0 0 em2

6 192.168.0.0 192.168.61.1 255.255.0.0 UG 0 0 0 em2

7 0.0.0.0 192.168.61.1 0.0.0.0 UG 0 0 0 em2

8 0.0.0.0 192.168.161.1 0.0.0.0 UG 0 0 0 em1

192.168.61.35 - 匹配条目3,即不需要经过网关

192.168.60.150 - 匹配条目6,需要经过网关192.168.60.1

www.baidu.com - 匹配条目7,这里需要说明下为何不匹配8?这是我实践的结果,后加的默认网关会在列表前面,即优先匹配。这个规则应该用于所有Destination一致的情况

192.168.161.113 - 匹配条目1,不是匹配条目2

作者:smallmuou

链接:https://www.jianshu.com/p/a1ab0b30f42b

来源:简书

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐