11.2、SR基本原理
11.2、SR基本原理
- 前言
- SR(Segment Routing)段路由作为SDN的关键技术,同时也是对IP网络倡导的极简协议的关键技术,在IP网络中得到越来越多的应用,课程将会对SR技术及在5G承载网中的应用进行分析讲解
- SR产生背景-LDP面临的问题(一)
- 背景
- 随着语音、数据、视频等不同类型业务对网络要求的不尽相同,对带宽要求也不断增长。网络规模呈爆炸式的增长,传统的MPLS技术需要专门的标签分发协议,比如:LDP协议。
- LDP协议依赖于IGP协议,使用本地标签交换,支持ECMP
- 需要每条LSP都分配标签,资源的占用率比较大。
- 状态维护报文也需要大量的带宽,需要和IGP进行同步,部署维护相对复杂,可扩展性也很差
- 缺点:LDP本身有11种协议报文,在应用时大大增加了链路带宽的消耗和设备CPU利用率
- 对于运营商来讲,需要按序快速部署网络,对于这样的业务,需求显然就不满足了
- SR产生背景-LDP面临的问题(二)
- LDP只支持IGP最短路径(最小开销)进行路径计算,不支持TE(流量工程)
- 对于运营商来讲,需要软件定义网络,即SDN
- SR产生背景-RSVP面临的问题(一)
- RSVP面临的问题也是比较严重的
- RSVP依据CSPF算路结果逐跳形成端到端的LSP,标签为本地标签
- 逐跳,途径节点均会维护该Tunnel的状态信息,即便SDN化,仍需维护
- RSVP TE配置辅助
- ECMP实现复杂
- 8中RSVP协议报文占据网络带宽和CPU处理
- SR产生背景-RSVP面临的问题(二)
- RSVP在负载分担方面实现辅助,需要配置多条Tunnel来实现,给配置和维护带来巨大的工作量
- Eg
- 源和目的端需要进行通信,可以通过上面的链路通信,也可以通过下面的链路通信。都要去建立一个隧道,对于维护和配置来讲都会带来巨大的工作量
- Eg
- SR产生背景-SR技术的诞生
- 传统网络
- 对于传统网络,显然不满足运营商按序快速部署业务网络的需要
- 革命性SDN网络
- 颠覆了传统网络,没有得到设备厂家和运营商的支持
- 增量型SDN网络
- 通过现有协议进行和扩展,采用原路由技术。能够更好地平滑演进
- SR产生背景-SR的技术框架
- SR是一种只需在源(显式路径加载节点)节点给报文增加一系列的段标识,便可指导报文转发的技术方案
- 路径选路
- 源节点具有转发路径的所有信息,来进行网络路径控制
- 控制层面
- 通过源节点进行控制
- 扩展IGP和BGP来进行分段
- 可以与控制器进行通信
- 数据面
- 将SR映射成MPLS标签的形式进行转发
- SR基本概念
- 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架构中为标签栈,封装于报文头中指导转发
- Segment
- SR的基本理念是把网络分为不同的段(Segment),然后拼接起来,用于知道报文按指定的路径转发
- SID:即Segment ID,用来标识唯一的段。在转发层面,映射为MPLS标签
- SR技术中三种基本Segment:邻接段,前缀段和节点段
- Segment-Prefix Segment
- 基于Prefix Segment:由IGP使用SPF算法计算最短路径,所以也称为SR-BE(Best Effort)
- 如下图所示,以节点Z为目的节点,其Prefix SID是100。通过IGP扩散之后,整个IGP域的所有设备学习到节点PE2的Prefix SID,之后都会使用SPF算法得出一条到节点PE2的最短路径
- Segment-Adjacency Segment
- 基于Adjacency Segment:头结点指定严格显式路径(Strict Explicit)。这种方式可以集中进行路径调整和流量调优,因此可以更好地配合实现SDN(Software-Defined Network)。Adjacency Segment主要用于SR-TE(Traffic Engineering)
- Segment-Adjacency Segment + Node Segment
- 基于Adjacency Segment + Node Segment:显式路径与最短路径相结合,称为松散路径(Loose Explicit)。主要用于SR-TE。
- SRGB
- SRGB是从本地标签资源隔离出来的一段区间,专门用于SR,以使SR的全局标签和传统MPLS在本地共存
- 为节点SID基础,全局唯一的节点标签与本地标签不得冲突
- SRGB范围和起始值需配置,在起始值基础上对节点SID的索引值进行偏移,得出本地标签
- 各设备上的SRGB范围为何不配置为一样?
- 标准中未统一规定SRGB范围,各设备商实现不同
- 与传统MPLS共存时,各设备上空余的标签空间不能保证一样
- SR的原理
- SR(Segment Routing)段路由是对现有IGP协议进行扩展,基于MPLS协议,采用源路由技术而设计的在网络上转发数据包的一种协议
- SR数据包转发过程·
- 1、通过网络去划分段
- 邻接段、前缀段、节点段
- 2、每个段分配SID
- 3、源节点配置段列表,在源节点进行有序的排列
- 4、SR会将代表转发路径的段序列封装在数据包的头部,然后随着数据包传输。当网络的节点收到数据包后,会对段序列进行解析
- 如果段序列的顶部标识是节点的段ID,会根据SPF计算提供的最短路径来转发该节点
- 如果是邻接的,会根据邻接的SID来转发到下一个节点,知道目的报文到达目的节点
- 1、通过网络去划分段
- SR将网络中的目的地址前缀/节点和邻接定义为段,并且为这些段分配SID(Segment ID)。通
过对Adjacency SID(邻接段)和Prefix/Node SID(目的地址前缀/节点段)进行有序排列(Segment List),就得到一条转发路径
- 工作原理-SR如何工作(IS-IS SR-BE)(控制平面)
- 拓扑中使用的IGP协议为ISIS,也是采用链路状态的算法
- eg
- P2上有loopback的环回口,IP地址为2.2.2.2/32。为环回口,即节点段分一个节点段的ID10,并将该信息泛洪到ISIS域当中,所有节点都会收到P2的NODE SID,生成一个标签转发表
- 可以看到转发表中的出标签和入标签
- eg
- PE1
- 入标签
- 代表本地SRGB的起始值加发布的偏移值
- 进入PE1的方向
- 出方向
- 下一跳SRGB的起始值加发布的偏移值
- PE1出去的方向
- 接口
- 出接口的下一跳
- 入标签
- PE1
- 最终经过ISIS、SPF进行计算,得到两条负载分担的链路
- 工作原理-SR如何工作(IS-IS SR-BE)(转发平面)
- SR的标签操作类型是和MPLS是相同的
- 标签
- Push
- 压入
- 标签栈的交换
- 标签的弹出
- Push
- 标签
- 拓扑
- PE1到达PE2的SR-BE的Tunnel走的是两条链路
- 在PE1节点接收到业务报文,根据目的地址和标签转发表,以及ECMP封装下一跳分配的标签
- 如果走的是上面的链路,在PE1上就会封装出标签,出标签可以查看标签转发表为210,然后发送给下一跳接口P1
- 如果走的是下面的链路,操作同上
- 在PE1节点接收到业务报文,根据目的地址和标签转发表,以及ECMP封装下一跳分配的标签
- PE1到达PE2的SR-BE的Tunnel走的是两条链路
- 到达P1时,会根据外层标签以及标签转发表,来交换出标签作为下一跳分配的SR标签
- 到达P3,查看转发表项,将新标签代替旧标签。最终PE2发现外层标签是自己的,会弹出外层标签。根据外层地址将业务报文转发给目标设备
- 工作原理-SR如何工作(SR-TE)(控制平面)
- SR-TE工作原理
- 各节点通过BGP-LS将所有邻接SID的信息上报给控制器
- 控制器采用PCEP来进行标签转发路径的计算,并且下发隧道信息
- 通过NETCONF下发隧道属性信息给隧道首节点,隧道首节点通过PCEP来将它的状态上报给控制器。
- 隧道首节点会根据控制器下发的标签栈,建立SR-TE的隧道
- 控制层面的标签转发表项已经生成了
- 如何工作
- 假设
- 所有节点使用相同的SRGB[1000,1999]
- 所有Cost值都是1
- 标签和拓扑信息已经上报给控制器,网络中的各节点通过BGP-LS把信息上报了控制器,控制器也完成了路径计算,然后下发路径。
- 最终在PE1上可以看到标签转发表项和Tunnel标签栈的封装表格
- Tunnel标签栈的封装表格
- Tunnel在标签上走的路径
- Tunnel标签栈的封装表格
- 最终在PE1上可以看到标签转发表项和Tunnel标签栈的封装表格
- 通过控制器下发的路径和隧道的创建
- 假设
- 工作原理-SR如何工作(SR-TE Strict Explicit Path)(转发平面)
- 如何进行转发?
- 以图中PE1到PE2的严格路径,SR-TE Tunnel1为例
- 1、接收到业务报文以后,会根据业务配置的路由策略
- 隧道策略决定的SR-TE Tunnel封装Tunnel对应的标签栈
- 2、判断对应的标签顶部是501为邻接的SID,会弹出进的标签501,并封装标签的其他标签,发送给下一跳接口P1
- 1、接收到业务报文以后,会根据业务配置的路由策略
- 以图中PE1到PE2的严格路径,SR-TE Tunnel1为例
- 步骤
- 到达P1,判断栈顶标签是邻接的SID,会弹出栈顶标签,将剩余的标签封装起来,然后从对应的接口转发出去
- 转发到P3,对于P3也是采取同样动作,判断栈顶标签是否为邻接SID,然后弹出栈顶标签将剩余的标签封装起来发送出去
- 到达PE2时,将标签弹出。依据业务报文外部地址将业务报文转发给目标设备
- 综上
- 转发路径是根据SR-TE隧道对应的标签栈来对报文进行标签的操作,然后根据栈顶标签逐跳查找转发的出接口来指导报文转发到隧道的目的地址
- 工作原理-SR如何工作(SR-TE Loose Explicit Path)(转发平面)
- 图中PE1到PE2存在一个松散路径SR-TE Tunnel,松散路径SR-TE Tunnel松散路径如何转发
- 1、PE1接收到一个业务报文,会根据业务配置的隧道策略来确定SR-TE Tunnel封装,然后封装对应的标签栈。
- 2、根据外层标签和标签转发表来封装下一跳PE1节点分配的SR出标签,为1004。然后根据他的标签转发表到达下一跳,下一跳为P2
-
- 3、根据外层标签和标签转发表,交换外层标签为1004,然后从对应的接口转发出去到达P4
- 4、P4发现他的外层标签1004是自己,然后需要弹出1004标签,然后封装403,判断403是否为邻接的SID,将其弹出后根据转发表对应的接口转发出去,到达P3
- 4、到达P3判断外层标签为306,是邻接标签则弹出外层标签306然后转发到PE2,PE2会依据业务报文的外层地址将业务报文转发给目标设备
- 需要注意栈顶标签和栈顶标签的类型是什么
- 思考题
- 1、SR隧道类型有哪些(ABD)
- A、SR-BE最短路径隧道
- B、SR-TE严格显示路径隧道
- C、SR-BE严格显示路径隧道
- D、SR-TE松散显示路径隧道
- 2、基于SR标签转发报文时,数据包可能需要执行的动作有哪些(ABC)
- A、Push
- B、Pop
- C、Swap
- D、Switch
- 1、SR隧道类型有哪些(ABD)