孟學(xué)軍,何高峰,邵 烽,蔡 瑋
(1.宇航動(dòng)力學(xué)國(guó)家重點(diǎn)實(shí)驗(yàn)室,陜西 西安 710043;2.西安衛(wèi)星測(cè)控中心,陜西 西安 710043)
網(wǎng)絡(luò)流量監(jiān)視測(cè)量是網(wǎng)絡(luò)管理的基礎(chǔ)。業(yè)界廣泛使用基于硬件探針的監(jiān)測(cè)、流量鏡像、SNMP和Netflow等技術(shù)針對(duì)公開(kāi)協(xié)議數(shù)據(jù)進(jìn)行網(wǎng)絡(luò)流量監(jiān)測(cè)[1],多是被動(dòng)測(cè)量。專用IP網(wǎng)絡(luò)為星型結(jié)構(gòu)[2-4],采用“核心/匯聚/接入”模式組網(wǎng)[5-6],結(jié)構(gòu)復(fù)雜,業(yè)務(wù)數(shù)據(jù)采用專有協(xié)議,網(wǎng)絡(luò)承載業(yè)務(wù)流超萬(wàn)余條,網(wǎng)絡(luò)流量達(dá)Gbit,數(shù)據(jù)流缺乏有效的監(jiān)測(cè)分析手段,故障快速定位和復(fù)現(xiàn)困難。公開(kāi)的網(wǎng)絡(luò)測(cè)試工具[7]與專用網(wǎng)的流量監(jiān)視點(diǎn)、數(shù)據(jù)流顆粒度、業(yè)務(wù)測(cè)試內(nèi)容和應(yīng)用需求等關(guān)注點(diǎn)差異大,直接應(yīng)用難以滿足專用網(wǎng)的性能監(jiān)測(cè)需求。在此情況下,本文綜合國(guó)內(nèi)外研究成果,采用海量數(shù)據(jù)包監(jiān)測(cè)、存儲(chǔ)和分析技術(shù)設(shè)計(jì)專用網(wǎng)流量監(jiān)視和測(cè)量系統(tǒng),解決各類數(shù)據(jù)流實(shí)時(shí)監(jiān)視、原樣存儲(chǔ)、回放和實(shí)際業(yè)務(wù)模擬測(cè)量難等問(wèn)題。
網(wǎng)絡(luò)流量監(jiān)測(cè)是網(wǎng)絡(luò)高效運(yùn)維不可或缺的手段,目前網(wǎng)絡(luò)流量監(jiān)視技術(shù)[8-9]主要有4種:
① 基于硬件探針的監(jiān)測(cè)技術(shù)。硬件探針串接在鏈路上,一個(gè)探針監(jiān)測(cè)一個(gè)子網(wǎng),全網(wǎng)流量監(jiān)測(cè)需要部署多個(gè)探針,通過(guò)后臺(tái)服務(wù)器和數(shù)據(jù)庫(kù)收集所有探針的數(shù)據(jù),進(jìn)行全網(wǎng)流量分析,提供物理層到應(yīng)用層信息。缺點(diǎn)是監(jiān)測(cè)大流量鏈路會(huì)引起監(jiān)測(cè)數(shù)據(jù)丟失,造成監(jiān)測(cè)結(jié)果不準(zhǔn)確。
② 基于流量鏡像的協(xié)議分析技術(shù)。將網(wǎng)絡(luò)設(shè)備的某個(gè)端口流量鏡像到協(xié)議分析軟件或設(shè)備,通過(guò)協(xié)議分析解碼對(duì)網(wǎng)絡(luò)流量進(jìn)行監(jiān)測(cè),特別適合網(wǎng)絡(luò)故障分析。缺點(diǎn)是流量鏡像只能針對(duì)固定鏈路,如果在核心交換機(jī)上監(jiān)測(cè),大數(shù)據(jù)流量需要分析軟件和設(shè)備具有很強(qiáng)的計(jì)算能力。
③ 基于SNMP的流量監(jiān)測(cè)技術(shù)。測(cè)試軟件或測(cè)試儀提取網(wǎng)絡(luò)設(shè)備管理對(duì)象信息庫(kù)中與流量信息有關(guān)的變量,分析監(jiān)測(cè)網(wǎng)絡(luò)流量。缺點(diǎn)是信息不夠豐富準(zhǔn)確,主要分析網(wǎng)絡(luò)的第二、三層信息。
④ 基于Netflow的流量監(jiān)測(cè)技術(shù)。Netflow流量信息采集基于網(wǎng)絡(luò)設(shè)備提供的Netflow機(jī)制實(shí)現(xiàn)。路由設(shè)備統(tǒng)計(jì)網(wǎng)絡(luò)流量,將結(jié)果發(fā)送到第三方流量監(jiān)測(cè)軟件或設(shè)備,再監(jiān)測(cè)分析網(wǎng)絡(luò)流量,全網(wǎng)采集效率高,網(wǎng)絡(luò)規(guī)模越大成本越低。缺點(diǎn)是沒(méi)有分析網(wǎng)絡(luò)物理層和數(shù)據(jù)鏈路層信息。
針對(duì)專用網(wǎng)絡(luò)承載數(shù)據(jù)使用專有協(xié)議、流量集中在核心網(wǎng)絡(luò)設(shè)備的特點(diǎn),通過(guò)對(duì)上述網(wǎng)絡(luò)流量監(jiān)測(cè)技術(shù)分析評(píng)估,采用基于流量鏡像的協(xié)議分析技術(shù)來(lái)設(shè)計(jì)專用網(wǎng)絡(luò)流量監(jiān)測(cè)系統(tǒng)。
專用網(wǎng)流量監(jiān)視和測(cè)量軟件結(jié)構(gòu)[10-11]如圖1所示。
圖1 專用網(wǎng)流量監(jiān)視和測(cè)量軟件結(jié)構(gòu)Fig.1 Specified IP network traffic monitoring and measurement software structure diagram
分為網(wǎng)絡(luò)流量監(jiān)視和網(wǎng)絡(luò)實(shí)時(shí)測(cè)量2部分,包括數(shù)據(jù)的采集、實(shí)時(shí)分析、信息存儲(chǔ)、事后回放、軟件配置管理、監(jiān)測(cè)結(jié)果上報(bào)、軟件運(yùn)行日志記錄、信息事后統(tǒng)計(jì)、測(cè)試結(jié)果顯示和存儲(chǔ),以及日志查詢等功能。
系統(tǒng)使用QT開(kāi)源軟件建模[12-13],實(shí)時(shí)記錄網(wǎng)絡(luò)數(shù)據(jù)能力不低于100 Mbps,持續(xù)記錄5 min數(shù)據(jù)量500 MB左右;采用多線程和快速數(shù)據(jù)匹配算法[14],實(shí)現(xiàn)每秒數(shù)十萬(wàn)包的分析能力,根據(jù)硬盤容量刪除最早記錄文件,確保最新數(shù)據(jù)文件及時(shí)存儲(chǔ)。
系統(tǒng)通過(guò)旁路靜默方式獲取、過(guò)濾、分析和處理數(shù)據(jù)包,實(shí)現(xiàn)網(wǎng)絡(luò)性能和流量監(jiān)測(cè)、數(shù)據(jù)包協(xié)議分析,為網(wǎng)絡(luò)運(yùn)行管理提供數(shù)據(jù)支撐和輔助決策;通過(guò)采集五元組信息,實(shí)時(shí)分析數(shù)據(jù),顯示網(wǎng)絡(luò)運(yùn)行整體態(tài)勢(shì);根據(jù)業(yè)務(wù)數(shù)據(jù)結(jié)構(gòu),模擬實(shí)際數(shù)據(jù)包,測(cè)量網(wǎng)絡(luò)環(huán)境,給出定性分析。
① 網(wǎng)絡(luò)流量監(jiān)視模塊的功能。主要包括信息采集、信息檢測(cè)識(shí)別及信息實(shí)時(shí)分析等8個(gè)單元。信息監(jiān)測(cè)識(shí)別單元主要對(duì)采集數(shù)據(jù)進(jìn)行監(jiān)測(cè)識(shí)別,將需要分析的數(shù)據(jù)送往實(shí)時(shí)分析單元;信息實(shí)時(shí)分析單元對(duì)數(shù)據(jù)進(jìn)行分類統(tǒng)計(jì),計(jì)算實(shí)時(shí)網(wǎng)絡(luò)收發(fā)總流量、業(yè)務(wù)流量及帶寬占用率;信息存儲(chǔ)單元對(duì)采集的原始數(shù)據(jù)和分析結(jié)果進(jìn)行實(shí)時(shí)存儲(chǔ),為事后分析提供數(shù)據(jù);軟件配置管理單元用于配置維護(hù)軟件,配置信息包括信源信宿代碼表、源IP地址、各方向鏈路帶寬、抓包文件存儲(chǔ)路徑、網(wǎng)卡及當(dāng)前所屬站點(diǎn)等;監(jiān)測(cè)結(jié)果上報(bào)單元和安全監(jiān)視信息顯示單元采用B/S模式,實(shí)現(xiàn)監(jiān)測(cè)結(jié)果的實(shí)時(shí)上報(bào),測(cè)量信息、電路信息和當(dāng)前任務(wù)信息顯示。
② 網(wǎng)絡(luò)測(cè)量模塊的功能。主要包括信息事后統(tǒng)計(jì)、運(yùn)行場(chǎng)景配置及網(wǎng)絡(luò)測(cè)量等7個(gè)單元。信息事后統(tǒng)計(jì)單元在指定時(shí)間段內(nèi)對(duì)測(cè)量結(jié)果進(jìn)行分類統(tǒng)計(jì);網(wǎng)絡(luò)測(cè)量單元按照用戶設(shè)置的方向、測(cè)試模式及數(shù)據(jù)格式自動(dòng)進(jìn)行通信鏈路測(cè)試,實(shí)現(xiàn)自動(dòng)聯(lián)調(diào),并根據(jù)信息交互方向篩選分析數(shù)據(jù)和應(yīng)用協(xié)議的特征字段,根據(jù)信息IP地址篩選事后數(shù)據(jù)分析報(bào)文,支持ICMP測(cè)試和模擬業(yè)務(wù)測(cè)試;運(yùn)行場(chǎng)景配置單元主要依據(jù)任務(wù)類型進(jìn)行測(cè)量項(xiàng)目配置,測(cè)試數(shù)據(jù)的包長(zhǎng)、包頻、包發(fā)送時(shí)間、測(cè)試模式選擇和任務(wù)聯(lián)調(diào)測(cè)試方向設(shè)置;軟件設(shè)置管理單元主要對(duì)信源信宿、網(wǎng)絡(luò)源目標(biāo)地址及測(cè)量結(jié)果存儲(chǔ)路徑等參數(shù)進(jìn)行管理。
系統(tǒng)分為網(wǎng)絡(luò)流量監(jiān)視模塊和網(wǎng)絡(luò)測(cè)量模塊兩部分。流量監(jiān)視模塊設(shè)計(jì)如圖2所示,根據(jù)功能需求分為7個(gè)部件,每個(gè)部件為一個(gè)獨(dú)立的實(shí)體。
圖2 流量監(jiān)視模塊結(jié)構(gòu)設(shè)計(jì)Fig.2 Traffic monitoring module structure design diagram
測(cè)量模塊結(jié)構(gòu)設(shè)計(jì)如3所示,部件之間采用動(dòng)態(tài)鏈接庫(kù)方式封裝,便于功能擴(kuò)展和移植。
圖3 測(cè)量模塊結(jié)構(gòu)設(shè)計(jì)Fig.3 Measuring module structure design diagram
3.2.1 外部接口設(shè)計(jì)
專用網(wǎng)測(cè)量模塊在2個(gè)節(jié)點(diǎn)之間,根據(jù)實(shí)際業(yè)務(wù)需求,對(duì)網(wǎng)絡(luò)性能進(jìn)行單播、組播測(cè)試;并對(duì)事后數(shù)據(jù)進(jìn)行分析統(tǒng)計(jì),主要實(shí)現(xiàn)與被測(cè)試網(wǎng)絡(luò)的接口和數(shù)據(jù)存儲(chǔ)服務(wù)器的接口,并接受用戶控制。外部接口如圖4所示。
圖4 測(cè)量軟件外部接口Fig.4 Measurement software external interface diagram
3.2.2 內(nèi)部接口設(shè)計(jì)
各部件之間內(nèi)部接口設(shè)計(jì)如圖5所示,內(nèi)部接口定義如表1所示。
圖5 內(nèi)部接口設(shè)計(jì)Fig.5 Internal interface design diagram
表1 內(nèi)部接口定義表
Tab.1 Internal interface definition table
接口接口名稱接口類型功能1MANAGE_CAP控制字符數(shù)據(jù)捕獲啟止2CAP_SAVE數(shù)據(jù)幀IP數(shù)據(jù)包3NETRCV_MANAGE數(shù)據(jù)字符串網(wǎng)絡(luò)收信息4MANAGE_NETSEND字符串?dāng)?shù)據(jù)網(wǎng)絡(luò)發(fā)信息5ANALY_MANAGE字符串?dāng)?shù)據(jù)分析數(shù)據(jù),封裝6MANAGE_DBMANAGE命令字符串查詢命令信息7CAP_ANALY數(shù)據(jù)幀IP數(shù)據(jù)包8ANALY_DB結(jié)果字符串測(cè)量分析入庫(kù)信息9DB_DAMANAGE字符列表查詢結(jié)果信息10DB_WEBSERVICE數(shù)據(jù)信息查詢結(jié)果信息
部件功能設(shè)計(jì)包括:
① 系統(tǒng)管理部件。負(fù)責(zé)與用戶的交互以及其他幾個(gè)部件模塊之間的協(xié)調(diào)管理,由功能管理設(shè)計(jì)和界面設(shè)計(jì)[15]組成。功能管理通過(guò)菜單提供相關(guān)功能模塊的入口以及相關(guān)參數(shù)的設(shè)置入口;界面設(shè)計(jì)包括菜單、關(guān)鍵參數(shù)圖形化顯示、日志顯示和系統(tǒng)狀態(tài)顯示;圖形化顯示采用柱狀圖、餅狀圖和圖線坐標(biāo)等對(duì)數(shù)據(jù)分析結(jié)果的流量、速率等進(jìn)行顯示;日志顯示對(duì)系統(tǒng)重大事件和操作進(jìn)行顯示;系統(tǒng)狀態(tài)在界面的底部狀圖欄顯示,描述系統(tǒng)正在進(jìn)行的操作和狀態(tài)變化。
② 網(wǎng)絡(luò)通信部件。包括網(wǎng)絡(luò)數(shù)據(jù)發(fā)送單元和網(wǎng)絡(luò)接收單元。網(wǎng)絡(luò)數(shù)據(jù)發(fā)送單元將其他部件需向系統(tǒng)外發(fā)送的數(shù)據(jù)按照規(guī)定協(xié)議封裝后,采用UDP協(xié)議通過(guò)相應(yīng)的地址端口發(fā)出;網(wǎng)絡(luò)數(shù)據(jù)接收單元將從指定地址接收到的數(shù)據(jù)轉(zhuǎn)換為內(nèi)部格式,并將數(shù)據(jù)提供給系統(tǒng)管理部件。
③ 中心模式部件。包括中心模式下的測(cè)試窗口、參數(shù)設(shè)置和模式測(cè)試處理3個(gè)單元。中心模式測(cè)試窗口單元完成中心模式部件的界面操作、參數(shù)賦值與測(cè)試結(jié)果顯示;中心模式測(cè)試參數(shù)設(shè)置單元完成測(cè)試參數(shù)保存以及網(wǎng)絡(luò)通信和測(cè)試接口的初始化;中心模式測(cè)試處理單元完成測(cè)試數(shù)據(jù)生成、發(fā)送與接收、統(tǒng)計(jì)處理和測(cè)試狀態(tài)輸出。
④ 部站模式部件。包括部站模式測(cè)試窗口和部站模式測(cè)試處理2個(gè)單元。測(cè)試窗口單元完成部站模式部件的界面操作、參數(shù)賦值與測(cè)試結(jié)果顯示;測(cè)試處理單元完成任務(wù)聯(lián)調(diào)方式下自動(dòng)化測(cè)試命令響應(yīng)、測(cè)試數(shù)據(jù)發(fā)送與接收、統(tǒng)計(jì)處理和測(cè)試狀態(tài)數(shù)據(jù)輸出。
⑤ 業(yè)務(wù)測(cè)試部件。包括ICMP單播測(cè)試和組播數(shù)據(jù)測(cè)試。ICMP單播測(cè)試分為單播測(cè)試窗口和單播測(cè)試處理2個(gè)單元,完成端對(duì)端單播傳輸測(cè)試;組播數(shù)據(jù)測(cè)試分為組播數(shù)據(jù)測(cè)試窗口、組播測(cè)試參數(shù)設(shè)置和組播測(cè)試處理3個(gè)單元,完成端到端組播傳輸測(cè)試。
⑥ 數(shù)據(jù)捕獲部件。收到來(lái)自系統(tǒng)管理用戶界面發(fā)出的開(kāi)始捕獲命令后,通過(guò)網(wǎng)卡對(duì)經(jīng)過(guò)被測(cè)網(wǎng)絡(luò)的所有數(shù)據(jù),采用WinPcap工具捕獲并放入緩存。
⑦ 數(shù)據(jù)存儲(chǔ)部件。數(shù)據(jù)以文件形式按時(shí)間先后依次記錄在硬盤。記錄數(shù)據(jù)時(shí),檢查硬盤容量,如果容量不足則清理最早日期文件。當(dāng)文件容量超過(guò)512 MB(自定義)創(chuàng)建新文件繼續(xù)存儲(chǔ)。
⑧ 數(shù)據(jù)分析部件。設(shè)計(jì)3種場(chǎng)景,一是按數(shù)據(jù)包類別統(tǒng)計(jì)后,將結(jié)果發(fā)送給系統(tǒng)管理部件,傳輸方向配置和業(yè)務(wù)IP地址規(guī)則庫(kù)從配置文件獲取,軟件啟動(dòng)時(shí)一次性裝載到內(nèi)存中;二是將所有數(shù)據(jù)包的IP地址與IP地址庫(kù)進(jìn)行比對(duì),發(fā)現(xiàn)未知IP地址則將結(jié)果上報(bào)系統(tǒng)管理模塊;三是將緩存中的數(shù)據(jù)包逐條與安全規(guī)則庫(kù)比對(duì),不符合安全規(guī)則庫(kù)的數(shù)據(jù)包上報(bào)系統(tǒng)管理模塊。
關(guān)鍵技術(shù)包括:
① 海量數(shù)據(jù)包監(jiān)測(cè)存儲(chǔ)技術(shù)。系統(tǒng)以旁路模式,采用多線程同時(shí)存儲(chǔ)、存儲(chǔ)容量動(dòng)態(tài)監(jiān)視、數(shù)據(jù)有效期動(dòng)態(tài)排序等技術(shù)[16-17],將萬(wàn)兆流量級(jí)數(shù)據(jù)包以文件的形式進(jìn)行原樣存儲(chǔ),動(dòng)態(tài)監(jiān)視存儲(chǔ)容量,按先后順序,及時(shí)刪除過(guò)期數(shù)據(jù),保存最近的數(shù)據(jù)。
② 大數(shù)據(jù)量的IP包實(shí)時(shí)分析技術(shù)[18]。系統(tǒng)檢測(cè)模塊對(duì)所有IP數(shù)據(jù)包進(jìn)行信源信宿分析和協(xié)議分析,實(shí)時(shí)計(jì)算各方向數(shù)據(jù)流量。針對(duì)各終端傳輸數(shù)據(jù)類型基本固定,系統(tǒng)采用最近最大相似度算法[19]和多線程技術(shù),利用近期數(shù)據(jù)包類型動(dòng)態(tài)傳輸比率來(lái)確定匹配IP包類型的順序,依據(jù)上個(gè)IP數(shù)據(jù)包的類型,匹配判斷本數(shù)據(jù)包是否為該類型,并按照比率從大小到排序,為下一周期分析判斷IP包類型提供支持,提高包實(shí)時(shí)分析效率。主要工作流程如圖6所示。
圖6 最近最大相似度算法流程Fig.6 Nearest and maximum similarity algorithm flow diagram
③ 智能分析告警技術(shù)。系統(tǒng)對(duì)各方向的流量進(jìn)行下限、上限流量告警,告警參數(shù)采取智能學(xué)習(xí)、動(dòng)態(tài)調(diào)整技術(shù),保證告警信息準(zhǔn)確。某方向在某一時(shí)間段增開(kāi)一條鏈路,兩路數(shù)據(jù)流量超過(guò)預(yù)設(shè)的流量上限,系統(tǒng)自動(dòng)告警,提示是否為正常數(shù)據(jù)流量,如果用戶設(shè)置為正常數(shù)據(jù)流量,系統(tǒng)自動(dòng)測(cè)試記錄,記錄其最高數(shù)據(jù)速率為該方向數(shù)據(jù)流量的上限,并自動(dòng)更新告警門限。
網(wǎng)絡(luò)流量監(jiān)視和測(cè)量系統(tǒng)已在專用網(wǎng)中部署運(yùn)行,針對(duì)業(yè)務(wù)不斷增多和數(shù)據(jù)傳輸要求越來(lái)越高的情況,解決了網(wǎng)絡(luò)流量缺乏有效監(jiān)視手段和故障定位不及時(shí)的問(wèn)題,網(wǎng)絡(luò)流量監(jiān)視模塊實(shí)現(xiàn)了全網(wǎng)數(shù)據(jù)流量實(shí)時(shí)監(jiān)視和及時(shí)預(yù)警,測(cè)量模塊實(shí)現(xiàn)了單播和組播數(shù)據(jù)模擬真實(shí)數(shù)據(jù)場(chǎng)景測(cè)試、業(yè)務(wù)自動(dòng)化測(cè)試、事后數(shù)據(jù)統(tǒng)計(jì)分析和日志查詢,為網(wǎng)絡(luò)高效運(yùn)維提供了便捷的可視化手段,為通信聯(lián)調(diào)提供了智能化測(cè)試手段。