网络遥测(Network Telemetry)是一种新的快速故障排除模型,能够检测故障并隔离故障,按照网络状态整合数据,包括底层和覆盖的网络统计数据,主动将这些网络设备状态信息推送到监控设备上,数据具有很强的时效性。


数据中心网络遥测技术浅谈_java


网络遥测(Network Telemetry)是一种新的快速故障排除模型,能够检测故障并隔离故障,按照网络状态整合数据,包括底层和覆盖的网络统计数据,主动将这些网络设备状态信息推送到监控设备上,数据具有很强的时效性。其实网络遥测并不是新鲜的概念,早已在数据中心里有所部署。网络遥测分为带内和带外两种,带外网络遥测(Out-band Network Telemetry,简称ONT)是通过监控设备单独发送探测报文,从而收集链路状态信息,这种类似于在网络中部署一套长PING设备,通过PING网络中不同设备和主机,从而判断网络链路是否可达,在网络监控中普遍应用。带内网络遥测(In-band Network Telemetry,简称INT)是这两年才真正落地的技术,可以说是一种新型的遥测协议,它是由Barefoot、Arista、Dell、Intel和VMware共同提出的。


从两种遥测技术的介绍中可以看出,ONT通过发送探测报文,及时发现网络故障,报文类型可以是PING、TCP,UDP等等都可以,和网络业务流量无关,这种网络探测结果并不准确。原因有三:一是探测报文并不能覆盖所有转发路径和表项,有的网络链路故障仅仅是一条转发表项出问题,而探测报文只能走一条转发表项,大概率发现不了网络故障;二是探测报文的特征和业务流量不同,PING、TCP,UDP等类型并不能覆盖所有业务流量类型,比如组播业务,各种隧道封装业务,视频大包业务等,简单地周期性发一些探测报文并不是完全发现具体业务问题;三是探测报文虽少,但仍会占用少量带宽,造成网络带宽的一些浪费,探测报文的优先级和多业务类型的优先级也不尽相同,这样走的优先队列通道也不同,从而很难发现所有优先级队列里的网络问题。不过,纵然ONT有这么多缺点,这些年在数据中心网络中还是作为一种高效的网络监控技术使用着,毕竟和NetFlow、sFlow、SNMP这些监控功能相比,ONT仍有极大的技术优势。NetFlow和sFlow也实现了网络流量的采样和推送,但推送的是原始数据采样信息,仍需要进行二次数据加工分析,而且是按照一定的采样比来采集的,不能反映整个网络链路的流量全貌。而且网络设备的 CPU、内存、网络拥塞信息、网络事件日志信息等也无法通过NetFlow或者sFlow实时传递出来。SNMP可以采集到网络设备的CPU、内存、日志等信息,但又无法采集到数据流量,可以将NetFlow和SNMP同时都部署到网络中,这又会增加网络设备CPU负担,这些技术都要靠网络设备CPU进行处理,无疑增加了网络设备的负担,给网络稳定运行带来了不稳定因素。所以,ONT虽有不足,但总比其它现有技术要强,一定程度上实现了网络监控可视化。


随着技术的进步,INT出现了。INT技术是通过在数据层面收集和报告网络状态来实现对网络状态的监控,整个过程不需要控制层面参与,从而不会增加网络设备CPU的负担。INT技术原理是这样的:当业务报文进入第一台网络设备时(INT Source),通过网络设备上设置的采样方式采样并镜像出该业务流报文,INT Source在报文中封装一个INT header,同时定义INT结构,在INT header后添加INT数据,将需要收集的网络设备信息填入INT数据中;接着业务报文将被转发至下一台路径上的网络设备(INT Transit Hop),INT Transit Hop根据上一台设备的INT数据内容,继续添加本机的INT Metadata 信息;当业务报文经过所有INT Transit Hop,被转发至最后一台网络设备(INT Sink),INT Sink将INT Header拆除,同时将路径信息发送给监控服务器,这样监控服务器就获得了网络链路状态信息,包括:延时、拥塞、丢包等链路异常情况。同时,还能快速找到是哪台网络设备的哪个端口发生了故障。INT类似OAM协议,根据链路设备信息,就能知道报文是怎么走的,哪里有性能瓶颈,解决了网络转发路径和转发时延不可见问题。INT是通过镜像出来的报文,并不改变原始业务报文转发路径,INT是采样方式采集镜像,仅占很少部分的带宽。INT通过网络设备转发芯片硬件处理,并不消耗CPU资源,因此需要网络设备的转发芯片支持。现在最新的主流芯片已经支持了INT功能,这才使得INT有了实践部署的可能,不过它要求整个网络中所有设备都要支持才行,链路每台设备都要打标,这样INT才能监控准确,这对于已建好的数据中心部署有很大难度。一个数据中心的网络设备要全部更换掉,至少要三到五年,而且目前能很好支持INT的网络设备并不多,价格仍较高,数据中心要投入更多资金来建设INT网络。当然仅监控网络链路还不够,还需要监控网络设备的各种运行状态,在INT网络里,显然没必要再去部署SNMP了,而是选择了gRPC(Google Remote Procedure Calls ,谷歌远程过程调用),gRPC是Google公司开源的一个高性能、跨语言RPC框架,使用HTTP/2协议,并使用Proto Buffer作为序列化和反序列化的工具。gRPC可以实现周期性推送网络设备的各种运行状态给监控服务器,gRPC具有响应速度快,实时性高,采集数据全面的优点,很好解决了实时数据无法有效传给监控服务器的问题。当然,INT的数据也可以通过gRPC发送给监控服务器,INT+gRPC奠定了数据中心网络可视化实现的技术基础。


网络遥感技术是实现数据中心网络可视化和智能运维的有效手段,尤其是INT技术,对现有的ONT技术进行了彻底改良,抛弃现有所有的实现方式,真正地实现网络业务端到端的流量可视化,打破“网络黑盒”束缚,为网络监控提供精准实时的数据支撑。可以预见,在不久的将来,INT将会替代ONT,实现真正的网络可视化和智能运维。