PS:数值越低 优先级越高 当外部优先级相同时 则比较内部优先级来进行选择路由
在同一种路由协议工作下比较度量值 选择最佳路由 不是同种路由协议没有可比性!
通常会考虑以下因素作为或者用来计算路由的度量值
PS:负载分担是到达目的网络有多条路径 多条路径同时发送数据
拿到数据包进行下面操作进行选择路由
例如 PC1要到达PC2 R1有这样两条路由 192.168.1.0/24 192.168.1.0/16
PC1到底走哪条路由到达PC2呢?
PC2 IP 192.168.1.100 此时PC1带着PC2数据包到了R1 有两条路由 先进行目的地址与掩码 做 “与” 运算
得出 192.168.1.0 192.168.0.0 与R1路由表作比较 会走最长匹配项进行路由转发 自然是走 192.168.1.0/24
如果上面的路由表的出接口不同呢?会走哪一个接口进行转发?
PS:走匹配最长项路由的出接口
拓扑图
R1与R4互相ping通
R1 R4没有对方网络的路由表 所以现在要添加路由表
<R1>system-view
Enter system view, return user view with Ctrl+Z.
[R1]ip route-static 192.168.34.0 24 s1/0/0
为什么我这里没有带上下一跳?
PS:因为R1到R2是点对点链路
<R2>system-view
Enter system view, return user view with Ctrl+Z.
[R2]ip route-static 192.168.34.0 192.168.23.3
为什么我这里没带上出接口?
PS:因为R2到R3是以太网链路 最终它会找到出接口
上面的Flags位变为 RD R是中继 这个过程是递归的 D是表示已经把这条路由放入fib表(转发信息数据库)
fib表是从路由表那学习到 路由器转发数据包最终是根据fib表来进行路由转发
此时数据包查了两次路由表 第一次查到目的网络路由表可没有出接口 下面要怎么到达192.168.23.0网络呢?
再进行查询第二次路由表发现到达192.168.23.0网络的出接口是 G0/0/0 所以我们添加的那条没有出接口的路由就会被自动添加 这个过程叫做递归
下面配置返回数据路由表
R4
[R4]ip route-static 192.168.12.0 24 s1/0/0
R3
[R3]ip route-static 192.168.12.0 24 192.168.23.2
下面用R1互ping R2
R1与R4成功通信!!!
删除R2的一条配置 重新添加
[R2]undo ip route-static 192.168.34.0 24 192.168.23.3
[R2]ip route-static 192.168.34.0 24 g0/0/0
再用R1 ping R4
发现网络不通了 是什么导致的呢?
PS:因为R2的出接口是以太网链路 它无法知道下一跳 所以数据包无法发送到目标地址
回到PC2 与 PC3 的通信问题 如果我把下一跳添加的不是直连的地址呢?
R1
[R1]undo ip route-static 192.168.4.0 255.255.255.0 Serial1/0/0 192.168.12.2
[R1]ip route-static 192.168.4.0 24 192.168.34.4
下面再进行ping测试是否能通
成功ping通!!!
那为什么我添加的下一跳不是直连的也可以通信?
PS:首先点对点链路 出接口不需要填 看上图路由表中发现flags位为 RD 所以进行了递归操作后 发现了下一跳
缺省路由
下面就让我们来实验一下
我们对R1清空我们配置的静态路由 添加缺省路由
[R1]undo ip route-static 192.168.4.0 255.255.255.0 192.168.34.4
[R1]undo ip route-static 192.168.23.0 255.255.255.0 Serial1/0/0 192.168.12.2
[R1]undo ip route-static 192.168.34.0 255.255.255.0 Serial1/0/0
[R1]ip route-static 0.0.0.0 0 s1/0/0 192.168.12.2
现在再用PC2 ping PC3
成功ping通!!!
那ping PC3的数据包是走哪条路由呢?
PS:当然是走我们刚刚添加的缺省路由啦
本节内容对静态路由深入分析 学习了路由的优先级 最长匹配原则 路由器下一跳的问题 缺省路由
原文:http://blog.51cto.com/12445563/2177897