SRv6 TE Policy
定义
SRv6 TE Policy是在SRv6技术基础上发展的一种新的隧道引流技术。SRv6 TE Policy路径表示为指定路径的段列表(Segment List),称为SID列表(Segment ID List)。每个SID列表是从源到目的地的端到端路径,并指示网络中的设备遵循指定的路径,而不是遵循IGP计算的最短路径。如果数据包被导入SRv6 TE Policy中,SID列表由头端添加到数据包上,网络的其余设备执行SID列表中嵌入的指令。
头端:SRv6 TE Policy生成的节点。
Color:SRv6 TE Policy携带的扩展团体属性,携带相同Color属性的BGP路由可以使用该SRv6 TE Policy。
尾端(End Point):SRv6 TE Policy的目的地址。
Color和End Point信息通过配置添加到SRv6 TE Policy,业务网络头端通过路由携带的Color属性和下一跳信息来匹配对应的SRv6 TE Policy实现业务流量转发。Color属性定义了应用级的网络SLA策略,可基于特定业务SLA规划网络路径,实现业务价值细分,构建新的商业模式。
SRv6 TE Policy模型
SRv6 TE Policy的模型和SR-MPLS TE Policy完全相同,如图3-46所示。一个SRv6 TE Policy可以包含多个候选路径(Candidate Path)。候选路径携带优先级属性(Preference)。优先级最高的有效候选路径做为SRv6 TE Policy的主路径。
一个候选路径可以包含多个Segment List,每个Segment List携带Weight属性。每个Segment List都是一个显式SID栈,Segment List可以指示网络设备转发报文。多个Segment List之间可以形成负载分担。
SRv6 TE Policy创建
SRv6 TE Policy可以在转发器上静态配置(CLI/Netconf),也可以由控制器上动态生成然后传递给转发器(BGP)。相对来说,动态方式更利于网络自动化部署。存在多个方式产生的相同SRv6 TE Policy时,转发器按照与SR-MPLS TE Policy相同的原则选择SRv6 TE Policy。具体请参考SR-MPLS TE Policy创建。
SRv6 TE Policy创建时可以使用End SID,End.X SID,Anycast SID或者Binding SID等进行组合。
如图3-47所示,用户可以通过CLI/Netconf静态配置SRv6 TE Policy。其中静态配置SRv6 TE Policy时,Endpoint、Color、候选路径的Preference和Segment List等都必须配置。静态配置时,Preference不允许重复。Segment List第一跳SID支持End SID和End.X SID,不支持Binding SID。
控制器下发SRv6 TE Policy过程如图3-48所示。其主要过程如下:
控制器通过BGP-LS收集网络拓扑和SID信息。
控制器与头端转发器之间建立IPv6 SR Policy地址族的BGP邻居。
控制器计算SRv6 TE Policy,然后通过BGP邻居下发给头端。头端生成SRv6 TE Policy表项。
对于静态手工部署的SRv6 TE Policy,Binding SID在Locator的静态段范围内配置。对于控制器下发的SRv6 TE Policy,控制器最初下发SRv6 TE Policy时先不携带Binding SID,转发器接收SRv6 TE Policy后主动在Locator的动态段范围内随机分配一个,然后通过BGP-LS上报SRv6 TE Policy状态时携带Binding SID,这样控制器也能感知SRv6 TE Policy的Binding SID,利用Binding SID进行SRv6路径编排。
SRv6 TE Policy流量导入
SRv6 TE Policy支持通过Color进行引流,在引流之前,需要对路由进行着色。
路由着色是指通过路由策略对路由增加扩展团体属性Color,携带Color的路由可以根据Color与下一跳地址迭代SRv6 TE Policy。
配置路由策略,匹配特定路由,设置特定的Color属性。
将路由策略应用到BGP邻居,或者应用到整个VPN实例,可以做为入口策略,也可以做为出口策略。
Color引流
整个过程简述如下:
通过控制器向头端设备A下发SRv6 TE Policy,SRv6 TE Policy的Color是123,EndPoint是设备B的地址2001:db8::1。
在设备B上配置BGP出口策略或者VPN出口策略(也可以在设备A上配置BGP入口策略或者VPN入口策略),为路由前缀2001:db8::/96设置扩展团体属性Color 123,路由下一跳是设备B的地址2001:db8::1。然后路由通过BGP邻居发送给设备A。
在头端设备A上配置隧道策略,然后当设备A接收到BGP路由2001:db8::/96后,根据路由的扩展团体属性123和下一跳2001:db8::1迭代到SRv6 TE Policy。转发时,为到2001:db8::/96的报文添加一个具体的标签栈<C,E,G,B>。
SRv6 TE Policy数据转发
控制器下发SRv6 TE Policy给头端PE1设备。
尾端PE2设备发布BGP VPNv4路由10.2.2.2/32给头端PE1设备,BGP路由的下一跳是PE2设备的地址2001:db8::1/128。
在头端PE1设备上配置隧道策略。PE1设备在接收到BGP路由以后,利用路由的Color和下一跳迭代到SRv6 TE Policy,SRv6 TE Policy的SID List是<2::1, 3::1, 4::1>。其中SID List <2::1, 3::1, 4::1>用在数据转发场景时,也可以表示为(4::1, 3::1, 2::1)。
头端PE1接收到CE1发送的普通单播报文后,查找VPN实例路由表,该路由的出接口是SRv6 TE Policy。PE1为报文插入SRH信息,封装SRv6 TE Policy的SID List,然后封装IPv6报文头信息。完成之后,PE1将报文对P1转发。
中间P1和P2节点根据SRH信息逐跳转发。
报文到达尾节点PE2之后,PE2使用报文的IPv6目的地址4::1查找My Local SID表,命中到End SID,所以PE2将报文SL减1,IPv6 DA更新为VPN SID 4::100。
PE2使用VPN SID 4::100查找My Local SID表,命中到End.DT4 SID,PE2解封装报文,去掉SRH信息和IPv6报文头,使用内层报文目的地址查找VPN SID 4::100对应的VPN实例路由表,然后将报文转发给CE2。
SRv6 TE Policy故障切换
SRv6 TE Policy的MBB与慢删机制
SRv6 TE Policy支持MBB(make before break)。在SRv6 TE Policy的Segment List更新过程中,转发器在拆除老的Segment List之前先把新的Segment List建立起来,这期间流量先按照老的Segment List转发,系统将等待延迟时间超时以后才进行删除,防止Segment List切换震荡导致流量不通。
慢删机制仅对SRv6 TE Policy下处于Up状态的Segment List(包含备份Segment List)生效。
SRv6 TE Policy故障切换
如图3-51所示,PE1到PE3、PE2到PE4之间部署SRv6 TE Policy。可能的故障点及对应保护策略如图3-51所示。
故障点 |
保护策略 |
---|---|
1、8 |
控制器和所有转发器之间BGP邻居关系Down时,PE1上的SRv6 TE Policy被删除,VPNv4路由无法迭代到该SRv6 TE Policy,因此需要重新迭代。如果网络中存在SRv6 BE路径,VPNv4路由会重新迭代到SRv6 BE路径。该场景属于硬收敛场景,流量切换到SRv6 BE路径上,存在丢包。 |
2、3 |
CE1上进行接入侧ECMP切换,可以切换到PE2进行转发。 |
4、5、6 |
如果PE1-PE3之间使用Loopback地址建立BGP邻居,此时4、5、6点故障时,BGP邻居使用的IPv6地址通过P2仍旧可达。因此PE1-PE3之间BGP邻居不会断开,PE3发给PE1的路由不会删除,此时SRv6 TE Policy内部走FRR切换。 |
7 |
1、PE1在感知到PE3故障之前,流量持续发给P1。P1上可以配置SRv6尾节点保护技术,在P1上压入Mirror SID,将流量转发给PE4。 2、PE1感知到PE3故障之后,PE1-PE3的BGP邻居断开。BGP删除从PE3收到的BGP路由,并重新优选PE4发布的路由,流量切换到PE4上。 |
尾节点保护
业务迭代SRv6 TE Policy以后,需要严格按照Segment List指定的路径进行转发,整个SRv6 TE Policy的尾节点也是固定的。如果SRv6 TE Policy的尾节点发生单点故障,可能导致转发失败,所以需要对SRv6 TE Policy的尾节点提供保护。
- PE1和PE2上配置Locator,分别是A1::/64和A2::/64。
- PE3-PE1、PE2-PE1之间均部署IPv6形式的VPNv4邻居。PE1和PE2上配置VPN实例VPN1,同时配置SRv6 VPN SID,PE1和PE2上使能IPv4 Prefix SID信息发布能力。
- PE1收到CE2发布的私网路由之后,封装成VPNv4路由,发布给PE3,路由携带VPN SID、RT、RD和Color信息。
- PE2上配置End.M SID来保护PE1,假设配置的<End.M SID, Locator>关系为<A2::100, A1::>。
- PE2上配置完End.M SID之后,IGP将End.M SID泛洪出去,PE2上同时生成Local SID表。P1收到End.M SID之后,生成VPN SID地址的FRR表项,动作为压入End.M SID。同时P1生成一条低优先级路由,此路由不能被迭代。
- BGP订阅End.M SID配置。PE2从PE1收到私网路由之后,根据RT交叉到VPN1,PE2使用远端交叉路由的VPN SID信息和End.M SID配置中的Locator进行最长匹配,如果匹配上则生成<Remote SRv6 VPN SID, VPN>映射表。
- 正常情况下,PE3流量经过路径PE3-P1-PE1-CE2发布到私网。当PE1节点故障时,P1上感知PE1下一跳不可达,切换为FRR路径。
- P1上流量压入End.M SID到报文头,转发给PE2。PE2解析到End.M SID,查询Local SID表,发现End.M SID对应指令为查询Remote SRv6 VPN SID表,则使用报文里面的VPN SID查询Remote SRv6 VPN SID表,找到对应VPN。PE2查询VPN路由表将流量转发给CE2。
此外,PE1故障时,PE2-PE1之间邻居中断,会导致PE2上从PE1收到的VPN路由删除,进而导致<Remote SRv6 VPN SID, VPN>表被删除,因此需要在PE2和PE1之间使能GR能力保持路由,或者PE2上配置<Remote SRv6 VPN SID, VPN>表慢删功能(当前已经默认使能)。