网络发展初期,群雄逐鹿,多种网络技术并存,如X.25、FR(帧中继)、ATM网络和我们熟知的IP网络。这些技术虽然不能互联互通,但是都有自己的一席之地,这其中最为主流的技术是ATM和IP。
ATM技术
源于1983年美国贝尔研究所提出的快速分组交换以及1984年法国电信Cent提出的异步时分交换思想,采用固定长度(188个字节)信元传输数据,采用面向连接的方式进行通信,可以提供更好的服务质量。这项技术能够满足电信网络对可靠性和可管理性的要求,因而,在网络技术兴起的早期,在电信网络中得到了广泛的应用。ATM标准由ITU-T提出,由ITU-T、电信厂商、电信运营商组成的ATM论坛推进ATM标准化工作,官方色彩较浓,标准化过程较IP标准缓慢。
IP技术
一种无连接的通信,提供尽力而为的服务,具备逐跳寻径的灵活性,报文长度并不固定。IP技术采用“最长匹配”的方式进行转发,每个路由器都需要将IP包解析出目的IP地址,并根据此信息独立对数据包进行路由决策。其传输可靠性需要借助高层协议来实现。这项技术秉持共享开放的理念,因而在计算机网络中得到了广泛的应用。IP标准主要由民间组织IETF推进标准化,以简单、实用、有效、持续完善为原则,推进较快。
总而言之,ATM是以交换机为核心,通过信令技术建立虚电路,强调网络智能。IP以路由器为核心,通过路由技术支持数据报寻址,强调终端智能。
ATM与IP虽然有诸多差异,但是都有适合自己的应用场景。近年来,随着互联网的爆炸式增长,经济性和效率性的边界效益随着网络的规模进一步增大而降低。如何更有效的建设更大规模的网络成为摆在面前的现实问题。此外,随着计算机网络向宽带化、智能化方向发展,网络业务也呈现出突发特性。网络通信更加强调效率和通用性。随着多媒体通信的发展,要求高速的数据通信,同时要求保证通信的QoS,并能传送话音、图像等多媒体内容。在新的需求的推动下,原有的网络技术捉襟见肘:ATM技术复杂,通用性差,管理成本高,且效率低(报文头开销大),而尽力而为的IP网络也逐渐不再能适应网络的发展。在路由器网络中加入交换结构是解决问题的有效方案。
高质量的IP技术
随着对IP网络QoS要求的提升,新的技术出现。新技术在IP技术中融合了ATM的QoS理念,比如LANE(Local Area Network Emulation)、IPoA(IP over ATM)和TAG Switch等。
1996年,MPLS技术出现。MPLS在二层与三层之间构建了“2.5层”技术,相当于在3层的IP包外直接贴上了标签,支持IPv4和IPv6等多种三层网络,兼容ATM、以太网等多种二层链路。MPLS整合了ATM网络的VCI(虚拟信道标识符)和VPI(虚拟通路标识符),同时具备IP路由的灵活性和标签交换的简捷性,在IP之上构建基于标记的通信通道。
MPLS基于定长32bit的标签转发数据。IP基于最长前缀匹配转发数据。前者转发效率更高,并且能够更好的支持TE(基于RSVP-TE实现 MPLS TE路径标签的申请和分发,实现资源保证、显式路径转发)、虚拟专用网(通过MPLS标签标识虚拟专用网,实现业务隔离)和FRR(能够满足50ms电信级保护倒换的需求)。MPLS逐渐被应用于IP骨干网、城域网、移动承载网等多种网络场景,能够支持多业务融合承载。
图1:MPLS标签
MPLS 转发功能和路由功能相分离,仅在网络边缘实施路径及策略选择,对进入网络的IP数据包分配标记,通过标记交换来实现数据包转发。当数据包被交换至MPLS网络边缘时,封装解开,继续按照IP数据包的路由方式达到目的地。
MPLS网络包括两类网元:边缘路由器(LER)和标记交换路由器(LSR)。前者完成IP包的进出和退出过程。后者完成高速交换。入节点LER和出节点LER之间构建了一条条单向的高速LSP。当IP数据包到达LER时,按照MPLS转发等价类(FEC)概念,被映射至一条LSP上,并标记。标记信息库将每一个FEC映射到LSP下一跳的标记上。如果下一跳的二层链路是ATM,则MPLS将使用ATM VCC里的VCI作为标记。
图2:MPLS数据包
MPLS有多种标签发布协议,如LDP(Label Distribution Protocol)、RSVP-TE、MP-BGP(Multiprotocol Border Gateway Protocol)。LDP自身不维护状态,转发是无连接的。MPLS采用标签转发方式。转发原理可以简化为标签压入(Push)、标签交换(Swap)、标签弹出(Pop)。
MPLS实现了流量工程,提供面向连接的服务。在MPLS技术发展过程中,针对不同的业务需求衍生出不同的改进技术,如MPLS-TP、SR-MPLS、PWE3等。MPLS解决了路由隔离、大规模组网、流量工程、以及电信级业务IP化承载问题,保障了网络可靠性和业务承载质量。
5G、智慧城市等新兴业务要求网络具备可编程、物联网等能力,并能够提供业务级别的QoE测量、感知等功能。在新的业务需求的背景下,MPLS问题逐渐暴露。首先是协议状态复杂,MPLS是在原有IP技术基础上叠加新技术来解决问题。MPLS通过在IGP协议基础上增加LDP协议来分发标签,通过增加RSVP-TE协议来实现流量工程。新技术增加了协议的复杂度。其次,MPLS体系中,每台设备只能看到自己的状态,是一种分布式的技术。另外,RSVP-TE协议信令非常复杂,需要维护庞大的链路信息,需要大量交互报文以维持连接状态,复杂度随节点数量的增加呈指数级增长。在这样的背景下,SR技术诞生。
SR技术的诞生
1977年,Car A. Sunshine发表了论文“Source routing in computer networks”,第一次提出了源路由技术。2013年起出现的Segment Routing 技术正是借鉴了源路由思想,将报文转发路径分割为分段(Segment),并用SID(Segment Identifier)来标识,在路径源头节点统一插入分段信息。中间节点只是按照报文里携带的分段信息转发,并不感知和维护路径状态。
SR技术通过对IGP协议扩展SR属性,实现标签转发,实现了LDP协议的全部功能;通过集中RSVP功能(集中控制管理),避免每个节点都需要通过RSVP大量交互以维护全网信息。总的来说SR有三方面的特点:源路由;无状态;集中控制。
支持MPLS的SR被称为SR-MPLS。SR-MPLS并没有改变MPLS向IP报文头插入标签的实现方式,同样需要网络设备逐跳支持MPLS标签转发。
图3:SR-MPLS
SRv6
随着IPv6的出现,SR与IPv6相融合就产生了SRv6。SRv6解决了传统MPLS标签信息扩展性不足的问题,可以携带更多的信息,能够统一承载多种网络协议。
支持IPv6数据平面的SRv6,采用128位的IPv6地址作为SID,集成了SR-MPLS网络的所有优点。同时,其作为IPv6的原生应用之一,SRv6具有更好的兼容性。SRv6可借助丰富的128位SID能够实现网络编程能力。
图4:SRv6包头
SRv6在建立跨域LSP路径时,不需要复杂的路由扩散,不需要专门的标签转发面支撑,有IPv6转发面即可。在业务层面,SRv6通过E虚拟专用网整合了原来网络中L2虚拟专用网(VPWS、VPLS)、L3虚拟专用网(MP-BGP)。
图5:MPLS、SRv6协议栈对比
SRv6通过IPv6路由扩展报文头SRH扩展实现。SRv6没有改变IPv6的报文结构,兼容所有的IPv6设备。SRv6路由可以跨越AS域,承载业务也可以跨越AS域,利于网络简化部署。
SRv6融合了路径和业务编排能力,能够预先规划特定路径以及路径中节点的Function动作。在网络和业务编排器的支撑下,SRv6能够实现网络路径拉通以及业务定义的能力,实现云网融合、端到端业务保障。
图6:SRH的帧结构
SRH关键信息包括三个部分:
- Routing Type:取值4,表明扩展标签为Segment Routing Header(SRH);
- Segment List:网络路径信息;
- Segment Left(SL)指针,指示当前活跃的Segment。
SL和Segment List字段共同决定IPv6 DA信息。在SRv6中,每经过一个SRv6节点,SL字段减1,IPv6 DA变换为指针当前的SID。与MPLS不同,SRv6报文头保留了完整的路径信息,可以做路径回溯。
需要说明的是,虽然SRv6 SID采用了IPv6地址形式,但并不是普通意义的IPv6地址。SRv6的SID一般包括Locator和Function两部分。前者可变长,具有定位功能,可路由可聚合,一般要求在SRv6域内唯一(Anycast场景除外)。节点配置Locator之后,系统会生成一条Locator网段路由,并通过IGP在SRv6域内扩散。网络里其他节点通过Locator定位节点。Function部分还可以分出一个可选的参数段(Arguments)。SRv6 SID可以自由组合进行路径编程,根据业务需求,定义转发路径。
与传统SR-MPLS的3层类型标签(虚拟专用网/BGP/SR)相比,SRv6只有一种IPv6头,实现了统一的转发。由于SRv6帧头的标准性,使其能兼容现网的IPv6设备,当中间节点不支持SRv6功能时,按照IPv6路由方式转发即可。
在云数据中心互联场景中,IP骨干网采用MPLS/SR-MPLS技术,数据中心网络通常使用VXLAN技术,骨干网与数据网络之间通过网关设备实现VXLAN和MPLS相互映射。SRv6报文和普通IPv6报文完全一样,SRv6网络节点间的互通只需要保证节点之间IPv6网络可达。可以看出,SRv6模糊了骨干网络与数据中心网络的界限。
图7:SRv6在云数据中心互联场景中的应用
SRv6只需要将业务的头尾节点升级到支持SRv6的版本,即能实现SRv6的流量工程。通过BGP4+,将一个域的IPv6路由引到另外一个域,就可以开展跨域业务部署。在大型网络的跨域场景中,在边界节点引入有限的聚合路由表项即可,降低了对网络设备能力的要求。
SRv6同时具有路由和MPLS两种转发属性,具备TE能力、扩展能力,能够支持未来固移融合,实现IP转发技术统一。
SRv6应用现状
过去的几年,SRv6应用主要集中在网络侧,而大二层网络拉通、云网拉通应用较少。
SRv6在应用中还存在着一些问题:
1)SRv6 SID 128bit,字节过长,存在传输效率和栈深问题。以100GE链路为例,256Byte报文,8层SID情况下,SR-MPLS网络链路利用率为89%,而SRv6网络利用率仅有67%。
2)SRv6到非SRv6的速率不匹配会导致端口拥塞,时延显著增大。
3)SRv6包头较长,可能导致数据包超过线路MTU而分片,从而造成传输性能急剧下降。
4)SRv6标准尚未完全成熟。当前已经完成标准化的仅有框架(RFC8402)和SRH封装格式(RFC8745)。应用场景、部署模型/互操作、网络管理、协议扩展、流量工程、快速收敛、Draft netpgm(last call/appeal)定义操作等标准化程度中等;Segment压缩、OAM&性能管理、服务链等标准化程度偏低。按照IETF标准平均2-3年的成熟期,SRv6形成完善的标准体系尚需时日。
5)SRv6对ASIC提出了新的要求。SR路径中的SRv6节点必须执行多个操作,包括读取SRH、将IPv6目标字段重写到路径中的下一个节点、更新指针以及执行特定节点操作(网络编程)。
6)SRv6尚未带来明显的增量价值。目前SRv6的应用场景还主要是传统MPLS L2虚拟专用网/L3虚拟专用网服务。SRv6的网络可编程特性尚未得到广泛使用。
小 结
IPv6是SRv6应用的基本条件。随着IPv6的规模化部署,SRv6技术的推广应用也将进入快车道。未来SRv6将如何演进发展,我们拭目以待。