一、前提知识:
双点双向重分发是一个非常危险的操作,如果配置不当可能会引发环路,具体说来有两种情况:
1、在路由收敛的过程中计算路由错误引起环路
2、配置参数不当环路直接引起的稳定环路
这个实验讲的是收敛环路,为了简化讲解,我这里配置的是双点单向重分发(华为说法也为称“双点单向路由引入”),如果配置成双点双向重分发,一样可以看到类似的效果。
二、实验拓扑:
三、基础配置:
R1的配置:
<Huawei>sys
[Huawei]sysname R1
[R1]interface GigabitEthernet0/0/0
[R1-GigabitEthernet0/0/0]ip address 12.1.1.1 255.255.255.0
[R1-GigabitEthernet0/0/0]interface GigabitEthernet0/0/1
[R1-GigabitEthernet0/0/1]ip address 14.1.1.1 255.255.255.0
[R1-GigabitEthernet0/0/1]interface LoopBack0
[R1-LoopBack0]ip address 1.1.1.1 255.255.255.0
[R1-LoopBack0]ospf 1
[R1-ospf-1]area 0.0.0.0
[R1-ospf-1-area-0.0.0.0]network 1.1.1.1 0.0.0.0
[R1-ospf-1-area-0.0.0.0]network 12.1.1.1 0.0.0.0
[R1-ospf-1-area-0.0.0.0]network 14.1.1.1 0.0.0.0
R2的配置:
<Huawei>sys
[Huawei]sysname R2
[R2]interface GigabitEthernet0/0/0
[R2-GigabitEthernet0/0/0]ip address 12.1.1.2 255.255.255.0
[R2-GigabitEthernet0/0/0]interface GigabitEthernet0/0/1
[R2-GigabitEthernet0/0/1]ip address 23.1.1.1 255.255.255.0
[R2-GigabitEthernet0/0/1]ospf 1
[R2-ospf-1]area 0.0.0.0
[R2-ospf-1-area-0.0.0.0]network 12.1.1.2 0.0.0.0
[R2-ospf-1-area-0.0.0.0]ospf 2
[R2-ospf-2]import-route ospf 1
[R2-ospf-2]area 0.0.0.0
[R2-ospf-2-area-0.0.0.0]network 23.1.1.1 0.0.0.0
R3的配置:
<Huawei>sys
[Huawei]sysname R3
[R3]interface GigabitEthernet0/0/0
[R3-GigabitEthernet0/0/0]ip address 23.1.1.2 255.255.255.0
[R3-GigabitEthernet0/0/0]interface GigabitEthernet0/0/1
[R3-GigabitEthernet0/0/1]ip address 34.1.1.1 255.255.255.0
[R3-GigabitEthernet0/0/1]ospf 2
[R3-ospf-2]area 0.0.0.0
[R3-ospf-2-area-0.0.0.0]network 23.1.1.2 0.0.0.0
[R3-ospf-2-area-0.0.0.0]network 34.1.1.1 0.0.0.0
R4的配置:
<Huawei>sys
[Huawei]sysname R4
[R4]interface GigabitEthernet0/0/0
[R4-GigabitEthernet0/0/0]ip address 34.1.1.2 255.255.255.0
[R4-GigabitEthernet0/0/0]interface GigabitEthernet0/0/1
[R4-GigabitEthernet0/0/1]ip address 14.1.1.2 255.255.255.0
[R4-GigabitEthernet0/0/1]interface NULL0
[R4-NULL0]ospf 1
[R4-ospf-1]import-route ospf 2
[R4-ospf-1]area 0.0.0.0
[R4-ospf-1-area-0.0.0.0]network 14.1.1.2 0.0.0.0
[R4-ospf-1-area-0.0.0.0]ospf 2
[R4-ospf-2]area 0.0.0.0
[R4-ospf-2-area-0.0.0.0]network 34.1.1.2 0.0.0.0
四、测试环路:
在R1上把loopback 接口0的IP 取消,模拟网段故障:
稍等片刻后,在R3上tracert 路由1.1.1.1发现数据包在4台路由器之间打环(方向为2-1-4-3-2……)
五、环路原因分析:
我们先看下网络正常时四台路由器的路由表
[R1]dis ip routing-table 1.1.1.1
dis ip routing-table 1.1.1.1
[R3]dis ip routing-table 1.1.1.1
dis ip routing-table 1.1.1.1
再来看下环路发生时四台路由器的路由表(红色是变化的路由,绿色的不变)
[R1]dis ip routing-table 1.1.1.1
<R2>dis ip routing-table 1.1.1.1
[R3]dis ip routing-table 1.1.1.1
<R4>dis ip routing-table 1.1.1.1
此时R4上有去向1.1.1.1的5类LSA,由R2发出
原因分析:当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上的配置:
[R2]route-policy settag permit node 10
[R2-route-policy]apply tag 100
[R2-route-policy]ospf 2
[R2-ospf-2]import-route ospf 1 route-policy settag
R4上的配置
[R4]route-policy denytag deny node 10
[R4-route-policy]if-match tag 100
[R4-route-policy]route-policy denytag permit node 20
[R4-route-policy]ospf 1
[R4-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
至此实验完成