第十八章 SR技术
18.1 简介
SR可以通过控制器实现集中算路,并根据业务的不同下发不同的路径给到头端设备,头端设备将路径标签通过标签栈的形式压入到报文中,沿途的设备不需要维护路径信息,仅按照标签栈中的栈顶进行报文转发即可。
控制平面:扩展后的IGP协议,通过IGP分发标签
转发平面:基于MPLS标签转发。
18.2 概念:
SID:是指报文执行转发动作命令的具体体现,基于MPLS的SR,SID就是MPLS标签,如果是SRV6,SID就是IPV6地址。
段列表Segment List:由一个或者多个SID组成,表示一个转发路径。
源路由(Source Routing):源节点选择一条路径并在报文中压入一个有序的段列表,网络中的其他节点按照报文封装的段列表进行转发,实现转发路径控制。
SRGB:设备为SR预留的用于报文转发的标签空间,每个设备都会向邻居通告自己的SBGB:设备按照本地的SRGB以及前缀偏移值,计算该前缀对应的入标签,根据邻居通告的SRGB以及偏移值,计算该前缀的出标签,建议SRGB全局配置相同的标签空间。
18.3 SID的分类:
邻接SID:Adjacency Segment,标识本地的一个链路,报文中压入邻接SID,则表示向该邻接SID标识的链路转发报文。全局可见,本地有效(产生这个邻接SID的设备有效)。
前缀SID:Prefix Segment,表示网络中的一个目的前缀。全局可见,全局有效。
- 节点SID:路由设备上的环回口对应的前缀SID,代表该节点,为节点SID。
18.4 IGP的扩展
- OSPF:10类LSA扩展实现SR功能
- 10类中4小类:算法、SRGB(通过两个TLV实现)
- 10类中的7类:通告的时前缀SID的索引值,通过SRGB以及索引值可以计算对应的前缀SID
- 10类中的8类:通告的邻接SID。
18.5 SR的架构
- SR MPLS BE:
- 和MPLS LDP相同,不需要LDP,注意MPLS功能需要开启。使用IGP通告标签。
- 转发过程进行标签置换(SWAP),采用最短路径进行转发。
- 引流的方式:没有隧道口
- 隧道策略:按照隧道的优先级顺序选择SR-BE隧道。
- 静态路由:将静态路由的下一跳指定为SR-BE隧道的目的地址,根据下一跳地址迭代到SR-BE隧道。
- 根据路由下一跳迭代:BGP等公网路由可以根据路由的下一跳迭代到SR-BE隧道。
- SR MPLS TE:(SR流量工程)
- 支持手动指定路径和控制器算路
- 创建Tunnel隧道(手工,或者是控制器Neconf下发Tunnel隧道属性),用于引流到TE的隧道,必须要绑定显式路径(标签栈)或者是控制器计算(PCEP协议下发标签栈)。
- 显式路径可以通过手工配置,或者控制器计算
- 报文转发在头结点压入显式路径,沿途设备按照标签栈的栈顶标签进行数据转发。转发路径按照显式路径进行转发
- 引流的进入到LSP中的方式: 配置隧道口Tunnel接口
- 隧道策略:按照隧道的优先级顺序选择SR-TE隧道。
- 静态路由:配置静态路由,将路由出接口指定为SR-TE隧道的接口。
- 自动路由:将SR-TE隧道当做逻辑链路参与IGP路由计算。
- 策略路由:策略路由的执行语句中,使用SR-TE隧道接口为出接口。
- SR policy:用于流量工程(TE)
- 一个SR-MPLS Policy由一个元组标识<headend, color, endpoint>。对于一个指定的节点SR-MPLS Policy则由<color, endpoint>标识,也用于标识转发路径。
- 头端(headend):SR-MPLS Policy生成的节点,一般是全局唯一的IP地址。
- 颜色(color):32比特扩展团体属性,用于标识某一种业务意图(例如低延时)。
- 尾端(endpoint):SR-MPLS Policy的目的地址,一般是全局唯一的IP地址。
- 转发路径(标签栈)
- 一个SR MPLS policy中包含多个候选路径,选择优先级最高的作为主用候选路径,其余作为备份路径。一条候选路径中,可以包含多个不同的段列表,基于权重值进行负载分担。
- 一个SR-MPLS Policy由一个元组标识<headend, color, endpoint>。对于一个指定的节点SR-MPLS Policy则由<color, endpoint>标识,也用于标识转发路径。
18.6 保护机制
- TI-LFA算法:用于保护链路和保护节点,节点的保护优于链路保护。
- Anycast FRR:多个设备配置相同的Anycast SID,当其中主用设备故障,会快速切换到备用设备上,且头节点不需要重新规划标签栈。
- Hot Standby:在同一个SR policy中计算多个候选路径,主候选路径出现故障,备份候选路径进入到活跃状态。但是无法保护SR policy的尾端设备故障。故障感知需要通过BFD等机制实现。
- VPN FRR:PE双归的场景下,PE出现故障的时候,根据VPN FRR切换 SR-policy,使得流量转发进入到未得PE设备。
18.7 防微环
- 正切防微环:路径上出现设备故障,需要切换到TI-FLA的备份路径的过程中,会出现设备收敛时间不一致,导致的暂时的环路出现。如图:
- 问题:P1以收敛,已知P2出现故障,P3为收敛,不知P2出现故障,仍然认为到达目的地最近的设备是P1,此时数据将发送给P1,P1已知P2出现故障,将数据发送给P3,因此在P1和P3之间形成暂时的环路,直到P3收敛完成。P3将数据向P4转发。
- 解决方法:P1已收敛,已知P2出现故障,此时计算出一个修复列表,指导报文经过P3、P4转发到目的地,避开故障点。
- 回切防微环:
- (自行总结补充),故障恢复之后,各设备对故障是否已恢复收敛的时间不一致,导致的临时环路。
- 解决办法:修复列表
- 远端防微环:
- 问题:故障出现后,距离故障较远的远端设备(P1和P2)收敛时间不一致,导致的设备间出现临时环路。如图:故障出现的目的地附近,本端的P1和P2收敛时间不一致,P2首先收敛感知到故障,并将去往目的PE3的报文转发给P1设备,P1设备未收敛完成,未感知到故障,继续讲报文发送P2设备,形成P1和P2之间暂时的环路。
- 解决方式:(自行补充),在报文中原有的段列表中添加修复列表,强制报文绕过故障点转发。
- 保护措施:SBFD,简略版的BFD