跨域E2E SR-MPLS TE
Binding SID
与RSVP-TE隧道相似,SR-MPLS TE隧道可以做为一种转发邻接。如果将SR-MPLS TE隧道做为转发邻接分配一个邻接SID(AdjacencySID),则该SID可以标识SR-MPLS TE隧道,利用这个SID就可以将数据流量导入SR-MPLS TE隧道,实施TE策略。SR-MPLS TE隧道的AdjacencySID可以称作Binding SID,Binding SID意味着将使用该SID的流量与一个SR-MPLS TE隧道或者一个TE策略绑定。
- 在CSG1上配置Binding SID 6000和7000,分别代表标签栈{102, 203}和{110, 112, 213}。
- 在ASBR3上配置Binding SID 8000,代表标签栈{405, 506}。
- 在ASBR4上配置Binding SID 9000,代表标签栈{415, 516, 660}。
Binding SID生成以后,控制器利用Binding SID和BGP Peer SID,可以计算出跨域E2E SR-MPLS TE隧道,用户也可以通过静态显式路径配置出跨域E2ESR-MPLS TE隧道。在图2-44中,跨域E2ESR-MPLS TE主备LSP标签栈分别是{6000, 3040, 8000}和{7000, 3140, 9000},二者代表的完整标签栈分别是{102, 203, 3040, 405, 506}和{110, 112, 113, 3140, 415, 516, 660}。
由以上描述可以看出,Binding SID是通过指定一个本地标签关联本地转发路径,用于网元转发封装。利用Binding SID不仅可以减少网元封装的标签栈层数,而且利于组建跨域E2E SR-MPLS TE网络。
E2E SR-MPLS TE隧道创建
E2E SR-MPLS TE隧道配置
E2E SR-MPLS TE隧道的属性是创建隧道的依据。E2ESR-MPLS TE隧道可以在控制器上配置,也可以在转发器上配置。
控制器上配置隧道
在控制器上进行E2E SR-MPLS TE隧道配置后,控制器将隧道属性通过NETCONF下发给转发器(如图2-45所示),转发器通过PCEP协议将隧道托管给控制器进行管理。
转发器上配置隧道
在转发器上可以严格按照显式路径指定隧道标签栈,建立手工E2E SR-MPLS TE隧道。手工E2ESR-MPLS TE隧道配置比较复杂,无法根据网络自动调整,推荐在控制器上配置隧道。
E2E SR-MPLS TE隧道建立
- 在E2E SR-MPLS TE隧道创建之前,控制器需要先完成域内SR-MPLS TE隧道创建,并且为域内隧道配置Binding SID。然后在AS域间配置BGPEPE,生成BGP Peer SID,之后ASBR通过BGP LS上报BGP EPE的标签和网络拓扑信息。
控制器基于SR-MPLS TE的隧道约束属性,通过路径计算单元PCE进行类似普通TE的路径计算,计算出来的路径根据拓扑和邻接标签,将整条路径的标签整合在一起,生成一个标签栈(即算路结果)。
如图2-45所示,控制器计算出SR-MPLS TE隧道路径为CSG1->AGG1->ASBR1->ASBR3->P1->PE1,对应标签栈{6000,3040,8000},其中6000和8000为Binding SID标签,3040为BGP Peer SID。
控制器通过NETCONF和PCEP分别将隧道配置信息和标签栈下发给转发器。
如图2-45所示,控制器下发标签栈的过程如下:- 控制器将AS域内标签栈{102,203}和{405,506}分别下发给域内下发给隧道Ingress节点CSG1和ASBR3。
- 控制器将E2E SR-MPLS TE隧道标签栈{6000,3040,8000}下发给跨域E2E隧道Ingress节点CSG1。
- 转发器CSG1根据控制器下发的隧道配置和标签栈信息建立跨域E2E SR-MPLS TE隧道LSP。
E2E SR-MPLS TE隧道数据转发
转发器上根据SR-MPLS TE隧道LSP对应的标签栈,对报文进行标签操作,并根据栈顶标签逐跳查找转发出接口,指导数据报文转发到隧道目的地址。
入节点CSG1为数据报文添加标签栈{6000,3040,8000},然后根据栈顶的标签6000查表,6000是Binding SID标签,对应标签栈{102,203}。然后根据102标签查找转发出接口,对应为CSG1->AGG1邻接,之后将标签102弹出。报文携带标签栈{203,3040,8000},通过CSG1->AGG1邻接向下游节点AGG1转发。
- AGG1收到报文后,根据栈顶的标签203匹配邻接,找到对应的转发出接口为AGG1->ASBR1邻接,之后将标签203弹出。报文携带标签栈{3040,8000},通过AGG1->ASBR1邻接向下游节点ASBR1转发。
- ASBR1收到报文后,根据栈顶的标签3040匹配邻接,找到对应的转发出接口为ASBR1->ASBR3邻接,之后将标签3040弹出。报文携带标签栈{8000},通过ASBR1->ASBR3邻接向下游节点ASBR3转发。
- ASBR3收到报文后,根据栈顶的标签8000查表,8000是Binding SID标签,对应标签栈{405,506}。然后根据405标签查找转发出接口,对应为ASBR3->P1邻接,之后将标签405弹出。报文携带标签栈{506},通过ASBR3->P1邻接向下游节点P1转发。
- P1收到报文后,根据栈顶的标签506匹配邻接,找到对应的转发出接口为P1->PE1邻接,之后将标签506弹出。报文此时不携带标签,通过P1->PE1邻接向目的节点PE1转发。
E2E SR-MPLS TE隧道可靠性
E2E SR-MPLS TE Hot-Standby
E2E SR-MPLS TE隧道支持热备份(Hot-Standby),热备份是指创建主LSP后随即创建备份LSP,备份LSP始终处于热备状态。热备份LSP提供整条LSP的保护,是一种端到端的流量保护措施。
如图2-47所示,首节点CSG1上配置Hot-Standby,这样CSG1在创建完PrimaryLSP后,立即创建Hot-Standby LSP,也即一条SR-MPLS TE隧道里包含两条LSP。当首节点感知到Primary LSP故障,会将流量切换到Hot-StandbyLSP;如果Primary LSP故障恢复,流量回切到Primary LSP,整个过程中,SR-MPLS TE隧道始终是Up状态。
在图2-47中,控制器计算出E2ESR-MPLS TE隧道的Primary LSP为CSG1->AGG1->ASBR1->ASBR3->P1->PE1,对应标签栈{6000,3040,8000},其中6000和8000为BindingSID标签,3040为BGP Peer SID;E2E SR-MPLS TE隧道的Hot-Standby LSP为CSG1->CSG2->AGG2->ASBR2->ASBR4->P2->PE2->PE1,对应标签栈{7000,3140,9000},其中7000和9000为Binding SID标签,3140为BGP Peer SID。
E2E SR-MPLS TE隧道保护
- AS域内:如果E2E SR-MPLS TE LSP在AS域内出现故障,则优先通过域内SR-MPLS TE隧道的保护技术进行保护,例如域内SR-MPLS TEHot-Standby与SR-MPLS TE FRR等,具体可以参考SR-MPLS TE隧道可靠性。
- E2E LSP级别:主要是指E2E SR-MPLS TE隧道内,Hot-Standby LSP为Primary LSP提供保护,保障E2ESR-MPLS TE隧道处于Up状态。Primary LSP可以通过单臂BFD for E2E SR-MPLS TE LSP进行检测,快速感知故障。
- E2E隧道级别:如果E2E SR-MPLS TE隧道的Primary LSP和Hot-Standby LSP同时发生故障,则单臂BFDfor E2E SR-MPLS TE隧道能够快速感知,系统将E2E SR-MPLS TE隧道置Down,此时VPN等上层应用可以通过VPN FRR切换到其他E2ESR-MPLS TE隧道。
单臂BFD for E2E SR-MPLS TE
- 单臂BFD for E2E SR-MPLS TE LSP:E2E SR-MPLS TE LSP建立时,如果BFD没有协商成功,则E2E LSP不Up。通过配置BFD for E2E SR-MPLS TE LSP,如果主路径故障可以快速切换到热备份(Hot-Standby)路径。
单臂BFD for E2E SR-MPLS TE隧道:E2E SR-MPLS TE隧道状态要结合BFD for E2E SR-MPLS TE Tunnel与BFD for E2E SR-MPLS TE LSP检测。
BFD for E2E SR-MPLS TE LSP用来控制主备LSP的切换状态,BFD for E2E SR-MPLS TE Tunnel用来保证E2E Tunnel的真实状态。如果不配置BFD for E2E SR-MPLS TE Tunnel,Tunnel默认状态只为Up,Tunnel的真实状态不确定。
E2E SR-MPLS TE隧道的接口状态依赖于BFD for E2E SR-MPLS TE Tunnel的检测,即E2E SR-MPLS TE Tunnel的接口状态与BFD状态一致,而BFD Up的时间由于BFD协议协商的要求会比较慢。一般情况下,当Tunnel状态为Down时下发新标签栈,到BFD Up需要十几秒的时间,这样会导致Tunnel在没有其他保护的情况下,硬收敛的时间较慢。
- 首先需要在入节点配置使能BFD检测的同时指定单臂检测模式,建立BFD会话。
- 其次出节点需要预先建立回程E2E SR-MPLS TE隧道,并为回程E2E SR-MPLS TE隧道配置Binding SID。
- 最后在入节点配置BFD会话与回程E2E SR-MPLS TE隧道的Binding SID绑定。
单臂BFD会话建立后,在入节点发出单臂BFD报文,单臂BFD报文携带回程隧道的Binding SID。单臂BFD报文通过SR-MPLS TE隧道经中间节点到达出节点后,转发平面接收到BFD报文后,将MPLS标签剥离后,通过单臂BFD报文携带的Binding SID关联到回程SR-MPLS TE隧道,然后为回程BFD报文封装E2E SR-MPLS TE隧道标签栈,回程BFD报文通过SR-MPLS TE隧道经中间节点环回到入节点,入节点进行检测报文处理,实现单臂环回的检测机制。
对于出节点没有可用回程E2E SR-MPLS TE隧道的情况,出节点会根据BFD报文的目的地址查找IP路由进行环回转发,具体如图2-50所示。
跨多AS域E2E SR-MPLS TE
从前面章节描述可以看出,理论上利用Binding SID和BGP Peer SID直接建立显式路径就可以轻易跨越多个AS域(大于等于3个)。但是由于AS域通常隶属于不同的管理机构,跨多AS域时,很有可能就跨越了多个管理机构的网络,这在现实部署中可能存在一定障碍。
如图2-51所示,这是一个三个AS域相连的网络,如果单纯在PE1上直接使用多跳显式路径建立到PE3的E2ESR-MPLS TE网络,则在AS x中,就可以决定AS y到AS z的流量路径,由于AS y与AS z可能和AS x隶属于不同的管理机构,所以这样的流量路径可能并不为ASy与AS z接受,而且标签栈深度太深也会降低转发效率。另一方面,AS y与AS z也可能和AS x使用不同的控制器,这也给PE1直接建立到PE3的E2ESR-MPLS TE网络带来困难。
- 第一层:建立AS y到AS z的E2E SR-MPLS TE隧道。首先需要完成立AS y和AS z域内SR-MPLS TE隧道创建,并且为域内隧道配置BindingSID,分别为Binding SID3和Binding SID5。其次在AS y和AS z域间配置BGP EPE,生成BGP PeerSID4。之后控制器利用上述SID建立从AS y到AS z的跨域E2E SR-MPLS TE Tunnel1,可以为该隧道配置新的BindingSID6。
- 第二层:建立AS x到AS z的E2E SR-MPLS TE隧道。首先需要完成立AS x域内SR-MPLS TE隧道创建,并且为域内隧道配置BindingSID,名为Binding SID1。其次在AS x和AS y域间配置BGP EPE,生成BGP Peer SID2。之后控制器利用BindingSID1、Peer SID2和Binding SID6建立从AS x到AS z的单向跨域E2E SR-MPLS TE Tunnel2。
以上就是跨3个AS域的E2E SR-MPLS TE隧道建立过程。如果超过3个AS域,还可以为E2E SR-MPLS TE Tunnel2分配新的BindingSID,然后利用此SID参与路径计算。按上述思路循环,可以进一步构建跨更多AS域的E2E SR-MPLS TE隧道。