第27章_SR基本原理
- SR(Segment Routing)段路由作为SDN的关键技术,同时也是对IP网络倡导的极简协议的关键技术,在IP网络得到越来越多的应用,课程将会对SR技术及在5G承载网中的应用进行分析讲解。
1.SR技术背景
1.1SR产生背景 - LDP面临的问题(一)
- LDP协议依赖于IGP协议,使用本地标签交换,支持ECMP。
- 缺点:LDP本身有11种协议报文,在应用时大大增加了链路带宽的消耗和设备CPU利用率。
- LDP(Label Distribute Protocol):标签分发协议,根据不同的目的地址来分配标签,使用标签转发代替了IP转发,其优点为可以隔离公网私网路由,跟随路由的最佳路径选择转发路径,支持ECMP,配置简单。
- 语音、数据、视频、VR等不同类型的业务对网络的要求不尽相同,对带宽的要求也不断增长,网络规模呈爆炸式增长。
- 传统MPLS技术需要专门的标签分发协议,需要每条LSP分配标签,资源占用大;状态维护协议报文占据大量带宽;需要与IGP协议同步,部署维护复杂,可扩展性差。这种网络的运营模式难以满足服务商按需快速部署网络业务的需要,而且OPEX(OPeratingEXpense )随着规模线性增长。
1.2SR产生背景-RSVP面临的问题(二)
- RSVP在负载分担方面实现复杂,需要配置多条Tunnel来实现,给配置和维护带来巨大的工作量。
1.3SR产生背景-SR技术的诞生
- SDN(Software Defined Network),即软件定义网络,是由美国斯坦福大学cleanslate研究组提出的一种新型网络创新架构。其核心技术是通过将网络设备控制面与数据面分离开来,从而实现了网络流量的灵活控制,为核心网络及应用的创新提供了良好的平台。
- 革命型SDN网络采用集中式控制架构,网络设备的控制功能(如路由计算)集中到一个控制器上去处理,转发表由控制器生成下发到设备上。设备功能大大简化,只负责转发,变成了一个傻瓜式的设备,Openflow是Controller和设备之间的控制接口。
- 增量型SDN网络是将现有网络进行拓展,现有设备向SDN演进思路,设备保留部分控制功能,把部分需要集中控制的功能放到控制器上去处理,强调设备平滑演进能力。
1.4SR产生背景-SR的技术框架
- SR是一种只需在源(显式路径加载的节点)节点给报文增加一系列的段标识,便可指导报文转发的技术方案。
2.SR原理解析
2.1SR基本概念
- SR域(Segment Routing Domain):SR节点的集合。
- ==Segment==:节点对入口报文执行的指令(如:依据最短路径转发报文到目的、或通过指定接口转发报文、或将报文转发至指定的应用/业务实例)。
- ==SID==(Segment ID):Segment标识。Segment Routing将网络中的目的地址前缀/节点和邻接定义为一个个段,并且为这些目的地址前缀/节点和邻接分配段ID。段ID相当于传统MPLS技术中的MPLS标签,在转发层面映射为MPLS标签。
- ==SRGB==(segment routing global block):为全局segment预留的本地标签集合。在MPLS中,SRGB为全局标签预留的本地标签集合,在IPv6中,SRGB为全局还未被使用IPv6的地址集合。
- ==标签栈==(Segment List):标签栈是目的地址前缀SID/节点SID和邻接SID有序列表的排序集合,用于标识一条完整的标签交换路径LSP(Label Switched Path)。在MPLS架构中为标签栈,封装于报文头中指导转发。
2.1.1Segment
- SR的基本理念是把网络分为不同的段(Segment),然后拼接起来,用于指导报文按指定的路径转发。
- SID:即Segment ID,用来标识唯一的段。在转发层面,映射为MPLS标签。
- SR技术中三种基本Segment:邻接段,前辍段和节点段。
- Prefix Segment代表目的地址,Adjacency Segment代表数据包的外发链路,可以分别类似于传统IP转发中的目的IP地址和出接口。在IGP区域内,网元设备使用扩展IGP消息将自身的Node SID以及Adjacency SID进行泛洪,这样任意一个网元都可以获得其他网元的信息。
- 通过按序组合前缀(节点)SID和邻接SID,可以构建出网络内的任何路径。在路径中的每一跳,使用栈顶段信息区分下一跳。段信息按照顺序堆叠在数据头的顶部。当栈顶段信息包含另一个节点的标识时,接收节点使用等价多路径(ECMP)将数据包转发到下一跳。当栈顶段信息是本节点的标识时,接收节点弹出顶部段并执行下一个段所需的任务。
- 实际应用中Adjacency Segment、Prefix Segment、Node Segment可以单独使用,也可以结合使用。
- 主要有如下三种场景:Prefix Segment,Adjacency Segment,Adjacency Segment+Node Segment
2.1.1.1Segment —Prefix Segment
- 基于Prefix Segment:由IGP使用SPF算法计算最短路径,所以也称为SR-BE(Best Effort)。
- 如下图所示,以节点Z为目的节点,其Prefix SID是100。通过IGP扩散之后,整个IGP域的所有设备学习到节点PE2的Prefix SID,之后都会使用SPF算法得出一条到节点PE2的最短路径。
2.1.1.2Segment —Adjacency Segment
- 基于Adjacency Segment:头节点指定严格显式路径(Strict Explicit)。这种方式可以集中进行路径调整和流量调优,因此可以更好的配合实现SDN(Software-Defined Networking)。Adjacency Segment主要用于SR-TE(Traffic Engineering)。
2.1.1.3Segment —Adjacency Segment +NodeSegment
- 基于Adjacency Segment+Node Segment:显式路径与最短路径相结合,称作松散路径(Loose Explicit)。主要用于SR-TE。
2.1.2SRGB
- SRGB是从本地标签资源隔离出来的一段区间,专门用于SR,以使SR的全局标签和传统MPLS在本地共存。
- 为节点SID基础,全局唯一的节点标签与本地标签不得冲突:
- SRGB范围和起始值需配置,在起始值基础上对节点SID的索引值进行偏移,得出本地标签
- 各设备上的SRGB范围为何不配置为一样?
- 标准中未统一规定SRGB范围,各设备商实现不同
- 与传统MPLS共存时,各设备上空余的标签空间不能保证一样
2.2SR工作原理
2.2.1SR的原理
- SR(Segment Routing)段路由是对现有IGP协议进行扩展,基于MPLS协议,采用源路由技术而设计的在网络上转发数据包的一种协议。
- SR将网络中的目的地址前缀/节点和邻接定义为段,并且为这些段分配SID(Segment ID)。通过对Adjacency SID(邻接段)和Prefix/Node SID(目的地址前缀/节点段)进行有序排列(SegmentList),就得到一条转发路径。
- Segment Routing将代表转发路径的段序列封装在数据包头部,随数据包传输。网络节点收到数据包后,对段序列进行解析,如果段序列的顶部段标识是Node SID,根据SPF计算的最短路径(如果存在等价路径,则可以实现ECMP)转发到该节点,如果是Adjacency SID,则根据Adjacency SID转发到下一节点,直到数据报文到达目的节点。
2.2.2SR如何工作
2.2.2.1(IS-IS SR-BE)(控制平面)
- ISIS:是与OSPF并列的两大IGP协议之一。也采用链路状态算法。
以图中PE1到PE2的LSP为例:
1、Egress PE2设备上LoopBack1接口的环回地址为x.x.x.x/x,为该地址分配的SID为10,并将该信息泛洪到整个IS-IS域。
2、所有节点收到PE2的Node SID,生成标签转发表:
- 入标签:本地SRGB起始值+发布的偏移值
- 出标签:下一跳SRGB起始值+发布的偏移值
- 出接口下一跳:IGP计算的最短路径的出接口下一跳
3、Ingress PE1进行IS-IS SPF计算,得到ECMP到PE2的两条最短路径。
2.2.2.2(IS-IS SR-BE)(转发平面)
- SR的标签操作类型和MPLS相同,包括标签栈压入(Push)、标签栈交换(Swap)和标签弹出(Pop)。
以图中PE1到PE2的SR-BE Tunnel为例:
1、Ingress节点PE1:接收到业务报文,依据目的地址、标签转发表和ECMP分流算法,封装下一跳P节点分配的出标签,依据目的前缀SID和标签转发表从对应的接口转发出去。
- 举例:
- Push 210 to P1
- Push 310 to P2
2、Transit节点:依据外层标签及标签转发表,交换出标签为下一跳分配的SR出标签,并从对应的接口转发出去。
- 举例:
- Swap 210 to 410 on P1
- Swap 310 to 510 on P2
3、Egress节点PE2:发现外层标签是自己,弹出外层标签,依据外层地址将业务报文转发给CE设备。
- 举例:
- Pop 610 from P3
- Pop 610 from P4
2.2.2.3(SR-TE)(控制平面)
1、标签、标签转发表和拓扑信息生成
网络中各节点通过IS-IS SR协议为其邻接分配邻接SID,泛洪到整个网络中,并为其分配的本地邻接SID生成标签转发表项。同时生成带有邻接SID信息的拓扑信息。
另外,手动配置的SRGB/前缀SID/节点SID、SR能力、SR算法等信息通过IGP协议报文在IGP域内泛洪。每个节点运行IS-IS SPF来计算每个节点标签的最短转发路径,并生成标签转发表。
2、标签和拓扑信息上报
网络中各节点通过BGP-LS(BGP Link-State)将带有邻接SID信息的拓扑信息上报给控制器。
3、路径计算
控制器采用PCEP(Path Computation Element)完成标签转发路径计算。
4、路径下发
控制器通过PCEP下发隧道信息、通过Netconf下发隧道属性信息给隧道首节点。隧道首节点通过PCEP上报隧道状态给控制器。
5、隧道创建
隧道首节点根据控制器下发的标签栈建立SR-TE隧道。
1、标签、标签转发表和拓扑信息生成
网络中各节点通过IS-IS SR协议为其邻接分配邻接SID,泛洪到整个网络中,并为其分配的本地邻接SID生成标签转发表项。同时生成带有邻接SID信息的拓扑信息。
另外,手动配置的SRGB/前缀SID/节点SID、SR能力、SR算法等信息通过IGP协议报文在IGP域内泛洪。每个节点运行IS-IS SPF来计算每个节点标签的最短转发路径,并生成标签转发表。
2、标签和拓扑信息上报
网络中各节点通过BGP-LS(BGP Link-State)将带有邻接SID信息的拓扑信息上报给控制器。
3、路径计算
控制器采用PCEP(Path Computation Element)完成标签转发路径计算。
4、路径下发
控制器通过PCEP下发隧道信息、通过Netconf下发隧道属性信息给隧道首节点。隧道首节点通过PCEP上报隧道状态给控制器。
5、隧道创建
隧道首节点根据控制器下发的标签栈建立SR-TE隧道。
2.2.2.4(SR-TE Strict Explicit Path)(转发平面)
以图中PE1到PE2的严格路径SR-TE Tunnel为例:
1、Ingress节点PE1:接收到业务报文,依据业务配置的路由策略或隧道策略确定的SR-TETunnel,封装SR-TE Tunnel对应的标签栈。判断对应的栈顶标签501为邻接SID,则弹出栈顶标签501,封装标签栈其余部分[103,304,406]到业务报文,并依据栈顶标签和标签转发表从对应接口PE1->P1转发出去。
2、Transit节点:判断栈顶标签为邻接SID,则弹出栈顶标签,并依据栈顶标签及标签转发表从对应接口转发出去。
以P1节点为例:判断栈顶标签103为邻接SID,则弹出栈顶标签103,并依据栈顶标签103及标签转发表从对应接口P1->P3转发出去。
3、Egress节点PE2:依据业务报文外层地址将业务报文转发给CE设备。
2.2.2.5(SR-TE Loose Explicit Path)(转发平面)
SR设备根据报文头中SR-TE隧道对应的标签栈,对报文进行标签操作。根据栈顶标签逐跳查找转发出接口,指导数据报文转发到隧道目的地址。
以图中PE1到PE2的松散路径SR-TETunnel为例:
1、Ingress节点PE1:接收到业务报文,依据业务配置的路由策略或隧道策略确定的SR-TE Tunnel,封装SR-TE Tunnel对应的标签栈[1004,403,306]。依据外层标签和标签转发表封装下一跳P节点分配的SR出标签1004,并依据标签转发表从对应接口PE1->P2转发出去。
2、Transit节点P2:依据外层标签1004和标签转发表,交换外层标签为下一跳分配的出标签1004,并从对应的接口P2->P4转发出去。
3、Transit节点P4:发现外层标签1004是自己,弹出外层标签1004。判断下一层标签403为邻接SID,将其弹出,并依据标签转发表从对应接口P4->P3转发出去。
4、Transit节点P3:判断外层标签306为邻接标签,弹出外层标签306,并依据标签转发表从对应接口P3->PE2转发出去。
5、Egress节点PE2:依据业务报文外层地址将业务报文转发给CE设备。
3.本章总结
- SR产生背景
- SR基本概念
- SR技术架构
- SR工作原理