一.问题分析
对于动态路由协议(本实验以rip和ospf为例),再进行双点双向重分布时,可能存在问题:次优路径
产生原因:把AD值高的路由协议(rip)重分布到AD值低的路由协议(ospf)
实验部署:R1、R2、R3运行rip协议,R2、R3、R4运行ospf协议,区域为area 0
然后在R2和R3分别将rip重分布进ospf 1和ospf 1重分布进rip
分析:R2可以通过两种方式学习到R1的回环接口1.1.1.1/32的路由,
第一种方式是R1通过rip将路由条目从s0/0发给R2的s0/0
第二种方式是R1通过rip将路由条目从s0/1发给R3,然后在R3将rip重分布进ospf,再将ospf的路由信息发送给R4.最后R4转发给R2的s0/1
比较这两个路由信息,R2从s0/0学习到的rip路由信息AD为120,从s0/1学习到的ospf路由信息AD为110,所以会优先选择AD较小的路由条目即选择第二条路由,然而这条路径并不是最好的路径。
查看R2的路由表便可看到问题所在
R2#show ip route
34.0.0.0/24 is subnetted, 1 subnets
O 34.1.1.0 [110/128] via 24.1.1.4, 00:05:13, Serial0/1
1.0.0.0/32 is subnetted, 1 subnets
O E2 1.1.1.1 [110/20] via 24.1.1.4, 00:05:13, Serial0/1
2.0.0.0/32 is subnetted, 1 subnets
C 2.2.2.2 is directly connected, Loopback0
3.0.0.0/32 is subnetted, 1 subnets
O 3.3.3.3 [110/129] via 24.1.1.4, 00:05:13, Serial0/1
4.0.0.0/32 is subnetted, 1 subnets
O 4.4.4.4 [110/65] via 24.1.1.4, 00:05:13, Serial0/1
24.0.0.0/24 is subnetted, 1 subnets
C 24.1.1.0 is directly connected, Serial0/1
12.0.0.0/24 is subnetted, 1 subnets
C 12.1.1.0 is directly connected, Serial0/0
13.0.0.0/24 is subnetted, 1 subnets
O E2 13.1.1.0 [110/20] via 24.1.1.4, 00:05:16, Serial0/1
二.解决方法
方法一、修改重分发的路由(R2、R3)的管理距离 (此方法不太好)
R2(config)#router ospf 1 //修改R2的管理距离
R2(config-router)#distance 121
R3(config)#router ospf 1 //修改R3的管理距离
R3(config-router)#distance 121
将此协议的路由的AD改为121,对本协议所有路由都有效,改动范围太大,通常不建议这样做)
查看R2(或R3)的路由表可见现在路径是最优的,但是其他ospf路有条目的管理距离都被改为121,可见此方法不太好
R2#show ip route
34.0.0.0/24 is subnetted, 1 subnets
O 34.1.1.0 [121/128] via 24.1.1.4, 00:00:03, Serial0/1
1.0.0.0/32 is subnetted, 1 subnets
R 1.1.1.1 [120/1] via 12.1.1.1, 00:00:03, Serial0/0
2.0.0.0/32 is subnetted, 1 subnets
C 2.2.2.2 is directly connected, Loopback0
3.0.0.0/32 is subnetted, 1 subnets
O 3.3.3.3 [121/129] via 24.1.1.4, 00:00:03, Serial0/1
4.0.0.0/32 is subnetted, 1 subnets
O 4.4.4.4 [121/65] via 24.1.1.4, 00:00:03, Serial0/1
24.0.0.0/24 is subnetted, 1 subnets
C 24.1.1.0 is directly connected, Serial0/1
12.0.0.0/24 is subnetted, 1 subnets
C 12.1.1.0 is directly connected, Serial0/0
13.0.0.0/24 is subnetted, 1 subnets
R 13.1.1.0 [120/1] via 12.1.1.1, 00:00:05, Serial0/0
方法二、只修改指定ADV router的路由的管理距离(必须路由的ADV router正确,通过show ip os da查看)(此方法较好)
进入R2的ospf进程1,只将路由器3.3.3.3通告的OSPF路由AD改为121
R2(config)#router ospf 1
R2(config-router)#distance 121 3.3.3.3 0.0.0.0
进入R3的ospf进程1,只将路由器2.2.2.2通告的OSPF路由AD改为121
R3(config)#router ospf 1
R3(config-router)#distance 121 2.2.2.2 0.0.0.0
注释:0.0.0.0是反掩码,用来对前面的2.2.2.2和3.3.3.3精确匹配
查看R2的路由条目
R2#show ip route
34.0.0.0/24 is subnetted, 1 subnets
O 34.1.1.0 [110/128] via 24.1.1.4, 00:04:03, Serial0/1
1.0.0.0/32 is subnetted, 1 subnets
R 1.1.1.1 [120/1] via 12.1.1.1, 00:00:23, Serial0/0
2.0.0.0/32 is subnetted, 1 subnets
C 2.2.2.2 is directly connected, Loopback0
3.0.0.0/32 is subnetted, 1 subnets
O 3.3.3.3 [121/129] via 24.1.1.4, 00:04:03, Serial0/1
4.0.0.0/32 is subnetted, 1 subnets
O 4.4.4.4 [110/65] via 24.1.1.4, 00:04:03, Serial0/1
24.0.0.0/24 is subnetted, 1 subnets
C 24.1.1.0 is directly connected, Serial0/1
12.0.0.0/24 is subnetted, 1 subnets
C 12.1.1.0 is directly connected, Serial0/0
13.0.0.0/24 is subnetted, 1 subnets
R 13.1.1.0 [120/1] via 12.1.1.1, 00:00:27, Serial0/0
说明:虽然路径是最优的,不过 O 3.3.3.3 [121/129] via 24.1.1.4, 00:04:03, Serial0/1 这条路由条目的AD不需要修改才对,所以此方法不是最好的方法
方法三、精准抓取需要修改AD的路由条目对它进行修改(最好的方法)
R2(config)#access-list 1 permit 1.1.1.1 0.0.0.0
R2(config)#access-list 1 permit 13.1.1.0 0.0.0.255
R2(config)#router ospf 1
R2(config-router)#distance 121 3.3.3.3 0.0.0.0 1
(只针对3.3.3.3通告的1.1.1.0和13.1.1.0路由将AD改为121,对3.3.3.3通告的其它路由AD不变)
R3(config)#access-list 1 permit 1.1.1.1 0.0.0.0
R3(config)#access-list 1 permit 12.1.1.0 0.0.0.255
R3(config)#router ospf 1
R3(config-router)#distance 121 2.2.2.2 0.0.0.0 1
(只针对2.2.2.2通告的1.1.1.0和12.1.1.0路由将AD改为121,对2.2.2.2通告的其它路由AD不变)
查看R2的路由条目可见其他ospf路由条目的AD并未改变,是最好的方法
R2#show ip route
34.0.0.0/24 is subnetted, 1 subnets
O 34.1.1.0 [110/128] via 24.1.1.4, 00:03:21, Serial0/1
1.0.0.0/32 is subnetted, 1 subnets
R 1.1.1.1 [120/1] via 12.1.1.1, 00:00:06, Serial0/0
2.0.0.0/32 is subnetted, 1 subnets
C 2.2.2.2 is directly connected, Loopback0
3.0.0.0/32 is subnetted, 1 subnets
O 3.3.3.3 [110/129] via 24.1.1.4, 00:03:21, Serial0/1
4.0.0.0/32 is subnetted, 1 subnets
O 4.4.4.4 [110/65] via 24.1.1.4, 00:03:21, Serial0/1
24.0.0.0/24 is subnetted, 1 subnets
C 24.1.1.0 is directly connected, Serial0/1
12.0.0.0/24 is subnetted, 1 subnets
C 12.1.1.0 is directly connected, Serial0/0
13.0.0.0/24 is subnetted, 1 subnets
R 13.1.1.0 [120/1] via 12.1.1.1, 00:00:08, Serial0/0
方法四、还可以通过为OSPF设置外部路由的管理距离来解决,
只要将外部路由的管理距离增大到超过重分布进来的协议的AD就可以了
R2(config)#router ospf 1
R2(config-router)#distance ospf external 121 inter-area 110 intra-area 110
R3(config)#router ospf 1
R3(config-router)#distance ospf external 121 inter-area 110 intra-area 110
此方法将rip重分发为ospf的路由(external )的管理距离修改为121,
域间路由(external )和域内路由(intra-area)管理距离仍为110
---------------------
作者:Mr_Bei
来源:CSDN
原文:https://blog.csdn.net/mr_bei/article/details/83687742
版权声明:本文为博主原创文章,转载请附上博文链接!