• 收藏
  • 加入书签
添加成功
收藏成功
分享

SRV6互通Policy设计

王燕燕
  
格调·建筑设计与管理
2022年18期
锐捷网络股份有限公司

打开文本图片集

摘  要:未来的网络是面向5G时代的网络,面对5G,承载网也需要做出相应的调整,化繁为简,更加注重低时延、高效率转发、易部署、易扩展。SDN/NFV化就必然成为后续重点发展方向。为了下一步5G网络的发展,用户希望能够借用IPV6地址简化实现传统的VPN业务,SRv6就应运而生了,SRv6就是基于现有的IPv6转发技术,通过扩展IPv6报文头部,实现类似于标前转发的处理。本文需要重点讲到的SRv6 Policy,就是利用Segment Routing 的源路由机制,通过在头节点封装一个有序的指令列表来指导报文穿越从而达到替代传统MPLS转发的一种新型方式。

关键词:

1、SRv6相关技术原理

1.1 SRv6基本原理

SRv6(Segment Routing IPv6,基于IPv6转发平面的段路由)是基于源路由理念而设计的在网络上转发IPv6数据包的一种协议。通过在IPv6报文中插入一个路由扩展头SRH(Segment Routing Header),在SRH中压入一个显式的IPv6地址栈,并由中间节点不断地进行更新目的地址和偏移地址栈的操作来完成逐跳转发。目前 Segment Routing 支持 MPLS 和 IPv6 两种数据平面,基于MPLS 数据平面的 Segment Routing 称为 SR-MPLS,其 SID 为 MPLS 标签;基于 IPv6 数据平面的 Segment Routing 称为 SRv6,其 SID 为 IPv6 地址。如图1所示:

SRv6 SID 由 Locator、Function、Arguments 和 MBZ 四部分共128位组成。

Locator:标识 SID 所属的网段。在 SRv6 域内唯一,可用来标识设备的唯一性。

Function:标识与 SID 绑定的本地操作指令,SRv6 域内指定节点收到流量后,根据 SRv6 SID 的 Function 字段执行相关操作,比如FLAVOR属性有PSP,USP,USD,以及它们的组合,可根据需求组合。

Arguments:定义报文的流和服务等信息。

MBZ(Must be zero):当 Locator、Function 和 Arguments 的位数之和小于 128bits 时,其他位使用 0 补齐。

为了基于 IPv6 转发平面实现 Segment Routing,IPv6 路由扩展报文头新增加了一种类型,为 SRH(Segment Routing Header,段路由扩展报文头),该扩展报文头指定一个 IPv6 的显式路径,存储的是 IPv6 的路径约束信息(Segment List),即SRv6 SID。

SRH扩展头的格式如下图2:

SRH 扩展头有如下几部分关键信息:

Routing Type :类型值为 4 时,表明报文头是 Segment Routing Header(SRH)。

Segments List:填入的是数据转发需要经过的路径信息。

Segments Left(SL):是一个指针,指示当前活跃的 SID。

SRv6 主要有两种工作模式:SRv6 Policy和SRv6 BE。这两种模式基本上可以承载当前比较常见的一些业务,如BGP L3VPN,EVPN L3VPN,EVPN L2VPN,IPV4/IPV6等。接下来主要讲一下SRv6 Policy的相关技术原理。

1.2 SRv6 Policy相关技术原理

SRv6 Policy是在SRv6技术的基础上发展的一种新的隧道引流技术。SRv6 Policy路径表示为指定路径的段列表(segment list),称为SID列表(segment ID List)。每个SID列表是从源到目的地的端到端路径,并指示网络中的设备需要按照指定的路径而不是按照IGP计算的最短路径。如果数据包被导入SRv6 Policy中,SID列表由头端添加到数据包中,网路的其余设备就直接执行SID列表中嵌入的指令。

SRv6 Policy主要包含以下三部分:

头端(HeadEnd):SRv6 Policy生成的节点。

颜色(color):SRv6 Policy携带的团体属性,携带相同的color属性的bgp 路由可以引流到该SRv6 Policy实现业务转发。

尾节点(endpoint):SRv6 Policy的目的地址。

SRv6 Policy的模型如下:

一个SRv6 Policy可以包含多个候选路径(candidate path)。候选路径携带优先级属性(preference),优先级最高的有效候选路径可作为SRv6 Policy的主路径,优先级次之的有效候选路径作为SRv6 Policy的次优路径,如果SRv6 Policy使能了主备保护功能,也就是HSB(hot standby)保护功能,则优先级次之的有效候选路径可以作为该SRv6 Policy的备路径,当主路径出现故障,流量可以切换到备用路径进行转发。

一个候选路径可以包含多个segment-list,每个segment-list可携带weight属性。每个segment-list可以指示网络设备转发报文。多个segment-list之间可以根据weight属性形成负载分担。

SRH的处理过程:

在 SRv6 的 SRH 里,SL 和 Segments List 信息共同决定报文头部的 IPv6 目的地址。如图所示,在SRv6 中,每经过一个 SRv6 节点,SL 字段减 1,IPv6 DA信息变换一次,其取值是指针当前指向的 SID。

SRv6 Policy的转发实现:

SRv6 Policy可以承载常见的传统业务,他们的转发过程以及处理过程都比较相似,下面就以L3VPNv4 over SRv6 Policy为例介绍一下SRv6 Policy的业务实现流程

总体过程简述如下:

1、控制器向头节点 PE1 下发 SRv6 Policy,Color 为 123,Endpoint 为 PE2 的地 址 2001:DB8:40::4,只有一个 Candidate Path,且 Candidate Path 也只包含一 个 Segment List 。

2、尾节点 PE2 向 PE1 发布 BGP L3VPN 路由 10.2.2.2/32,BGP 路由的下一跳是 PE2 的地址 2001:DB8:40::4/128,Color 为 123。

3、PE1在接收到BGP路由以后,利用路由的Color和下一跳迭代到SRv6 Policy。

4. PE1 接收到 CE1 发送的普通单播报文后,查找 VPN 实例路由表,该路由迭代到 了一个 SRv6 Policy。PE1 为报文插入 SRH 信息,封装 SRv6 Policy 的 Segment List,Segment List 里最后一个 SID 是 VPN 路由对应的 End.DT4 SID, 同时封装 IPv6 报文头信息,并查表转发。

5. 中间 P1 和 P2 节点根据 SRH 信息逐跳转发。

6. 报文到达 PE2 之后,PE2 使用报文的 IPv6 目的地址 2001:DB8:4::1 查找本地 SID 表,命中了 End SID,所以 PE2 将报文的 SL 减 1,IPv6 DA 更新为 VPN SID 2001:DB8:4::100。 7. PE2 使用 VPN SID 2001:DB8:4::100 查找本地 SID 表,命中了 End.DT4 SID,PE2 执行 End.DT4 SID 的指令,解封装报文,去掉 SRH 信息和 IPv6 报文头,使用内 层报文的目的地址查找 End.DT4 SID 2001:DB8:4::100 对应的 VPN 实例路由表, 然后将报文转发给 CE2。

2、SRv6 Policy的应用—互通场景上SRv6 policy的设计

2.1、场景背景介绍

随着IPv6网络的快速发展,各类新型业务在技术上的快速进步,SRv6的相关部署也越来越普遍,各大运营商们也加快了各地部署的步伐,随之而来的一个问题就是,目前主流的高端路由厂家都有各自的高端路由器,厂商的竞争势必引发各家设备在新技术新功能上互通的稳定性,合理性以及对业务处理的一致性,因此中国移动提出了各厂商的设备在功能上互通的必要性。首先介绍一下场景SRv6 policy 的设计部署:

DUT为被测厂家设备,PE3为中兴M6000,PE4为华三CR16000,PE5为华为NE40E,均作为PE角色,CE1为华为的NE40E,CE2为Nokia的7750,本文只介绍SRv6场景,即右侧的SRv6域,左侧的LDP域暂时不做介绍。

场景业务介绍:

1)CE1 和CE2 设备配置为BGP AS9001,同时作为该域PE 设备与测试仪端口新增建立两个MPLS LDP 双栈VPN SRVPN1 和SRVPN2,即CE1和CE2模拟PE 和上联设备做MPLS LDP接入

2)DUT与SRv6域内其他设备PE3/PE4/PE5间创建双栈ISIS 邻居关系,使DUT 和PE3,PE5 和PE3 间的cost 为20,其余链路的cost 为10。在设备上均使能ISIS SRv6,发布各节点End和EndX SID,同时为DUT-PE3间捆绑口的每个成员口发布End.X SID

3)通过控制器(或第三方工具)Netconf下发配置,DUT与各PE 间建立MP-IBGP 连接,保证协议连通性。在DUT上配置BGP-LS 协议(要求分别使用IPv4 邻居和IPv6 邻居对双栈拓扑和链路信息进行上报),与仪表跨设备建立BGP-LS 会话,并上报双栈拓扑和SRv6信息

4)在TC6-TC9 共发布20000 条ISIS双栈路由,在TC6 与TC7-TC9 发送双向普通IP 流量作为公网背景业务。在TC6-TC9 共发布10000 条三跳ISIS-SRv6路由,在TC6 与TC7-TC9 之间发送双向SRv6BE 流量,并对各设备使能ISIS TI-LFA功能

5)通过控制器(或第三方工具)Netconf下发配置,DUT 与CE1,CE2 对SRv6VPN1、SRv6VPN2配置跨域方式一(OPTION A)进行跨域,配置对应捆绑口与CE 设备互联。SRv6VPN1 下对每个CE 接入侧包括两个子接口,子接口1 通过EBGP双栈接入,仪表侧TC1 和TC2 各发送20000 条BGP 路由和20000 条BGP4+路由,设备需通过BGP路由策略过滤出其中10000 条进行接受,子接口入出方向均限速为2Gbps,并在子接口出方向下发WFQ 调度模板,EF:AF41:AF21 按照4:3:1 调度;子接口2 通过静态路由双栈接入通过,并配置100 条IPv4 路由和100 条IPv6 路由对TC1 和TC2 各发送的20000 条BGP 路由和20000 条BGP4+路由中子接口1以外剩余的10000条BGP路由和10000条BGP4+路由进行汇聚,在子接口出方向下发限速和PQ+WFQ 调度模板,子接口入出方向均限速为5Gbps,出方向对EF 报文绝对保证,保障带宽为2Gbps,剩余带宽对AF41:AF21:BE 流量按照4:3:1 调度。SRv6VPN2 下对每个CE 接入侧包含1 个子接口,在子接口配置入出端口car,子接口的带宽为接口带宽的10%,子接口通过OSPF 双栈接入,从仪表侧发送1000 条OSPF 路由和1000 条OSPFv3路由

6)在设备DUT上创建到PE3-PE5 的SRv6  Policy,测试仪表通过BGPSRv6 Policy协议下发SRv6  Policy1显式路径CP1:DUT-PE4(End.X)-PE3(End.X)-PE5(End.X)(SL1)/DUT-P E4(End.X)-PE5(End.X)

(SL2)(SL1和SL2权重比为7:3)和备用显式路径CP2为DUT-PE3(End.X)-PE4(E166nd.X)-PE5(End.X);SRv6  Policy2 CP1:DUT-PE4(End.X)-PE5(End.X)和备用显示路径CP2为DUT-PE3(End.X)-PE5(End.X);SRv6Policy3 主用路径CP1:DUT-PE4(End.X)-PE5(End.X)-PE3(End.X)和备用显式路径CP2为DUT-PE3(End.X);SRv6  Policy4主用路径CP1:DUT-PE3(End.X)和备用显式路径CP2为DUT-PE4(End.X)-PE3(End.X);SRv6  Policy5主用路径CP1:DUT-PE3(End.X)-PE5(End.X)-PE4(End.X)和备用显式路径CP2为DUT-PE4(End.X);SRv6  Policy6主用路径CP1:DUT-PE4(End.X)和备用显式路径CP2DUT-PE3(End.X)-PE4(End.X)。并使能SRv6  Policy的Hot-Standby 功能。在设备上查看SRv6  Policy路径表项。PE3-PE5 按照DUT 设置的SRv6 Policy路径对称反向建立主备路径,使其与DUT 的正向路径主备路径相同方向相反。在所有SRv6 Policy上运行BFDfor SRv6 Policy进行检测,检测周期不大于10ms,检测3 次。要求检测报文对于SRv6 Policy严格路径可做到正反向路径相同

7)在所有SRv6 Policy上运行BFDfor SRv6 Policy进行检测,检测周期不大于10ms,检测3 次。

接下来介绍一下LOCATOR的设计:

Locator基本配置结构:前缀+动态SID范围+静态SID范围

动态SID范围:用于igp、bgp协议自动申请SID

静态SID范围:用于手工指定SID

因此DUT/PE3/PE4/PE5的LOCATOR设计如下:

根据场景布局,正向DUT-PE3/PE4/PE5 SRv6 Policy设计如下

SRv6 Policy的检测常规使用sbfd或者bfd echo的方式,这两种方式均可以在域内起到检测的作用,如果中间路径或者目的设备发生故障,源节点收不到BFD报文,则检测到故障发生,即会对对应故障进行保护处理。

在SRv6 互通场景里面,存在6条SRv6 Policy。以DUT作为头节点,PE5作为尾节点为例的SRP为例,建立的SRv6 Policy为SRP1和SRP2,SRP1的显示路径CP1为DUT-PE4(End.X)-PE3(End.X)-PE5(End.X)(SL1)/DUT-PE4(End.X)-PE5(End.X)(SL2)(SL1和SL2权重比为7:3)和备用显式路径CP2为DUT-PE3(End.X)-PE4(E166nd.X)-PE5(End.X);SRv6 Policy 使能Hot standby,CP1的SL1/SL2和CP2分别使能SBFD,SBFD报文的路径就是SRP对应Segment-list的路径, SBFD回程报文走最短路径路由,即PE5-PE4-DUT。除了使用SBFD 检测,还可以使用BFD ECHO方式进行检测,即单臂BFD,目前这种方式各大厂商基本都实现了来回路径 一致。

BFD ECHO正向检测报文转发的路径和SRP的路径一致,和SBFD的区别在于,BFD ECHO由于携带了Reverse Bind SID,反射端会根据该Bind SID封装回程路径,并反射BFD ECHO 报文,来保证回程共路。

互通场景收敛方案设计

在SRv6 互通场景中,除了要考虑各个厂商各种协议以及功能的互通性,场景收敛的稳定性以及高性能性也是运营商考研厂商的指标和手段。以下为DUT-PE5的业务转发为例讲解一下场景收敛方案。

以DUT1为头接地,PE5为尾节点,创建SRv6 Policy,主路径CP1有两条Segment-list,这两条Segment-list做7:3的ucmp保护,Segmet-list1为DUT-PE4(END.X)-PE5(EDN.X),权重为7,Segment-list2 为DUT-PE4(ENDX)-PE3(ENDX)-PE5(ENDX),权重为3;备路径为CP2, 路径为DUT-PE3(ENDX)-PE4(ENDX)-PE5(ENDX)。主备路径均使能BFD ECHO,并使用BSID保证来回路径一致。在该场景下,会出现如下故障点:

8)DUT-PE4 的链路DOWN,此时SRv6 Policy进行的就是HSB 切换保护,流量切换到备路径上进行转发

9)PE4-PE5的链路DOWN,此时SRv6 Policy 的主CP进行的ucmp切换保护,即Segment-list 1路径上的流量切换到Segment-list 2上。

10)PE4-PE3的链路DOWN,此时SRv6 Policy的备CP会DOWN,主CP是进行Segment-list2的流量切换到Segment-list1上,ucmp切换保护。

11)PE3-PE5之间的链路DOWN,此时SRv6 Policy 备CP没有变化,主CP的Segment-list2的流量切换到Segment-list1上,进行ucmp切换保护。

12)DUT-PE3的链路DOWN, 此时SRv6 Policy 备CP DOWN,主CP流量正常转发,此时不进行保护,流量正常转发。

13)PE4节点DOWN(重启或者出问题宕机),SRv6 Policy的主备路径都会DOWN,此时SRv6 Policy会进行逃生,逃生到SRv6 BE。

结语

在2021年,中国移动已经针对SRv6 Policy这个新功能的实现,对几家路由器厂商进行试验局对接验证,对于在对接中实现不合理或者厂商实现有差异的部分进行了版本的修订。同时,几家厂商也和中盈等控制器厂家共同配合,开通了基于SRv6的一些业务。试验局的成功开展表明,不同厂家可以通过控制器的配合,进行设备间的互通,也验证了该新技术逐渐走向了成熟,为后面大量的部署SRv6 奠定了坚实的基础。

参考文献:

[1]祖立军,袁航.金融骨干网的SRv6Policy研究与应用[J].电信科学期刊,2020(08):53-65

[2]中国移动高端路由器测试规范V3.00

作者简介:王燕燕(1983-),浙江绍兴人,现就职于锐捷网络股份有限公司,负责高端路由器的商用测试和方案交付,系统测试工程师。研究方向:Segment Routing,SRv6/GSRv6等新技术研究。

*本文暂不支持打印功能

monitor