SR-TE基础原理知识简介
SR-TE介绍
SR-TE (Segment Routing-Traffic Engineering)使用SR作为控制协议的一种新型的TE隧道技术。分严格显示路径,松散显示路径。主要通过Adjacency SID 或Adiacency SID + Node SID实现。
控制器:负责计算隧道的转发路径,并将与路径严格对应的标签栈下发给转发器。
转发器:在SR-TE隧道的入节点上,转发器根据标签栈,即可控制报文在网络中的传输路径。
SR-TE基本模型
SR-TE目前都是基于控制器算路,并将计算好的标签栈下发给转发器,生成隧道的转发路径。SR-TE隧道的对外表现和使用方法和普通TE隧道基本相同。
转发器:承载隧道业务的路由器。
PCE控制器(PCE controller):控制器上的路径计算单元,收集转发器网络拓扑,根据隧道约束规划计算如全局隧道路径信息。
PCEP:路经计算单元通信协议,用于控制器和转发器之间隧道信息的通信。
IGP/BGP-LS:路由收集发布协议,将转发器的拓扑信息收集并上报给控制器
标签分配方式
转发器的IGP协议分配标签,并通过BGP-LS将分配的标签上报给控制器。SR-MPLS TE主要使用邻接标签(Adjacency Segment),也可以使用节点标签。邻接标签是源节点分配的,只在本地有效,并且具有一定的方向性。节点标签手工配置,全局有效。邻接标签和节点标签都可以通过IGP协议扩散出去。如图所示,邻接标签9003对应邻接PE1->P3,9003是由PE1分配的;邻接标签9004对应邻接P3->PE1,9004是由P3分配的。
在PE1、P1、P2、P3、P4和PE2设备上分别使能IGP SR能力,相互之间建立邻居。对于使能了SR能力的IGP实例,会对所有使能IGP协议的出接口分配SR邻接标签。邻接标签通过IGP的SR协议扩展,泛洪到整个网络中。如图所示,以P3设备为例,IGP分配标签的具体过程如下:
1) P3的IGP协议为其邻接申请本地动态标签。例如,P3为邻接P3->P4分配的邻接标签为9002。
2) P3的IGP协议发布邻接标签,泛洪到整个网络。
3) P3上生成邻接标签对应的标签转发表。
4) 网络中的其它设备的IGP协议学习到P3发布的邻接标签,但是不生成标签转发表。
PE1、P1、P2、P3、P4按照P3的方式分配和发布邻接标签,生成标签转发表。当设备与控制器之间配置BGP-LS协议,建立了邻居关系后,BGP-LS引入带有SR标签信息的拓扑,向控制器上报。
SR-TE转发
SR-MPLS TE的数据转发(基于邻接标签)
以图为例,说明手工指定邻接标签方式下SR-MPLS TE的数据转发过程。
控制器计算出SR-MPLS TE隧道路径为A->B->C->D->E->F,对应2个标签栈{1003,1006,100}和{1005,1009,1010},分别下发给入节点A和粘连节点C。其中,100为粘连标签,与标签栈{1005,1009,1010}相关联,其他为邻接标签。
这种方式的SR-MPLS TE数据报文转发过程概述如下:
1) 入节点A为数据报文添加标签栈{1003,1006,100},然后根据栈顶的标签1003匹配邻接,找到对应的转发出接口为A->B邻接,之后将标签1003弹出。报文携带标签栈{1006,100},通过A->B邻接向下游节点B转发。
2) 中间节点B收到报文后,根据栈顶的标签1006匹配邻接,找到对应的转发出接口为B->C邻接,之后将标签1006弹出。报文携带标签栈{100},通过B->C邻接向下游节点C转发。
3) 粘连节点C收到报文后,通过查询粘连标签表项识别出栈顶标签100为粘连标签,将粘连标签100交换为与其关联的标签栈{1005,1009,1010},然后根据新的栈顶标签1005匹配邻接,找到对应的转发出接口为C->D邻接,之后将标签1005弹出。报文携带标签栈{1009,1010},通过C->D邻接向下游节点D转发。关于粘连节点和粘连标签的详细介绍,请参考SR-MPLS TE。
4) 节点D、E收到报文后,以与中间节点B相同的方式继续转发。直到节点E弹出最后一个标签1010,数据报文转发至节点F。
5) 出节点F收到的报文不带标签,通过查找路由表继续转发。
从以上描述可以看出,通过手工指定邻接标签,设备将严格按照标签栈里指定的显式路径逐跳转发,所以这种也称作严格路径方式的SR-MPLS TE。
SR-MPLS TE的数据转发(基于节点+邻接标签)
严格路径方式的SR-MPLS TE在存在等价路径的情况下,也无法进行负载分担,在SR-MPLS TE路径里引入节点标签后,可以弥补上述不足。
手工指定节点标签+邻接标签混合标签栈,可指定跨网元的节点标签,控制器通过PCEP或NETCONF下发给转发器首节点,转发器基于该标签栈,逐跳查找出接口弹出标签,指导数据报文进行转发到隧道目的地址。
SR-MPLS TE数据报文转发示意图(基于节点+邻接标签):
如图所示,手工指定的混合标签栈,在A节点入隧道的混合标签栈为{1003,1006,1005,101},其中1003、1006、1005为邻接标签,101为节点标签。
1) 在A号节点根据栈顶邻接标签1003,查找对应的A-B的出接口,将1003标签弹出剩余报文转发出去,发送到下一跳B节点;
2) 在B节点类似A节点动作,根据栈顶标签1006,找到对应出接口,将1006标签弹出转发出去,发送到下一跳C节点;
3) 在C节点类似A节点动作,根据栈顶标签1005,找到对应出接口,将1005标签弹出转发出去,发送到下一跳D节点;
4) 在D节点上,处理栈顶节点标签101,在D节点标签101为到F节点的链路负载分担标签,流量报文根据其IP五元组,哈希到相应链路上;
5) 在E、G节点上,收到节点标签101后,根据对应的标签做对应动作,交换为下一跳的节点标签,由于这两个节点为倒数第二跳,直接将标签弹出后报文发送给F节点,完成端到端路径的流量转发。
从以上描述可以看出,通过手工指定节点标签+邻接标签,设备在处理节点标签时,可以按照最短路径进行转发,也可以进行负载分担,其路径并不是严格固定,所以这种也称作松散路径方式的SR-MPLS TE。
SR-TE的隧道属性
SR-TE基本属性
SR-TE隧道支持的配置属性,类似普通TE隧道,支持特性包括 hop-limit,带宽,优先级,亲和属性,显式路径,HSB,动态/静态bfd检测sr-te lsp,bfd for Tunnel,IGP shortcut/FA,VPN bind 隧道,流量统计。这些隧道特性的对外体现与普通TE相同。
MTU属性
SR-TE隧道不支持MTU的协商,因此必须由用户保证路径上MTU的一致性。
对于自动创建的SR-TE隧道,缺省情况取第一跳出接口上的MTU值。
对于手工配置的SR-TE隧道,可以在Tunnel下手工配置MTU,如果不手工配置MTU,取MTU的默认值1500bytes。手工SR-TE隧道,取Tunnel和出接口下MTU的最小值。
HSB
SR-TE支持热备份(Hot-Standby)LSP保护。热备份LSP在主LSP建成后发起建立。当主LSP故障后,流量会切换到热备份LSP。当主LSP恢复后,将流量切换回去。
SR-TE由于没有协议建立,只要标签栈下发,LSP就会建立成功,而且除非撤销标签栈,LSP不会出现协议down的情况。所以SR-TE LSP故障检测需要靠部署BFD检测,通过BFD故障通告切换热备份LSP。
BFD
由于SR-TE没有协议,无法感知自身LSP的状态,所以LSP状态依赖BFD检测其路径连通性,且Tunnel状态依赖主备LSP的状态,主备LSP都要跑BFD for LSP检测。SR-TE LSP建立时,如果BFD没有协商成功,则LSP不UP。通过配置BFD for SR-TE LSP,如果主路径故障可以快速切换到备份路径。
SR-TE隧道状态要结合BFD for SR-TE Tunnel与BFD for SR-TE LSP检测。BFD for SR-TE LSP用来控制主备LSP的切换状态,BFD for SR-TE Tunnel用来保证Tunnel的真实状态。如果不配置BFD for SR-TE Tunnel,Tunnel默认状态只为UP,Tunnel的真实状态不确定;如果配置了BFD for SR-TE Tunnel,隧道接口状态与BFD状态一致。
- 点赞
- 收藏
- 关注作者
评论(0)