网络自动化的奠基石:看“遥测”如何打败传统网络监控

遥测是什么?从字面意思看遥远的测量某个东西?还是不误导大众了,比较权威的说法是遥测是对被测量对象的参数进行远距离测量的一种技术,起源于19世纪初,广泛应用于航空航天、军事、工业、生物研究、医学等等方面。

比如发射卫星后,地面的卫星研究中心需要监测其运行状态,因为卫星的运行状态会受太阳光的压力和其它星球运动的影响而发生变化,这时候我们需要通过传感器去测量卫星的飞行速度、旋转速度、自旋轴的方向等等,然后靠高频的无线电波送回地面,进行分析。

同理,承载上面这些宏观业务(航天、工业、医学等)的网络本身也可以进行遥测,通过对网络设备的数据进行远程高速采集和监控,提供更实时、更全面和更精细的网络监管能力。

随着数据中心承载的业务越来越多,一方面数据中心网络快速演变,SDN、大二层Overlay、以及RDMA等技术快速落地应用,另外一方面数据中心需要管理的网络设备也越来越多,如何实现对数据中心全网实现端到端的流量管理与故障监控,甚至故障预判则越来越迫切。

传统的网络监控方案诸如CLI、SNMP和Syslog,都因各自的局限性不能满足云数据中心对于网络监控的要求。

因此,面对大规模、高性能、实时、全路径网络数据监控需求,SDN网络呼唤新的网络监控方式:Telemetry解决方案在此背景下,应运而生!

深究Telemetry技术

Telemetry(遥测技术),一般是指从物理网元或者虚拟网元上远程实时高速采集数据,实现对网络实时、高速和更精细的监控技术。相比于传统的网络监控技术,如CLI、SNMP,Telemetry通过推模式,主动向采集器上推动数据信息,提供更实时更高速更精确的网络监控功能。

我们先来看看一下Telemetry的模型结构,作为一个网络监控技术,Telemetry由网络设备和网管系统两大部分组成的。

作为网络设备,Telemetry相当于原始数据模型,编码类型和传输协议的组合。对于网管系统,Telemetry就相当于收集系统存储系统和应用分析系统的组合。

在网络设备测,Telemetry按照样yang模型组织数据,用GPB(goole protocol buffer)格式编码,并通过加PC协议传输数据,使得数据的获取更高效,智能对接更便捷。而在网管系统测,Telemetry可以完成数据的收集存储和分析功能,利用分析结果可以为网络配置调整提供依据。

Telemetry与传统网络监控方式对比

下面通过一些传统网络监控技术的对比,介绍一下Telemetry优势。

首先,传统监管方式,例如SNMP/CLI,使用了“网管查询到设备响应”的拉模式(PULL Mode)采集数据。一次查询都有一次响应,设备需要处理大量重复的查询。Telemetry采用了“网管定制-设备实时推送”的推模式采集数据。一次定制就可以对应多次响应,降低了设备处理查询报文的压力。

其次,传统网络监控方式通过拉模式获取数据。如果网络卡顿或者网络获取不及时,就容易造成数据失真。而Telemetry周期性的向网管系统推送数据,避免了网络延时造成的数据不准确。

第三,传统的网络监控方式如果要采集N台设备的数据,需要执行N次的查询操作。如果同时采集M的数据,则需要N*X操作。而采用Telemetry技术,所有的设备只需要提前配置订阅。各种数据实时上报,中间的过程无需人工操作。

针对以上做出总结:

Telemetry的工作模式是推模式,可以主动推送数据,精度是亚秒级。而且比较关键的一点是,Telemetry的数据结构采用采用标准结构和标准编码。方便对接第三方的设备,有助于网络监控的效率的提升和监控质量的提升。

我们再来看看其他几种传统的网络监控模式的特性。

CLI、SNMP、Syslog

CLI:作为应用最广使用最久的网络监控技术,最大的问题就是兼容性,同类产品不同厂商之间的兼容性,甚至同厂商不同版本(比如软件平台切换)之间也会存在差异。而往往现网环境下,大概率会是多厂商设备组网,一旦设备升级调试,都需要更改运维脚本,而多厂商则意味着需要准备多个不同版本的运维脚本,即使本来是很简单的事情也会变得复杂。

SNMP:“拉”模式方式需要采集器通过轮询的方式处理每个网元,随着网络规模、采集器以及采集信息的增加,网元需要接受越来越多的查询,因此网元不能的正常工作;同时因为采用的是“拉”模式,传输时延无可避免,导致监控到的网元数据会进一步失真,只能实现分钟级粒度,远达不到秒级甚至亚秒级的颗粒度。

SNMP虽然也有“推”模式,即Trap上报,但推送数据仅告警和事件,对于接口流量之类的数据,不支持;同时又因为采用的是UDP传输协议,又存在丢包的可能。因此进一步限制了SNMP的发展应用。

Syslog:长期以来,Syslog的格式是比较随意的。即使有规范格式,但由于规范出的晚很多厂商并没有遵守或不完全遵守。因此Syslog虽然支持“推”模式,能够在设备产生告警和事件时及时推送数据,但因为推送数据的随意性以及数据主要以告警或事件方式,和SNMP一样对于接口流量信息则力所不及。

总体来说,传统的网络监控方式如SNMP、Syslog可以采集到网络设备的CPU、内存、日志等信息,但缺点是无法采集到网络数据流量,无法判断链路拥塞情况。

拿公交运行来类比,相当于挨个站点问过去:诶,你这车流多少呀?站点状态怎么样?

NetFlow、sFlow

再往上高级点的采集功能,有NetFlow、sFlow等,可以实现网络数据流量的采样和推送,但推送的是原始数据,需要进行二次数据加工分析;而且是按照一定比例采集的,不能反映整个网络链路的流量全貌,所以不能预测流量和拥塞;同时,网络设备的 CPU、内存、网络拥塞信息、网络事件日志信息等没有实时传递出来,无法判断是什么原因导致的拥塞。

相当于抽取一些车辆,在指定地方查看行车记录,看他什么时候经过了哪里,汇总分析后可以一定程度上判断的道路运行情况。

有人说如果将NetFlow和SNMP同时都部署到网络中,这样不就OK了?但是这些技术都要靠网络设备CPU进行处理,无疑增加了网络设备的负担,给网络稳定运行带来了不稳定因素。

Out-band Network Telemetry

还有一种网络监控方式叫带外网络遥测(Out-band Network Telemetry,ONT,简称带外遥测),可以有效改进采集不全和CPU负担等问题,带外遥测是通过监控设备单独发送探测报文,从而收集链路状态信息,类似在网络中部署一套长PING设备,通过PING网络中不同设备和主机,从而判断网络链路是否可达。相当于派出一辆辆连接检测的小车,看站点是否可达。

但它并不是最完美的方案,因为探测报文并不能覆盖所有转发路径和表项,有的网络链路故障仅仅是一条转发表项出问题,而探测报文只能走一条转发表项,大概率发现不了网络故障;另外探测报文虽少,但仍会占用少量带宽,造成网络带宽的一些浪费。

Telemetry关键网络技术解析

Telemetry方案网络技术一般主要涉及INT、gRPC、ERSPAN以及NetConf等,其中,ERSPAN主要负责从物理网络的指定端口捕获指定的数据报文(包头或者全包),并通过GRE(或者其他合适封装)走带内转发到指定的Target IP(Host),而NetConf主要负责控制器配置下发。

传统探测网络时延和路径主要是Ping和Tracert,但是数据中心网络对于时延的要求越来越高,Ping和Tracert并不能精准的定位出到底是那台设备的那个端口的转发时延最高,因而不能对网络做出针对性的优化,INT技术正是为了满足这一需求诞生的。

INT是In-band Network Telemetry(带内网络遥测)可视化技术的一个重要组成部分,是让网络管理和运维走向真正自动化的第一步,也是最关键的一步。透过INT技术,可以获知报文实际转发路径上的每台网络设备IP、出入端口信息、队列ID、CNG拥塞通知标记、出入时间戳以及转发时延等,并且在路径探测的最后一跳上,对监测的数据进行UDP头和IP头封装,统一发送给采集器。同时因为INT技术采用的是推模式,因而支持一次配置下发,网元持续上报数据,INT技术的优势有:

  • 支持推模式,支持配置订阅和配置下发,持续数据上报;
  • 支持配置原始报文的采用率,这样可以有效节省网络资源和数据资源;
  • 支持在路径探测的最后一跳,直接封装报文并发送给采集器,无需中间节点单独重复上送数据,节省网络资源;
  • 支持收集探测路径上每台设备的设备信息、接口信息、队列信息、时间戳信息和转发路径信息等,包括采集Underlay网络和Overlay网络路径信息;

gRPC(Google Remote Procedure Call,Google远程过程调用)是Google发布的基于HTTP 2.0传输层协议承载的高性能开源软件框架,提供了支持多种编程语言的、对网络设备进行配置和管理的方法。gRPC目前提供C、Java和Go语言版本,分别是gRPC、gRPC -Java、gRPC -go;gRPC基于HTTP/2标准设计,带来诸如双向流、流控、头部压缩、单TCP连接上的多复用请求等特性。

gRPC可以实现周期性推送网络设备的各种运行状态给监控服务器,gRPC具有响应速度快,实时性高,采集数据全面的优点,很好解决了实时数据无法有效传给监控服务器的问题。
当然,INT的数据也可以通过gRPC发送给监控服务器,INT+gRPC奠定了数据中心网络可化实现的技术基础。

Telemetry用例分析

随着数据中心的惊人增长,包括Web、云数据中心、软件定义的网络和大数据的扩展,需要一种完整的解决方案来优化网络和缓解网络带来的挑战。目前业界很多玩家都推出了高级网络遥测方案为网络提供了端到端的可见性。

Telemetry数据传输模型是YANG,支持三种YANG模型,分别是IETF、Openconfig和私有模式,其中:IETF模型:IETF定义的模型,该路线主要运营商主导,但因为运营商自身业务太过庞大,因此标准进展相对较慢;Openconfig模型:由Google牵头主导的模型,国内阿里,腾讯均有参加;私有模型:新华三、瞻博网络等都有涉及。

下面来看一下具体的案例

Mellanox通过网络遥测技术为以太网交换机注入能量

2019年5月,Mellanox通过网络遥测技术增强以太网交换机的性能,以监控数据平面中的公共云,私有云和企业计算。

该监控技术被称为“What Just Happened ”(WJH),可帮助企业识别数据平面中的异常情况。据该芯片制造商称,WJH提供了其他流式遥测和带内网络遥测(INT)产品所没有的独特服务。这种独特性可以理解为提供有关异常网络行为的上下文和可操作细节的能力,从而消除网络故障排除中的猜测。

WJH如何运行

WJH能够利用Mellanox的Spectrum和Spectrum-2以太网交换机ASIC硬件功能检查数据包。这些交换机利用Melannox的InfiniBand互连技术,使企业能够通过智能网络结构连接快速计算节点。

这种遥测技术将在Mellanox Onyx(以太网操作系统),Cumulus Linux(Cumulus的开放网络操作系统)和SONiC网络操作系统(基于Linux的开源网络OS,可在交换机和ASIC上运行)上提供。而且它可以与InfluxDB,Grafana,Kibana等开源工具以及Mellanox NEO和Cumulus的NetQ等其他数据中心监控产品集成。

Junos接口遥测

随着网络上对象的数量及其生成的度量标准的增加,用于收集操作统计信息以监视网络运行状况的传统“拉模型”(如SNMP)直接限制了网元的扩展。

Junos遥测接口(JTI)通过依靠所谓的推送模型异步传输数据来克服这些限制,从而消除了轮询。发送数据的请求由管理站发送一次,以流式传输定期更新。因此,JTI具有高度的可扩展性,并且可以支持监视网络中数千个对象。使用Junos Telemetry Interface,用户可以设置传感器以收集和导出各种系统资源的数据,例如物理接口和防火墙过滤器。JTI支持两个数据模型即OpenConfig数据模型、瞻博网络自定义的开放和可扩展的数据模型,每个数据模型使用传输方式不同。

用于性能管理的遥测流

Junos遥测接口的一项主要功能是性能监控。通过将数据流传输到性能管理系统,网络管理员可以测量链路和节点利用率的趋势,并实时解决网络拥塞等问题。

思科模型驱动遥测

Cisco IOS XE是企业的网络操作系统。它可以在Catalyst 9000等交换机、ASR 1000、CSR1000v、ISR 1000和4000等路由器,Catalyst 9800无线LAN控制器以及IoT和Cable产品系列中的其他一些设备上运行。自IOS XE 16.6发行以来,一直支持模型驱动的遥测,这为网络运营商提供了从其网络获取信息的其他选项。

模型驱动的遥测技术是一种新的网络监测方法,它使用推模型从网络设备中连续不断地传输数据,并提供对运行统计数据的近乎实时的访问。通过在NETCONF-YANG上使用基于标准的YANG数据模型,应用程序可以订阅它们需要的特定数据项。Cisco IOS XE流遥测技术可以将设备上的数据以更高的频率、更高效的方式推送到外部收集器,同时还可以将数据转换为流。

华为FabricInsight数据中心网络分析器

华为的iMaster NCE-FabricInsight是面向数据中心网络的分析器,基于大数据分析技术,为用户提供无处不在的网络应用分析与可视化呈现,打通应用和网络的边界。

通过Telemetry技术采集海量真实业务报文,提供数据中心内部应用和网络的关联分析,实时呈现应用地图及网络质量,帮助客户快速识别故障,并在业务产生影响前主动识别风险。

FabricInsight根据功能特性分为网络智能分析基础包和网络流分析增值包。基础包主要包含:网络状态可视、网络异常检测、预测性维护和网络服务类问题感知与分析。

网络流分析增值包主要:应用与网络关联分析、TCP业务流分析、应用质量/安全合规类Issues智能分析、RoCE全流可视化和边缘智能分析。

Arista的高级网络遥测

Arista网络遥测与应用程序结合使用,通过改进的实时系统和网络性能可见性,它与应用程序行为和先进的端到端路径监控工具相关联,从而大大降低了应用程序停机时间和网络运营成本。

Arista的Telemetry Tracer策略包括三个关键组件(如图1所示),这些组件通过与大数据,云和虚拟化环境等分布式应用程序集成,通过现代软件定义的方法带来了更深的网络和应用程序级可见性。

除以上列举的遥测产品外,还有2019年Broadcom发布Trident 4交换芯片。据说该芯片将业界最高的以太网交换性能和编译器可编程的分组处理遥测功能结合到一起,支持2.0到12.8Tbps交换能力,为企业网带来革命性变化。

初创公司Arrcus研发的ArcOS系统。这是一个独立的,与硬件无关的网络操作系统,适用于白盒系统,专门针对服务提供商和云计算平台的大规模可扩展基础设施。在遥测方面ArcOS主要包括控制平面、智能可编程数据平面适配层(DPAL),用于控制平面、数据平面和环境的数据模型驱动的遥测,以及一致的YANG/OpenConfig API接口,便于编程访问。这些功能与Broadcom的StrataDNX Jericho+平台相结合,可以支持完整的BGP互联网路由表。

新华三的带内遥测技术也是该公司可视化网络解决方案中的重要组成部分。相比传统网络监控技术,带内遥测一次配置,持续数据上报;采集路径灵活信息丰富,可在普通网络、EVPN和VXLAN网络中部署;采集精度灵活降低设备和采集器的数据处理压力。目前该公司的产品中S6850 & S9850系列交换机支持做Ingress、Transit、Egress。S12500X-AF 和S9820系列交换机仅支持做Transit。S9850系列交换机做Ingress时,需开启接口的内部环回功能。

SDN初创公司云杉网络的DeepFlow®是一款虚拟网络流量采集、可视化与分析产品,帮助企业在云环境中统一采集并分发任意虚拟机之间的网络流量,实现对业务关键链路的全面性能监控,并提供虚拟网络端到端的全路径诊断,解决企业上云遇到的虚拟网络监控、运维、安全等难题。

网络遥感技术是实现数据中心网络可视化和智能运维的有效手段,是对传统网络监控的补充,真正地实现网络业务端到端的流量可视化,打破“网络黑盒”束缚,为网络监控提供精准实时的数据支撑。可以预见,在不久的将来,在各路玩家的努力下,可实现真正的网络可视化和智能运维。

参考链接:
1.http://www.ciotimes.com/Infrastructure/170208.html
2.https://www.sohu.com/a/341266653_730763
3.https://mp.weixin.qq.com/s/uajBIn_flW_2zh6CcJpk0Q
4.https://www.sdxcentral.com/articles/news/mellanox-infuses-ethernet-switches-with-network-telemetry-tech/2019/05/
5.https://www.juniper.net/documentation/en_US/junos/topics/concept/junos-telemetry-interface-oveview.html
6.https://e.huawei.com/cn/products/enterprise-networking/switches/data-analyzer/FabricInsight
7.https://www.arista.com/en/solutions/software-defined-network-telemetry


  • 本站原创文章仅代表作者观点,不代表SDNLAB立场。所有原创内容版权均属SDNLAB,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用,转载须注明来自 SDNLAB并附上本文链接。 本站中所有编译类文章仅用于学习和交流目的,编译工作遵照 CC 协议,如果有侵犯到您权益的地方,请及时联系我们。
  • 本文链接https://www.sdnlab.com/23887.html
分享到:
相关文章
条评论

登录后才可以评论

SDNLAB君 发表于20-02-27
1