华为云Stack 通过云平台运维功能提供了相应的网络定界能力,将原来数小时甚至数天才能定界清楚的故障场景,缩短到了分钟级,并且精确度和流量适应性都极大的提高,同时很大程度上降低了维护人员的技能要求和对云平台内部实现细节的熟悉程度的要求。
图1 华为云Stack网络测量工具界面
在IETF RFC 7799论文中,将网络测量分为了三类:主动(Active,构造测量报文来获取网络运行信息)、被动(Passive,在业务报文原始数据来获取网络运行信息)和混合态(Hybrid type;混合态又分为两种,一种是在原始业务报文上添加比如修改DHCP、IP/TCP OPTION等,另一种是主动和被动的同时使用)。
仅仅基于原有故障业务的报文进行测量会存在不可控的问题。举个例子,假设是租户错误配置防火墙规则导致特定源端口丢弃,导致客户业务流出现了TCP流量中断;想定位/定界这个问题需要基于在该TCP流报文路径各个结点继续采集获取网络运行信息,但是因为TCP中断该流,不再有新报文发送而无法继续测量。而对于该断流场景,又不能基于Ping报文等做测试,一方面Ping报文相比TCP五元组在网元集群时可能因ECMP/LACP的哈希走不同路径,另一方面防火墙/SNAT匹配时走的有状态转发规则也不同,所以可能存在Ping测量没有问题,但是特定TCP流有问题的情况而无法测量出结果。因此,基于业务报文自身的测量,对于测量速率、测量总量等都无法有效控制,被动测量的方式在云网络测量系统的测量效果将会十分不理想。
我们可以看出,云网络测量想达到极好的测量效果,我们必须使用有可编程能力的网络测量技术,并且使用主动测量来设计相关方案,从而实现精确的网络测量。我们提出了华为云自己的网络带内遥测协议。应用场景包括 云计算 网络的业务故障网络节点测量定位,并兼容传统数据中心测量的能力。可用在企业自建云下,可以进行 虚拟网络 和物理网络组件问题定界以分配问题到具体责任组件,还可以为公有云租户提供定期巡检能力,让其业务感知云平台网络情况,合理进行业务流量优化调度。测量平台整体架构如图3中的架构。
图2 云网络测量架构设计
华为云Stack云网络方案实现通常分为控制面和转发面两个部分,云网络测量系统对应的分别由测量控制器、测量CMDB、测量网元及其对接Agent或SDN控制器几个关键组件构,这些组件互相配合,实现网络精准测量。我们为此申请了专利《网络测量系统、方法、设备及存储介质》申请号:201910886165.6。
在整个测量系架构统设计中,我们实现了如下几个关键技术点:
- 高精准性:测量系统基于故障业务流报文/L2/L3/L4头等信息结合测量标识构建Active的测量报文,从而实现精确的测量;
- 高安全性:测量系统对租户的业务流报文的进行安全测试: 在测量路径始节点开始注入测量,测量路径各个节点进行测量标识匹配并将测量信息送到测量控制器和分析器,并在测量路径末节点丢弃该测量报文避免对租户业务产生不良影响,各节点测量信息在分析器汇总后将测试结果返回测量系统管理者;
- 低资源损耗:测量系统针在转发面网元通过测量标识来识别测量报文,转发面网元对测量报文的识别特征归一,仅需要固定下发少量匹配规则,不需要随着测量动作动态更改网元配置,转发面性能影响在3%以下,大大减少了网元匹配的资源耗费。
- 高灵活性:测量Agent采集各测量结点的测量信息时,除了原始测量报文的内容,还包括报文转发状态信息和时间戳等相关信息,并且可以基于编程能力自定义所需要的采集信息;
图3华为云网络测量方案关键技术点说明
华为云Stack的虚拟网络基于测量方案——网络带内遥测协议,实现不同租户、不同业务流报文的测量标识在控制面、转发面等协作测量。既可以实现网络故障出现后的故障定界,也可以在故障发生前进行周期性巡检来事前预防,特征包括丢包和时延等。经过精心设计的云网络测量方案不仅可以适用于Underlay和Overlay的不同网元,还可以自适应不同网络流量的路径,后续云网络新能力上线后测量能力无需重新开发适配,帮助政企业务在云上稳定运行。