网络中超好玩的路由环路(4)——双点重分发环路A(收敛引发)
一、前提知识:
双点双向重分发是一个非常危险的操作,如果配置不当可能会引发环路,具体说来有两种情况:
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
至此实验完成
相关文章
- [NetWokr] 大规模路由概述
- 斐讯N1盒子刷OpenWrt做主路由/旁路由(详细付配置)
- 网络中超好玩的路由环路(1)——PPP直连环路
- 网络中超好玩的路由环路(5)——神奇的优先级(双点重分发)
- Linux中添加路由_linux添加临时路由命令
- 在线客服系统如何进行智能路由?
- 译:基于Zuul、Redis和REST API实现动态路由的持久化及容错能力
- vue权限路由实现方式总结
- Kube-OVN高级功能 | Overlay下路由方式网络打通
- 路由协议 OSPF
- Linux中网卡路由设置实现网络连通性(linux网卡路由设置)
- Linux下构建联网之路——路由实践(路由linux)
- Linux添加默认路由:让你实现最新网络速度(linux加默认路由)
- Linux中如何操作删除默认路由(linux删除默认路由)
- 器重启Linux路由器:令你的网络重新活力(重启linux路由)
- Linux下设置网卡路由:一步一步指南(linux设置网卡路由)
- Linux 局域网路由新手指南:第 1 部分
- 对某创新路由的安全测试
- Linux网络路由完全实现指南(linux路由实现)
- 掌握Linux NAT路由技术,实现高效网络连接(linuxnat路由)
- Linux动态路由教程:提高网络路由效率,增强网络稳定性(linux动态路由)
- 从极路由,说一说智能硬件2014年走过的弯路
- 深入解析Linux路由技术,掌握网络架构精髓(linux的路由)
- Linux IPv6路由:走向新世界的网络之门(linux ipv6路由)
- 7620A路由助力Mysql实现高性能网络互联(7620a路由mysql)