产品
产品中心
< 返回主菜单
产品

交换机

交换机所有产品
< 返回产品
交换机
查看交换机首页 >

无线

无线所有产品
< 返回产品
无线
查看无线首页 >

云桌面

云桌面产品方案中心
< 返回产品
云桌面
查看云桌面首页 >

安全

安全所有产品
< 返回产品
安全
查看安全首页 >
产品中心首页 >
行业
行业中心
< 返回主菜单
行业
行业中心首页 >

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

【SRv6】分段路由SR是一种源路由技术,具有集中控制、中间网络无状态、可扩展性好等优点,本文主要介绍SR的另一种标签寻址技术IPv6分段路由SRv6。

  • 发布时间:2020-01-02

  • 点击量:

  • 点赞:

分享至

我想评论

本期作者:李健明

互联网系统部行业咨询

引言

分段路由(SR,Segment Routing)是一种源路由技术,具有集中控制、中间网络无状态、可扩展性好等优点,SR更是面向软件定义网络(SDN,Software Defined Network)架构设计的协议,融合了设备自主转发和集中编程控制的优势,能够更好地实现应用驱动的网络。关于SR技术的优势、技术演进等在上一篇技术文章《一文读懂网络界新贵Segment Routing技术化繁为简的奥秘》里有详细介绍,本文将接着SR技术演进的话题,介绍SR的另一种标签寻址技术IPv6分段路由(SRv6,Segment Routing IPv6)。

一、从“大道至简”到“极简”——SRv6

 
“大道至简”的控制平面

SRv6控制层面与SR-MPLS一样,控制面基于传统支持IPv6的路由协议(OSPFv3/ISISv6/BGP4+)进行能力扩展,取代独立的LDP、RSVP实现整体架构的简化。同时,SRv6相比SR-MPLS更加简化,无需通告IPv6前缀外的其他信息,因为前缀本身就是分段标识符(SID,Segment Identifier)。


当SRv6的控制面配合集中的SDN控制器,SRv6 SID的分配和相关指令下发均交给控制器下发,面向业务和应用进一步实现简化,只需要在边缘设备为应用指定路径,中间设备无需维护路径和应用的状态,使得网络边缘更智能、核心更简单,极大地简化了网络设计和管理。

“极简”的数据平面

SR技术为数据平面设计了两种实现方式,一种是复用MPLS数据平面的SR-MPLS,另一种是SRv6。SRv6使用IPv6数据平面,基于IPv6路由扩展头进行扩展,这部分扩展没有破坏标准的IPv6报头,而且,只有SRv6节点需要针对扩展头进行额外的处理,对于其他普通IPv6节点没有任何影响,这让SRv6可与现有IPv6网络无缝兼容,更让转发层面达到纯IPv6的极简转发。


为方便大家更直观地了解到SRv6数据面的“极简”,我们拿SRv6与SR-MPLS的帧结构做下对比,看看在帧结构上做了哪些改变。
 


▲ 图1:SR-MPLS与SRv6报文结构对比

从图1可以看到,在MPLS网络中,Segment就是MPLS标签,头端一次性压入多个标签形成Segment List,每一跳转发采用标签查找和标签弹出的动作(SR节点);在IPv6网络中,Segment就是IPv6地址,路径就是封装在一个分段路由扩展头(SRH,Segment Routing Header)中的IPv6地址列表,每一跳的转发均是采用纯IPv6的标准转发动作,实现转发面标准化的简单处理,这极大地降低了网络复杂性。


我们先看看SRv6的报头和Segment的具体格式。


注:IPv6路由扩展头技术详解可参考《IPv6基础篇(上)——地址与报文格式

SRv6报头(SRv6 Header)

SRv6采用IPv6标准规范(RFC2460)中定义的路由扩展报头,新定义了一种IPv6的扩展报头——SRH,该扩展头指定一个IPv6的显式路径,存储的是IPv6的Segment List信息,其作用与SR-MPLS里的Segment List类似,头节点在IPv6报文中增加一个SRH扩展头,中间SRv6节点就可以按照SRH里包含的路径信息进行处理和转发,而非SRv6节点只需要按照标准的目的IPv6进行传统转发即可。
 


SRH格式如下图:

▲ 图2:SRH报文格式

在SRv6中,每经过一个SRv6节点,该节点将读取SRH中的信息,执行相关的SID指令,将活动Segment List拷贝到标准头中的目的地址,将SL(Segments Left)字段减1,同时更新相关的指针,最后进行纯IPv6的“极简”转发。
 


二、SRv6转发流程

SRv6的转发是通过读取SRH报头,更新指针,变换目的地址进行转发的,接下来我们看一个典型的SRv6转发流程:
 


▲ 图3:SRv6域中数据包转发过程

如图3所示,假设SRv6域中有五个节点,节点1、3、4、5是支持SRv6的节点,节点2为普通IPv6节点,数据包从节点1转发到节点5。


1)    数据包进入到节点1(源节点),节点1给数据包增加SRH,并会指定整条路径中SR节点的相关操作,外层再封装标准的IPv6报头。其中SRH里面包含三个Segment List,SL为2(由于从节点1到节点5需要经过3个SRv6节点);外层的IPv6报头源地址为2001::1(节点1地址),目的地址是从SRH中Segment List[2]拷贝过来的2001::3(节点3地址);


2)    数据包转发到节点2,由于节点2只支持常规的IPv6而不支持SRv6,节点2收到SRv6数据包时,按照IPv6 RFC的规定,当数据包目的地址不是节点自身网段地址时,此节点不处理扩展报头,直接根据IPv6报头中的目的地址进行转发;


3)    节点3收到数据包时,节点3根据外层IPv6地址2001::3查找本地Local SID表,命中本地的Local SID表,执行相关指令。将SL减1操作,指针指向Segment List[1](此为活动Segment),并将Segment List[1]的地址拷贝到外层IPv6报头中的目的地址,然后根据IPv6目的地址进行转发;


4)    节点4的处理过程和节点3一致,将Segment List变为[0],IPv6报头中的目的地址更新为2001::5;


5)    节点5收到数据报文时,识别到目的地址是本节点,同时Segment List为0。此时,节点5会剥离SRH和IPv6报头,读取真正的Payload,并根据SID里的相关指令完成转发。


从这个转发流程可以看出,SRv6的转发与SR-MPLS更加简化、清晰,在数据包转发过程中SRv6不需要弹出Segment,而是通过SRH中的SL字段作为指针,指向活动Segment,并更新IPv6报头的目的地址为Segment列表中活动Segment,并按照常规的IPv6路由把数据包转发出去。当网络中有不支持SRv6的节点时,该节点可根据数据包目的地址进行标准的IPv6转发,这意味着,SRv6可以与现有的IPv6网络可以实现无缝兼容,即SRv6可以在传统IPv6网络上实现增量部署,无须替换所有现网设备。


三、关于SRv6 Segment

SRv6 Segment通常简称SRv6 SID(Segment Identifier)或SID,SID表现为一个128 bits的IPv6地址。Segment List就表现为插入在SRH中的一组有序的IPv6地址列表。但并不是所有的IPv6地址都是SID,需要SRv6节点显性声明某个地址为SID,SID可以是节点的地址或者某个接口的地址。


SID中含有相关指令和可带参数,具体如下。


▲ 图4:SRv6 Segment格式

如图4所示,SID由Locator和Function两部分组成,其中Function部分还可以分出一个可选的参数段(Arguments),格式是Locator:Function:Arguments,其中Locator占据IPv6地址的高比特位,Function部分占据IPv6地址的其余部分,可选参数Arguments占据IPv6地址的低比特位。


1. Locator具有路由定位功能,需要在SRv6域内唯一,网络里其他节点通过Locator网段路由就可以定位到本节点,同时本节点发布的所有SRv6 SID也都可以通过该Locator网段路由到达。


2.   Function代表设备的指令,用于指示SRv6 SID的节点进行相应的功能操作,例如End.DX6 SID:该操作要求 Segments Left为0且数据包内封装了IPv6的数据包去掉外层的IPv6报头,并将内部的IPv6数据包转发给指定的下一跳地址,类似于VPNv6 Per-CE标签。


3.    可选参数Arguments字段可以定义一些报文的流和服务等信息,或者是与SRv6 SID相关的功能所需的其他信息。这里的Function和Arguments都是可以定义的,这也反映出SRv6 SID的结构更有利于对网络进行编程。
关于SRv6的可编程能力,未来再跟大家进一步探讨。

四、SRv6规模部署的挑战

为网络新贵的SR技术,基于MPLS平面的SR-MPLS已经在业界得到了运营商和互联网客户的初步认可和应用部署,而基于SRv6的SR技术普及和应用却处于滞后的状态,特别是对于流量工程和服务链等这类SRv6支持较好的高级功能也鲜有部署。这是什么原因呢?简而言之是关系到承载效率和芯片能力的问题。


从承载效率的角度分析,当前SRv6方案基于SRH扩展头实现,而SID长度为128bits,对于一组Segment List就会增加n * 128bits的长度,而SR-MPLS,每转一跳会弹出顶层标签,因此SRv6引入的协议开销远大于SR-MPLS,造成了网络承载效率低;从芯片能力的角度,SRH扩展头的方式要求交换机芯片可以一次读取报头的深度更高,对硬件有特殊要求,而更换硬件需要增加新的投资成本。


针对上述这些问题,也推动了SRv6技术本身的继续优化、演进。


五、SRv6技术的现状与演进展望

从目前来说,SRv6提供了可预见的网络业务变革的最终形态,同时业界针对SRv6也已经基本完成准备,从主机端(Linux内核4.10以上支持SRv6)到网络转发芯片的硬件等均已具备规模部署的条件。


前面提到SRv6的承载效率低和和需要更换新硬件带来投资增加,从而导致SRv6技术规模部署的进展缓慢,针对这些问题,业界已经提出了几种解决方案。现在进展较快的有Micro SID和Unified SID,这两种方案均是对标准SRv6的SRH方案进行扩展,解决承载效率低的问题。


这两种扩展解决方案均刚刚起步,锐捷网络持续跟进SRv6技术的最新进展,并基于商用芯片打造支持SRv6的产品,后续将和业界一起努力完善Micro SID、Unified SID等扩展方案的产品化,与业界共创SRv6的完善生态系统。

 

相关推荐:

任何需要,请联系我们

返回顶部

请选择服务项目
关闭咨询页
售前咨询 售前咨询
售前咨询
售后服务 售后服务
售后服务
意见反馈 意见反馈
意见反馈
更多联系方式
是否找到您想要的内容?
您遇到了什么问题?
找不到想要的信息
筛选功能不好用
加载速度太慢
页面体验差
提交
您是否找到了与产品相关的文档
筛选功能是否帮助您更快找到所需的文档?
有帮助
一般
没有帮助
没用过
请问您遇到了什么问题?
需要填写的内容太多
有些信息不懂怎么填
页面有问题/错误
其他
确定
这些客户案例是否对您有帮助?
非常有帮助
比较有帮助
没有帮助
请您对这个客户案例进行评价
兴趣度
相关性
可信度
确定
感谢您的反馈!
感谢您的反馈!