孫文勝宋 嬌
(杭州電子科技大學通信工程學院,杭州 310018)
隨著MPLS的應用越來越廣泛,其承載的業(yè)務也越來越豐富,網絡流量成為描述網絡行為的重要指標之一。網絡的流量反映了網絡的運行狀態(tài),是判別網絡資源使用量的關鍵數(shù)據(jù)[1-2]。通過這些數(shù)據(jù),一方面營運商可以及時的調整網絡相關的業(yè)務部署和提供有效的網絡管理策略;另一方面用戶可以及時地查詢當前業(yè)務的使用量、感知網絡的運行情況;因而流量統(tǒng)計的重要性也與日俱增?;谠摫尘?,本文提出了MPLS網絡流量統(tǒng)計的一種實現(xiàn)方案,能快速有效地實現(xiàn)LSP的流量統(tǒng)計。詳細介紹了轉發(fā)面與控制面的模塊的劃分和交互、主要的函數(shù)與數(shù)據(jù)結構的實現(xiàn);并對典型的MPLS網絡進行組網測試,以驗證該設計的可行性。
MPLS網絡流量統(tǒng)計功能主要涉及的兩個平面[2-4],一是控制面,二是轉發(fā)面,模塊的具體劃分和交互關系如圖1所示。由于分布式設備分為主控板、備板和接口板,因此轉發(fā)面又可分為兩部分:主控板轉發(fā)面和接口板轉發(fā)面(關于備板的轉發(fā)都是基于主控板的,此處不再討論備板的相關轉發(fā))。
圖1 MPLS轉發(fā)統(tǒng)計特性模塊的劃分
從上圖可看到,控制面分為三個模塊[5]:配置模塊、統(tǒng)計模塊和LSP模塊;轉發(fā)面也有三個模塊組成:同步模塊、統(tǒng)計模塊和LSP模塊,關于各個模塊的作用和功能闡述如下:
(1)配置模塊處理配置管理層下發(fā)到控制面的MPLS流量統(tǒng)計配置/取消的相關命令行;
(2)控制面LSP模塊處理信令協(xié)議下發(fā)到控制面的LSP的創(chuàng)建、更新、刪除等消息[6];
(3)統(tǒng)計模塊處理用戶配置的FEC(Forwarding Equivalence Class)節(jié)點(如在配置空間中添加、刪除、查詢FEC節(jié)點)、通知轉發(fā)面更新LSP相關表項中的統(tǒng)計標志、轉發(fā)面上送的統(tǒng)計數(shù)據(jù);
(4)同步模塊將有關的配置消息、表項信息、實時數(shù)據(jù)等封裝后同步給接口板或者備板[7];
(5)轉發(fā)面LSP模塊處理轉發(fā)面LSP表項、ILM(Incoming LabelMap)/NHLFE(Next Hop Label Forwarding Entry)表項的形成以及更新相關表項中的統(tǒng)計標志,并攜帶統(tǒng)計標志下發(fā)驅動;
(6)轉發(fā)面統(tǒng)計模塊處理從驅動獲取轉發(fā)統(tǒng)計信息。除此之外,轉發(fā)面主控板統(tǒng)計模塊通知接口板開始統(tǒng)計數(shù)據(jù)并定時上報統(tǒng)計數(shù)據(jù)、以及上報統(tǒng)計數(shù)據(jù)給控制面。
MPLS網絡中的設備在網絡層路由協(xié)議的控制下建立路由表,然后LDP根據(jù)路由表中的網絡拓撲產生標簽并在相鄰節(jié)點間分發(fā)標簽[8]。結果,每個設備都建立了自己的LIB(Label Information Base),其中記錄了標簽和FEC之間的映射關系,所有設備的LIB中的信息就形成了整個網絡的不同端點間的LSP[9]。本文中統(tǒng)計的對象為FEC(依據(jù)目的地來劃分)即統(tǒng)計經過某一網絡設備的目的地相同的某種類型的LSP的流量。對MPLS轉發(fā)統(tǒng)計特性的設計采用兩級開關機制:在MPLS視圖下,①使能/去使能統(tǒng)計轉發(fā)循環(huán)定時器;②對指定的FEC配置使能/去使能統(tǒng)計功能。
2.1.1 原理
用戶配置統(tǒng)計使能FEC(Statistics ldp ip-address ip-mask)、統(tǒng)計時間間隔(Statistics interval intervaltime),控制面注冊、解析該命令后,一方面在控制面會生成配置空間,用于存放用戶指定的需要統(tǒng)計使能的FEC節(jié)點信息;另一方面主控板轉發(fā)面啟動轉發(fā)統(tǒng)計定時器,同時主控板通知接口板開始統(tǒng)計轉發(fā)信息。統(tǒng)計時間間隔(interval-time)的單位為s,默認為0 s,即轉發(fā)面不會從驅動定時獲取轉發(fā)統(tǒng)計信息。
圖2 用戶配置統(tǒng)計使能流程
圖3 協(xié)議下發(fā)LSP創(chuàng)建的處理流程
驅動層對FEC節(jié)點是否進行統(tǒng)計是根據(jù)ILM/NHLFE表項中的統(tǒng)計業(yè)務標志(ulServiceFlag)進行判斷的,對u lServiceFlag的處理主要有兩個流程:用戶配置及LSP專項創(chuàng)建,其流程分別如圖2、圖3所示。用戶配置,在配置空間添加一個FEC節(jié)點時,匹配是否存在屬于該FEC的LSP表項,具體流程如圖2(去使能統(tǒng)計功能的處理與使能統(tǒng)計功能的處理相似);控制面創(chuàng)建LSP表項時,在配置空間中查找是否有該LSP所屬的FEC節(jié)點,具體流程如圖3。如果LSP庫中存在該FEC對應的LSP表項、配置空間存在該條LSP對應的FEC節(jié)點,則將LSP表項中的ulServiceFlag置位,并攜帶ulServiceFlag下發(fā)到轉發(fā)面和驅動面實現(xiàn)更新或創(chuàng)建相關表項的操作。
2.1.2 主要數(shù)據(jù)結構
(1)修改數(shù)據(jù)結構LSPM_XcEntry:該結構存放LSP的詳細信息,新增統(tǒng)計業(yè)務字段ulServiceFlag,當下發(fā)某條 LSP到控制面時,該字段用于標志該LSP是否具有統(tǒng)計功能:1表示具備、0表示不具備;
(2)修改數(shù)據(jù)結構LFIB_FW_BAS:控制面下發(fā)LSP到轉發(fā)面時,封裝的轉發(fā)面中可識別有關LSP的數(shù)據(jù)結構,新增統(tǒng)計業(yè)務字段ulServiceFlag,攜帶統(tǒng)計業(yè)務字段下發(fā)到轉發(fā)面;
(3)新增數(shù)據(jù)結構LSPM_LDPSTATABLEHEAD:系統(tǒng)中用戶配置的LDP類型FEC節(jié)點信息以二叉樹形式存放,該結構存放該二叉樹的頭節(jié)點信息。
2.2.1 處理過程
在用戶指定需要進行統(tǒng)計的FEC后,主控板轉發(fā)面啟動循環(huán)定時器,定時批量收集從驅動獲取的統(tǒng)計數(shù)據(jù)和接口板的統(tǒng)計數(shù)據(jù)并上報控制面。具體統(tǒng)計上報過程如圖4所示,
圖4 MPLS轉發(fā)統(tǒng)計數(shù)據(jù)收集并上報時序圖
2.2.2 主要函數(shù)接口及調用關系
統(tǒng)計定時器超時后,轉發(fā)面的主控板調用驅動接口函數(shù)DRV_MPLS_GetIn/OutDataStatistics,從驅動獲取轉發(fā)統(tǒng)計信息。如果是轉發(fā)面的接口板,則需將統(tǒng)計信息發(fā)送到轉發(fā)面的主控板,由主控板調用函數(shù)LFIB_FillIn/OutDataStatistics將獲取的統(tǒng)計信息封裝成控制面識別的數(shù)據(jù)后給控制面;轉發(fā)面的主控板調用控制面提供的函數(shù)接口LSPM_ReceivIn/OutStatistics處理,具體調用關系如圖5所示。
2.2.3 主要數(shù)據(jù)結構
(1)修改LFIB_ILM_S數(shù)據(jù)結構:該結構存放轉發(fā)面LSP表項入方向的相關信息,增加統(tǒng)計業(yè)務字段ulServiceFlag,用于標識LSP是否具有統(tǒng)計功能,入方向的流量根據(jù)ILM表項來實現(xiàn);
圖5 MPLS轉發(fā)統(tǒng)計數(shù)據(jù)收集并上報的流程圖
(2)修改LFIB_NHLFE_S數(shù)據(jù)結構:該結構存放轉發(fā)面LSP表項出方向的相關信息,增加統(tǒng)計業(yè)務字段ulServiceFlag,用于標識LSP是否具有統(tǒng)計功能,出方向的流量根據(jù)NHLFE表項來實現(xiàn);
(3)修改LSPM_InSegment_S/LSPM_OutSegment_S數(shù)據(jù)結構:分別存放控制面中LSP入和出方向的數(shù)據(jù)信息,本文統(tǒng)計的數(shù)據(jù)類型為四類:字節(jié)數(shù)(ulOctects)、數(shù)據(jù)包(ulPackets)、錯誤報文包(ulErrors)、丟棄報文包(ulDiscards),增加該4個字段,存放統(tǒng)計數(shù)據(jù)信息。
測試目的:驗證該方案能否有效的實現(xiàn)LSP的流量統(tǒng)計功能。
測試步驟:闡述如下。
測試環(huán)境如圖6所示,圖示中配置的信息為設備的配置參數(shù)。各個路由器上使能OSPF路由協(xié)議,利用LDP信令創(chuàng)建LSP,以Router A為主測設備。配置完成后執(zhí)行displaympls ldp lsp include 3.3.3.9 32,可以看到由RouterB到RouterC的LSP相關信息[10],如圖7所示。
圖6 基于LDP協(xié)議的MPLS典型組網
圖7 FEC為3.3.3.9/32的LSP的主要信息
在MPLS視圖下配置統(tǒng)計功能:
(1)[RouterA-mpls] statistics ldp 3.3.3.9 32;
(2)[RouterA-mpls] statistics interval 30。
根據(jù)3.3.3.9/32的入標簽查看ILM表項、根據(jù)ILM表項中的Token值查看NHLFE表項的相關信息,執(zhí)行 display mpls Ilm 1026 verbose和 disp lay mpls Nhlfe 3 verbose,顯示信息如圖8所示。
圖8 使能統(tǒng)計功能后的ILM/NHLFE表項
RouterB執(zhí)行ping– c 10 lsp ipv4 3.3.3.9,向RouterC發(fā)送ICMP消息;RouterA執(zhí)行display mpls statisitics lsp 65535,可顯示MPLS網絡中節(jié)點的流入和流出方向的統(tǒng)計信息,如圖9所示。
圖9 統(tǒng)計數(shù)據(jù)顯示
測試結果分析:
(1)從圖8可以看到,使能統(tǒng)計后ILM/NHLFE表項中ServiceFlag字段由無效位0 被置為有效位1, Succeed表明該統(tǒng)計標志字段由控制面成功地下發(fā)到轉發(fā)面,標志該LSP實現(xiàn)了統(tǒng)計功能,因此該條LSP具備統(tǒng)計功能。
(2)由圖9可以看出,執(zhí)行ping命令后,該LSP統(tǒng)計數(shù)據(jù)中的數(shù)據(jù)包數(shù)為14(RouterB發(fā)送的10條ping報文加上LDP會話定時發(fā)送的4個報文), 708表示流經該LSP的累積流量(以字節(jié)為單位)。該LSP的入方向和出方向的字節(jié)數(shù)和數(shù)據(jù)包數(shù)正常,錯誤報文包和丟棄的報文包的個數(shù)為 0, 說明RouterA運行正常,該條LSP可正常傳輸報文。
本文針對MPLS網絡及該網絡中設備的特點,在綜合考慮網絡性能和優(yōu)化復雜度的情況下,提出了實現(xiàn)MPLS網絡流量統(tǒng)計的設計方案,滿足了用戶及網絡運營商實時查詢流量、掌握設備運行情況的要求。文章最后對MPLS網絡的統(tǒng)計特性進行了組網測試,測試結果表明該方案能有效地實現(xiàn)流量統(tǒng)計功能,對實現(xiàn)LSP流量統(tǒng)計是現(xiàn)實可行的,能很好地滿足用戶或者運營商的業(yè)務需求,同時該特性在MPLS網絡的統(tǒng)計計費中也有一定的應用。
[ 1] 朱淑鑫,夏欣,劉金定.一個通用的網絡流量模型的設計與實現(xiàn)[J] .科學技術與工程, 2008, 24(8):6618-6621.
[ 2] 潘赟,張學峰.MPLS技術研究[ J] .軟件導刊, 2009, 3(8):119-120.
[ 3] Luc De Ghein.MPLS技術架構[ M].北京:人民郵電出版社,2008:411-414.
[ 4] 許繼金.MPLS技術及其應用分析[ J].電信技術, 2000, 9.
[ 5] 華為3com公司.網絡之路No3MPLS技術??痆DB/OL].
[ 6] Andersson L, Doolan P, Feldman N.Fredettr, LDP Specification[ S] .Work in Progress, InternetDarft<draft-ietf-mpls-ldp-11.txt>, August, 2000.
[ 7] 宋 慶,劉彥明, 朱永升.MPLS技術的研究[ J] .電子科技,2006, (2):76-78, 82.
[ 8] 陳啟美,華懿.MPLS體系、性能及應用[J].電力自動化設備,2002(1).
[ 9] 吳江,趙慧玲.下一代的IP骨干網絡技術 多協(xié)議標記交換[ M] .北京:人民郵電出版社, 2001.
[ 10] H3C-服務支持-02-IP業(yè)務分冊(V 1.05)01-ARP[ EB/OL].[ 2008-10-18] .http://www.h3c.com.cn/Service/Document_Center/IP_Network_Product/Routers/MSR_50/MSR_50/Configure/Operation_Manual.