网络全路径性能监控与实践
2021-11-07龚涛
龚涛
摘要:如今随着业务的发展、业务架构越来越复杂,承载业务系统运行的网络规模越来越庞大。为保证业务系统安全、稳定运行,在业务访问路径中部署了大量网络设备,每增加一段网络路径将会增大网络延时、降低网络性能,从而影响业务访问质量。本文的目标是在网络运维中建立网络监控摄像头,并对网络传输全路径部署监控,构建网络全路径性能监控体系,实现全路径性能监控与分析定位。所涉及工作包括:选择网络流量分析的采集方式、建立网络流量全路径采集监控,建立智能化流量分析平台、对全路径流量采集智能分析及定位。
关键词:流量采集;智能化分析;全路径;丢包
前言
日常生活中,监控摄像头是一个发现问题、定位问题的重要设备,公安人员通过大量的监控摄像头追踪犯罪嫌疑人的行踪并实现精准定位、快速抓捕。同样我们可以在网络环境中建设一套全路径部署的“网络监控摄像头”,智能化地分析网络数据包的流向及传输状态,实现快速定位故障点。
1 网络运维的日常困境
基于SNMP的网管软件主要针对基础网络设备性能、接口状态、网络链路通断性进行监控,能够反映基础网元设备情况、基础链路状态,但是否对承载于网络之上的业务交互质量造成影响却无从知晓。在日常运维中常见的现象是网元设备性能正常、链路状态正常,但某些业务系统却无法正常访问,并且往往需要花费大量的时间去进行故障定位。
2 全路径流量采集
全路径流量采集是指端到端报文所经过的所有网络节点,我们在每个节点处部署流量采集设备,对该节点的报文进行全量捕获,最后通过分析引擎对所有报文进行方法运算,绘制报文途经的所有网络节点图,此过程便是全路径流量采集的过程。
全路径性能监控的实现需要构建网络流量分流网络、网络流量采集、自动分析引擎。
3 全路径性能监控实践
3.1 全路径丢包分析
丢包的原因1:路由错误
网络路径错误也会导致数据包不能到达目的主机,如主机的默认路由配置错误,主机发出的访问其他网络的数据包会被网关丢弃。但此类丢包属于正常情况下的丢包,是意料之中的,不会对网络造成影响。
丢包的原因2:设备故障
设备故障主要是指设备硬件方面的故障,不包含软件配置不当造成的丢包。如网卡是坏的,交换机的某个端口出现了物理故障,光纤收发器的电端口与网络设备接口,或两端设备接口的双工模式不匹配。
发现一交换机端口的光纤模块故障造成的丢包现象,该交换机在通信一段时间后死机,即不能通信,重启后恢复正常。在经过一段时间观察后发现,某光纤模块存在问题,取一块新的模块替换,一切正常。
究其原因,交换机会对所有接收到的数据包进行CRC错误检测和长度校验,将检查出有错误的包丢弃,正确的包转发出去。但这个过程中有些有错误的包在CRC错误检测和长度校验中都均未检测出错误,这样的包在转发过程中不会被发送出去,也不会被丢弃,它们将会堆积在动态缓存中,永远无法发送出去,等到缓存中堆积满了,就会造成交换机死机的现象。
最终结果是:数据包无法到达目的主机。
丢包的原因3:物理线路故障
发现广域网线路时通时断,发生这种情况时,有可能是线路出现故障,也可能是用户方面的原因。为了分清是否是线路故障,可以做如下测试。
如果广域网线路是通过路由器实现的,可以登录到路由器,通过扩展ping向对端路由器广域网接口发送大量的数据包进行测试。
如果线路是通过三层交换机实现,可在线路两端分别接一台计算机,并将IP地址分别设为本端三层路由交换机的广域网接口地址,使用“ping 对端计算机地址 -t”命令进行测试。
如果上述测试没有发生丢包现象,则说明线路运营商提供的线路是好的,引起故障的原因在于用户自身,需要进一步查找。
如果上述测试发生丢包现象,则说明故障是由线路供应商提供的线路引起的,需要与线路供应商联系尽快解决问题。
由物理线路引起的丢包现象还有很多,如光纤连接问题,跳线没有对准设备接口,双绞线及RJ-45接头有问题等。另外,通信线路受到随机噪声或者突发噪声造成的数据报错误,射频信号的干扰和信号的衰减等都可能造成数据包的丢失。我们可以借助网络测试仪来检查线路的质量。
丢包的原因4:网络拥塞
网络拥塞造成丢包率上升的原因很多,主要是路由器资源被大量占用造成的。
如果发现网速慢,并且丢包率呈现上升的情况,这时应该show process cpu和show process mem,一般情况下发现IP input process占用过多的资源。接下来可以检查fast switching在大流量外出端口是否被禁用,如果是,则需要重新使用。
再看一下Fast switching on the same interface是否被禁用,如一个接口配有多个网段并且这些网段间流量很大时,路由器工作在process-switches方式,这种情况下要在接口上执行命令“enable ip route-cache same-interface”。
接下来,用show interfaces和show interfaces switching命令识别大量包进出的端口。一旦确认进入端口后,打开IP accounting on the outgoing interface看其特征,如果是攻击,源地址会不断变化但是目的地址不变,可以用命令“access list”暂时解决此类问题(最好在接近攻击源的设备上配置),最终解决办法是停止攻击源。
应用中遇到的造成网络拥塞的情况还有很多,如大量的UDP流量,可以用解决spoof attack的步骤解决此问题。大量的組播流、广播包穿越路由器,路由器配置了IP NAT并且有很多DNS包穿越路由器等。上述情况造成网络拥塞后,通信双方采取流量控制,丢弃不能传输的包。
3.2 关键技术实现
重发的判定:无论是业务设备或网络线路中出现质量问题导致丢包,还是网络拥塞导致丢包,都会引发TCP重发,具体是需要通过特定算法来对重发报文进行定义,并且在平台监控系统中,将对徒增的重发现象进行预警显示。
重发包定义:当前包的序列号(seq号)小于或等于前一个包的序列号(seq号),并且ipid大于上一个包的ipid,统计一个重发包,ipid是数据包的唯一识别号。
丢包的判定:对重发包进行定义后,我们会剔除由于接收方不及时回应请求,导致发起端重新发送的场景(此场景不是真正意义的丢包),此时只统计由于真实拥塞导致或网络质量引起的丢包数量。丢包需要判定原因的场景主要包括:乱序情况、重发包丢失情况、正常丢包情况、ACK包被丢失情况等,下面针对正常的丢包场景进行说明:
在采集点2,当第2个包产生了跳号,此时需要进行异常记录。在采集点2,判断第三个包(seq=2 ipid=4的包)为重传包。记錄1次丢包,所有采集点可判断重传数均为1(第4个包),采集点2可判断丢包数1。
网络物理路径的计算:可根据丢包位置进行判别,前提需要管理员通过比对每个采集点、相同报文的时间戳的先后顺序,然后进行物理路径绘制。
一个网络传输对从发起方到接收方流经的网络环节,到底经过哪些节点,通常是需要网络人员对网络拓扑有很清晰的熟悉和认识。
这里主要存在两个问题:
一、记忆不清,搞错网络路径,从而影响判断;
二、在不清楚网络传输对流经的环节时,必须花时间去了解、解决传输路径的问题。
具体可以通过时间戳方式自动计算路径,能够大幅提升效率及减少差错。
3.3 实现功能示意
全网丢包集中展示。动态实时监控全网各个网络节点丢包与重传情况,统计重传、丢包通讯对个数,计算受影响业务系统数量,为业务影响判断提供数据。
网络传输对物理路径画制:在出现局部、大面积丢包或重发告警时,可以选择丢包数量较多或任意的通讯对来进行丢包位置判定,可以通过该网络传输对物理路径进行画制。
丢包位置的判定。选择通讯对里面某个具体的TCP会话,进行逐包对比,明确丢包位置。
3.4 业务全路径监控
随着业务的发展,业务系统规模越来越庞大,业务关系越来越复杂,而复杂的业务逻辑中任何一个应用环节出现异常都会影响到最终用户的体验。
在运维工作中,不能简单用某一应用来判断业务的可用性,必须依赖同网络的其他应用和第三方如网络服务的状态,对业务整体可用性做出判断。与此同时,与之相伴的如何定义应用的性能指标、网络性能指标也成为了难题。
采用全路径监控方案,智能梳理结合应用信息验证的方式将多个业务系统的访问逻辑梳理出来,将应用、系统、网络的性能放到到所有业务的流程图上面,进行实时的流程监控评估,可以实现对整个业务的管理与监控。此方案能够大大减少业务故障,与此同时还能够确定故障源头和原因定位时间。
以业务全路径为监控视角,集中可视化监控各个应用环节的访问性能,通过对同一性能指标不同应用环节的监控,快速定位存在性能瓶颈的应用访问环节,节省故障定位时间。
4 总结
全路径性能监控技术,通过强大的主动及自动化性能分析能力,实现多点对比分析、智能发现关键业务系统的网络、主机、应用性能下降,快速分析影响性能的原因并对问题发生点,从而帮助运维人员迅速排除故障,极大的缩短了排障时间。
参考文献:
[1]梁晶. 计算机网络服务质量优化思路及实践路径[J]. 淮南职业技术学院学报,2018.
[2]郭岳,彭祥礼,袁慧,等. 电力应用业务的网络性能及故障分析[J]. 网络安全技术与应用,2018,215(11):89+97.
[3]张志远,刘远健,王晓东. 多要素无线传感监控网络中的多路径路由[J]. 计算机工程与科学,2014,36(6