路由设备进行路由选择时,依据到达同一目的地的路由,通过路由优先级和开销值来比较,选择其中最优路由,先比较优先级,再比较开销值。若优先级值不同,则优先级值最小的为最优路由;若优先级值相同,开销值不同,则开销值最小的为最优路由;若优先级值和开销值相同,则互为平衡分担路由。
工程上常用的华为和思科路由器,其路由协议因系统不同默认优先级也不相同,如华为OSPF协议默认优先级为10,思科默认优先级为110,因此配置路由时要根据路由设备类型,规划路由重分布和筛选策略。华为和思科路由默认优先级如表1。
图1 路由引入规划不当导致路由环路
路由协议的不同在于其使用的算法和判断标准不同,RIP路由协议采用跳数作为标准,选出跳数最小的路径;OSPF缺省采用带宽的反比作为标准,即COST值,选出带宽最大的路径,其计算方式为COST=100M/接口带宽,值越小,系统使用该接口转发数据的可能性越大。
在自治域边界路由器进行不同域网络互联时,边界路由器采用了路由引入,因使用的引入配置规划不当,导致出现路由环路问题,配置如下所述。
网络拓扑如图1所示,RT2和RT4作为边界路由器,在OSPF和ISIS间进行路由引入,RT4配置为将OSPF协议路由引入到ISIS协议中,而RT2配置为将ISIS路由引入到OSPF协议中。RT4从RT1学习到路由172.0.0.0/16后,将其引入到ISIS协议中,并发布到RT3,由RT3再发布给RT2;此时RT2并不知道这条路由是从OSPF区域中引来,所以会再次引到OSPF区域中。
下面具体分析为什么会产生路由环路。
如图2所示,RT1配置将静态路由172.0.0.0/16引入至OSPF区域内,然后再通过RT4将路由引入到ISIS区域内。其路由生成过程为:
表1 默认优先级
[RT1]ip route-static 172.0.0.0 16 10.0.1.2 perference 200
[RT1-ospf-1]importroute static
[RT2-ospf-1]importroute isis
[RT4-isis-1]importroute ospf
1.RT1将静态路由172.0.0.0/16引入到OSPF中。因为RT1配置有静态路由172.0.0.0/16,且其为有效路由,所以此路由会被引入到OSPF的LSDB中,并以LSA形式发布到OSPF区域。RT2和RT4收到此LSA后,成OSPF区域外路由,优先级为150,下一跳指向RT1。
2.RT4将OSPF区 域外路由172.0.0.0/16引入到ISIS中。因为RT4从RT1学到区域外路由172.0.0.0/16,且其为有效路由,放入IP路由表中,又因为RT4配置将OSPF路由引入到ISIS中,所以RT4将此路由以ISIS中的LSA形式发布到ISIS中,其优先级为15。RT3收到此LSA后,放入路由表生成路由,下一跳指向RT4。
图2 生成路由的过程
图3 使用Tag来选择性引入路由
3.RT2将ISIS路 由172.0.0.0/16引入到OSPF中。RT2同时从OSPF区域和ISIS区域学到了同一条路由172.0.0.0/16,根据路由选择比较原则,RT2将比较路由来源的优先级,因为ISIS的优先级值为15,而OSPF区域外路由的优先级值为150,所以ISIS路由优先。RT2把来自ISIS的路由172.0.0.0/16放入IP路由表中,作为有效路由,下一跳指向RT3。
因为ISIS路由172.0.0.0/16是有效路由,所以RT2将此路由引入到OSPF中。
4.R T 1将路由172.0.0.0/16的下一跳改为RT2。RT1收到RT2发布的路由172.0.0.0/16后,将此路由与自己的静态路由进行比较。因为RT1所配置的静态路由优先级为200,而OSPF区域外路由优先级值为150,所以RT1会将从RT2收到的路由作为有效路由,同时修改下一跳为RT2。从而形成了RT2-RT3-RT4-RT1-RT2的路由环路。
环路产生的根本原因是原本为某区域内始发的路由又被错误地引回到此区域中,从而使路由协议本身的环路机制失效。所以避免路由引入环路发生的办法是在边界路由器有选择性地进行路由引入。
选择性路由引入可以使用路由属性中的标记值(Tag)来实现。在图3中,RT4将OSPF区域中引入的路由加上Tag值等于5的标记,发布到ISIS区域中。在RT2上,配置把ISIS区域中除了Tag值等于5的其他路由引入到OSPF区域中。这样,RT2就不会把路由172.0.0.0/16引入到OSPF区域中,也就实现了选择性引入。使用Tag来选择性引入路由简单易用,因而将会得到广泛的应用。