黃錦燦陸明典*戴春容杜小洪黃先香白瑪多吉
(1.佛山市氣象局,廣東 佛山 528000;2.那曲班戈縣氣象局,西藏 那曲 852000)
廣東省氣象局已經(jīng)完成了市縣氣象業(yè)務(wù)通訊系統(tǒng)的城域網(wǎng)雙鏈路互備建設(shè),在市局端的兩臺(tái)MSR5040路由器上利用BDF、NQA的技術(shù)實(shí)現(xiàn)兩條鏈路在發(fā)生故障以后,把業(yè)務(wù)自動(dòng)切換到另外一條鏈路上,實(shí)現(xiàn)業(yè)務(wù)不中斷的應(yīng)用效果[1],該模型典型網(wǎng)絡(luò)結(jié)構(gòu)拓?fù)淙鐖D1所示。兩條鏈路通訊正常時(shí),核心業(yè)務(wù)通過(guò)主干鏈路進(jìn)行傳輸,視頻會(huì)商業(yè)務(wù)通過(guò)備份鏈路進(jìn)行傳輸[2];當(dāng)主干鏈路故障時(shí),NQA檢測(cè)到主干鏈路的網(wǎng)關(guān)不可達(dá),路由器Track聯(lián)動(dòng)模塊將業(yè)務(wù)切換到備份鏈路,從而實(shí)現(xiàn)雙鏈路的主備自動(dòng)切換。

圖1 市縣氣象業(yè)務(wù)通信系統(tǒng)城域網(wǎng)拓?fù)鋱D
由于策略規(guī)則的原因,在當(dāng)前應(yīng)用環(huán)境下,要實(shí)現(xiàn)兩條鏈路的帶寬測(cè)量,需要先對(duì)主干鏈路進(jìn)行帶寬測(cè)量,然后斷開(kāi)主干鏈路,將所有業(yè)務(wù)遷移到備份鏈路,再進(jìn)行帶寬測(cè)量。斷開(kāi)主干鏈路需要登錄路由器禁用端口,或者采取插拔網(wǎng)線或運(yùn)營(yíng)商光纖的方式。手工進(jìn)行該項(xiàng)操作有兩個(gè)弊端:有可能在操作期間影響到其他端口,甚至帶來(lái)接口模塊的物理?yè)p壞;其次,斷開(kāi)主干鏈路后,所有的通訊數(shù)據(jù)轉(zhuǎn)移到備份鏈路,而備份鏈路帶寬小,測(cè)量期間還要承載大量的數(shù)據(jù)傳輸,對(duì)測(cè)量結(jié)果影響較大。為改進(jìn)上述測(cè)量流程,本文提出一種利用服務(wù)器的靜態(tài)路由功能以及對(duì)端路由器的策略路由功能[3],實(shí)現(xiàn)主備等多鏈路的帶寬測(cè)量方案。

其中,s為文件大小,單位:比特,?t為傳輸時(shí)間差,單位:秒。
常用的TCP傳輸以FTP、HTTP、SOCKET為主,這幾種傳輸方式中以FTP最為簡(jiǎn)單。FTP即文件傳輸協(xié)議(File Transfer Protocol),它可以在網(wǎng)絡(luò)中傳輸多種類(lèi)型的文件,用戶通過(guò)一個(gè)支持FTP協(xié)議的客戶端程序,連接到遠(yuǎn)程FTP服務(wù)器,通過(guò)命令能夠?qū)崿F(xiàn)文件的上傳和下載[5],本文采用FTP傳輸來(lái)進(jìn)行帶寬測(cè)試[6]。
數(shù)據(jù)鏈路帶寬測(cè)量是利用網(wǎng)絡(luò)邊緣設(shè)備測(cè)量鏈路端到端的帶寬,端到端可用帶寬真實(shí)反映了某時(shí)段內(nèi)鏈路的實(shí)際通信能力,對(duì)提高網(wǎng)絡(luò)接入效率和提高服務(wù)質(zhì)量有著顯著的指導(dǎo)意義[4]。本文忽略傳輸期間背景損耗及測(cè)試期間其他業(yè)務(wù)的影響,將鏈路速率定義為:
根據(jù)圖1的網(wǎng)絡(luò)拓?fù)洌瑤挏y(cè)量可由市局作為發(fā)起端,縣局作為接收端進(jìn)行數(shù)據(jù)上傳和下載,從而計(jì)算端到端的傳輸速率。據(jù)此,在市局即發(fā)起端設(shè)置一臺(tái)服務(wù)器A運(yùn)行測(cè)量軟件,縣局即接收端設(shè)置一臺(tái)服務(wù)器B運(yùn)行FTP服務(wù)器軟件。令服務(wù)器A的IP地址為10.151.1.10;服務(wù)器B配置2個(gè)IP地址,設(shè)為10.151.16.10,10.151.16.11(子接口)。A和B都應(yīng)該盡量接近邊界路由器,這樣可以避免不必要的網(wǎng)絡(luò)損耗,對(duì)內(nèi)網(wǎng)的影響也能夠降至最低。
進(jìn)行主干鏈路帶寬測(cè)量時(shí),A與B的IP地址10.151.16.10進(jìn)行通訊;接收端回程路由使用默認(rèn)配置,指定下一跳是1.1.1.1。往返數(shù)據(jù)包路由如下:
去程:10.151.1.10->10.151.1.250->1.1.1.1->1.1.1.2->10.151.16.1->10.151.16.10。
回程:10.151.16.10->10.151.16.1->1.1.1.2->1.1.1.1->10.151.1.250->10.151.1.10。
進(jìn)行備份鏈路帶寬測(cè)量時(shí),A配置靜態(tài)路由,指定前往B的IP地址10.151.16.11,其下一跳網(wǎng)關(guān)是10.151.1.251;接收端路由器新增策略路由,指定回程的下一跳是2.1.1.1。往返數(shù)據(jù)包路由如下:
去程:10.151.1.10->10.151.1.251->2.1.1.1->2.1.1.2->10.151.16.1->10.151.16.11。
回程:10.151.16.11->10.151.16.1->2.1.1.2->2.1.1.1->10.151.1.251->10.151.1.10。
兩種情況的路由拓?fù)鋱D如圖2所示,若存在多條鏈路,也可按上述流程進(jìn)行路由分析。

圖2 兩種情況的路由拓?fù)鋱D
根據(jù)路由分析結(jié)果,服務(wù)器A需要通過(guò)靜態(tài)路由,指定去往10.151.16.11,下一跳是備份鏈路所連接的B路由器,在Linux操作系統(tǒng)上,使用route命令指定靜態(tài)路由:
route add-host 10.151.16.11 gw 10.151.1.251
如果有多條鏈路,則需要依次添加該鏈路所連接路由器網(wǎng)關(guān)的靜態(tài)路由。
通過(guò)路由分析可知,位于發(fā)起端的服務(wù)器A完成路由設(shè)置后,A去往接收端的服務(wù)器B已經(jīng)能夠按需走主干或者是備份鏈路。但是接收端的路由器,在未設(shè)置策略路由的情況下,默認(rèn)是走主干鏈路的,需要在縣局路由器上,編寫(xiě)規(guī)則,匹配源IP地址為10.151.16.11去往10.151.1.11的數(shù)據(jù)包,其下一跳是備份鏈路的網(wǎng)關(guān)。
創(chuàng)建ACL規(guī)則:
[MSR3020]acl advanced 3000
[MSR3020-acl-adv-3000]rule permitip source 10.151.16.110 destination 10.151.1.100
創(chuàng)建策略路由:
[MSR3020]policy-based-route bandwidth_test node 10
[MSR3020-pbr-bandwidth_test-10]if-match acl 3000
[MSR3020-pbr-bandwidth_test-10]apply ip-address nexthop 2.1.1.1
在10.151.16.1所在的端口上,下發(fā)策略路由規(guī)則:
[MSR3020-Ethernet5/0]ip policy-based-route bandwidth_test
路由器配置完成后,通過(guò)執(zhí)行trace[7]命令跟蹤路由走向,其輸出結(jié)果與4.1的分析結(jié)論一致。
設(shè)計(jì)輔助軟件,目的是簡(jiǎn)化日常的管理工作,將原先由人工完成的操作流程,交由軟件來(lái)定時(shí)執(zhí)行測(cè)量,以及記錄測(cè)量結(jié)果、進(jìn)行數(shù)據(jù)統(tǒng)計(jì)。多鏈路帶寬測(cè)量系統(tǒng)使用Java語(yǔ)言進(jìn)行編碼,采用MySQL作為數(shù)據(jù)存儲(chǔ)工具[8],軟件系統(tǒng)主要功能包括鏈路信息的增刪改查、轄區(qū)信息增刪改查、計(jì)劃任務(wù)增刪改查、報(bào)表定義等。
(1)鏈路信息管理
鏈路信息是一個(gè)POJO類(lèi),屬性分別為:鏈路名稱(chēng),對(duì)應(yīng)的IP地址(服務(wù)器A據(jù)此編寫(xiě)靜態(tài)路由),F(xiàn)TP端口號(hào),F(xiàn)TP登錄用戶名和密碼,用于測(cè)量的文件名。
(2)測(cè)量計(jì)劃任務(wù)管理
測(cè)量計(jì)劃是一個(gè)POJO類(lèi),屬性分別為:縣局名稱(chēng),開(kāi)通的鏈路名稱(chēng),測(cè)量執(zhí)行時(shí)間,測(cè)量次數(shù)。測(cè)量執(zhí)行時(shí)間使用Quartz包進(jìn)行管理,Quartz框架是一個(gè)全功能、開(kāi)源的任務(wù)調(diào)度服務(wù),其標(biāo)準(zhǔn)的cron表達(dá)式為[秒分時(shí)日月星期年]。
軟件系統(tǒng)安裝在服務(wù)器A上,程序啟動(dòng)后,根據(jù)預(yù)先配置的規(guī)則,定時(shí)器根據(jù)規(guī)則分別向服務(wù)器B循環(huán)上傳和下載文件,并記錄傳輸文件大小及起止時(shí)間,計(jì)算出鏈路帶寬。
Java提供了很多FTP的客戶端工具[9],本文使用ftp4j來(lái)完成,ftp4j包含了較為完整的FTP接口封裝,根據(jù)程序設(shè)計(jì)文檔,在執(zhí)行FTP上傳、下載時(shí),記錄文件大小、傳輸起止時(shí)間,部分代碼如下:

上述代碼,展示了數(shù)據(jù)測(cè)量和存儲(chǔ)流程。
通過(guò)定時(shí)任務(wù)功能,調(diào)用帶寬測(cè)量服務(wù)接口,完成了任意鏈路的帶寬測(cè)量,并將結(jié)果存儲(chǔ)到數(shù)據(jù)庫(kù)。數(shù)據(jù)庫(kù)中包含了完整的帶寬測(cè)量信息,利用ECharts將帶寬測(cè)量的結(jié)果以圖表的形式展現(xiàn)出來(lái)[10]。
本文探討了利用路由器策略路由功能、服務(wù)器靜態(tài)路由功能,分析設(shè)計(jì)并實(shí)現(xiàn)一套多數(shù)據(jù)鏈路的網(wǎng)絡(luò)帶寬自動(dòng)測(cè)量軟件系統(tǒng)。經(jīng)過(guò)業(yè)務(wù)運(yùn)行,證實(shí)該軟件能夠簡(jiǎn)化日常的帶寬測(cè)試工作,測(cè)量期間無(wú)需人工干預(yù),且對(duì)業(yè)務(wù)的影響比較小,有效提高了網(wǎng)絡(luò)維護(hù)人員的工作效率。
參考文獻(xiàn):
[1]朱璇,梁慎青,吳兆雄,等.省氣象局新建業(yè)務(wù)寬帶備份系統(tǒng)的配置要點(diǎn)[J].廣東氣象,2011(4):59-61.
[2]馬渝勇,方國(guó)強(qiáng),向繼濤,等.省級(jí)氣象信息網(wǎng)絡(luò)系統(tǒng)的整體設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用研究,2012(4):1374-1377.
[3]張翼,陳曉敏.氣象市-縣寬帶網(wǎng)絡(luò)升速端口路由器電口速率瓶頸的解決方案[J].廣東氣象,2013(8):78-80.
[4]張峰,雷振明.端到端網(wǎng)絡(luò)帶寬測(cè)量技術(shù)研究[J].電信科學(xué),2005(4):74-78.
[5]胡偉峰,張運(yùn)林,馬佩強(qiáng).F T P在新型探空雷達(dá)系統(tǒng)通訊業(yè)務(wù)中的應(yīng)用[J].氣象水文海洋儀器,2009(9):114-119.
[6]鄭吉妮,黃河,王方金.以太網(wǎng)專(zhuān)線F T P_T C P實(shí)測(cè)帶寬性能問(wèn)題分析[J].電信工程技術(shù)與標(biāo)準(zhǔn)化,2015(7):8-11.
[7]宋凌怡,舒濤,夏齡,等.網(wǎng)絡(luò)管理系統(tǒng)中P i n g和T r a c e r t功能的實(shí)現(xiàn)[J].赤峰學(xué)院學(xué)報(bào),2011(7):29-30.
[8]陸明典,洪汝強(qiáng),王瑩.天氣和預(yù)警信息搖出來(lái)[J].信息化建設(shè),2015(10):29-30.
[9]劉沖,張海玥,張衛(wèi)東,等.用J a v a J D K編寫(xiě)F T P客戶程序[J].計(jì)算機(jī)應(yīng)用,2011(8):99-102.
[10]王子毅,張春海.基于E C h a r t s的數(shù)據(jù)可視化分析組件設(shè)計(jì)實(shí)現(xiàn)[J],2016(14):46-51.