文/李向龍 位軍營 劉淑霞 楊貴福
為確保校園網(wǎng)絡(luò)運行穩(wěn)定和順暢,有效保證教學(xué)、科研和服務(wù)信息化所需網(wǎng)絡(luò)環(huán)境,多數(shù)學(xué)校都選擇兩個以上運營商接入校園網(wǎng),保障關(guān)鍵業(yè)務(wù)穩(wěn)定和師生用網(wǎng)體驗,達到提高校園網(wǎng)絡(luò)可用性的目的。文章研究多個運營商接入條件下,布置多個測速點模擬師生上網(wǎng)行為,分別通過不同運營商訪問同一個目的地址;根據(jù)訪問耗時結(jié)果調(diào)整路由表,有效保證了師生訪問互聯(lián)網(wǎng)的路徑最優(yōu),時間最短;路由表的調(diào)整可以動態(tài)在線實施,能保證總是選擇最快ISP出口。
隨著互聯(lián)網(wǎng)應(yīng)用的快速發(fā)展,師生對于網(wǎng)絡(luò)可用性要求越來越高。為保證路由表始終處于最優(yōu)狀態(tài),高校需要對比不同路由下訪問同一目標(biāo)網(wǎng)頁的加載時間,根據(jù)加載時間長短持續(xù)優(yōu)化路由表。因此,技術(shù)路線設(shè)計如下:依據(jù)源地址設(shè)定路由表,通過不同運營商循環(huán)訪問特定的目的地址,將頁面加載時間計入數(shù)據(jù)庫,通過數(shù)據(jù)分析,將特定網(wǎng)址的路由指定到耗時最短的運營商鏈路上,可以有效提高師生用網(wǎng)體驗。該技術(shù)路線可分解為以下三個部分:
第一部分,在用戶側(cè)布置測速點,依據(jù)源地址指定不同的運營商鏈路,測速點循環(huán)模擬師生網(wǎng)絡(luò)訪問行為,記錄特定網(wǎng)頁加載時間并寫入數(shù)據(jù)庫。
第二部分,對同一頁面在不同鏈路的加載時間分別進行匯總分析,通過簡單的均值比較得出耗時最短的運營商鏈路。
第三部分,根據(jù)數(shù)據(jù)分析結(jié)果,將特定網(wǎng)頁的路由表規(guī)劃結(jié)果以指令形式自動發(fā)送給路由器,實現(xiàn)按地址智能調(diào)整路由的目的。
為了降低各部分之間的耦合度,便于未來擴展和維護,可將以上三個部分劃分為三個相互關(guān)聯(lián)又各自獨立的松耦合模塊。
第一個模塊為數(shù)據(jù)獲取模塊,主要是利用測速點獲取不同運營商鏈路的網(wǎng)絡(luò)訪問時間并將結(jié)果寫入數(shù)據(jù)庫中。
此功能模塊的難點在于如何獲取最接近師生的網(wǎng)絡(luò)訪問數(shù)據(jù)。為此,本文設(shè)計利用普通PC執(zhí)行定時任務(wù),循環(huán)訪問師生訪問量較多的網(wǎng)站首頁,將網(wǎng)頁從開始加載到加載結(jié)束的時間作為訪問時間存入數(shù)據(jù)庫。
第二個模塊是數(shù)據(jù)分析模塊,對測速點獲取并存儲到數(shù)據(jù)庫中的數(shù)據(jù)進行匯總分析,隨著數(shù)據(jù)的增多,分析結(jié)果會越來越精準(zhǔn)地指導(dǎo)路由表調(diào)整。
此功能模塊的難點在于如何分析匯總的數(shù)據(jù)。由于影響網(wǎng)絡(luò)訪問時間的因素很多,包括鏈路介質(zhì)、終端性能、訪問時間、目的可達性和網(wǎng)頁內(nèi)嵌元素等,所以將超過3分鐘仍未加載完的網(wǎng)頁標(biāo)記為不可達。
第三個模塊是路由表變更模塊。通過解析路由器當(dāng)下配置文件,與第二個模塊的規(guī)劃結(jié)果進行匹配,若路由表一致,則保持路由器配置不變;如不一致,則自動發(fā)送指令更新路由表,并使之生效。
此功能模塊的難點在于如何抽取實際運行設(shè)備上的路由配置文件,并將配置文件與規(guī)劃的路由表進行比較,根據(jù)比較結(jié)果決定是否觸發(fā)路由更新的指令。
為獲取最接近師生的網(wǎng)絡(luò)訪問數(shù)據(jù),需要在最接近師生的網(wǎng)絡(luò)環(huán)境中部署數(shù)據(jù)獲取設(shè)備,即測速點,網(wǎng)絡(luò)拓撲如圖1所示。
圖1 數(shù)據(jù)采集系統(tǒng)網(wǎng)絡(luò)拓撲
數(shù)據(jù)獲取模塊是系統(tǒng)中最基礎(chǔ)的模塊,獲取的數(shù)據(jù)直接關(guān)系到后續(xù)數(shù)據(jù)分析和路由調(diào)整的效果,因此測速點的數(shù)量和位置尤為關(guān)鍵。圖1的示例中,在兩個樓宇的網(wǎng)絡(luò)設(shè)備間布置兩個測速點,分別為PC1和PC2,可根據(jù)需要隨時增加測速點,在路由器上根據(jù)源地址路由設(shè)置測速點PC1走ISP1鏈路,設(shè)置測速點PC2走ISP2鏈路,在PC1和PC2上分別跑同樣的腳本,用來輪詢測量通過各自ISP鏈路訪問同一目標(biāo)網(wǎng)站序列所需的每個頁面加載時間,然后將獲取到的數(shù)據(jù)存入數(shù)據(jù)庫。數(shù)據(jù)庫的表結(jié)構(gòu)見表1。
表1 數(shù)據(jù)獲取模塊數(shù)據(jù)庫的表結(jié)構(gòu)
數(shù)據(jù)分析模塊是為了計算出網(wǎng)絡(luò)訪問的最優(yōu)時間,從而為路由調(diào)整提供支持和依據(jù),達到提高用戶體驗的目的。此功能模塊實現(xiàn)過程如下:
遍歷存儲在數(shù)據(jù)庫中的數(shù)據(jù),分域名查找出對應(yīng)的URL和Time值;
分別計算出在最近一段時間跨度范圍內(nèi),通過不同ISP鏈路訪問同一URL的Time平均值,取較小值對應(yīng)的ISP作為對應(yīng)URL的最優(yōu)鏈路,結(jié)果表示為list
根據(jù)URL與IP的對應(yīng)關(guān)系,將最優(yōu)鏈路結(jié)果輸出為list
表2 URL與IP的對應(yīng)關(guān)系
1.如何實現(xiàn)
路由變更模塊主要是獲取當(dāng)下的路由表,與計算出的最優(yōu)路由表比較,根據(jù)比較結(jié)果決定是否更新路由表。此功能模塊實現(xiàn)過程如下:
(1)系統(tǒng)通過tftp協(xié)議下載路由器配置文件;
(2)利用ANTLR開發(fā)文件解析程序,對下載的路由器配置文件進行解析得到路由表的語法樹;
(3)對比抽取出的路由表項與實測和分析所得的最優(yōu)路由表項是否一致,主要對比路由條目和路由指向;
(4)根據(jù)對比結(jié)果決定是否變更路由器中的路由配置。如果兩個路由表一致,則不變更路由表,如果兩個路由表不一致,則系統(tǒng)模擬登錄路由器,發(fā)送路由刪改指令,將路由器的路由配置變更為計算所得的最優(yōu)路由表。
程序解析和運行時的數(shù)據(jù)流如圖2所示,數(shù)據(jù)流(文件內(nèi)容)介紹如下:
圖2 路由變更模塊的數(shù)據(jù)流
(1)Confg.g4:根據(jù)思科路由表語法編寫的詞法語法文件,利用ANTLR可以生成對應(yīng)的解析器,將思科路由配置文件中的路由表部分解析為路由表的語法樹;
(2)cisco-confg:思科路由器配置文件,通過tftp協(xié)議從路由器獲?。?/p>
(3)EvalVisitor.java:將解析完成的路由表的語法樹存儲到ArrayList中;
(4)GetIpaddressRange.java:獲取一條路由記錄的網(wǎng)絡(luò)范圍;
(5)MatchandAdd.java:匹配并且增加或者修改路由記錄;
(6)Router.java:功能模塊的主函數(shù),調(diào)用子函數(shù)完成計劃的功能,實現(xiàn)編碼目的。
2.如何執(zhí)行
(1)編寫語法詞法文件Confg.g4。運行ANTLR的包,對Confg.g4進行翻譯,將其翻譯為可編譯的JAVA文件,把路由器配置文件中的路由表部分解析成語法樹;
(2)將路由表的語法樹存儲到ArrayList中;
(3)與數(shù)據(jù)分析模塊中得到的最優(yōu)鏈路輸出結(jié)果list
(4)規(guī)劃路由變更條目,將增刪的路由表項輸出到ASCII文件中;
(5)系統(tǒng)模擬登錄路由器,將最新路由表項更新到路由器配置文件中,完成路由表項的智能變更。
本文以思科路由器7606為例,IOS版本 Version 15.1(2)SY2, RELEASE SOFTWARE(fc3),在客戶端機器上用tracert命令進行測試路由更改情況。對于路由器等網(wǎng)絡(luò)交換設(shè)備,沒有類似SQL語法的修改(update)指令,對路由表項操作只能是增加(ip route)或刪除(no ip route)。
文章通過模擬師生上網(wǎng)行為獲取網(wǎng)絡(luò)消耗時間,對多次消耗時間進行匯總分析,在確定條件下對比不同鏈路的數(shù)據(jù)質(zhì)量,獲得最優(yōu)的網(wǎng)絡(luò)出口路由表,從而對路由表進行調(diào)整。隨著數(shù)據(jù)量的增多,包括提高采集頻率、增加測速點數(shù)量、增加被測目的地址數(shù)量等,計算結(jié)果一定會越來越精準(zhǔn),也越來越接近師生的真實體驗,從而使得路由智能變得更加完備,帶寬利用更加充分,師生用網(wǎng)體驗更好。