2020年中国移动G-SRv6技术白皮书.pdf
中国移动 G-SRv6 技术 白皮书 ( 2020 年 ) 中国移动 研究院 2020 年 9 月 前言 IPv6 作为我国新型基础设施建设的关键基础技术,加快推进 IPv6规模部署是贯彻落实党中央、国务院关于建设网络强国的战略之一,可以预见网络将加快进入 IPv6 新时代。基于 IPv6 基础技术融合 SR( Segment Routing)实现 SRv6 支持网络协议简化、能力开放和可编程,从而灵活满足 5G、云网协同和泛在连接等新兴业务的需求。 SRv6采用 128bit IPv6 地址作为 SR SID( Segment ID),继承了 IPv6 地址灵活连接、全局路由和可编程的优点,以及 SR 源路由、网络简化和路径可回溯的优势,代表了基于 IPv6 技术为基础网络的重要发展方向,将成为下一代 IPv6 网络的核心技术。 但是,落地部署 SRv6 还需要解决承载效率、硬件兼容性、现网平滑升级等种种问题, 中国移动联合业内合作伙伴创新提出 G-SRv6头压缩优化方案并在 IETF 推动标准化进程,希望加快 SRv6 在国内的落地部署,拉开云网时代 IP 网络创新的大幕。 本白皮书旨在提出中国移动对于 G-SRv6头压缩优化的技术方案、组网部署应用和互 通实践规划。希望能够为产业在部署 SRv6 头压缩相关技术、产品和解决方案时提供参考和指引。 本白皮书的版权归中国移动所有 ,未经授权,任何单位或个人不得复制或拷贝本建议之部分或全部内容。 目录 1 技术背景 . 4 2 概念和原理 . 6 2.1 SRv6 头压缩概念 . 6 2.2 SRv6 头压缩原理 . 7 3 技术方案 . 10 3.1 G-SRv6 数据面方案 . 10 3.2 G-SRv6 控制面方案 . 15 3.2.1 IS-IS 控制面 . 16 3.2.2 BGP-LS 控制面 . 19 3.2.3 BGP SRv6 Policy 控制面 . 21 4 典型组网应用 . 24 4.1 纯压缩场景 . 25 4.2 混编压缩场景 . 28 5 互通实践 . 30 5.1 互通验证场景 . 31 5.2 互通验证结果 . 32 6 总结与展望 . 33 缩略语列表 . 35 参考文献 . 37 4 1 技术背景 在云网融合时代大背景下,灵活敏捷的网络服务能力直接影响运营商的竞争力。 SR( Segment Routing)是源路由技术的一种, SRv6是 SR 技术在 IPv6 网络的应用。 SRv6 的出现是一个巨大的创新,它结合 SDN 技术使能可编程的网络,这为云网时代的网络基础服务、增值网络服务提供了创新的土壤。 SRv6 继承了 SR-MPLS 的所有优点并进行了重大改进,通过把网络转发面统一到 IPv6,转发面只要 IPv6 路由可达就可建立跨域转发路径,不再 需要专门的 MPLS 转发面;通过定义功能指令信息,使得在宏观网络的视角下实现报文转发处理的可编程。 SRv6 技术使用 128bit 的 IPv6 地址作为 Segment ID( SID) ,以其极简可编程的特性,实现了任意接入和任意联接,可灵活满足各种网络业务需求,同时提供更高的可靠性和可扩展性,将成为新一代 IP承载网的核心技术。 随着 SRv6 技术和标准逐渐成熟,主流的设备芯片厂商和开源平台都已经支持 SRv6,国内外运营商都开始了 SRv6 部署。 当前 SRv6 虽然具备上述诸多优点,但是缺点同样明显。主要的缺点在于当 SID 数目 增多时 ,报文头开销过大。 SRv6 报文头过长带来的挑战主要分为以下三个方面 : 报文头开销大 导致 网络链路带宽利用率低 , 256byte 负荷包长在 8 层 SID 的情况下带宽利用率只有 60%左右 ; 5 新增报 文 头长度可能导致报文大小超过 MTU,导致分片或丢包,导致传输性能急剧下降; SRv6 报文处理对芯片要求高,老旧现网设备难以支持深度的报文头的复制 操作。 这些问题也导致运营商现网无法平滑升级 SRv6。 针对上述问题,业界 提出了多种 128bit SID 压缩方案。这些方案虽然达到了压缩目标,但都或多或少存在一些缺陷: 不兼容标准 SRv6, 影响实际部署 为支持存量演进和平滑升级,压缩方案需要支持和标准 SRv6 节点混合编排。此外,还需要兼容 SRH。压缩方案修改 SRH 格式,可能存在 报文被标准 SRv6 节点丢弃 的 风险。 压缩长度连续可变,增大实现难度 压缩方案 需要考虑网络的可扩展性和字节对齐等因素。连续可变的压缩方案加大了设计复杂度,实用性也有待商榷。 不 支持 原有 地址规划, 浪费地址空间 当前 SRv6 的部署 大多 基于已有的公网地址规划 。 压缩方案 的地址规划如果 与当前网络地址规划 不 兼容, 会导致无法部署或者公网地址的浪费。 针对这些问题,中国移动联合 业界合作伙伴提出新的 SRv6 头压缩技术方案 G-SRv6,该方案兼容标准 SRv6,使用固定的 SID 压缩长度 ,兼容原有地址规划,支持现网平滑升级是目前适用于运营商网络的业界领先方案。同时中国移动一方面在产业界推动产品实现,另一方面6 在 IETF 推动标准化进程,以加快 SRv6 在国内的落地部署。 2 概念和原理 2.1 SRv6 头压缩概念 下面是标准 SRv6 扩展头 SRH 的封装格式: N e x t H e a d e r H d r E x t L e n R o u t i n g T y p e S e g m e n t s L e f tL a s t E n t r y F l a g s T a gS e g m e n t L i s t 0 ( 1 2 8 - b i t I P v 6 a d d r e s s ). . .O p t i o n a l T y p e L e n g t h V a l u e o b j e c t s ( v a r i a b l e )S e g m e n t L i s t n ( 1 2 8 - b i t I P v 6 a d d r e s s )图 1 标准 SRv6 SRH 封装 SRv6 数据包的扩展头封装长度为 : 40 Byte( IPv6 头 ) + 8 Byte( SRH固定头 ) + 16*N Byte( Segment List) 。随着 SID 数量增加, SRv6 扩展头开销会增大。 根据 RFC8402、 RFC8754 的定义 , 一个 SRv6 SID 是一个 128bit 的IPv6 地址。在 SRv6 可编程网络中,它通常由如下三部分组成。 L o c a t o r F u n c t i o n A r g u m e n t s 图 2 支持网络可编程标准 SRv6 SID 格式示意图 Locator 是网络拓扑中分配给一个网络节点的标识,用于指导转发数据包到该节点。 Function 用来指示网络节点要执行的转发动作。 Arguments( Args)是可选执行参数,可能包含流、服务或其7 他任何相关信息。 Locator 可以细分为 B:N,其中 B 标识 SRv6 SID Block,一般由运营商分配给某个子网,通常用 Prefix 来表示; N 则是该子网内区分节点的标识。 B ( P r e f i x ) N ( N o d e I D ) 图 3 支持网络可编程典型 SRv6 Locator 示意图 从上面的 SRv6 报文头格式定义中,我们可以看出,报文头占比最大的部分就是 Segment List。在表项个数维持不变的情况下, SRv6报文的头压缩,实际上就是针对单个 SID 的压缩 。 下面是头压缩技术中常用概念,包括: 完整 SID, 指 128bit 长度 SID; 压缩 SID, 指 缩短 长度 后的 SID; SID 压缩算法, 指 完整 SID 压缩成 压缩 SID 的具体方法 ; 控制面协议扩展方案,包含 节点支持压缩的能力 发布, 可压缩的 SID 的发布等 ; 数据面协议扩展方案,包含完整和压缩 SID 边界识别, Segment List 和 DA( Destination Address) 的读写规则等; 2.2 SRv6 头压缩原理 实际上,一个 SRv6 网络中 很多 SID 都具有共同前缀 ( Common Prefix),一个 SID List 中 SID 的 共同前缀部分都是重复冗余的。所以,SID list 中 去掉 SRv6 SID 中的 Common Prefix 部分和其他冗余部分,保8 留 Node ID 和 Function ID 作为压缩 SID,可以很好的减少报文 头开销 。这也是本白皮书中描述的 SRv6 头压缩方案 中的 G-SID( Generalized SID, 通用 段标识符 )的 基本压缩 原理 。 G-SID 是可压缩 SRv6 SID 的一部分 ,和 Common Prefix 以及Argument/Padding 一起组合成完整的 SRv6 SID。 G-SID 支持 32bit 或者16bit 两种长度 。实际 从硬件处理效率 、 利旧和可扩展性的角度出发 ,32 bit 是一种 更常用 的压缩 SID 长度 , 因此本白皮书只 重点 介绍 32 bit的压缩 。 下面是典型的 32bit SRv6 压缩 G-SID 格式,该 G-SID 是由 128bit SID 中的 Node ID 和 Function ID 组成 。 128bit SID 格式是完整 SID, 也即 SRv6 SID; 32bit SID 为 G-SID,其 是完整 SID 的变化部分 。格式如下图所示: 图 4 支持压缩的 SRv6 SID 格式图 完整 SID 和 压缩 SID 的 转换关系根据 SRv6 Locator 的规律可以采用如下方式: G-SID 组成为 N( Node): F( Function) 压缩方案首先引出的是网络规划问题,要保证规划的 Node 数量和 Function 数量的总位数不能超出压缩长度。实际需要根据压缩长度、 Function 最大数量和 Node 最大数量综合分析,确定 Function ID和 Node ID 位数。 9 为支持压缩, 需要扩展控制面协议。将节点支持压缩的能力 , 可压缩的 SID 发布出去 。 为支持压缩, 需要扩展 数据 面协议。 因为 SRH 中 Segment List 可以插入 G-SID,所以需要更新 Segment List的访问复制逻辑和 DA的替换逻辑,同时加入对完整 SID 和 G-SID 边界识别方法。 为方便理解 G-SID 和完整 SID 混编并确保 128bit 对齐,引入 G-SID Container 概念。 一个 G-SID Container 是准确的 128bit 长度, 可以包含 : 一个 完整 SRv6 SID 多个 G-SID,比如 1 4个 32bit的 G-SID或者 1 8个 16bit G-SID,不满 128bit 则全零补齐 以 32bit G-SID 为例 , G-SID Container 可 能的格式如下图所示 。 图 5 32-bit G-SID Container 格式图 由于 SRv6 SRH 中可以编码多种类型的 G-SID Container, 所以这个SRH 我们称之为 Generalized SRH( G-SRH) 。这种支持将通用的多种Segment 编码到 SRH 中的 方案是一种 SRv6 的升级,我们称之为Generalized SRv6( G-SRv6) 。 10 3 技术方案 本节将介绍 G-SRv6 的整体技术方案 , 包括 G-SRv6 数据面方案和控制面方案 两 大部分 。数据面部分 主要描述压缩 G-SID数据封装方式,控制面部分 主要描述基于 IS-IS,BGP-LS 和 BGP SRv6 Policy 协议支持压缩 G-SID 的 扩展 。 G-SRv6 在数据封装上没有改变原生 SRH 格式和语义,天然兼容原生 SRv6 并可与原生 SRv6 混合部署。压缩 SID 推荐使用固定长度32bit,现有芯片在支持 SR MPLS 的基础上就可以支持,大为降低实现难度。由于 G-SRv6 压缩原理是提取公共前缀,对于前缀的长度没有任何限制,可以灵活适应现有网络地址规划和路由规划,不会浪费运营商分配的地址空间。 3.1 G-SRv6 数据面方 案 原生 SRv6数据封装主要体现在 IPv6报文的 SRH 扩展头部, G-SRH与 SRHRFC8754格式保持一致,没有对其格式和字段语义进行改动,兼容但支持将 128bit SRv6 SID 和 32bit G-SID 混合编程在 G-SRH 中,其格式如下图所示。