从1969年阿帕网的诞生到2019年IPv4地址的正式枯竭,多年来互联网技术在不断地更新迭代。运营商承载网经历了SDH、PTN、IP RAN等多种技术演进,在移动基站全IP、大带宽的发展趋势下,IP MPLS技术得到了广泛应用。

随着2C(自动驾驶、云VR/AR、云游戏、超高清)、2B(智能制造、远程医疗)业务升级以及5G业务的云化趋势,新业务在给用户带来极致体验的同时,也给传统网络带来了极大挑战。在此背景下,SRv6应运而生,并随着IPv6的规模化部署,得到推广应用。

传统网络困局

MPLS/IP 困局

MPLS在IP传输中发挥着重要作用,但它会造成网络孤岛化,使域间网络互连复杂化。

更准确地说,MPLS统一了承载网,但是IP骨干网、城域网、移动承载网之间是独立的MPLS域,是相互分离的,需要使用跨域VPN等复杂的技术来互联,导致端到端业务的部署非常复杂。因此,针对跨域MPLS VPN提出了多种跨自治系统(AS)解决方案,如Option-A、Option-B和Option-C,每一种的业务部署都较为复杂。

例如,在上图中,从最终用户到云数据中心的流量需要经过多个网络域。先通过基于 MPLS 的固定移动融合 (FMC) 传输网络,然后流量通过本地IP网络进入基于MPLS的IP骨干网络,再访问数据中心边缘的IP网络,最后到达VXLAN网关。在VXLAN网关中,沿着 VXLAN 隧道,到达 VXLAN 隧道出口处的TOR交换机,最后访问虚拟网络功能 (VNF) 设备。

如果要通过这些网络域,可以想象得到整个服务访问过程会有多复杂。

另外,可扩展性也是阻碍MPLS发展的主要因素,这涉及到标签空间的可扩展性和封装的可扩展性两个方面。在 MPLS 标签空间中,如下图所示,MPLS 标签有 20 位,相当于 2^20 个标签空间。

当前很多新业务需要在转发平面加入更多的转发信息,但IETF已经发表声明,停止为IPv4制定更新的标准,另外MPLS只有20bit的标签空间,且标签字段固定、长度固定,缺乏可扩展性,导致很难满足未来业务的网络编程需求。

随着网络的发展和不断承载更多新兴业务,IP与MPLS的结合面临着以下问题和挑战:

  • 转发优势下降:随着搜索路由算法的改进,特别是以网络处理器 (NP) 为代表的硬件升级,MPLS 在转发性能方面不再具有明显优势。
  • 云网融合困难:在数据中心中使用MPLS提供VPN业务的尝试有很多。然而,由于网络管理边界、管理复杂性和可扩展性等因素,这些尝试大都以失败告终。
  • 跨域部署困难:会涉及到相对复杂的服务部署。
  • 业务管理复杂:当多种业务(如L2VPN、L3VPN业务)共存时,设备上可能同时存在LDP、RSVP、IGP、BGP等协议。这导致业务部署困难、管理复杂,难以在5G和云时代实现大规模业务部署。
  • 协议状态复杂:随着节点和隧道数量的增加,状态的数量也会增加。状态的指数增长给传输节点的性能带来了巨大的压力,阻碍了大规模网络的建设。

IPv4 困局

IPv4 的最大问题之一是地址资源不足。随着 2019 年 11 月 25 日欧洲网络信息中心(RIPE NCC)从可用池中进行最后的 /22 IPv4分配,全球所有 43 亿个 IPv4 地址都已分配完毕,意味着没有更多的 IPv4 地址可以分配给互联网服务提供商(ISP)和其它大型网络基础设施提供商。

尽管网络地址转换 (NAT) 等技术通过重用私有网络地址块可以缓解此问题,但这并不是最终的解决方案。NAT不支持IPv4地址溯源,隐藏了IPv4的实际地址,存在管理风险。

IPv4 还面临另一个困境:数据包头的可扩展性不足导致了可编程性的不足。鉴于此,IPv4 网络很难支持许多需要对包头进行扩展的新服务,例如源路由、SFC 和 IOAM。

为了解决 IPv4 地址枯竭和扩展性差的问题,业界设计了下一代 IPv4 升级解决方案——IPv6。

SRv6如何破局?

利用通用硬件、软件定义功能和计算机领域的开源模型,斯坦福教授Nick McKeown团队提出了一种新的网络架构SDN,SDN具有以下三个特点:

  • 开放网络可编程性
  • 控制平面和数据平面的分离
  • 逻辑集中控制

值得注意的是,SDN只是一种网络架构,目前已经提出了多种技术来实现它,例如OpenFlow、SR(分段路由,Segment Routing)等。OpenFlow由于其局限性,没有被广泛部署。

2013年,Segment Routing被提出,它是在现有网络基础上的过渡性扩展,提供网络可编程性。SR的核心思想是将报文转发路径切割为不同的分段,并在路径起始点往报文中插入分段信息,中间节点只需要按照报文里携带的分段信息转发即可。这样的路径分段,称之为“Segment”,并通过SID(Segment Identifier,段标识)来标识。

目前,SR 有两个数据平面:MPLS 和 IPv6。当SR应用于MPLS数据平面时,称为SR-MPLS,SID被编码为MPLS标签。SR应用于IPv6数据平面时,称为SRv6,SID编码为IPv6地址。

SR-MPLS通过复用现有的MPLS转发机制,提供网络编程能力。它可以支持从现有的MPLS网络平滑升级到SR-MPLS网络。这样可以更容易被行业采用。此外,SR保留了网络的分布式智能,同时引入了SDN控制器的全局流量优化。

SR-MPLS虽然可以提供良好的可编程性,但由于MPLS封装的可扩展性较差,无法满足SFC、IOAM等需要承载元数据的业务。与SR-MPLS相比,基于IPv6数据平面的SRv6不仅继承了SR-MPLS的所有优点,而且提供了更好的可扩展性。

SRv6技术概述

IPv6 拥有网络可编程性,它允许快速轻松地部署新服务。虽然 IPv4 也提供了可编程的 Options 字段,但这个字段并不常用。而IPv6 从一开始就考虑了包头的可扩展性,许多扩展包头,包括逐跳选项、目的地选项和路由标头,都支持进一步的扩展。

随着5G、云等新业务的兴起,以及网络可编程技术的发展,业务需要网络的转发平面提供更强的编程能力和更简单的融合网络解决方案。这就是 SRv6 发挥作用的地方。

SRv6 全称为Segment Routing IPv6,是一种基于 IPv6 数据平面的 SR 网络范式,它通过利用在SR扩展标头 (SRH) 中编码的分段,携带网络指令的 IPv6 数据包明确告诉网络它应该遍历的路径,以及要在每个 SRv6 节点上执行的功能。

SRv6中通过SID标识每个分段,SID是一种特殊的IPv6地址,既有普通IPv6地址的路由能力,又有SRv6特有的行为能力。每个SRv6节点都会维护一张SID表(实际上是路由表的一部分),由许多128bit的SID组成,SID标准格式为Locator Function(Args),如下所示:

Locator标识SRv6节点的定位器,每个节点起码有一个全局唯一的Locator值,作为本地SID的共享前缀,其他节点通过Locator路由访问本节点SID。Function(Args)标识SRv6节点内不同的行为,比如END、END.X等,少数行为还需要传递Args参数。

SRv6节点收到IPv6报文之后,会根据IPv6 DA(Destination Adddress)查找全局路由表,如果匹配到某个SID,则交由SID定义的行为处理,否则执行常规的路由转发动作。

为基于IPv6转发平面实现SR技术,在IPv6路由扩展头新增SRH(Segment Routing Header)扩展头,该扩展头指定一个IPv6的显式路径,存储IPv6的Segment List信息。Segment List即对段和网络节点进行有序排列得到的一条转发路径。报文转发时,依靠Segments Left和Segment List字段共同决定IPv6目的地址(IPv6 DA)信息,从而指导报文的转发路径和行为。其格式如下图所示。

IETF SRv6网络编程草案定义了一组可以与 SID 关联的功能,包括:

基于 SRv6 的VPN是SRv6 部署的用例。SRv6 VPN 草案定义了基于 BGP SRv6 的L3 VPN 和以太网 VPN 的流程和消息。下图说明了如何通过 SRv6 网络交付 L3 VPN 服务,以及如何在网络中的各个节点进行数据包封装:

从SRv6网络编程草案提交给IETF到现在,SRv6已被全球多家运营商部署了,如此快速的发展在知识产权技术中并不多见。

SRv6破局关键

综上所述,基于MPLS的传输虽然取得了巨大的成功,但如今也深陷困局,而SRv6 技术就是破局之法:

SRv6直接使用IPv6地址作为转发标签,在控制面和数据面实现了统一承载。云、管、端基于统一的IPv6标准协议实现端到端可管可控。

SRv6基于SRH,支持在报文中封装更多的信息,满足新业务的多样化需求。

SRv6 与 IPv6 的亲和性使其能够将 IP 传输网络与支持 IPv6 的应用程序无缝集成,并通过应用感知网络为运营商提供更多潜在的增值服务。

如上图所示,随着 5G、云、物联网(IoT)等业务的发展,越来越多的网络设备需要更多的地址和网络可编程性。SRv6能够更好地满足这些业务的需求,助力网络业务的发展,推动网络进入一个全新的All IP时代,即基于IPv6万物互联的智能IP时代。