解决方案
TI-LFA(Topology-Independent Loop-free Alternate)FRR 能为 SRv6 隧道提供链路及节点的保护;
原理简述
当某处链路或节点故障时,流量会快速切换到备份路径继续转发;
P 空间与 Q 空间:
P 空间:以源节点为根,到其他节点的 SPF 树,删掉被保护路径及其下挂的分支和节点,剩下可达的节点(不包含根节点)集合就是 P 空间;
扩展 P 空间:以源节点的各个邻居为根(不包含被保护链路节点),到其他节点的 SPF 树,删掉故障点下挂的分支和节点,剩下可达的节点(不包含根节点)集合就是扩展 P 空间;
Q 空间:以目的节点为根,其他节点到根的 r-SPF 树,删掉被保护路径及其下挂的分支和节点,剩下可达的节点(不包含根节点)集合就是 Q 空间;
TI-LFA 计算原则
SRLG Disjoint > 节点保护 > 链路保护 > cost 最小;
计算同时满足 SRLG Disjoint+节点保护的备份路径,存在多条时,选择 cost 最小的路径;
否则,计算满足 SRLG Disjoint+链路保护的备份路径,存在多条时,选择 cost 最小的路径;
否则,计算满足节点保护的最小 cost 的备份路径;
否则,计算满足链路保护的最小 cost 的备份路径;
如图,PE1 到 PE2 的最短路径也就是主用路径为 PE1->P1->P4->PE2,P1 需要计算到 PE2 的 TI-LFA 备份路径:
1)排除主下一跳(Link P1->P4)计算收敛后的最短路径:P1->P2->P3->P4->PE2;
2)计算 P 空间和 Q 空间,P 空间为(P1,P2),Q 空间为(P3,P4,PE2);
3)计算 TI-LFA 路径:把任意路径表示为多段路径:源节点<–>P<–>Q<->目的节点。其中源节点到 P 是无环路径,Q 到目的节点是无环路径。P 到 Q 使用严格显式路径(END.X SID)来表达,这样整个 TI-LFA 严格显式路径一定是无环的。为了简化修复路径,选取 P 空间中离源节点最远的节点 P2,以及 Q 空间中距离目的节点最远的节点 P3,以及 PQ 之间的链路;
4)P1 感知到 P1->PE2 接口状态为 Down,使用备份表项转发,封装新的 SRH。其中 Segment List 为<FC03::C4,FC06::6>,并修改 IPv6 目的地址为 FC03::C4,之后将报文转发到备份出接口为 B->C;
TI-LFA 优势
满足 100% 拓扑覆盖,用户不用担心网络 cost 的规划对保护路径计算产生影响;
部署简洁,基于 IGP 计算备份路径,用户不必为了可靠性引入的额外的协议部署;
优先使用 Post-convergence 路径,即 IGP 收敛之后的路径作为备份路径,这样可以减少路径切换的次数,并且更有利于用户进行带宽规划;