任 偉
(中國電信股份有限公司廣東分公司,廣東 廣州 510081)
隨著新一輪科技革命和產(chǎn)業(yè)變革的深入發(fā)展,數(shù)字化和智能化轉(zhuǎn)型成為經(jīng)濟發(fā)展的新動力,如何利用數(shù)字化、智能化手段,保障組織業(yè)務(wù)連續(xù)性,即全天候不間斷為用戶提供服務(wù),以高可靠、高可用的服務(wù)能力獲取競爭優(yōu)勢,成為組織當前急需解決的問題。
近些年,業(yè)內(nèi)一直在研究廣域網(wǎng)主動監(jiān)控技術(shù),但基本都是通過整合不同的網(wǎng)管系統(tǒng),建設(shè)綜合網(wǎng)管的形式來實現(xiàn),隨著網(wǎng)絡(luò)和應(yīng)用系統(tǒng)迅速增加,網(wǎng)絡(luò)監(jiān)控難度越來越大[1]。加上廣域網(wǎng)分層分段的組網(wǎng)架構(gòu)特點,依靠傳統(tǒng)方式,效率低下,網(wǎng)絡(luò)不可用的時間較長,難以達到對廣域網(wǎng)線路故障精準監(jiān)控、即時處理的要求[2]。通過分析簡單網(wǎng)絡(luò)管理協(xié)議(Simple Network Management Protocol,SNMP)等網(wǎng)絡(luò)診斷技術(shù),對廣域網(wǎng)主動監(jiān)控技術(shù)進行了應(yīng)用性研究,側(cè)重對監(jiān)控系統(tǒng)設(shè)計和網(wǎng)絡(luò)連通性進行探討,并提出了相應(yīng)的解決建議。對希望利用主動監(jiān)控技術(shù)保障業(yè)務(wù)連續(xù)性,進而提升競爭力的組織,具有一定的參考價值和借鑒意義。
主控監(jiān)控系統(tǒng)架構(gòu)基于分層的思路,著重考慮了一個獨立于專業(yè)網(wǎng)管應(yīng)用環(huán)境的框架,使其既滿足業(yè)務(wù)的需求又符合架構(gòu)設(shè)計原則。系統(tǒng)采用軟總線思想,用控制和管理組件來集成并管理所有業(yè)務(wù)功能組件,用Java 消息服務(wù)(Java Message Server,JMS)總線來實現(xiàn)系統(tǒng)內(nèi)的數(shù)據(jù)交互和消息通信。適配層按照接入方法的不同,用獨立的適配器來實現(xiàn)和被管節(jié)點之間接口的對接,具有一定的獨立性,也易于擴展。
系統(tǒng)從層次上分成4 部分,分別是業(yè)務(wù)展現(xiàn)層、應(yīng)用服務(wù)層、消息分發(fā)層以及采集適配層。其中,業(yè)務(wù)展現(xiàn)層是應(yīng)用實現(xiàn)的接口,包括各種人機界面對外接口;應(yīng)用服務(wù)層是系統(tǒng)的功能業(yè)務(wù)實現(xiàn)層和數(shù)據(jù)處理中心,包括多個業(yè)務(wù)功能組件;消息分發(fā)層采用JMS 總線實現(xiàn)系統(tǒng)內(nèi)數(shù)據(jù)交互和消息通信;采集適配層實現(xiàn)和被管節(jié)點(設(shè)備、網(wǎng)絡(luò)、系統(tǒng)等)之間的連接,包括數(shù)據(jù)的采集或控制數(shù)據(jù)的下傳。
主動監(jiān)控系統(tǒng)整體上包括監(jiān)控管理、告警管理、性能管理、基礎(chǔ)資源管理、拓撲管理、采集管理以及七層流量監(jiān)控等功能模塊。其中,監(jiān)控管理對專線電路、IT 基礎(chǔ)設(shè)備、IT 基礎(chǔ)應(yīng)用等進行監(jiān)控采集和處理管理;拓撲管理通過拓撲圖動態(tài)、實時展示客戶網(wǎng)絡(luò)的運行狀態(tài);告警管理對接收到的各類告警數(shù)據(jù)進行處理、分析以及展現(xiàn);性能管理對性能數(shù)據(jù)進行處理、分析以及展現(xiàn);基礎(chǔ)資源管理包括客戶基本資料管理、客戶電路管理、監(jiān)控配置管理等;七層流量監(jiān)控對客戶廣域網(wǎng)絡(luò)提供端到端的1 ~7 層網(wǎng)絡(luò)及應(yīng)用監(jiān)測和管理業(yè)務(wù),包括7×24 h 監(jiān)控、報警、通知與處理、應(yīng)用和流量統(tǒng)計分析、服務(wù)級別檢測服務(wù)以及IP 語音(Voice over Internet Protocol,VoIP)監(jiān)測服務(wù)。
主動監(jiān)控系統(tǒng)包括2 臺監(jiān)控服務(wù)器、2 臺數(shù)據(jù)庫服務(wù)器、1 臺Web 服務(wù)器、1 臺消息服務(wù)器以及14臺采集服務(wù)器。2 臺數(shù)據(jù)庫服務(wù)器做雙機熱備運行,數(shù)據(jù)存儲磁盤陣列中,通過光纖連接到磁盤陣列。為保障數(shù)據(jù)安全,使用獨立磁盤冗余陣列(Redundant Arrays of Independent Disks,RAID)模式實現(xiàn)數(shù)據(jù)冗余。主動監(jiān)控系統(tǒng)部署于運營商內(nèi)網(wǎng),需要與互聯(lián)網(wǎng)相互訪問,網(wǎng)絡(luò)之間通過防火墻保證安全性。
主動監(jiān)控系統(tǒng)接入電信運營商網(wǎng)絡(luò),通過專線接入客戶路由器,用于打通主動監(jiān)控系統(tǒng)與客戶內(nèi)網(wǎng)的通道??蛻袈酚善餍枰_放SNMP-Community 只讀權(quán)限,根據(jù)電路代號、網(wǎng)際互連協(xié)議(Internet Protocol,IP)地址、裝機地址等信息對線路質(zhì)量實施主動監(jiān)控。主動監(jiān)控系統(tǒng)的網(wǎng)絡(luò)接入示意如圖1 所示。
圖1 主動監(jiān)控系統(tǒng)的網(wǎng)絡(luò)接入示意
監(jiān)控數(shù)據(jù)的采集是網(wǎng)絡(luò)監(jiān)控系統(tǒng)能否發(fā)揮作用的基礎(chǔ)。通過海量數(shù)據(jù)的采集,準確梳理各類設(shè)備和指標相互之間的聯(lián)系,以設(shè)備、系統(tǒng)、網(wǎng)絡(luò)等對象作為載體,聚合各類關(guān)聯(lián)監(jiān)控指標和告警,整體反映了各級監(jiān)控對象的運行狀況,使得IT 運維人員可以直觀查看各級監(jiān)控對象的運行情況,所見即所得,快速定位和處理故障。
SNMP 是一種基于客戶端/服務(wù)器模型的協(xié)議,處于七層協(xié)議中的應(yīng)用層,以傳輸層為基礎(chǔ),來實現(xiàn)某一特定功能[3]。SNMP 主要應(yīng)用于報文傳輸,可以幫助管理員監(jiān)控網(wǎng)絡(luò)流量的情況。管理員不僅可以使用SNMP 來獲取網(wǎng)絡(luò)設(shè)備的流量統(tǒng)計信息,判斷網(wǎng)絡(luò)流量是否正常,還可以使用SNMP 協(xié)議來配置網(wǎng)絡(luò)設(shè)備的流量控制策略,優(yōu)化網(wǎng)絡(luò)流量的使用。
SNMP 包含管理者(Manager)、代理(Agent)以及管理信息庫(Management Information Base,MIB)3 個主要組成部分。管理者是SNMP 的客戶端,用于獲取和管理MIB 中的信息,可以是網(wǎng)絡(luò)管理系統(tǒng)(Network Management System,NMS)或其他網(wǎng)絡(luò)設(shè)備,如防火墻和交換機等。代理是SNMP 的服務(wù)器,負責管理網(wǎng)絡(luò)設(shè)備并響應(yīng)管理者的請求,通常駐留網(wǎng)絡(luò)設(shè)備中,如路由器或交換機,并使用MIB 中的信息響應(yīng)管理者的請求。MIB 是一個虛擬的數(shù)據(jù)庫,存儲了網(wǎng)絡(luò)設(shè)備的配置、狀態(tài)以及性能信息,SNMP 通過發(fā)送請求和接收響應(yīng)來獲取與設(shè)置MIB 中的信息。
SNMP 協(xié)議使用用戶數(shù)據(jù)報協(xié)議(User Datagram Protocol,UDP)進行通信,使用端口號161 和162 傳輸請求和響應(yīng)。SNMP 管理器通過發(fā)送SNMP 請求到代理,代理接收到請求后,根據(jù)請求的內(nèi)容響應(yīng)相應(yīng)的信息。SNMP 支持多種消息類型,如Get-Request、Get-Next-Request 與Get-Response,Set-Request 修改網(wǎng)絡(luò)設(shè)備配置,Trap 接收網(wǎng)絡(luò)事件警告。
SNMP 可以幫助管理員監(jiān)控網(wǎng)絡(luò)設(shè)備的狀態(tài)、性能和配置信息,從而實現(xiàn)對網(wǎng)絡(luò)連通性的監(jiān)控。SNMP 在網(wǎng)絡(luò)連通性技術(shù)實現(xiàn)中的應(yīng)用如下:一是網(wǎng)絡(luò)設(shè)備監(jiān)控,SNMP 可以幫助管理員監(jiān)控網(wǎng)絡(luò)設(shè)備的狀態(tài)、性能以及配置信息,管理員可以使用SNMP 來獲取網(wǎng)絡(luò)設(shè)備的中央處理器(Central Processing Unit,CPU)利用率、內(nèi)存使用情況、端口狀態(tài)等信息,從而判斷網(wǎng)絡(luò)設(shè)備是否正常工作;二是網(wǎng)絡(luò)流量監(jiān)控,SNMP 可以幫助管理員監(jiān)控網(wǎng)絡(luò)流量的情況,管理員可以使用SNMP 來獲取網(wǎng)絡(luò)設(shè)備的流量統(tǒng)計信息,分析不同網(wǎng)絡(luò)應(yīng)用在網(wǎng)絡(luò)中的活動規(guī)律,從而判斷網(wǎng)絡(luò)流量是否正常,還可以使用SNMP 來配置網(wǎng)絡(luò)設(shè)備的流量控制策略,從而優(yōu)化網(wǎng)絡(luò)流量的使用[4];三是網(wǎng)絡(luò)故障排除,SNMP 可以幫助管理員快速定位網(wǎng)絡(luò)故障的原因,管理員可以使用SNMP 來獲取網(wǎng)絡(luò)設(shè)備的錯誤日志、接口狀態(tài)等信息,從而判斷網(wǎng)絡(luò)故障的原因,還可以使用SNMP 來配置網(wǎng)絡(luò)設(shè)備的故障恢復策略,從而快速恢復網(wǎng)絡(luò)服務(wù)。
PING 是一種因特網(wǎng)包探索器,用于測試網(wǎng)絡(luò)連接量,可以測試網(wǎng)絡(luò)上的主機是否可達,測量網(wǎng)絡(luò)延遲和丟包率等性能指標。PING 協(xié)議是通過向目標主機發(fā)送控制報文協(xié)議(Internet Control Message Protocol,ICMP)回顯請求消息,然后等待目標主機返回ICMP 回顯應(yīng)答消息來測試網(wǎng)絡(luò)連通性。如果目標主機能夠收到并正確響應(yīng)這些消息,那么就說明網(wǎng)絡(luò)連通正常,否則就說明網(wǎng)絡(luò)存在故障或者目標主機不可達,工作過程如下。
首先,發(fā)送ICMP 回顯請求消息:PING 程序向目標主機發(fā)送一個ICMP 回顯請求消息,這個消息包含一個隨機數(shù)和時間戳等信息。其次,等待ICMP 回顯應(yīng)答消息:目標主機收到ICMP 回顯請求消息后,會返回一個ICMP 回顯應(yīng)答消息,這個消息包含與請求消息相同的隨機數(shù)和時間戳等信息。最后,計算網(wǎng)絡(luò)延遲和丟包率:PING 程序通過比較發(fā)送和接收消息的時間戳來計算網(wǎng)絡(luò)延遲,同時還可以統(tǒng)計發(fā)送和接收消息的數(shù)量來計算丟包率等性能指標
在一些應(yīng)用場景中,禁止使用PING 測手段,這時需要使用地址解析協(xié)議(Address Resolution Protocol,ARP)作為網(wǎng)絡(luò)連通性檢測手段。ARP 是一種用于解析網(wǎng)絡(luò)層地址和物理層地址之間映射關(guān)系的協(xié)議。在局域網(wǎng)中,ARP 常用于獲取目標主機的物理地址,以便進行數(shù)據(jù)包的傳輸。因此,通過監(jiān)控ARP 的通信,可以實現(xiàn)網(wǎng)絡(luò)連通性的監(jiān)控和診斷。
在局域網(wǎng)中,每個主機都有一個唯一的媒體存取控制位址(Media Access Control Address,MAC),用于標識其物理位置。而IP 地址則用于標識主機在網(wǎng)絡(luò)中的邏輯位置。當一個主機需要向另一個主機發(fā)送數(shù)據(jù)包時,需要知道目標主機的MAC 地址。此時,ARP 就會發(fā)揮作用。
ARP 協(xié)議是一個高效的數(shù)據(jù)鏈路層協(xié)議,其基本原理是通過廣播方式查詢目標主機的MAC 地址。因為ARP 進程必須先解析IP 地址和MAC 地址,所以當一個主機需要查詢目標主機的MAC 地址時,它會向網(wǎng)絡(luò)中發(fā)送一個ARP 請求包,該請求包包含了目標主機的IP 地址[5]。當其他主機收到該請求包時,會檢查其中的IP 地址是否與自己的IP 地址相同。如果相同,則會向請求主機發(fā)送一個ARP 響應(yīng)包,該響應(yīng)包包含了自己的MAC 地址。請求主機收到響應(yīng)包后,就可以獲取目標主機的MAC 地址,從而進行數(shù)據(jù)包的傳輸。
如果發(fā)現(xiàn)某個主機存在網(wǎng)絡(luò)連通性問題,可以通過發(fā)送ARP 請求包來獲取目標主機的MAC 地址。例如,可以使用工具如arping 等來發(fā)送ARP 請求包。arping 可以通過指定目標主機的IP 地址來發(fā)送ARP請求包,并顯示目標主機的MAC 地址。如果arping無法獲取到目標主機的MAC 地址,則說明目標主機存在網(wǎng)絡(luò)連通性問題。
通過抓取ARP 數(shù)據(jù)包、分析數(shù)據(jù)包、發(fā)送ARP請求包等方式,可以實現(xiàn)對網(wǎng)絡(luò)連通性的監(jiān)控與診斷。如果發(fā)現(xiàn)某個主機存在網(wǎng)絡(luò)連通性問題,則可以通過排查網(wǎng)絡(luò)配置、檢查網(wǎng)絡(luò)設(shè)備等方式來解決問題??傊?,ARP 協(xié)議是網(wǎng)絡(luò)通信中不可或缺的一部分,通過對其進行監(jiān)控和診斷,可以及時發(fā)現(xiàn)并解決網(wǎng)絡(luò)連通性問題,保障網(wǎng)絡(luò)的正常運行。
開發(fā)工作完成后,要對系統(tǒng)進行壓力測試,目的是提前發(fā)現(xiàn)并解決系統(tǒng)存在的性能與功能性問題。測試環(huán)境與生產(chǎn)環(huán)境一致,模擬每秒鐘采集1 000 條線路的監(jiān)控指標,測試指標采集的穩(wěn)定性。測試條件設(shè)置為每秒新增20 個監(jiān)控指標,50 s 后并發(fā)數(shù)到達1 000,間隔為50 s,持續(xù)時間為2 h。
表1 主動監(jiān)控系統(tǒng)的壓力測試結(jié)果
模擬系統(tǒng)正常運行狀態(tài)下高峰的監(jiān)控采集測試,包括性能指標采集、告警指標采集、指標分析以及告警生成。測試結(jié)果如表1 所示。
每秒鐘1 000 個監(jiān)控指標同時采集的情況下,每個監(jiān)控指標采集、分析、告警的平均時間為2 s,服務(wù)器CPU 實用率為45.94%,服務(wù)器內(nèi)存使用率為47.91%。根據(jù)測試結(jié)果顯示,每秒鐘可以滿足1 000個監(jiān)控指標的并發(fā)采集。
根據(jù)系統(tǒng)的采集響應(yīng)時間,可以將采集劃分為4 個級別:優(yōu)秀指系統(tǒng)采集響應(yīng)時間小于2 s;良好指系統(tǒng)采集響應(yīng)時間為2 ~5 s;一般指系統(tǒng)采集響應(yīng)時間為5~10 s;較差指系統(tǒng)采集響應(yīng)時間大于10 s。經(jīng)過壓力測試,每戶整體性能以及各功能模塊的采集響應(yīng)時間在2 s 內(nèi),達到良好等級。
通過研究SNMP 等網(wǎng)絡(luò)診斷技術(shù)在廣域網(wǎng)中的應(yīng)用,分析SNMP 等技術(shù)的工作機制,針對系統(tǒng)功能的實現(xiàn)進行了技術(shù)分析,給出了技術(shù)實現(xiàn)過程及方法。針對不同場景,提出了不同解決方案,并在測試環(huán)境下驗證了線路性能指標、告警指標等監(jiān)控指標采集的有效性。生產(chǎn)環(huán)境中,運維人員可利用主動監(jiān)控系統(tǒng),通過可視化熱力圖發(fā)現(xiàn)網(wǎng)絡(luò)異常,查看歷史告警,輸出網(wǎng)絡(luò)運行分析報告,全面提升組織的網(wǎng)絡(luò)管理數(shù)字化水平。