双点双向重发布
双点双向重发布_第1张图片
如图,在拓扑图中,R1,R2,R3,R5运行ospf协议,R1,R3,R4运行isis协议,在R1和R3上面,将isis和ospf双向引入,R5上引入外部路由5.0.0.5/32和5.0.0.5/32。发现在R2上ping这两个环回路由的时候,会出现环路。
[R2]tracert 5.0.0.5
traceroute to 5.0.0.5(5.0.0.5), max hops: 30 ,packet length: 40,press CTRL_C t
o break

1 23.0.0.2 90 ms 20 ms 30 ms

2 34.0.0.2 50 ms 30 ms 30 ms

3 14.0.0.1 50 ms 40 ms 30 ms

4 12.0.0.2 30 ms 30 ms 20 ms

5 23.0.0.2 40 ms 40 ms 30 ms

6 34.0.0.2 40 ms 40 ms 30 ms

7 14.0.0.1 40 ms 40 ms 50 ms

8 12.0.0.2 50 ms 50 ms 40 ms

9 23.0.0.2 40 ms 50 ms 60 ms

10 34.0.0.2 60 ms 60 ms 60 ms

11 14.0.0.1 60 ms 60 ms 70 ms

12 12.0.0.2 50 ms 50 ms 60 ms

13 23.0.0.2 60 ms 60 ms 70 ms

14 34.0.0.2 70 ms 70 ms 70 ms

15 14.0.0.1 80 ms 70 ms 80 ms

16 12.0.0.2 60 ms 70 ms 60 ms

17 23.0.0.2 80 ms 90 ms 80 ms

18 34.0.0.2 90 ms 90 ms 90 ms

19 14.0.0.1 100 ms 80 ms 100 ms

20 12.0.0.2 80 ms 90 ms 80 ms

21 23.0.0.2 110 ms 90 ms 100 ms

22 34.0.0.2 90 ms 110 ms 110 ms

23 14.0.0.1 100 ms 110 ms 100 ms

24 12.0.0.2 110 ms 90 ms 110 ms

25 23.0.0.2 120 ms 110 ms 110 ms

26 34.0.0.2 120 ms 120 ms 130 ms

27 14.0.0.1 140 ms 110 ms 130 ms

28 12.0.0.2 130 ms 110 ms 120 ms

29 23.0.0.2 130 ms 120 ms 150 ms

30 34.0.0.2 130 ms 130 ms 140 ms

经过查看R3的路由表,发现5.0.0.5/32和5.0.1.5/32没有从ospf中学习到,而是从isis学习到。
[R3]display ip routing-table
5.0.0.5/32 ISIS-L2 15 20 D 34.0.0.2 GigabitEthernet
0/0/1
5.0.1.5/32 ISIS-L2 15 20 D 34.0.0.2 GigabitEthernet
0/0/1

双点双向重发布_第2张图片
形成环路的原因是,R5上引入的外部路由,接着发给R2,原始的优先级是150,从R3上可以从两个方向学习,一个从R2发送来的。另外一条是,在R1上,从ospf引入到isis的时候,优先级变为15,此时R3就会选择低优先级的路,路由条目又会回到R2上,此时就会形成环路。

解决环路的思路:
思路一:R1将ospf引入到isis的时候,打上标签10,当在R3接收到带有该标签的流量的时候,将优先级调整,大于150,就不会形成环路。R3同理。这样可以形成备份路由的效果。
思路二:在R1和R3上拒绝ospf重发布到isis的R5上的5.0.0.5/32和5.0.1.5/32。这样会形成次优路径。

解决思路一
R1 R3配置
(1)抓取感兴趣的流量
isis 1
import-route ospf 1 tag 10
(2)定制route-policy
route-policy I2O permit node 10
if-match tag 10
apply preference 151
route-policy I2O permit node 20
isis 1
(3)应用route-policy
Isis1
preference route-policy I2O

破除环路之后
tracert 5.0.0.5
traceroute to 5.0.0.5(5.0.0.5), max hops: 30 ,packet length: 40,press CTRL_C t
o break
1 25.0.0.2 90 ms 10 ms 20 ms