教你读懂路由表
很多网络问题都跟路由有关,那么首先必须学会看懂路由表,本文将讲述如何读懂路由及如何决策.
在命令行下输入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 | 掩码 |
Flags | 标志,U - Up表示有效 G - Gateway表示连接路由,若无这个字段表示直连目的地址 H - Host表示目标是具体主机,而不是网段 |
Metric | 待补充 |
Ref | 待补充 |
Use | 待补充 |
Iface | 网卡 |
2.路由匹配
路由表的作用就是指定下一级网关,那么根据路由表怎么确定下一级网关,这里就有一个匹配过程,匹配规则
*(1)优先级匹配(暂不讨论)
*(2)最长匹配
3.实例讲述
还是针对上面的路由表,为了方便表述,加上条目号字段
No 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
4. 路由编辑
# 添加默认网关
route add default gw 192.168.1.1
# 删除默认网关
route del default
# 添加本地路由
route add -net 192.168.1.0 netmask 255.255.255.0 eth0
route add -net 192.168.1.0/24 eth0
# 删除本地路由
route del -net 192.168.1.0 netmask 255.255.255.0 eth0
route del -net 192.168.1.0/24 eth0
# 清空所有路由
ip route flush table main
5. 总结
- 结论1: 一台局域网下的主机路由表至少需要包含一条本地路由,否则无法与路由网关通信,当添加默认网关,会提示”SIOCADDRT: Network is unreachable”。
No Destination Gateway Genmask Flags Metric Ref Use Iface
2 192.168.161.0 0.0.0.0 255.255.255.0 U 0 0 0 em1
这样才能ping通网关(192.168.161.1)及外部ping通本机
- 结论2: 一台局域网下的可访问Internet主机路由表至少需要包含两条路由,一条是本地路由,一条是默认网关
No Destination Gateway Genmask Flags Metric Ref Use Iface
2 192.168.161.0 0.0.0.0 255.255.255.0 U 0 0 0 em1
7 0.0.0.0 192.168.61.1 0.0.0.0 UG 0 0 0 em2