【超好玩的路由环路系列】5——双点重分发环路A(收敛引发)

一、前提知识

双点双向重分发是一个非常危险的操作,如果配置不当可能会引发环路,具体说来有两种情况:
1、在路由收敛的过程中计算路由错误引起环路
2、配置参数不当环路直接引起的稳定环路
这个实验讲的是收敛环路,为了简化讲解,我这里配置的是双点单向重分发(华为说法也为称“双点单向路由引入”),如果配置成双点双向重分发,一样可以看到类似的效果。

二、实验拓扑

image001.png

三、基础配置

R1的配置
#
sysname R1
#
interface GigabitEthernet0/0/0
ip address 12.1.1.1 255.255.255.0
#
interface GigabitEthernet0/0/1
ip address 14.1.1.1 255.255.255.0
#
interface LoopBack0
ip address 1.1.1.1 255.255.255.0
#
ospf 1
area 0.0.0.0
network 1.1.1.1 0.0.0.0
network 12.1.1.1 0.0.0.0
network 14.1.1.1 0.0.0.0
#
R2的配置
#
sysname R2
#
interface GigabitEthernet0/0/0
ip address 12.1.1.2 255.255.255.0
#
interface GigabitEthernet0/0/1
ip address 23.1.1.1 255.255.255.0
#
ospf 1
area 0.0.0.0
network 12.1.1.2 0.0.0.0
#
ospf 2
import-route ospf 1
area 0.0.0.0
network 23.1.1.1 0.0.0.0
R3的配置
#
sysname R3
#
interface GigabitEthernet0/0/0
ip address 23.1.1.2 255.255.255.0
#
interface GigabitEthernet0/0/1
ip address 34.1.1.1 255.255.255.0
#
ospf 2
area 0.0.0.0
network 23.1.1.2 0.0.0.0
network 34.1.1.1 0.0.0.0
R4的配置
#
sysname R4
#
interface GigabitEthernet0/0/0
ip address 34.1.1.2 255.255.255.0
#
interface GigabitEthernet0/0/1
ip address 14.1.1.2 255.255.255.0
#
interface NULL0
#
ospf 1
import-route ospf 2
area 0.0.0.0
network 14.1.1.2 0.0.0.0
#
ospf 2
area 0.0.0.0
network 34.1.1.2 0.0.0.0
#

四、测试环路

在R1上把loopback接口0的IP取消,模拟网段故障:
[R1-LoopBack0]undo ip address
稍等片刻后,在R3上tracert路由1.1.1.1发现数据包在4台路由器之间打环(方向为2-1-4-3-2……)
[R3]tracert 1.1.1.1
traceroute to 1.1.1.1(1.1.1.1), max hops: 30 ,packet length: 40,press CTRL_C to break
1 23.1.1.1 50 ms 10 ms 10 ms 此为R2
2 12.1.1.1 40 ms 20 ms 20 ms 此为R1
3 14.1.1.2 30 ms 20 ms 30 ms 此为R4
4 34.1.1.1 10 ms 20 ms 10 ms 此为R3
5 23.1.1.1 20 ms 30 ms 20 ms 此为R2
6 12.1.1.1 30 ms 40 ms 40 ms 此为R1
7 14.1.1.2 30 ms 30 ms 30 ms 此为R4
8 34.1.1.1 30 ms 20 ms 40 ms 此为R3
9 23.1.1.1 50 ms 40 ms 30 ms 省略……
10 12.1.1.1 50 ms 60 ms 60 ms
11 14.1.1.2 50 ms 50 ms 40 ms
12 34.1.1.1 40 ms 30 ms 40 ms
13 23.1.1.1 60 ms 60 ms 60 ms
14 12.1.1.1 80 ms 60 ms 70 ms
15 14.1.1.2 60 ms 70 ms 50 ms
16 34.1.1.1 70 ms 60 ms 60 ms
17 23.1.1.1 70 ms 70 ms 60 ms
18 12.1.1.1 60 ms 90 ms 70 ms
19 14.1.1.2 70 ms 70 ms 90 ms
20 34.1.1.1 60 ms 60 ms 60 ms
21 23.1.1.1 100 ms 70 ms 80 ms
22 12.1.1.1 110 ms 80 ms 100 ms
23 14.1.1.2 90 ms 100 ms 90 ms
24 34.1.1.1 110 ms 90 ms 90 ms
25 23.1.1.1 100 ms 90 ms 100 ms
26 12.1.1.1 110 ms 100 ms 100 ms
27 14.1.1.2 110 ms 100 ms 100 ms
28 34.1.1.1 110 ms 90 ms 110 ms
29 23.1.1.1 100 ms 110 ms 120 ms
30 12.1.1.1 120 ms * 130 ms

五、环路原因分析

我们先看下网络正常时四台路由器的路由表
——————————————————————————
[R1]dis ip routing-table 1.1.1.1
Destination/Mask Proto Pre Cost Flags NextHop Interface
1.1.1.1/32 Direct 0 0 D 127.0.0.1 LoopBack0
——————————————————————————
dis ip routing-table 1.1.1.1
Destination/Mask Proto Pre Cost Flags NextHop Interface
1.1.1.1/32 OSPF 10 1 D 12.1.1.1 GigabitEthernet0/0/0
——————————————————————————
[R3]dis ip routing-table 1.1.1.1
Destination/Mask Proto Pre Cost Flags NextHop Interface
1.1.1.1/32 O_ASE 150 1 D 23.1.1.1 GigabitEthernet0/0/0
——————————————————————————
dis ip routing-table 1.1.1.1
Destination/Mask Proto Pre Cost Flags NextHop Interface
1.1.1.1/32 OSPF 10 1 D 14.1.1.1 GigabitEthernet0/0/1

再来看下环路发生时四台路由器的路由表(红色是变化的路由,绿色的不变)
——————————————————————————
dis ip routing-table 1.1.1.1
Destination/Mask Proto Pre Cost Flags NextHop Interface
1.1.1.1/32 O_ASE 150 1 D 14.1.1.2 GigabitEthernet0/0/1

——————————————————————————

dis ip routing-table 1.1.1.1
Destination/Mask Proto Pre Cost Flags NextHop Interface
1.1.1.1/32 O_ASE 150 1 D 12.1.1.1 GigabitEthernet0/0/0

——————————————————————————

[R3]dis ip routing-table 1.1.1.1
Destination/Mask Proto Pre Cost Flags NextHop Interface
1.1.1.1/32 O_ASE 150 1 D 23.1.1.1 GigabitEthernet0/0/0

——————————————————————————

dis ip routing-table 1.1.1.1
Destination/Mask Proto Pre Cost Flags NextHop Interface
1.1.1.1/32 O_ASE 150 1 D 34.1.1.1 GigabitEthernet0/0/0

此时R4上有去向1.1.1.1的5类LSA,由R2发出
dis ospf lsdb
OSPF Process 1 with Router ID 14.1.1.2
Link State Database
Area: 0.0.0.0
Type LinkState ID AdvRouter Age Len Sequence Metric
Router 14.1.1.2 14.1.1.2 1076 36 80000009 1
Router 12.1.1.2 12.1.1.2 1411 36 80000006 1
Router 12.1.1.1 12.1.1.1 362 60 80000023 1
Network 14.1.1.1 12.1.1.1 1070 32 80000005 0
Network 12.1.1.1 12.1.1.1 620 32 80000004 0
AS External Database
Type LinkState ID AdvRouter Age Len Sequence Metric
External 23.1.1.0 14.1.1.2 1064 36 80000001 1
External 34.1.1.0 14.1.1.2 1078 36 80000003 1
OSPF Process 2 with Router ID 14.1.1.2
Link State Database
Area: 0.0.0.0
Type LinkState ID AdvRouter Age Len Sequence Metric
Router 14.1.1.2 14.1.1.2 1064 36 8000000E 1
Router 23.1.1.2 23.1.1.2 1069 48 8000000E 1
Router 12.1.1.2 12.1.1.2 1021 36 8000000E 1
Network 34.1.1.1 23.1.1.2 1069 32 80000002 0
Network 23.1.1.1 12.1.1.2 1021 32 80000005 0
AS External Database
Type LinkState ID AdvRouter Age Len Sequence Metric
External 14.1.1.0 12.1.1.2 1079 36 80000003 1
External 12.1.1.0 12.1.1.2 1357 36 80000002 1
External 1.1.1.1 12.1.1.2 1050 36 80000003 1

原因分析:当R1失去自己的直连路由时,R4把自己LSDB里的5类通告(上述红线标记的)算成一个外部路由,其下一条指向R3的34.1.1.1,另外通过我们在R4的配置的import ospf 2 把这条路由通告给R1,R1就算出来去向1.1.1.1的下一跳为R4,于是路由就算成一个环了。

六、环路的规避

双点单向重分发(或引入)、双点双向重分发引起的环路可以通过route tag技术来避免,整体的原则是:
路由域A重分发到路由域B的路由不允许再重分发回来,A引入B打一个特定tag ,等B引入A时匹配该tag时把路由拒绝掉。
该例子中配置如下可防止环路:
R2上的配置
route-policy settag permit node 10
apply tag 100

 

ospf 2
import-route ospf 1 route-policy settag
R4上的配置
route-policy denytag deny node 10
if-match tag 100
#
route-policy denytag permit node 20

ospf 1
import-route ospf 2 route-policy denytag

最后来测试下,发现链路故障时不会再引起环路了:
[R1]inter LoopBack 1
[R1-LoopBack1]undo ip address
ping -c 1 1.1.1.1
PING 1.1.1.1: 56 data bytes, press CTRL_C to break
Request time out
— 1.1.1.1 ping statistics —
1 packet(s) transmitted
0 packet(s) received
100.00% packet loss
tracert 1.1.1.1
traceroute to 1.1.1.1(1.1.1.1), max hops: 30 ,packet length: 40,press CTRL_C to break
1 * * *
2 * * *

如果大家有任何疑问或者文中有错误跟疏忽的地方,欢迎大家留言指出,博主看到后会第一时间修改,谢谢大家的支持,更多技术文章尽在网络之路Blog(其他平台同名),版权归网络之路Blog所有,原创不易,侵权必究,觉得有帮助的,关注、转发、点赞支持下!~。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值