20

SRv6技术课堂(一):SRv6概述

 4 years ago
source link: https://www.sdnlab.com/23735.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

作者简介:李振斌 华为首席协议专家/IETF互联网架构委员会(IAB)委员。负责华为的IP协议研究和标准推动工作。自2009年起积极参与IETF标准创新工作,主导和参与了大量IETF RFC/草案。在过去六年内持续推动了SDN演进的BGP/PCEP/Netconf/YANG的协议创新和标准化,当前研究的重点包括SRv6、网络智能、Telemetry、5G承载等。2019年当选IETF互联网架构委员会(IAB)委员,承担2019 - 2021年的互联网架构管理工作。

本文系《SRv6技术课堂系列》的第一讲,后续将陆续更新各个维度的SRv6技术细节,欢迎大家批评指正。

11SRv6668.jpg

1、SRv6基本概念

由于SR MPLS已经普及,相信大家已经对Segment Routing的基本概念有足够的了解。这里重点介绍SRv6独有的工作原理和相关概念。

1.1 SRv6 Segment

与SR MPLS的Segment不同,SRv6的Segment有128bits,而且分成了三部分:

11SRv601.png

图1 SRv6 SID

1、Locator(位置标识):网络中分配给一个网络节点的标识,可以用于路由和转发数据包。Locator有两个重要的属性,可路由和聚合。在SRv6 SID中Locator是一个可变长的部分,用于适配不同规模的网络。
2、Function(功能):设备分配给本地转发指令的一个ID值,该值可用于表达需要设备执行的转发动作,相当于计算机指令的操作码。在SRv6网络编程中,不同的转发行为由不同的功能ID来表达。一定程度上功能ID和MPLS标签类似,用于标识VPN转发实例等。
3、Args(变量):转发指令在执行的时候所需要的参数,这些参数可能包含流,服务或任何其他相关的可变信息。

从SRv6 SID的组成来看,SRv6同时具有路由和MPLS两种转发属性,可以融合两种转发技术的优点。

1.2 SRv6扩展头

为了在IPv6报文中实现SRv6转发,引入了一个SRv6扩展头(Routing Type为4),叫Segment Routing Header(SRH),用于进行Segment的编程组合形成SRv6路径。
图2是SRv6的报文封装格式。绿色的是IPv6报文头,棕色部分是SRH,蓝色是报文负荷。

11SRv602.png

图2 SRv6 SRH

IPv6 Next Header字段取值为43,表示后接的是IPv6路由扩展头。Routing Type = 4,表明这是SRH的路由扩展头,这个扩展头里字段解释如下:

11SRv6biao1.JPG

1.3 SRv6三层编程空间

SRv6具有比SR-MPLS更强大的网络编程能力。SRv6的网络可编程性体现在SRH扩展头中。SRH中有三层编程空间:

11SRv603.png

图3 SRv6的三层编程空间

第一部分是Segment序列。如前所述,它可以将多个Segment组合起来,形成SRv6路径。这跟MPLS标签栈比较类似。

第二部分是对SRv6 SID的128比特的运用。众所周知,MPLS标签封装主要是分成四个段,每个段都是固定长度(包括20比特的标签,8比特的TTL,3比特的Traffic Class和1比特的栈底标志)。而SRv6的每个Segment是128比特长,可以灵活分为多段,每段的长度也可以变化,由此具备灵活编程能力。

第三部分是是紧接着Segment序列之后的可选TLV(Type-Length-Value)。报文在网络中传送时,需要在转发面封装一些非规则的信息,它们可以通过SRH中TLV的灵活组合来完成。

SRv6通过三层编程空间,具备了更强大的网络编程能力,可以更好地满足不同的网络路径需求。

1.4 SRv6报文转发流程

11SRv604.png

图4 SRv6转发流程

上图展示了SRv6转发的一个范例。在这个范例中,结点R1要指定路径(需要通过R2-R3、R4-R5的链路转发)转发到R6,其中R1、R2、R4、R6为有SRv6能力的的设备,R3、R5为不支持SRv6的设备。

步骤一:Ingress结点处理:R1将SRv6路径信息封装在SRH扩展头,指定R2和R4的END.X SID,同时初始化SL = 2,并将SL指示的SID A2::11拷贝到外层IPv6头目的地址。R1根据外层IPv6目的地址查路由表转发到R2。
步骤二:End Point结点处理:R2收到报文以后,根据外层IPv6地址A2::11查找本地Local SID表,命中END.X SID,执行END.X SID的指令动作:SL—,并将SL指示的SID拷贝到外层IPv6头目的地址,同时根据END.X关联的下一跳转发。
步骤三:Transit结点处理:R3根据A4::13查IPv6路由表进行转发,不处理SRH扩展头。具备普通的IPv6转发能力即可。
步骤四:End Point结点处理:R4收到报文以后,根据外层IPv6地址A4::13查找本地Local SID表,命中END.X SID,执行END.X SID的指令动作:SL—,并将SL指示的SID拷贝到外层IPv6头目的地址,由于SL = 0, 弹出SRH扩展头,同时根据END.X关联的下一跳转发。
步骤5:弹出SRH扩展头以后,报文就变成普通的IPv6头,由于A6::1是1个正常的IPv6地址,遵循普通的IPv6转发到R6。

从上面的转发可以看出,对于支持SRv6转发的节点,可以通过SID指示经过特定的链路转发,对于不支持SRv6的节点,可以通过普通的IPv6路由转发穿越。这个特性使得SRv6可以很好地在IPv6网络中实现增量部署。

2、SRv6的标准和产业进展

2.1 SRv6标准进展

SRv6的标准化工作主要集中在IETF SPRING(Source Packet Routing in Networking)工作组,其报文封装格式SRH(Segment Routing Header)等标准化工作在6MAN(IPv6 Maintenance)工作组,其相关的控制协议扩展的标准化,包括IGP、BGP、PCEP、VPN等,分别在LSR、IDR、PCE、BESS等工作组进行。

截止目前,SRv6的标准化基本上分为两大部分:
第一部分是SRv6基础特性,包括SRv6网络编程框架、报文封装格式SRH以及IGP、BGP/VPN、BGP-LS、PCEP等基础协议扩展支持SRv6,主要提供VPN、TE、FRR等应用。所有SRv6基本特性文稿均由华为和思科共同引领,并有Bell Canada、SoftBank、Orange等运营商参与。目前所有文稿(除OSPFv3)均被接收为工作组文稿,标准的成熟度进入了一个新的阶段,特别是最关键的SRH封装草案已经经过IETF IESG批准,很快就会成为RFC。

11SRv6biao2.JPG

第二部分是SRv6面向5G和云的新应用,这些应用包括网络切片、确定性时延(DetNet)、OAM、IOAM(In-situ OAM)、SFC、SD-WAN、组播/BIER等。这些应用都对网络编程提出了新的需求,需要在转发面封装新的信息。SRv6可以很好地满足这些需求,充分体现了其在网络编程能力方面具备的独特优势。当前客户对于这些应用需求的紧迫性并不一致,反映到标准化和研究的进展也不尽相同。总体而言SRv6用于OAM、IOAM、SFC的标准化进展较快,已经有多篇工作组草案,网络切片也是当前标准化的一个重点,VPN+切片框架草案已经被接纳为工作组,SRv6 SID用于指示转发面的资源保证服务需求逐渐获得了广泛的认同。

2.2 SRv6的产业进展

SRv6产业的整体进展在SRv6 Implementation and Deployment Status草案中进行了描述(draft-matsushima-spring-SRv6-deployment-status)。

1.SRv6产品实现
目前主流设备厂商、测试仪和商用芯片已明确支持SRv6。其中华为全系列路由器产品均支持SRv6,思科ASR9000、ASR1000、NCS5500、NCS540等产品也已经支持SRv6。测试仪厂商思博伦和IXIA支持SRv6,芯片厂商海思、博通等也已发布可规模部署的商用芯片,并在主流设备上完成验证。

除此以外,一些开源平台也支持SRv6,如Linux Kernel,Linux Srext module,FD.io VPP等,提供对SRH的一些功能处理。开源工具应用,如Wireshark、Tcpdump、Iptables、Nftables,Snort等,也已经支持了对包含SRH的IPv6报文的处理。

2.SRv6互通测试
欧洲高级网络测试中心(EANTC:European Advanced Networking Test Center)在今年3月成功地进行了SRv6多厂商互通测试,其结果在MPLS + SDN + NFV World Congress 上进行了展示,并发布了互通测试白皮书。参加互通测试的厂商包括华为、Cisco、思博伦和IXIA,完成了SRv6 VPN、TI-LFA、OAM等互通测试例。

3.SRv6部署
在世界范围内已经有多家运营商开启了SRv6商用部署,包括中国电信、中国联通、CERNET2、日本软银和LINE公司、意大利Iliad、乌干达MTN等。

2017年中国推动IPv6的规模部署,经过一年多的建设,各大运营商的IP网络均已支持IPv6,这为SRv6的规模部署提供新业务提供了坚实的基础。截止目前为止,中国电信、中国联通、CERNET2等已经完成了7个局点的部署,SRv6跨域组大网、易于增量部署、快速业务开通的优势得到了充分体现,为整个产业创新起到了积极的示范作用。

4.SRv6产业论坛
随着SRv6技术和标准的不断成熟,业界对SRv6的认可和接受度也越来越高,为了进一步凝聚产业共识,推动SRv6创新应用,经过业界的共同努力,举办了多次SRv6产业会议。

2019年4月在法国巴黎MPLS+SDN+NFV大会期间举办了首届SRv6圆桌会议,与会的业界专家围绕SRv6的价值场景以及如何促进SRv6创新和部署等话题进行了热烈的讨论。

2019年6月推进IPv6规模部署专家委员会主办了第一期SRv6产业沙龙,与会专家分享了SRv6标准创新的最新进展、整体解决方案以及现网的部署应用等。

这些产业活动对于SRv6创新应用起到了积极的推动作用。

3、SRv6的价值与意义

SRv6网络编程草案从提出到现在不过两年半的时间,已经有多个商用实现和商用部署,发展之快在IP技术发展的历史上是不多见的。在两年多推动SRv6创新和标准的过程中,我们与业界专家进行了广泛的交流,对于互联网发展历史的经验教训进行了很多反思,从而对于SRv6的价值和意义也有了更进一步的认识。

IPv4技术发展的一个重要教训是可扩展性问题,设计之初没有想到会有这么多的设备接入IP网络,由此触发了IPv6技术的发展。而IPv6技术发展的一个重要教训是可兼容性问题。当时的设想比较简单,32比特的地址空间不够,就把它扩展成128比特,但是128比特的IPv6地址跟32比特的IPV4地址是没有办法兼容的,这样就需要全网的升级支持IPv6,由此导致部署应用的困难。从这个角度看,SRv6可以兼容IPv6路由转发的,并且通过Function ID兼顾了MPLS转发的优点,这就保证了SRv6可以从IPv6网络平滑地演进。

在过去的十多年里,IP技术取得了巨大成功,统一了网络承载,可以将其称之为All IP 1.0时代。这其中MPLS扮演了非常重要的角色。基于MPLS的承载技术用于IP Core承载,再到城域承载、移动承载,替代了帧中继、ATM、TDM等多种网络技术,实现了网络承载技术的统一。MPLS成功依赖于三个重要的特性:VPN、TE和FRR,因此SRv6技术发展首先要把这三个特性优势继承下来,经过两年多的发展,这个目标已经基本达成。

All IP 1.0成功的同时也带来了一些问题和挑战,总结起来主要有三个方面:
第一个是IP承载网络的孤岛问题。虽然MPLS统一了承载网,但是IP Core承载网、城域承载网、移动承载网之间是分离的,因此要使用跨域VPN等复杂的技术来解决,导致端到端业务部署的困难。

第二个是IPv4与MPLS封装的可编程空间有限。现在产生了很多新的业务,需要在转发面加入更多的封装,而现在IETF已经发表声明停止为IPv4制定更进一步的标准,并且MPLS标签的字段采用固定长度,标签栈提供的网络编程能力也相对受限,这些导致它们在满足未来业务的网络编程需求存在极大的挑战。

第三个是应用与网络承载的解耦,导致网络自身的优化困难,而且难以提升价值。当前运营商普遍面临被管道化的挑战,无法从增值应用中获得相应的收益,而应用信息的缺失,使得网络调度和优化采用粗放的方式进行,也造成资源的浪费。网络技术发展的历史上也努力做过尝试,但是都失败了,例如ATM到桌面技术。MPLS也曾经试图能够入云,实际连数据中心也没能进去,反而是VXLAN成为了事实标准。

11SRv605.png

图5 IP技术发展代际

SRv6技术的出现,实际承担了解决这些关键问题的使命:
第一个是SRv6兼容IPv6路由转发,基于IP可达性实现不同网络域间的连接更加容易,无需像MPLS那样必须引入额外信令,并且还需要全网升级。
第二个是基于SRH能够支持更多种类的封装,可以很好地满足新业务的多样化需求。
第三个是SRv6对于IPv6的亲和性使得它能够将IP承载网络与支持IPv6的应用无缝融合在一起,通过网络感知应用,给运营商带来更多可能的增值。

IPv6发展的二十年的里程证明,仅仅依靠地址空间的需求不足以支撑其规模部署,SRv6技术快速发展的实践说明通过新的业务应用可以更好地促进IPv6发展应用。随着5G、物联网、云等业务的发展,更多网络设备的接入对于地址扩展的需求也在增加,SRv6和这方面的需求结合在一起,将会推动网络进入一个新的All IP时代,基于All IPv6实现智简网络。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK