SRv6新一代IP承载协议
发布时间:2022-04-02

1 SRv6新一代IP承载协议
1.1   SRv6概述
SRv6(Segment Routing IPv6,基于IPv6转发平面的段路由)是SR技术在IPv6转发平面的应用。SRv6具有良好的可扩展性,能够满足SDN(Software Defined Networking)智能网络对路由灵活控制的需求。SRv6还可以简化网络协议,降低网络管理复杂度,能够更好的应对5G发展的挑战。


1.2   SRv6产生背景
随着网络规模的不断扩大以及5G、智慧城市等新业务的不断出现,传统的IPv4和MPLS网络面临诸多问题,例如:

  • ●    多协议并存,管理复杂

MPLS是在原有IP技术的基础上叠加新技术产生的,它解决了诸如路由隔离、大规模组网、流量工程等问题。经过20多年的发展,MPLS虽然统一承载各种协议,但在支持跨越不同自治域的VPN时,设备中可能同时运行LDP、RSVP、IGP、BGP等协议,导致业务部署和管理复杂。IPv4和MPLS网络已经不适合5G等大规模业务的部署。
图1-1    MPLS建立跨域业务

 

  • ●    MPLS缺乏扩展能力

当前一些新业务(如5G、物联网和云)要求网络具备可扩展能力。然而MPLS标签长度固定只有20比特,并且标签字段固定,不可扩展,无法满足新业务的可扩展需求。
图1-2    MPLS标签结构

 

  • ●    IPv4网络地址耗尽

IPv4的地址已经不够用,虽然规模化部署IPv6是网络发展趋势,但IPv6如何替代传统的IPv4和MPLS网络仍是网络技术研究的热点。
SRv6技术的出现解决了上述问题。


1.3   SRv6优势和价值

  • ●    简化协议,管理简单

SRv6建立跨域业务时,不再使用LDP、RSVP协议,也不需要MPLS标签,只需将一个域的IPv6路由通过BGP4+(MP-BGP对IPv6单播网络的支持特性)引入另一个域,只要路由可达就能够实现业务可达。此外SRv6通过EVPN(Ethernet Virtual Private Network),可以整合MPLS网络中二层虚拟专用网(VPWS、VPLS)和三层虚拟专用网(MP-BGP),能够简化协议,使配置管理更简单。
图1-3    SRv6建立跨域业务

 

  • ●    具有强大的可扩展能力

SRv6可以自定义编排路径,能够灵活控制转发路径。还可以通过自定义功能,满足多种业务和应用的需要。

  • ●    用IP满足IP本身的需求

SRv6基于IPv6转发,SRv6和IPv6报文具有相同的报文头。SRv6可在IPv6网络上增量部署,无须替换网络中所有设备,具有更好的兼容性。SRv6携带更多的信息,能够统一承载多种网络协议,用IP技术代替MPLS技术。


1.4   SRv6原理解析
SRv6是SR技术在IPv6转发平面的应用,那什么是SR呢?


1.4.1  SR是什么
SR(Segment Routing)是一种源路由技术。源路由机制使SR通过起始节点即可控制报文的转发路径。SR将转发路径切割为不同的分段,起始节点向报文插入多个路径分段,中间节点按照报文携带的路径分段信息进行转发。路径分段又称为“Segment”,并通过SID(Segment Identifier,段标识)来区分。
SR技术支持应用在MPLS和IPv6两种转发平面。应用在MPLS转发平面的SR称为SR MPLS(Segment Routing MPLS),其SID就是MPLS标签。应用在IPv6转发平面的SR称为SRv6,其SID为IPv6地址形式。
图1-4    SR在不同转发平面的应用

 

1.4.2  SRH是什么
为了在IPv6转发平面应用SR技术,需要在IPv6报文中新增SRH(Segment Routing Header)扩展头,形成SRv6报文。该扩展头指定一个IPv6的显式路径,以Segment List(段列表)形式存储转发所需的路径分段。
图1-5    SRH结构及所在位置

 

SRH中有2个关键字段:

  • ●    IPv6地址形式的Segment List。

每个Segment List(Segment List[0]、Segment List[1]、….、Segment List[n])是一条路径分段,通过有序排列,构成IPv6的显示路径。如上图所示,路径分段被逆序压入Segment List,Segment List [n]是第一个处理的路径分段,Segment List [0]是最后一个处理的路径分段。

  • ●    指针形式的Segment Left(简写为SL)。

指向当前活跃的Segment List。Segment Left的最小值为0,最大值为Segment List的个数减1。
在SRv6转发过程中,IPv6 Header的目的地址(Destination Address)字段不断变化。其值由SRH中的Segment Left(SL)和Segment List共同决定。当SL指向一个活跃的Segment List时,该Segment List中的路径分段信息被复制到IPv6 Header的目的地址字段,如下图所示。
图1-6    Segment List、Segment Left和IPv6 Header的目的地址字段的关系

 

1.4.3  SRv6 SID是什么
SRv6 SID用来区分路径分段。SRv6 SID是一个长度为128比特的值,其格式虽然和IPv6地址相同,但不同于传统意义上理解的IPv6地址。在SRv6网络中,IPv6地址被赋予了新的含义。SRv6 SID由Locator、Function和Arguments三个部分组成。其中Locator占据SRv6 SID的高比特位。
图1-7    SRv6 SID结构

 

  • ●    Locator

用于标识节点位置,具有定位功能。节点配置Locator后,设备会生成一条Locator网段的路由,并且通过IGP在SRv6网络内扩散,其他节点通过这条网段路由可定位到配置Locator的节点。同时本节点发布的所有SRv6 SID都可以通过这条Locator网段路由到达。

  • ●    Function

用于指示生成SRv6 SID的节点进行相应的操作。Function通过Opcode表示SRv6 SID的操作码。

  • ●    Arguments

作为可选字段,用于定义报文的流和服务等信息。


下面通过End SID和End.X SID说明SRv6 SID的结构。

  • ●    End SID

End SID用于标识SRv6网络中某个目的节点。End SID对应的动作是:更新IPv6目的IP地址,并查找IPv6路由表进行报文转发。
如下图所示,在节点1、节点2和节点3上分别配置Locator,并且为各个节点配置End SID的操作码(即Opcode)。例如节点1配置Locator为A::1,并配置End SID的Opcode为100,形成节点1的本地SID:A::1:100。A::1:100在SRv6网络中表示节点1。当报文根据A::1:100路由到节点1后,节点1根据LPM(Longest Prefix Match,最长前缀匹配)匹配到本地SID中的Opcode(100),节点1知道100对应的是End SID,于是执行End SID对应的动作。
图1-8    End SID

 

  • ●    End.X SID

End.X SID用于标识SRv6网络中某条链路。End.X SID对应的转发动作是:更新IPv6目的IP地址,从End.X SID绑定的出接口转发报文。
如下图所示,在节点1上配置Locator,并且为各个方向的邻接配置End.X的操作码。例如节点1配置Locator为A::1,并配置图中左边方向End.X SID的Opcode为1001,形成节点1的本地SID:A::1:1001。A::1:1001在SRv6网络中表示节点1的左边链路。当报文根据A::1:1001路由到节点1后,节点1根据LPM(Longest Prefix Match,最长前缀匹配)发现匹配本地SID中的Opcode(即1001),节点1知道1001对应的是End.X SID,于是执行End.X SID对应的动作:更新IPv6目的IP地址,将报文从左边接口转发到一下节点。
图1-9    End.X SID

 

End SID和End.X SID两者组合编排Segment List,可以表示任何一条转发路径。因此End SID和End.X SID被称为路径SID。此外还可以为VPN/EVPN等业务分配SRv6 SID,这些SID被称为业务SID。由于SRv6 SID空间足够大,SRv6 SID能支持足够多的业务。


1.4.4  SRv6可扩展性
SRv6的可扩展性体现在三个方面:

  1. (1)    可以自定义业务转发路径。路径SID根据业务需要编排Segment List,形成不同的转发路径。如下图所示。

图1-10    业务驱动路径自定义

 

  1. (2)    可以自定义SRv6 SID。设备通过定义不同的Function,使SRv6支持不同的业务。比如数据包到达SRv6尾节点后,利用Function指示节点将数据包转发给某个VPN实例。下表是与VPN业务相关的SRv6 SID。
表1-1    与VPN业务相关的SRv6 SID
SID 含义 发布协议
End.DT4 用于标识网络中的某个IPv4 VPN实例。对应的转发动作是:解封装报文,并且查找IPv4 VPN实例路由表进行转发。End.DT4 SID在L3VPNv4场景使用,等价于IPv4 VPN的标签 BGP
End.DT6 用于标识网络中的某个IPv6 VPN实例。对应的转发动作是:解封装报文,并且查找IPv6 VPN实例路由表进行转发。End.DT6 SID在L3VPNv6场景使用,等价于IPv6 VPN的标签 BGP
End.DX4 用于标识网络中的某个IPv4 CE。对应的转发动作是:解封装报文,并且将解封后的IPv4报文在该SID绑定的三层接口上转发。End.DX4 SID在L3VPNv4场景使用,等价于连接到CE的邻接标签 BGP
End.DX6 用于标识网络中的某个IPv6 CE。对应的转发动作是:解封装报文,并且将解封后的IPv6报文在该SID绑定的三层接口上转发。End.DX6 SID在L3VPNv6场景使用,等价于连接到CE的邻接标签 BGP

 

  1. (3)    位于SRH中最后的Option TLV(Type Length Value)字段,也可以用于自定义功能,比如在转发时可以封装一些非规则信息。

 

1.4.5  SRv6报文转发
SRv6网络中各节点处理SRv6报文的策略如下:

  • ●    如果路径中的节点不支持SRv6,则不需要处理SRv6报文的SRH。直接根据IPv6 Header的目的地址查询IPv6路由表。依靠最长前缀匹配原则,进行IPv6报文的转发。
  • ●    如果路径中的节点支持SRv6,则需要处理SRv6报文的SRH。首先将Segment Left减1,将指向新的Segment List中的路径分段信息(即IPv6地址)复制到IPv6 Header的目的地址字段。通过目的地址查询IPv6路由表,依靠最长前缀匹配原则,进行IPv6报文的转发。

下面详细描述SRv6报文的转发流程。假设报文需要从节点1转发到节点4。节点1、节点3和节点4均支持SRv6,节点2不支持SRv6。在起始节点1上进行路径编排,希望报文依次经过路径分段13和34到达节点4。
图1-11    SRv6转发流程

 

报文从节点1转发到4的处理流程如下:

  1. (1)    节点1将SRv6分段路径信息封装在SRH,形成SRv6报文。

         a     节点1根据节点3和节点4发布的Locator,设置路径分段信息(Segment List [0] = B4::1和Segment List [1] = B2::1)。
         b     节点1将SL(Segment Left)置为1,并将SL指示的路径分段信息(B2::1)拷贝到IPv6 Header的目的地址字段。
         c     节点1根据IPv6 Header的目的地址(B2::1)查路由表转发到节点2。

 

  1. (2)    节点2不支持SRv6,所以不处理SRH。

        节点2具备普通的IPv6转发能力即可。节点2根据IPv6 Header的目的地址(B2::1)查IPv6路由表转发到节点3。

 

  1. (3)    节点3收到报文后,根据IPv6 Header的目的地址(B2::1)查找Locator。命中End.X SID,执行End.X的转发动作:

         a     节点3将SL减1(此时SL为0)。
         b     节点3将SL指示的路径分段信息(即Segment List[0] = B4::1)拷贝到IPv6 Header的目的地址字段。
         c     根据End.X指定的出接口,将报文转发到节点4。

 

  1. (4)    节点4收到报文后,根据IPv6 Header的目的地址(B4::1)查找Locator。命中End SID,节点4去掉SRH,SRv6报文变为普通的IPv6报文。查询路由发现是到本节点的报文,由节点4进行后续处理。


1.5   总结
SRv6基于IPv6转发,随着IPv6大规模部署,SRv6技术也将快速发展。SRv6未来将如何演进,SRv6能否在未来网络中占据主导地位,让我们拭目以待。

 

相关推荐

新一代IP承载核心技术SRv6的转发原理 —一文带你了解网络新贵
 

锐捷互动
搜索“锐捷互动”
或扫码关注
随时了解更多信息

返回顶部