资料所在位置:http://www.china-ccie.com/ccie/lilun/igp/igp.html
通过分析可以得知,造成次优路径的原因为:(OSPF的AD值小于RIP)(其实就是用了双向重分布,导致网络更加复杂,产生次优路径,这个东西实在没有别的办法再用。)
因为RIP区域的路由器R1将外部路由100.1.1.0重分布进RIP后,R2再将100.1.1.0重分布进OSPF区域,路由传递到R4时,由于OSPF的AD值为110,小于RIP,最终造成R4到达100.1.1.0从更远的OSPF路径绕一圈,当R4再将OSPF重分布进RIP时,Metirc值为1,小于R1将100.1.1.0重分布进RIP时的值,所以R3也选择从 OSPF的路径去往 100.1.1.0/24。
方向1:不应该配置OSPF重分布进RIP时,再将100.1.1.0/24返回RIP (让进不让出)
方向2:干脆在重分布RIP去往OSPF时,不将100.1.1.0/24放过去,但现在可以多种方法解决该问题。 (压根不让进)
我的思考:根据拓扑,可知次优路径的产生是因为这两样。拓扑不同,产生次优路径的原因就不同。分析问题时,先要设法找出产生次优路径的原因,然后再解决。下面5种方法,只是提供思路,具体用哪种,要根据具体情况。就本题所示,我会总结 这几种方法的优缺点。。
我想:配置时候,不能让从一种协议分发到另一种协议之后再分发回来。 对吗?
方法1:通过Distribute-List过滤 (方向1)
在R4上配置Distribute-List过滤,R4上的OSPF拒绝接收(来自OSPF域)100.1.1.0/24的路由,从而防止次优路径。
r4(config)#access - list 4 deny 100.1.1.0
r4(config)#access - list 4 permit any
r4(config)#router ospf 1
r4(config - router)#distribute-list 4 in s1/0
方法2:修改AD值控制路径走向 (根据协议本身的原理出发,从修改协议参数来解决。难度较大)
由于 100.1.1.0/24在R4从RIP学习到的AD值为120,而从OSPF学习到的AD值为110,所以造成R4从OSPF去往100.1.1.0/24,所以通过修改OSPF的AD值大于RIP,便可控制路径走向,同样可以控制AD值来控制R3去往100.1.1.0/24的路径走向。(不建议修改AD值,会把问题弄的复杂,还是想怎么把有问题的路由弄没了吧。且需要在要控制的这条路由的路径上所有的路由器上进行配置。感觉还是只在边界路由器上做配置比较好,毕竟是在这上做重分发造成的)
r3(config)#access - list 33 permit 100.1.1.0
r3(config)#router rip
r3(config - router)#distance 109 13.1.1.1 0.0.0.0 33
r4(config)#acc ess- list 44 permit 100.1.1.0
r4(config)#router ospf 1
r4(config - router)#distance 121 2.2.2.2 0.0.0.0 44
方法3:通过Route-Map 过滤路由 (方向2)
在R2上将RIP重分布进OSPF时,过滤掉 100.1.1.0/24
r2(config)#access - list 22 permit 100.1 .1.0
r2(config)#route - map NET100 deny 10
r2(config - route- map)#exit
r2(config - route- map)#match ip address 22
r2(config - route- map)#exit
r2(config)#route - map NET100 permit 20
r2(config - route- map)#exit
r2(config)#router ospf 1
r2(config - router)#redistribute rip
r2(config - router)#redistribute rip subnets route- map NET100
说明:通过 Route- Map 在R2上将RIP 重分布进 OSPF时,过滤掉 100.1.1.0/24
方法4:进程间过滤(也用到了分发列表)(方向1)
在 R4将OSPF路由重分布进 RIP 时,在进程中过滤掉100.1.1.0/24返回RIP: 跟方法1相似,方法1应用在OSPF的物理接口(出方向),方法4应用在RIP协议的(从OSPF出来的)进方向。
r4(config)#access - list 4 deny 100.1.1.0
r4(config)#access - list 4 permit any
r4(config)#router rip
r4(config - router)#distribute-list 4 out ospf 1
缺点:因为过滤是对其它路由器生效,所以R4的路径保持不变。(对R3生效,R4无效)相对于此,方法1更有效。
方法5:配置Tag 过滤技术控制路径走向(route-map)
Tag 过滤技术就是将各自协议的路由都打上Tag,在将该路由在重分布回原路由协议时,通过匹配Tag来拒绝掉路由返回(推荐:不需要配置地址段,不像别的只能解决100.1.1.0/24,12,13网段也同时恢复正常了 )
r4(config)#route - map R2O deny 10
r4(config - route- map)#match tag 110
r4(config - route- map)#exit
r4(config)#route - map R2O permit 20
r4(config - route- map)#set tag 120
r4(config - route- map)#exit
r4(config)#route - map O2R deny 10
r4(config - route- map)#match tag 120
r4(config - route- map)#exit
r4(config)#route - map O2R permit 20
r4(config - route- map)#set tag 110
r4(config - route- map)#exit
r4(config)#router rip
r4(config - router)#redistribute ospf 1 metric 1 route -map O2R
r4(config)#router ospf 1
r4(config - router)#redistribute rip subnets route- map R2O
在双向重分布时,将OSPF自己的路由打上 Tag 110,将RIP自己的路由打上Tag 120,并且通过匹配Tag拒绝原本属于自己的路由再返回,也就是OSPF重分布进RIP时,拒绝Tag为120的路由返回,RIP重分布进OSPF时,拒绝Tag为110的路由返回,因为它们原本就是自己的路由。
缺点:配置命令较多, 在R2、R4上都得配置。命令不好理解,不好写出来。
总结:将OSPF分布进RIP,就在RIP协议下进行配置。
本文是我所能想到的,可能有想不到或者错了地方,希望各位指出来,共同学习嘛。
转载于:https://blog.51cto.com/xueyue8/1621195