资源描述
网络数据面 基于主动遥测方案的 智能探针技术研究 (2020年 ) SDN/NFV/AI 标准与产业推进委员会 2020 年 9 月 版权声明 本白皮书版权属于 SDN/NFV/AI 标准与 产业 推进委员会 ,并受法 律保护。转载、摘编或利用其它方式使用本白皮书文字或者观点,应 注明“来源: SDN/NFV/AI 标准与 产业 推进委员会 ”。违反上述声明, 本联盟将追究其相关法律责任。 目录 版权声明 . 2 前言 . 4 一概述 . 5 二、业界关键技术介绍 . 7 (一) Microsoft: Pingmesh . 7 (二) Microsoft: NetBouncer . 8 (三) Google: 基于主动测量丢包定位方案 . 9 (四) FaceBook联合 Barefoot推动基于 INT的主动探针 . 10 三、基于 TWAMP的相关技术研究 . 11 (一)传统 TWAMP原理介绍 . 12 (二)支持对指定路径进行性能测量的 TWAMP . 13 (三)更精确的 TWAMP用于链路丢包率测量 . 13 (四)用于多路径性能测量的 TWAMP . 15 (五)支持逐跳性能测量的 TWAMP . 16 四、应用场景介绍 . 17 (一)网络故障发现 . 17 (二)网络故障定位 . 19 (三)网络性能测量 . 20 五、下一步工作与展望 . 21 附录一:作者列表 . 错误 !未定义书签。 附录二:参考文献 . 22 前言 本研究报告旨在阐述当前网络 基于主动测量的数据面 探针技术 的研究现状和困难挑战,通过对现有测量协议的扩展以及探针部署 方案的增强,进一步完善了数据面测量的能力,在网络故障发现与 定位以及性能测量等多个场景发挥重要价值。 一概述 网络测量技术是对网络进行认识与深入研究的重要手段,同时 也是实施网络工程、进行网络管理与优化设计的重要前提。利用网 络性能测量获得反应网络行为的第一手资料,可以保证网络正常运 行与关键业务的性能需求,是建立高效、稳定、安全、可控、可靠 网络需要研究的重点。 当前网络测量的对象主要包括链路或端到端延迟、带宽、丢包 率、吞吐量、突发 频率 和网络拓扑,并进行网络稳定性、可靠性、 可达性等方面的分析 1。网络测量的一类属 性是网络固有的,如网络 拓扑、链路延迟等;另一类属性反应网络的当前 状态,如排队时 延、抖动等。 网络测量的分类标准有多种方式 1。从测量方式的角度分为主动 测量、被动测量、混合测量。从被测者是否知情分为协作式测量与非 协作式测量。根据测量内容分为拓扑测量和性能测量。本文主要针对 从 测量方式 分类 进行划分的 主动测量 方法 进行研究。 ( 1)主动测量 :主动测量方式通过主动构造测量包的方式获取网 络性能。具有灵活方便、可操作性强、不依赖于业务流量等优点。例 如最简单的 ping命令可以获得双向时延和丢包率等参数。主动测量通 过分析探测数据包和响应数据包来获得性能参数,不会捕捉现网中的 应用,因此不会对网络 用户信息的隐私和安全造 成威胁。在进行大规 模网络测量时,主动测量是 一种快速有效的方式 2。 ( 2)被动测量:被动测量相比于主动测量不需要主动构造测量 包,也不会占用过多的网络资源,对网络 性能 影响较小,可以获得更 为准确的测量结果。人们常用被动测量来监测网络流,获取网络的流 量特征,但被动测量一般只对单节点的性能数据进行测量,没法获得 端到端的性能数据。 ( 3)混合测量:混合测量时介于主动测量和被动测量中间的一 种方式,它无需向主动测量一样主动构造测量包,但需要在业务报文 中插入测量信息,也可理解为一种随流测量的方式。其测量数据更加 准确,更能 反应用户的真实性能体验,但由于其依赖于网络中的业务 流量,在灵活性上有所欠缺。 主动测量的主要工具有 Ping、 Trace-route、 TWAMP等, TWAMP( Two- Way Active Measurement Protocol,双向主动测量协议)是一种应 用于 IP链路的性能测量技术。该技术使用 UDP数据包作为测量探针 , 在客户端和服务器正反两个方向进行双向性能统计。测量指标包括双 向时延、单向丢包率、单向抖动等,具体测量方式如图一。本文主要 针对于 TWAMP主动测量协议进行研究。 图一 : TWAMP检测原理 二 、 业界 关键技术介绍 (一) Microsoft: Pingmesh 为了判断应用程序感知到的延迟问题是否由网络问题引起,定义 和跟踪网络服务等级协议( SLA)以及网络故障自动排除,微软研发 了 Pingmesh3, 其已经在 Microsoft数据中心运行了八年多,每天收 集数十 TB级的网络延迟数据。 Pingmesh不仅被网络软件开发人员和工 程师广泛使用,还广泛应用于应用和服务开发人员和运营商,具有较 高的应用价值,本文对其进行一个简单的介绍,其中数据中心典型架 构以及 Pingmesh效果图见图 二 : 图 二 :数据中心架构及效果图 Pingmesh的主 要思想是进行 server之间的互相 ping,从而确定两 台服务器间的网络运行状态是否正常,但由于此种方式探测代价较大, 因此引入了分层 ping的方案,主要层次为 TOR/POD内、 DC内、 DC间 : a) TOR/POD内: TOR/POD内的所有服务器相互 PING b) DC内:将 TOR/POD认为是一个虚拟节点,然后 DC内的所有这些 虚拟节点相互 PING。 c) DC间:将 DC认为是一个虚拟节点,多 DC间相互 PING。 通过 Pingmesh得到的测量结果可以简单的判断一些网络故障类 型如某 Podset down、 Podset failure和 Spine failure等,但 在很多 场景下 不能精确定位到具体的交换机,在故障定位方面略显不足。 (二) Microsoft: NetBouncer 为了解决 Pingmesh不能准确确定故障位置的问题,微软提出了 NetBouncer4,其使用服务器发送 IP-in-IP探测数据包,使其转发 到 spine节点后原路进行返回,从而测量网络路径的数据包成功概 率,而不涉及交换机 CPU,探测结构如图 三 : 图 三 : NetBouncer探测结构图 得到各路径的成功概率后需 进一步引入一种 最优化 算法,将数据 包成功概率的路径映射到链路和设备的数据包成功 概 率 ,示例如图 四 。 作者的分析和实验结果表明,即使面临各种测量数据不一致, NetBouncer仍然实现(接近)零个假阳性和假阴性。微软已经在 Microsoft数据中心实施并部署 NetBouncer,现在它是网络 故障排除 和事件自动缓解的不可或缺的服务。 图 四 : NetBouncer链路丢包率推断 (三) Google: 基于主动测量丢包定位方案 NetBouncer主要解决的是数据中心这种层次化结构下设备或者 链路的丢包率计算问题,但对于一般网络拓扑结构并不适用。为此谷 歌提出了一套完整的丢包定位方案,可以很好的解决上述问题 5。下 图为本方案涉及的基于路径规划技术的端到端探针部署方案的一个 示例 : 图 五 :基于路径规划技术的探针部署方案 对上述路径进行测量,可得到各路径的丢包率值,再结合本方 案包含的推断算法则可以推断出每对 相邻接口 间的丢包率,因此整 个方案包含了两个算法和一个技术如图 六 。虽然谷歌并没有对外纰 漏两种算法的具体细节,但从其素材中可以大致推断最优路径算法 目的是用最少的探针完成每个相邻接口对的最小次数覆盖,而基于 最优路径集的故障定位算法则是采用了一个相邻接口对被多个丢包 率较高的路径经过则其 具有较大可能丢包率的思想,从而尽可能的 找到丢包率较大的接口对。另 一种技术则是探测包的路径规划技 术,其采用了 RSVP-TE,同理 SR等其他技术均可以完 成此功能。 图 六 :基于路径规划技术的探针部署方案 谷歌在其网络中真实部署了上述方案,发现了很多以前难以发 现的故障,包括静默故障,并且能在一分钟内定位完成。具有较低 的漏报率和误报率,对尚未投入使用的接口、链路和设备也具有检 测能力,使用效果较好。 (四) FaceBook 联合 Barefoot 推动基于 INT 的主动探针 FaceBook和 Barefoot认为传统端到端的主动测量方法很难定位 故障的具体位置,而当前网络正在变得更加专业和多功能化,因此他 们共同推出了一篇结合 INT能力的主动测量文稿 6 , 通过将时延、路 径等信息写入主动测量的报文中来获取更多的网络信息,从而辅助和 加速网络故障定位,具体的探针内容如图七: 图七 :结合 INT的主动测量探针 其中定义了了主动测量报文包头的格式, telemetry信息的位置 以及 telemetry信息的格式,此种方式提高了网络运维的效率。 三、基于 TWAMP 的相关技术研究 随着网络的快速普及和相关应用的日益深入,各种业务已广泛部 署,因此, 对网络能够提供的能力 也提出了更高的要求 。此时,需要 提供快速、灵活的 IP网络性能 测量 工具, 以便快速 了解 网络的性能状 况, TWAMP具有对网络性能进行快速测量的能力,其 具有以下价值: a) 网络性能监控 在传输速率不稳定,传输带宽动态变化的场景下,运营商需要 手段来检测传输网络的 QoS( Quality of Service)情况,便于及时 发现传输网络问题,采取相应的措施,如扩容、优化传输网络,以 保证用户业务的稳定性,改善用户体验。 b) 传输性能故障定界 在定位传输性能问题(例如丢包率过高、时延过大等)时,可 通过 TWAMP性能测量技术快速的排查和隔离传输性能问题,提高网络 问题定位速度。 ( 一 ) 传统 TWAMP 原理介绍 TWAMP在测量的链路中主动插入测试报文,根据测试报文携带的 字段计算丢包率、时延、时延抖动等。测 试原理 7如 0所示。 a) Session-Sender端发送测试报文。在报文发送时填上发送序 列数 S1、发送时刻的时间戳 T1。 b) Session-Reflector端接收 Session-sender发送过来的报文, 并记录接收时刻的时间戳 T2。提取报文里的序列数、时间戳、 Error Estimate、 TTL( Time To Live)。产生响应报文,回填上述数据, 并填入 Session-Reflctor端发送的报文序列数 S2、发送时间戳 T3、 Estimate等。 C) Session-Sender端接收响应报文,记录接收报文时刻 T4并 计 算接收报文数 C1。 D)双向丢包率和时延的计算: 前向丢包率 =( Sender发送包数 -Reflector发送包数) /Sender发包数 后向丢包率 =( Reflector发送包数 -Sender接收包数) /Reflector发包数 RTT =前向时延 +后向时延 =( T2-T1) +( T4-T3) =( T4-T1) -( T3-T2) 图八 : TWAMP检测原理 ( 二 )支持 对指定路径进行性能测量的 TWAMP 传统 TWAMP支持对指定的业务路径 (TUNNEL、 VPN)进行测量,但不 能对任意的业务无关路径进行测量,此种限制降低了 TWAMP应用于全 网性能的测量与故障发现的能力。针对此问题,本文列举了一种支持 源路由技术 对任意 指定 路径进行测量的方案 ,如图九,其指定了到达 目的节点所经过的路径 : 图 九 :支持对指定路径进行测量的 TWAMP 为了实现上述能力, TWAMP配置时, 除了对接口、 ip、隧道和 VPN 等进行配置,还要支持对 segment-list进行配置,从而沿着指定的路 径进行转发,如上图中 sender端构造的报文中包含了指定路径的 segment-list( 2:2, 4:4) ( 三 ) 更精确 的 TWAMP 用于链路丢包率测量 TWAMP测量的丢包率实际上是对业务丢包率的一种模拟,二者之 间存在一定误差,对于链路传输的丢包率测量场景,更准确的测量方 式如图十: 图十 :更准确的 链路 TWAMP丢包率测量方案 上述方案分为初始化阶段和测试阶段,前者用于初始报文计数 的同步,后者用于测量各时刻的链路丢包率信息 。 a) 初始化阶段: 发送端报文中插入 Tx counter字段,记录发送序列号为 1的报文时出接口 的计数 A,并在本地存储 反射端报文中插入 Rx counter和 Tx counter字段,记录反射序列号为 1的报 文时入出接口的计数 B和 C 发送到收到上述报文,提取 reflector的入出接口计数及收到此本文时本节 点的入接口计数 D b) 测试阶段: 发送端与反射端按照初始化阶段的方式收发包 去程丢包率 =_ _, 返程丢包率 =_ _ 为了携带上述接口计数信息,需对 TWAMP协议进行扩展,新增一 个接口计数 TLV,具体的格式如图十一 8: 图十一 :接口计数 TLV ( 四 )用于 多路径性能测量的 TWAMP 当前 TWAMP可以测量得到节点对之间的某条路径的性能,具体路 径的选择取决于用于 hash选择的五元组的值,此种方式并不能保证覆 盖节点间所有可能的路径( ECMP、 UCMP、 LAG),可能造成性能数据的 缺失,得不到指导网络运维与调优的目的。本方案为一种 TWAMP增强 方案,可支持多路径的性能测量,图十二中为一包含多路径的拓扑示 例,节点 A到节点 G存在 A-B-C-D-G、 A-B-E-D-G、 A-B-E-F-G三条等价 路径。 图十二 :多路径拓扑示例 具体执行步骤如下: a) A节点发送到 G节点的主动测量包,与传统 TWAMP方法一致 b) 主动测量包到达 B节点时发现到达 G节点有两个可选下一跳 C 和 E,将原主动测量报文复制为两份,并分别转发至 C和 E,同 理 E会将报文复制为两份,分别转发至 D和 F c) D节点作为反射端,会收到三份携带不同路径性能的主动测量 包,分别构造反射报文发送给 A节点。 ( 五 )支持逐 跳 性能 测量的 TWAMP 当前 TWAMP仅支持首尾节点的性能测量,对首尾节点间的中间节 点性能无感知,从而导致了 TWAMP应用的局限性,如果相对中间节点 进行性能测量,需要部署多个 TWAMP实例 ,造成配置和管理的极大复 杂性,本文提出了一种可以对中间节点性能进行测量的 TWAMP方案, 如图四: 图十三 :支持对中间节点进行测量的 TWAMP 上述方案使用了将待测量数据上送控制面进行封装的思路,通过 SRV6 OAM的 End.OPT SID(可选)触发数据面到控制面的数据传递, 在控制面完成中间节点性能数据的收集,并将其封装在 TWAMP报文携 带的扩展的 TLV中,至此完成对中间节点的性能测量。此方案 数据面 需要支持 SR的能力,测量方式支持单向模式和反射模式(携带 Return Path TLV ),其中前一种方式直接封装去程与返程的路径信息在探 测报文头中,后一种携带 return TLV用于反射端构造返程报文并指导 其转发回发送端。 注 : 上述方案中性能数据封装不限于控制面 , 数据面也是一种选 择 , 且触发方式也不限于 SR。 四、应用场景介绍 主动测量的一个重要的研究课题是测量要素和探针部署方式的 确定,对此本文提出了一种通用的智能探针架构如图 十四 ,其涉及 的主要因素包括测量参数的选取、探针的数量、探针的位置、测量 包的大 小、测量频率、以及测量路径等,通过灵活的数据封装和控 制算法组合,适配各种场景的需求。 图 十四 :智能探针架构 上述方案主要涉及的流程是应用侧根据自己的需求智能布放探 针 , 网络侧根据布放探针的类型收集性能数据,并最终将此数据转 化为测量报告,返回给对应应用。 (一) 网络故障发现 随着网络规模的增长,对可靠性和易用性提出了更高的要求, 及时发现网络故障对于一个健康网络来说具有重要意义,可以极大 的缩短故障持续的时间。传统网络故障发现主要以来与日志和告警 的分析,费时费力。此处展示了一种基于主动测量的网络故障方 案,其通过部署覆盖所有 link的探针来监控网络的状态,精确的判 断网络中是否存在异常。 图十 五 展示了一种探针的部署方案: 图十 五 : 覆盖整网 link的探针部署方案 1.探针布放算法 约束 1: 基于 IGP拓扑,计算 能够 覆盖全网 link的 探针 路径 约束 2: 可指定探针注入点, 以及最大 SR栈深 目标:最少的探针数量、最少的网络探测代价 2.故障检测算法 初始阶段:测量各探针路径对应的时延基准值(可用均值 /方差等) 监控阶段:检测各探针路径的时延和丢包变化,当端到端时延值 或丢包超过正常范围时,进行故障上报 通过探针的持续探测以及对探测数据的分析,可以快速及时的发 现网络问题,指导运维人员有针对性的解决网络故障。 注: 测量过程中可根据需求调整测量包的优先级 ,测量手段为支 持指定路径性能测量的 TWAMP。 (二) 网络故障定位 网络故障发现是网络故障恢复的基础,需要结合网络故障定位及 时 定位到故障 发生 的具 体位置, 从而采取适当的措施进行 故障恢复, 使网络 回归 到一种正常状态 。此处针对前述方案检测到的一条存在故 障的路径进行具体的链路或者节点的故障定位,最终得到故障的具体 位置,辅助运维人员进一步确定故障的根因从而解决故障,当前存在 两种形式探测方式分别如 图十 六 和图十 七 。 图十 六 : 基于 TWAMP+SRv6的故障定位方法 图十 七 : 基于 TWAMP+SRv6+ICMP的故障定位方法 1.数据面探针 探针可采用 TWAMP+SRv6或者 TWAMP+SRv6+ICMP的方式,前 者测量源节点到各个节点的往返时延,不更改 TWAMP协议。后者利 用 ICMP报文将相关性能信息返回给头节点,一次探测则可收集到所 有节点的性能,效率更高,但需要扩展 TWAMP协议。 2.故障定位算法 基于前面故障发现方法得出故障路径 监控阶段: 利用 TWAMP+SRV6或 TWAMP+SRv6+ICMP的测量 方式 按照由近到远或由远到近的方式依次测量故障路径上 源点到每 个节点的时延、丢包信息,从而可计算得到各相邻节点间的时延和丢 包 判断阶段:若某次测量的结果超过正常阈值,则定位到故障 位 置,进行故障位置的上报 ( 三) 网络性能测量 网络性能收集可用于 指导网络的规划和业务 的部署 ,如收集网络 中每条 link的传输时延可 用于控制器基于时延算路 。当前链路时延的 测量方法主要是通过逐 link部署 TWAMP,测量到每 link时延后通过 IGP进行全网泛红,并最终通过 BGP-LS的方式上送控制器,此种方式 不仅 配置量大容易出错 ,而 且 拓扑发生变 化时 需要更新配置,不易于 管理维护 , 而本文提出的基于逐跳 TWAMP性能测量的方案则可以解 决这些问题,工作方式如图十八: 图十八 : 基于逐跳 TWAMP的网络时延收集方案 上述方案 在某些指定的监控节点上部署环回探针,用较少的探针 数量完成整网 link的覆盖,从而达到整网 link时延测量的能力,如图中 只需要部署两个探针。此方式 可以很大程度上降低探针的部署量,解 决配置复杂且不易于维护的问题。 五、总结 与展望 本文对网络测量特别是主动测量的背景进行了详细介绍,并列举 了当前在实际网络中运行效果较好的几种主动测量工具,其具有非常 大的借鉴意义。于此同时,本文还介绍了几种增强的 TWAMP方案,使 TWAMP能够支持更多的应用场景。最后,基于增强的 TWAMP方案 , 本文 列举了其在故障发现和故障定位场景上的应用,具有指导意义。 进一 步研究主动测量协议的扩展方式,以支持更丰富的网络性能 测量功能,与 此同时找出更有价值的基于主动测量的网络运维场景。 附录 一 :参考文献 1 Liu X, Yin J, Cai Z, et al. Optimizing the distributed network monitoring model with bounded bandwidth and delay constraints by neural networksC/International Symposium on Neural Networks. Springer, Berlin, Heidelberg, 2005: 805-810. 2杨峰 .网络性能测量研究 .硕士论文 .哈尔滨工业大学, 2003. 3 Li Y, Miao R, Kim C, et al. Flowradar: A better netflow for data centersC/13th USENIX Symposium on Networked Systems Design and Implementation (NSDI 16). 2016: 311- 324. 4 Tan C, Jin Z, Guo C, et al. Netbouncer: active device and link failure localization in data center networksC/16th USENIX Symposium on Networked Systems Design and Implementation (NSDI 19). 2019: 599-614. 5 6 Data-plane probe for in-band telemetry collection draft-lapukhov-dataplane-probe-01 7 A Two-Way Active Measurement Protocol (TWAMP) 8 Simple Two-way Active Measurement Protocol Optional Extensions draft-ietf-ippm- stamp-option-tlv-04 致谢 感谢以下各位专家在本报告编制过程中的贡献: 宋跃忠 华为, 周天然 华为, 周铖 中国移动,
展开阅读全文