第27章_SR基本原理

  • SR(Segment Routing)段路由作为SDN的关键技术,同时也是对IP网络倡导的极简协议的关键技术,在IP网络得到越来越多的应用,课程将会对SR技术及在5G承载网中的应用进行分析讲解。

1.SR技术背景

1.1SR产生背景 - LDP面临的问题(一)

  • LDP协议依赖于IGP协议,使用本地标签交换,支持ECMP。
  • 缺点:LDP本身有11种协议报文,在应用时大大增加了链路带宽的消耗和设备CPU利用率。

image-20231208204232140

  • LDP(Label Distribute Protocol):标签分发协议,根据不同的目的地址来分配标签,使用标签转发代替了IP转发,其优点为可以隔离公网私网路由,跟随路由的最佳路径选择转发路径,支持ECMP,配置简单。
  • 语音、数据、视频、VR等不同类型的业务对网络的要求不尽相同,对带宽的要求也不断增长,网络规模呈爆炸式增长。
  • 传统MPLS技术需要专门的标签分发协议,需要每条LSP分配标签,资源占用大;状态维护协议报文占据大量带宽;需要与IGP协议同步,部署维护复杂,可扩展性差。这种网络的运营模式难以满足服务商按需快速部署网络业务的需要,而且OPEX(OPeratingEXpense )随着规模线性增长。

1.2SR产生背景-RSVP面临的问题(二)

  • RSVP在负载分担方面实现复杂,需要配置多条Tunnel来实现,给配置和维护带来巨大的工作量。

image-20231208204417112

1.3SR产生背景-SR技术的诞生

image-20231208204440976

  • SDN(Software Defined Network),即软件定义网络,是由美国斯坦福大学cleanslate研究组提出的一种新型网络创新架构。其核心技术是通过将网络设备控制面与数据面分离开来,从而实现了网络流量的灵活控制,为核心网络及应用的创新提供了良好的平台。
  • 革命型SDN网络采用集中式控制架构,网络设备的控制功能(如路由计算)集中到一个控制器上去处理,转发表由控制器生成下发到设备上。设备功能大大简化,只负责转发,变成了一个傻瓜式的设备,Openflow是Controller和设备之间的控制接口。
  • 增量型SDN网络是将现有网络进行拓展,现有设备向SDN演进思路,设备保留部分控制功能,把部分需要集中控制的功能放到控制器上去处理,强调设备平滑演进能力。

1.4SR产生背景-SR的技术框架

  • SR是一种只需在源(显式路径加载的节点)节点给报文增加一系列的段标识,便可指导报文转发的技术方案。

image-20231208204550817

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:邻接段,前辍段和节点段。

image-20231208205058866

  • 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的最短路径。

image-20231208205503650

2.1.1.2Segment —Adjacency Segment
  • 基于Adjacency Segment:头节点指定严格显式路径(Strict Explicit)。这种方式可以集中进行路径调整和流量调优,因此可以更好的配合实现SDN(Software-Defined Networking)。Adjacency Segment主要用于SR-TE(Traffic Engineering)。

image-20231208205634011

2.1.1.3Segment —Adjacency Segment +NodeSegment
  • 基于Adjacency Segment+Node Segment:显式路径与最短路径相结合,称作松散路径(Loose Explicit)。主要用于SR-TE。

image-20231208205721963

2.1.2SRGB

image-20231208205749829

  • 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),就得到一条转发路径。

image-20231208205948696

  • Segment Routing将代表转发路径的段序列封装在数据包头部,随数据包传输。网络节点收到数据包后,对段序列进行解析,如果段序列的顶部段标识是Node SID,根据SPF计算的最短路径(如果存在等价路径,则可以实现ECMP)转发到该节点,如果是Adjacency SID,则根据Adjacency SID转发到下一节点,直到数据报文到达目的节点。

2.2.2SR如何工作

2.2.2.1(IS-IS SR-BE)(控制平面)

image-20231208210427096

  • ISIS:是与OSPF并列的两大IGP协议之一。也采用链路状态算法。

以图中PE1到PE2的LSP为例:

1、Egress PE2设备上LoopBack1接口的环回地址为x.x.x.x/x,为该地址分配的SID为10,并将该信息泛洪到整个IS-IS域。

image-20231208210412769

image-20231208210445197

2、所有节点收到PE2的Node SID,生成标签转发表:

  • 入标签:本地SRGB起始值+发布的偏移值
  • 出标签:下一跳SRGB起始值+发布的偏移值
  • 出接口下一跳:IGP计算的最短路径的出接口下一跳

image-20231208210530835

3、Ingress PE1进行IS-IS SPF计算,得到ECMP到PE2的两条最短路径。

2.2.2.2(IS-IS SR-BE)(转发平面)

image-20231208210654228

image-20231208210706675

  • SR的标签操作类型和MPLS相同,包括标签栈压入(Push)、标签栈交换(Swap)和标签弹出(Pop)。

以图中PE1到PE2的SR-BE Tunnel为例:

1、Ingress节点PE1:接收到业务报文,依据目的地址、标签转发表和ECMP分流算法,封装下一跳P节点分配的出标签,依据目的前缀SID和标签转发表从对应的接口转发出去。

  • 举例:
    • Push 210 to P1
    • Push 310 to P2

image-20231208210807049

image-20231208210813273

2、Transit节点:依据外层标签及标签转发表,交换出标签为下一跳分配的SR出标签,并从对应的接口转发出去。

  • 举例:
    • Swap 210 to 410 on P1
    • Swap 310 to 510 on P2

image-20231208210855202

image-20231208210900915

3、Egress节点PE2:发现外层标签是自己,弹出外层标签,依据外层地址将业务报文转发给CE设备。

  • 举例:
    • Pop 610 from P3
    • Pop 610 from P4
2.2.2.3(SR-TE)(控制平面)

image-20231208211009829

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隧道。

image-20231208211046860

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)(转发平面)

image-20231208211146947

以图中PE1到PE2的严格路径SR-TE Tunnel为例:

1、Ingress节点PE1:接收到业务报文,依据业务配置的路由策略或隧道策略确定的SR-TETunnel,封装SR-TE Tunnel对应的标签栈。判断对应的栈顶标签501为邻接SID,则弹出栈顶标签501,封装标签栈其余部分[103,304,406]到业务报文,并依据栈顶标签和标签转发表从对应接口PE1->P1转发出去。

image-20231208211341450

2、Transit节点:判断栈顶标签为邻接SID,则弹出栈顶标签,并依据栈顶标签及标签转发表从对应接口转发出去。

以P1节点为例:判断栈顶标签103为邻接SID,则弹出栈顶标签103,并依据栈顶标签103及标签转发表从对应接口P1->P3转发出去。

image-20231208211418127

3、Egress节点PE2:依据业务报文外层地址将业务报文转发给CE设备。

2.2.2.5(SR-TE Loose Explicit Path)(转发平面)

image-20231208211521540

SR设备根据报文头中SR-TE隧道对应的标签栈,对报文进行标签操作。根据栈顶标签逐跳查找转发出接口,指导数据报文转发到隧道目的地址。

以图中PE1到PE2的松散路径SR-TETunnel为例:

1、Ingress节点PE1:接收到业务报文,依据业务配置的路由策略或隧道策略确定的SR-TE Tunnel,封装SR-TE Tunnel对应的标签栈[1004,403,306]。依据外层标签和标签转发表封装下一跳P节点分配的SR出标签1004,并依据标签转发表从对应接口PE1->P2转发出去。

image-20231208211712416

2、Transit节点P2:依据外层标签1004和标签转发表,交换外层标签为下一跳分配的出标签1004,并从对应的接口P2->P4转发出去。

image-20231208211749246

3、Transit节点P4:发现外层标签1004是自己,弹出外层标签1004。判断下一层标签403为邻接SID,将其弹出,并依据标签转发表从对应接口P4->P3转发出去。

image-20231208211816197

4、Transit节点P3:判断外层标签306为邻接标签,弹出外层标签306,并依据标签转发表从对应接口P3->PE2转发出去。

image-20231208211840324

5、Egress节点PE2:依据业务报文外层地址将业务报文转发给CE设备。

3.本章总结

  • SR产生背景
  • SR基本概念
  • SR技术架构
  • SR工作原理