柏 勇, 何 春, 王 賞
(電子科技大學 電子科學技術研究院,四川 成都 611731)
MPLS協議在1998年由IETF提出草案[1],到現在已經發展了十幾年,并且趨于成熟;在這發展的十幾年中,關于如何構造組播樹[2],管理組播樹[3]和對組播樹的保護的各種理論相繼有人進行研究;Boudani A and Cousin B在文獻[4]中提出了從可擴展角度出發的MMT技術方案,此種方法解決了MPLS組播樹的建立問題和管理問題;Cui J H在文獻[5]中采用的可容忍的聚合MPLS組播(AMFM)技術來實現組播樹的保護;文獻[6]提出劃分組播樹中的每一個子樹為一個域,每個域有個起點和終點,針對每個域建立一條單播LSP路徑進行保護,實現了組播的保護。但是,這些方案都是在解決MPLS組播單一方面的問題,無具體的解決如何在2.5層實現MPLS組播和實現對組播組成員進行的管理問題。
現根據IP組播的實現原理,結合MMT技術,建立了IP層的組播路由表和MPLS的標簽交換路徑(LSP)路徑之間一一對應的映射關系,實現了MPLS組播路徑M_LSP的建立。根據IP組播成員的加入和退出的原理,MPLS組播成員的加入和退出通過對組播樹的嫁接和剪枝來和通過上游按需分配標簽的方式實現。現圍繞 MPLS組播的工作原理、M_LSP的建立和組播組成員的控制等方面的內容來說明MPLS組播的具體實現。并且,最終通過OMNET++仿真工具加以驗證。
在 MPLS網絡中,建立一條 M_LSP路徑;此 M_LSP路徑與IP組播中的組播路由表為一一對應。當源點發送一個帶 D類 IP地址的數據到 MPLS網絡,入口邊緣路由器(Ingress_LER)將根據對應的組播地址,分配該數據包到對應的傳輸等價類(FEC),數據將在M_LSP路徑(與FEC對應)中通過標簽交換進行傳輸;在聚合路由處,直接在2層對數據包進行拷貝,然后按照傳統MPLS單播的傳輸方式進行傳輸。MPLS組播成員的加入和退出,主要根據IP成員加入的方法,由目的終端發送請求信息,按照下游按需分配標簽建立LSP,最終完成成員的加入;組播成員的退出也是由目的節點發送退出信息,請求退出組播組,撤銷此節點與組播樹之間的LSP路徑。此種方式建立MPLS組播樹方便快捷,與IP組播銜接性好,并且方便對組播組成員的管理。下面從兩部分來加以介紹:①M_LSP的建立;②成員的加入和退出。MPLS組播網絡如圖1所示。

以圖1為例,源點(終端1)需要發送數據到目的節點(終端2、3、4)。首先算法算出一條IP組播路徑,得到IP組播樹G(LER1→ LSR1→ LSR2→ LSR3→ LER2,LER1→LSR1→ LSR2→ LSR4→ LER3)并建立相應的組播路由表(MRT)。通過路由器中的MRT信息來生成M_LSP路徑所需的標簽轉發信息庫(LFIB)和標簽信息庫(LIB)信息、下一跳信息(NHLFE)等等,最終建立了一條與組播樹 G完全匹配的 M_LSP路徑;標簽的分配方式將按照上游按需分配方式分配。采用 L(LER1;G;LSR2)表示當前節點LER1在組播樹G中,LSR2為LER1的下一跳路由;L(LSR2;G;LSR3,LSR4)表示當前節點LSR2為組播樹G的聚合點并且下一跳分別為LSR3、LSR4。建立流程如圖2所示。
具體的建立過程如下所示:
①根據源節點、目的節點和網絡拓撲的信息,在全網絡拓撲中生成了符合條件的IP組播樹G;
②綁定一個D類地址(Dest_ID)的IP地址到此組播樹G上,采用B(Dest_ID,G)表示;并且G中的每一個節點根據Dest_ID和節點信息生成相應的MRT信息;直至所有目的節點生成MRT后返回確認信息;
③控制模塊將發送請求建立 M_LSP路徑的命令,此命令將包含Dest_ID,M_LSP將根據Dest_ID對應的MRT信息進行建立;
④Ingerss_LER接受到命令以后,將根據請求命令中的Dest_ID,查找當前路由的MRT;根據MRT信息,建立相應的LFIB、FEC管理表(FLM)、NHLFE、Label等等。并且建立對應于地址Dest_ID的FEC,并且綁定FEC到對應的M_LSP上。最終,修改請求建立命(包含Label,表示標簽分發是按照上游按需分配);
⑤LSR接收到請求命令后,首先根據地址 Dest_ID和L(*;G;*,*)判斷當前節點是否為分支節點。如果不是分支節點,根據MRT建立一個新的LIB、NHLFE和入口標簽管理(ILM);如果是分支節點,將根據MRT對每一個下一跳建立NHLFE和請求命令,但是ILM不變;
⑥出口邊緣路由器(Engress_LER)接收到請求命令后,將建立一個彈出Label命令(當數據包到達時,將彈出數據頭中的標簽信息,并且傳遞數據到達IP層)。最終,建立一個返回信息到源點表示確認M_LSP是否建立完成。

MPLS組播中,成員加入組播組的過程就是組播樹G的嫁接過程,即增加M_LSP分支路徑形成一個新的組播路徑*M_LSP的過程;組播成員的退出為加入的逆過程組。播組成員的加入可以通過圖3加以說明,具體的成員的加入過程,可以通過下列步驟完成:
①非組播組成員X將加入以Dest_ID為組播地址組播組G中,成員X首先發送請求信息到終端管理器(NIMS);
②NIMS接收到 X發送的請求信息后,如果允許其加入,將返回包含Dest_ID的確認信息;
③成員X根據組播地址Dest_ID,構建一條請求建立LSP路徑的請求命令(REQ,包含Dest_ID和X_ID);然后,逆向發送REQ,直至發送到第一個組播組G的成員K并且在發的過程中建立每個節點對應的MRT和L(*;G;*);成員K向NIMS發送一個成員X請求加入的請求確認信息。如圖3中REQ的路徑為(X→LER4→ LSR2)LSR2在G中;
④成員K收到確認信息,將構建一個建立LSP路徑的響應命令(RESV),根據 REQ路徑中的 MRT生成 LIB、NHLFE等等,完成成員 X的加入,最終形成新的*M_LSP路徑。

根據上述原理,在OMNET++4.0中對MPLS組播進行仿真實現。建立如圖4的網絡拓撲進行仿真分析。

通過仿真得到仿真的輸入輸出結果為圖5所示。
根據圖5得:通過多次試驗,數據包在傳輸的過程中無丟失。通過數據的傳輸情況,可以得出基于IP組播的MPLS組播成功實現。并且 M_LSP的建立時間短,同時容易實現對成員的管理。

通過OMNET++4.0,驗證了一種基于IP組播的MPLS組播架構,主要從組播的實現、組播成員管理給予說明。此種方案解決了MPLS組播;并且與MMT等方案相比,建立MPLS組播路徑的可靠性高,與IP組播銜接性良好,實現更加容易,并且便于組播成員管理,為工程實現MPLS組播提供指導。
[1] CALLON R. Multiprotocol Label Switching[R]. Washington,DC:IETF, 2001.
[2] HOSSEINI M, AHMED D T, SHIRMOHAMMADI S, et al. A Survey of Application Layer Multicast Protocols[C]//IEEE. IEEE Communications Surveys & Tutorials. San Francisco:IEEE,2007:58-74.
[3] BOUDANI A,COUSIN B.A New Approach to Construct Multicast Trees in MPLS Networks[C]//IEEE. Proceedings ISCC.Italy: IEEE,2002:44-50.
[4] CUI J H, FALOUTSOS M,GERLA M.An Architecture for Scalable,Efficient, and Fast Fault-tolerant Multicast Provisioning[J].Network IEEE,2006,l8(02):26-34.
[5] 劉勇,劉衛國,楊斌. MPLS骨干網中環形管理組播樹策略[J]. 計算機工程, 2008,34(12):105-109.
[6] 劉曉燕,王志剛,于惠鈞. 基于MPLS VPN 的組播研究[J]. 通信技術,2010,43(07):138-141.