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) 可以自定义业务转发路径。路径SID根据业务需要编排Segment List,形成不同的转发路径。如下图所示。
图1-10 业务驱动路径自定义
- (2) 可以自定义SRv6 SID。设备通过定义不同的Function,使SRv6支持不同的业务。比如数据包到达SRv6尾节点后,利用Function指示节点将数据包转发给某个VPN实例。下表是与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 |
- (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将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。
- (2) 节点2不支持SRv6,所以不处理SRH。
节点2具备普通的IPv6转发能力即可。节点2根据IPv6 Header的目的地址(B2::1)查IPv6路由表转发到节点3。
- (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。
- (4) 节点4收到报文后,根据IPv6 Header的目的地址(B4::1)查找Locator。命中End SID,节点4去掉SRH,SRv6报文变为普通的IPv6报文。查询路由发现是到本节点的报文,由节点4进行后续处理。
1.5 总结
SRv6基于IPv6转发,随着IPv6大规模部署,SRv6技术也将快速发展。SRv6未来将如何演进,SRv6能否在未来网络中占据主导地位,让我们拭目以待。
相关推荐
更多技术博文
-
全调度以太网(GSE),中国智算网络新标准
GSE网络作为一种全调度以太网技术,专为大规模AI训练集群设计,通过按需调度实现无损性能,提供灵活快速的部署方案,构建开放生态,显著提升智算效率和运维体验。
-
#知识百科
-
-
以太和PON,谁能更好地支撑办公室横向流量业务?
了解以太彩光与PON的区别,解析办公资源共享难题,锐捷极简以太彩光方案助您高效适配办公网,共享打印无压力!
-
#交换机
-
-
场景无线 驱动高效办公!锐捷新一代企业无线办公解决方案全新发布!
面对企业数智化转型中的无线办公网络挑战,锐捷新一代企业无线办公解决方案通过全场景AP、智能调度与云端智能运维等技术,实现网络性能、用户体验与运维效率的全面提升。
-
#无线网
-
#办公网
-
-
以太彩光和PON,运维管理谁技高一筹?
锐捷网络提供极简以太全光方案,简化配置流程,降低学习成本,让全光网络升级更平滑。
-
#交换机
-