1、什么是网络流量分析技术?
想要捕获网络流量,在传统物理环境中,一般可以通过路由器、交换机镜像与分光器获得,或者通过一些硬件防护设备(如防火墙、IPS、UTM 等)获取。在虚拟化或者云环境中,则需要使用流量采集工具。
流量采集完成后,就需要对采集来的流量进行分析。一般情况下,我们会使用Wireshark、Sniffer、Tcpdump等软件进行分析。但由于内存、存储、网卡与性能的限制,采用这些分析软件无法满足万兆业务链的网络流量分析需求,它们更适合于小流量的深度分析场景。因此,针对网络流量较大的应用场景,我们往往会使用专用的网卡、内存与存储,并且进行软硬件适配、使用调优的高性能服务器,具备分析引擎、解码引擎、行为模型、自动化分析模型等,可以实时分析网络交互中的每一个会话与请求。同时,可以应用在分布式场景中,对多中心、多区域、多节点的数据进行关联分析。
综上所述,网络流量分析技术就是通过记录、审查和分析网络流量数据,以检查网络在安全性、操作管理与网络健康等各方面的表现,从而为网络运维、应用运维乃至安全运维提供帮助。
- 网络运维:可以通过网络流量分析技术查看网络流量统计信息和粒度级别的详细信息;
- 安全运维:可以通过使用网络流量分析技术分析网络流量模式,以便更快地发现漏洞,或进行攻击溯源;
- 应用运维:可以通过解析数据包来查看业务请求/响应的快慢等更多业务层面信息。
接下来,让我们对网络流量分析的关键步骤进行拆解,看看网络流量分析的技术优势,如何利用其做好性能管理。
2、网络流量分析技术详解
第1步:流量采集
对于流量较大的企业而言,无论是DMZ区、Web区还是核心区,往往需要对复杂的网络区域进行全流量捕获,需要具备高性能、大容量存储的采集工具。
同时,针对全网流量采集需要注意一下两个关键点:
- 数据越精细越好:尽可能地采集各个节点的网络数据,包括传统环境、云环境、容器环境等,数据越精细则定位问题越高效;
- 数据质量越高越好:虽然网络数据实时且安全,但在采集时不可避免地会出现重复及遗漏,为了规避因为数据不准而带来的排障干扰,数据的质量越高越好。
第2步:协议解码
由于在网络中收到的数据都是二进制的,人们无法对其进行有效识别,这就需要对网络数据进行解码。
我们将解码后的数据按照属性分为如下三层:连接数据、性能数据、业务数据。
如何对各个字段正确解析、正确关联请求与响应、正确识别异步交易等是解码的关键,也是进行性能管理的必要前提。而不同类型的网络数据包,其解码分析也有所不同:
1、通用协议的解码分析:
通用协议的解码分析相对容易。TCP/IP作为标准的通信协议,在对数据包链路层、网络层、传输层进行解码时(比如 HTTP、DNS、SMTP、FTP等通用的应用层协议),建议直接使用 Wireshark、Sniffer 等流量分析工具。
2、私有协议的解码分析:
不同行业都存在私有应用层协议,如果协议采用的是标准接口格式,比如 XML、JSON 等,只需要参照标准的格式进行解码分析即可。但如果是非标准接口的协议,则需要按照接口规范进行协议解码。对于行业或者用户私有的报文格式,则需要按照其报文封装格式规范进行单独解码,这就需要使用流量分析产品内置的解码库或解码引擎。此外,TCP或者UDP所承载的应用层消息部分,往往包含了大量有价值的信息,例如请求url、交易代码、交易流水号、交易金额、返回码、用户信息等等,这是解码中容易被忽略的地方,需要使用更智能的解码处理器。
第3步:关系梳理
如果我们的服务数量并不多(如在10个以内),那么管理这些服务往往轻而易举。但是一旦拥有成百上千个服务接口,那么这些服务的访问关系就会变得错综复杂。有些企业通常会使用CMDB来记录这些关系,但随着业务系统的更新与迭代,难免会出现遗漏或者滞后。因此,我们可以采用更智能的流量分析技术来辅助进行访问关系梳理,以此帮助我们保障新上线的系统,也可以对防火墙策略进行验证,去除无效的控制策略。同时,如果能做到全链路的业务关系梳理就更好了,可以帮助我们快速定位故障节点并锁定数据包丢失的位置,节省大量的排障时间。
第4步:专线监控
面对越来越多的线上业务、公有云的使用普及等,互联网、专线及分支机构线路的质量便成了企业的生命线。通过流量分析,可以从以下几点实现对线路质量的实时监控:
1、针对带宽的精细化告警:可以配置各种级别的告警来监控带宽使用率,一旦触发告警可以快速分析;2、秒级数据展示:一般的监控设备是通过采样实现,数据要依托于采样的频率,而流量分析可以实时呈现秒级数据,方便查看每一次线路抖动;
3、带宽成分快速识别:基于我们已经定义好的应用,一旦有突发状况,就可以快速判断哪种应用占比较多、是否正常。如是未知的应用,则可以快速查看其对应的IP和端口等信息。
第5步:网络与应用性能管理
利用网络流量分析技术对网络性能进行可视化呈现,这是智能化网络性能管理的优势。我们常常从链路、设备、应用三方面来对网络性能进行可视化管理:
- 链路方面:重点呈现内部网络中各个互联设备之间的线路;
- 设备方面:重点对出口路由器、核心防火墙、分区交换机、负载均衡等对业务正常运行起关键作用的设备进行可视化呈现;
- 应用方面:对现有网络中运行的正常业务系统进行持续覆盖,逐步减少对未知流量的监控。
与此同时,通过网络流量分析还可以获得多维度的网络参数指标:
- 负载量:吞吐量(BPS)、并发连接数、包率(BPS)、平均包长、字节数、字节率、包数、平均包长、广播包数、活动连接数、会话数、单播包数、ARP包数等;
- 网络性能:重传、重传率、乱序、乱序率、网络时延、到客户端的网络延时、到服务器的网络延时、RX丢包、RX丢包率、TX丢包、TX丢包率等;
- 应用性能:零窗口、服务器响应时间、客户端响应时间、服务器数据传输时间、客户端数据传输时间、服务器ACK时间、客户端ACK时间、会话时间等;
- 应用可用性:SYN、SYN&ACK、RST、FIN、建连、成功建连、失败建连、建连成功率、建连失败率、建连超时等。
通过上述四个维度的参数指标,将网络流量按链路、设备、应用系统三方面来构建直观的性能监控视图,并可以伴随着流量增加进行持续监控、持续完善,通过智能化告警来进行网络故障排查。保障网络的稳定运行是网络运维管理团队的工作核心,如果关键业务的应用程序出现故障,业务程序无法正常使用,网络运维团队一般会排查线路情况、调用应用日志、查看服务器进程、查看数据库等等。同时,也需要其它部门技术人员进行协助,往往耗费大量时间且也不一定能解决问题。
我们可以将常见的网络故障分为以下四类:
- 流量突发问题:比如连接数高、异常访问、网络攻击、网络病毒等;
- 三次握手和四次挥手问题:比如端口复用、操作系统连接池满、建连失败等;
- 传输问题:比如防火墙问题、负载均衡问题、访问缓慢等;
- 传输效率问题:比如应用配置错误、网卡问题等。
运用网络流量分析技术,对网络流量的业务访问路径进行全链路梳理就能将以上问题轻松化解,从而快速定位故障节点、及时处理故障,提升工作效率。
除此以外,网络流量分析技术可以提供细化到每个TCP/UDP的会话详情,并且可以实时存储数据包。比如用户普遍反应访问A应用特别慢,我们会根据数据包特征来找到该笔会话,通过性能指标参数,快速判断究竟是网络慢还是应用慢。
若是应用慢,那么我们可以提取出该会话的数据包,用Wireshark等流量分析软件来查看该会话中每一笔的请求/响应,查看是否某一类的请求比较慢,可以将请求的相关数据提供给开发来进行相应优化。深入到会话级的性能分析,可以提供可靠、快速的网络与应用服务异常的故障定位能力。
企业内部的系统都是逐步建设起来的,尤其是金融行业,往往拥有各种各样的自建系统,大多数系统的开发商都不同,如何用统一标准来衡量业务系统的健康状况便成为难题。通过网络流量分析技术,我们可以解析每一类业务系统的交互报文,提炼出关键字段,然后针对该字段的时序变化情况,从请求数量、,响应率、成功率、响应时间这四个指标来实时刻画该系统的运行状况,依次类推,对全网业务系统性能进行统一评估。
此外,针对提供对外服务的系统,通过对网络流量的收集和解析,使用traceid或网络五元组等条件进行组合关联,统一展现交易请求访问流经的各业务系统的性能指标,反应每笔请求从门户进入,经过防火墙、负载均衡、核心应用到数据库等整个业务处理过程的实际消耗时间,处理结果及每段原始交易纪录,深层解析交易处理流程,精准刻画用户访问路径。
第6步:辅助业务运营
由于网络流量分析技术可以根据监控的链路、设备、应用生成网络运行的基线,进而定制各种指标类型的报表以供数据分析,并对新业务上线、带宽规划、安全策略等决策提供科学依据。
此外,经过处理的高价值的业务数据蕴含丰富的业务信息,可以辅助业务部门运营。将解析出的用户信息、购买偏好、购买金额等实时数据提供给营销分析系统做二次加工,作为理财等投放依据,使信息能快速到达一线营销和服务人员手中,提升数据服务和应用效率,深化数据驱动的客户画像。
针对金融行业的头寸管理,可以通过对核心系统的单笔交易报文进行实时解析,根据存款、贷款两大类将交易类别进行归类,解析后的金额区分资产和负债,对资金头寸进行实时计算,实时掌握总行和各家分行资金流动性情况。
通过网络流量解码分析技术,将运维“数据”转化成运营“价值”,创造出更多的数字化运营场景。
网络流量分析技术不仅可以解决网络故障、应用监测等日常运维管理问题,通过对运维大数据的挖掘与分析还能指导业务运营。技术与信息爆炸的时代,作为网络中最真实、实时、全量的网络数据却总能跟随技术的演进步伐,创造出更多、更新、更有效的价值。