一种网络流量监视和测量系统的设计与实现
2020-03-04孟学军何高峰
孟学军,何高峰,邵 烽,蔡 玮
(1.宇航动力学国家重点实验室,陕西 西安 710043;2.西安卫星测控中心,陕西 西安 710043)
0 引言
网络流量监视测量是网络管理的基础。业界广泛使用基于硬件探针的监测、流量镜像、SNMP和Netflow等技术针对公开协议数据进行网络流量监测[1],多是被动测量。专用IP网络为星型结构[2-4],采用“核心/汇聚/接入”模式组网[5-6],结构复杂,业务数据采用专有协议,网络承载业务流超万余条,网络流量达Gbit,数据流缺乏有效的监测分析手段,故障快速定位和复现困难。公开的网络测试工具[7]与专用网的流量监视点、数据流颗粒度、业务测试内容和应用需求等关注点差异大,直接应用难以满足专用网的性能监测需求。在此情况下,本文综合国内外研究成果,采用海量数据包监测、存储和分析技术设计专用网流量监视和测量系统,解决各类数据流实时监视、原样存储、回放和实际业务模拟测量难等问题。
1 网络流量监测技术
网络流量监测是网络高效运维不可或缺的手段,目前网络流量监视技术[8-9]主要有4种:
① 基于硬件探针的监测技术。硬件探针串接在链路上,一个探针监测一个子网,全网流量监测需要部署多个探针,通过后台服务器和数据库收集所有探针的数据,进行全网流量分析,提供物理层到应用层信息。缺点是监测大流量链路会引起监测数据丢失,造成监测结果不准确。
② 基于流量镜像的协议分析技术。将网络设备的某个端口流量镜像到协议分析软件或设备,通过协议分析解码对网络流量进行监测,特别适合网络故障分析。缺点是流量镜像只能针对固定链路,如果在核心交换机上监测,大数据流量需要分析软件和设备具有很强的计算能力。
③ 基于SNMP的流量监测技术。测试软件或测试仪提取网络设备管理对象信息库中与流量信息有关的变量,分析监测网络流量。缺点是信息不够丰富准确,主要分析网络的第二、三层信息。
④ 基于Netflow的流量监测技术。Netflow流量信息采集基于网络设备提供的Netflow机制实现。路由设备统计网络流量,将结果发送到第三方流量监测软件或设备,再监测分析网络流量,全网采集效率高,网络规模越大成本越低。缺点是没有分析网络物理层和数据链路层信息。
针对专用网络承载数据使用专有协议、流量集中在核心网络设备的特点,通过对上述网络流量监测技术分析评估,采用基于流量镜像的协议分析技术来设计专用网络流量监测系统。
2 系统架构和功能
2.1 系统架构
专用网流量监视和测量软件结构[10-11]如图1所示。
图1 专用网流量监视和测量软件结构Fig.1 Specified IP network traffic monitoring and measurement software structure diagram
分为网络流量监视和网络实时测量2部分,包括数据的采集、实时分析、信息存储、事后回放、软件配置管理、监测结果上报、软件运行日志记录、信息事后统计、测试结果显示和存储,以及日志查询等功能。
系统使用QT开源软件建模[12-13],实时记录网络数据能力不低于100 Mbps,持续记录5 min数据量500 MB左右;采用多线程和快速数据匹配算法[14],实现每秒数十万包的分析能力,根据硬盘容量删除最早记录文件,确保最新数据文件及时存储。
2.2 系统主要功能
系统通过旁路静默方式获取、过滤、分析和处理数据包,实现网络性能和流量监测、数据包协议分析,为网络运行管理提供数据支撑和辅助决策;通过采集五元组信息,实时分析数据,显示网络运行整体态势;根据业务数据结构,模拟实际数据包,测量网络环境,给出定性分析。
① 网络流量监视模块的功能。主要包括信息采集、信息检测识别及信息实时分析等8个单元。信息监测识别单元主要对采集数据进行监测识别,将需要分析的数据送往实时分析单元;信息实时分析单元对数据进行分类统计,计算实时网络收发总流量、业务流量及带宽占用率;信息存储单元对采集的原始数据和分析结果进行实时存储,为事后分析提供数据;软件配置管理单元用于配置维护软件,配置信息包括信源信宿代码表、源IP地址、各方向链路带宽、抓包文件存储路径、网卡及当前所属站点等;监测结果上报单元和安全监视信息显示单元采用B/S模式,实现监测结果的实时上报,测量信息、电路信息和当前任务信息显示。
② 网络测量模块的功能。主要包括信息事后统计、运行场景配置及网络测量等7个单元。信息事后统计单元在指定时间段内对测量结果进行分类统计;网络测量单元按照用户设置的方向、测试模式及数据格式自动进行通信链路测试,实现自动联调,并根据信息交互方向筛选分析数据和应用协议的特征字段,根据信息IP地址筛选事后数据分析报文,支持ICMP测试和模拟业务测试;运行场景配置单元主要依据任务类型进行测量项目配置,测试数据的包长、包频、包发送时间、测试模式选择和任务联调测试方向设置;软件设置管理单元主要对信源信宿、网络源目标地址及测量结果存储路径等参数进行管理。
3 系统设计与实现
3.1 结构设计
系统分为网络流量监视模块和网络测量模块两部分。流量监视模块设计如图2所示,根据功能需求分为7个部件,每个部件为一个独立的实体。
图2 流量监视模块结构设计Fig.2 Traffic monitoring module structure design diagram
测量模块结构设计如3所示,部件之间采用动态链接库方式封装,便于功能扩展和移植。
图3 测量模块结构设计Fig.3 Measuring module structure design diagram
3.2 接口设计
3.2.1 外部接口设计
专用网测量模块在2个节点之间,根据实际业务需求,对网络性能进行单播、组播测试;并对事后数据进行分析统计,主要实现与被测试网络的接口和数据存储服务器的接口,并接受用户控制。外部接口如图4所示。
图4 测量软件外部接口Fig.4 Measurement software external interface diagram
3.2.2 内部接口设计
各部件之间内部接口设计如图5所示,内部接口定义如表1所示。
图5 内部接口设计Fig.5 Internal interface design diagram
表1 内部接口定义表
Tab.1 Internal interface definition table
接口接口名称接口类型功能1MANAGE_CAP控制字符数据捕获启止2CAP_SAVE数据帧IP数据包3NETRCV_MANAGE数据字符串网络收信息4MANAGE_NETSEND字符串数据网络发信息5ANALY_MANAGE字符串数据分析数据,封装6MANAGE_DBMANAGE命令字符串查询命令信息7CAP_ANALY数据帧IP数据包8ANALY_DB结果字符串测量分析入库信息9DB_DAMANAGE字符列表查询结果信息10DB_WEBSERVICE数据信息查询结果信息
3.3 部件功能设计
部件功能设计包括:
① 系统管理部件。负责与用户的交互以及其他几个部件模块之间的协调管理,由功能管理设计和界面设计[15]组成。功能管理通过菜单提供相关功能模块的入口以及相关参数的设置入口;界面设计包括菜单、关键参数图形化显示、日志显示和系统状态显示;图形化显示采用柱状图、饼状图和图线坐标等对数据分析结果的流量、速率等进行显示;日志显示对系统重大事件和操作进行显示;系统状态在界面的底部状图栏显示,描述系统正在进行的操作和状态变化。
② 网络通信部件。包括网络数据发送单元和网络接收单元。网络数据发送单元将其他部件需向系统外发送的数据按照规定协议封装后,采用UDP协议通过相应的地址端口发出;网络数据接收单元将从指定地址接收到的数据转换为内部格式,并将数据提供给系统管理部件。
③ 中心模式部件。包括中心模式下的测试窗口、参数设置和模式测试处理3个单元。中心模式测试窗口单元完成中心模式部件的界面操作、参数赋值与测试结果显示;中心模式测试参数设置单元完成测试参数保存以及网络通信和测试接口的初始化;中心模式测试处理单元完成测试数据生成、发送与接收、统计处理和测试状态输出。
④ 部站模式部件。包括部站模式测试窗口和部站模式测试处理2个单元。测试窗口单元完成部站模式部件的界面操作、参数赋值与测试结果显示;测试处理单元完成任务联调方式下自动化测试命令响应、测试数据发送与接收、统计处理和测试状态数据输出。
⑤ 业务测试部件。包括ICMP单播测试和组播数据测试。ICMP单播测试分为单播测试窗口和单播测试处理2个单元,完成端对端单播传输测试;组播数据测试分为组播数据测试窗口、组播测试参数设置和组播测试处理3个单元,完成端到端组播传输测试。
⑥ 数据捕获部件。收到来自系统管理用户界面发出的开始捕获命令后,通过网卡对经过被测网络的所有数据,采用WinPcap工具捕获并放入缓存。
⑦ 数据存储部件。数据以文件形式按时间先后依次记录在硬盘。记录数据时,检查硬盘容量,如果容量不足则清理最早日期文件。当文件容量超过512 MB(自定义)创建新文件继续存储。
⑧ 数据分析部件。设计3种场景,一是按数据包类别统计后,将结果发送给系统管理部件,传输方向配置和业务IP地址规则库从配置文件获取,软件启动时一次性装载到内存中;二是将所有数据包的IP地址与IP地址库进行比对,发现未知IP地址则将结果上报系统管理模块;三是将缓存中的数据包逐条与安全规则库比对,不符合安全规则库的数据包上报系统管理模块。
3.4 关键技术
关键技术包括:
① 海量数据包监测存储技术。系统以旁路模式,采用多线程同时存储、存储容量动态监视、数据有效期动态排序等技术[16-17],将万兆流量级数据包以文件的形式进行原样存储,动态监视存储容量,按先后顺序,及时删除过期数据,保存最近的数据。
② 大数据量的IP包实时分析技术[18]。系统检测模块对所有IP数据包进行信源信宿分析和协议分析,实时计算各方向数据流量。针对各终端传输数据类型基本固定,系统采用最近最大相似度算法[19]和多线程技术,利用近期数据包类型动态传输比率来确定匹配IP包类型的顺序,依据上个IP数据包的类型,匹配判断本数据包是否为该类型,并按照比率从大小到排序,为下一周期分析判断IP包类型提供支持,提高包实时分析效率。主要工作流程如图6所示。
图6 最近最大相似度算法流程Fig.6 Nearest and maximum similarity algorithm flow diagram
③ 智能分析告警技术。系统对各方向的流量进行下限、上限流量告警,告警参数采取智能学习、动态调整技术,保证告警信息准确。某方向在某一时间段增开一条链路,两路数据流量超过预设的流量上限,系统自动告警,提示是否为正常数据流量,如果用户设置为正常数据流量,系统自动测试记录,记录其最高数据速率为该方向数据流量的上限,并自动更新告警门限。
4 结束语
网络流量监视和测量系统已在专用网中部署运行,针对业务不断增多和数据传输要求越来越高的情况,解决了网络流量缺乏有效监视手段和故障定位不及时的问题,网络流量监视模块实现了全网数据流量实时监视和及时预警,测量模块实现了单播和组播数据模拟真实数据场景测试、业务自动化测试、事后数据统计分析和日志查询,为网络高效运维提供了便捷的可视化手段,为通信联调提供了智能化测试手段。