问题描述
IGP 协议的链路状态数据库各节点独立计算,导致其在无序收敛时可能会产生环路。这种环路会在转发路径上所有设备都完成收敛之后消失,此类暂态的环路被称为微环(Micro Loop);
解决方案
目的:防止主路径更新时候的临时环路
触发条件:主路径信息更新,将出发防微环保护。
TI-LFA 功能正常情况如图,P1 感知到 P2 节点发生故障后进入 TI-LFA FRR 切换流程。在发送数据时,P1 将向报文中插入 Repair List <16005,16057> 来指导 P3 进行数据转发,通过 16005 转发到 16006;
注,此类技术使用类似的思路:针对提前收敛的设备,其通过向报文中添加 Segment List,来指导其他设备转发数据;
SR 本地正切防微环
原因:设备的收敛时间不同导致微环
例如:P1 路由收敛后不再携带 Repair List。此时查询到达 16006 路由下一跳节点为 P3。如果 P3 此时未完成收敛,其指向 16006 的下一跳依然为 P1,产生本地正切环路;
方案:启用防微环后 P1 启动定时器 T1,期间 P1 发送的报文依旧按照 TI-LFA 策略 <16005, 16057> 转发,等待其他节点收敛。此时,标签将指导 P3 转发数据;
[P1] isis 1 [P1-isis-1] avoid-microloop frr-protected
SR 本地回切防微环
原因:在故障恢复后路径回切时也可能出现微环;
例如:此时 P2 故障恢复,如果 P1 未完成收敛将流量转发给 P3,但是 P3 已完成收敛会将流量转发回 P1,形成本地回切微环;
方案:启用防微环,P3 完成收敛后计算出防微环 Segment List 为<16002, 16024>。PE1 将报文转发 P1,此时由于 P1 未完成收敛将报文转发给 P3。P3 将插入此防微环 Segment List,从 P1 转发给 P2 最后到 PE2;
[P3] isis 1 [P3-isis-1] avoid-microloop frr-protected
注,P3 生成的此防微环 Segment List 在定时器 T 内生效;
SR 远端防微环
在路径切换过程中,不仅可能导致本地微环,也可能引起远端节点之间形成环路,即远端微环;
例如,如图 PE2 和 PE3 之间链路故障,如果 P2 率先完成收敛而 P1 未完成收敛,报文在 P1-P2 间将形成环路;
使能远端防微环后,P2 收敛后针对访问 PE3 的报文计算防微环 Segment List <16003,16037>。此时即使 P1 为未完成收敛,依然会将流量从 P3 转发到 PE3;
[P2] isis 1 [P2-isis-1] avoid-microloop segment-routing
P2 生成的此防微环 Segment List 在定时器 T 内生效;