■ 遼寧 高大偉
編者按:筆者單位采用ASM組播模式,在近期出現一些問題,甲站的組播用戶反映說組播丟包嚴重,筆者經過一系列嘗試,并查閱相關資料和文獻,對VLAN下組播轉發的內容進行配置,最終解決了問題。
IP組播技術實現了IP網絡中點到多點的高效數據傳送,能夠有效地節約網絡帶寬和降低網絡負載,在諸多方面都有廣泛的應用。
根據IP組播中源和目的不同,可以分為三種模型:任意源組播(ASM)、源過濾組播(SFM)和指定源組播(SSM)。筆者單位采用的是ASM組播模式,三個站網絡互聯關系如圖1所示,三個網絡設備均啟用三層OSPF協議,并配置組播模式為pim sm,并將華為9306配置為動態RP(Rendezvous Point)。
近期甲站的組播用戶反映說組播丟包嚴重,請網管協助查一下網絡是否存在問題。

圖1 單位網絡互聯圖
如果懷疑組播數據出現問題,首先要分析組播轉發的原理。單播報文的轉發過程中,路由器只關心報文中的目的地址,通過目的地址決定向哪個接口轉發。在組播中,報文是發送給一組接收者的,這些接收者用一個邏輯地址標識。路由器在接收到報文后,必須根據源和目的地址確定出上游(指向組播源)和下游方向,把報文沿著遠離組播源的方向進行轉發,這個過程稱作逆向路徑轉發。
組播路由表又稱為組播分發樹,用來描述IP組播報文在網絡中經過的路徑。組播路由項包含3個要素:(S,G)、iif和oiflist。其中S為源地址,G為組地址,iif為入接口,oiflist為出接口列表。組播分發樹的2個基本類型為源路徑樹和共享樹。源路徑樹是指以組播源作為樹根,將組播源到每一個接收者的最短路徑結合起來構成的轉發樹。由于源路徑樹使用的是從組播源到接收者的最短路徑,因此也稱為最短路徑樹(Shortest Path Tree,SPT)。
對于某個組,網絡要為任何一個向該組發送報文的組播源建立一棵樹。共享樹以某個路由器作為路由樹的樹根,該路由器稱為匯集點(Rendezvous Point,RP),將RP到所有接收者的最短路徑結合起來構成轉發樹。使用共享樹時,對應某個組,網絡中只有一棵樹,所有的組播源和接收者都使用這棵樹來收發報文,組播源先向樹根發送數據報文,之后報文又向下轉發到達所有的接收者。PIM-ASM直接反向構建從組播接收者到組播源的源路徑樹(最短路徑樹SPT),為每一個組播源與接收者之間建立一棵獨立的SPT。路由器收到組播數據報文后,只有確認這個數據報文是從自己到組播源的出接口上到來的,才進行轉發,否則丟棄報文。
RPF執行過程中會用到原有的單播路由表以確定上游和下游的鄰接結點,只有當報文是從上游鄰接結點對應的接口(RPF接口)到達時,才向下游轉發。RPF的作用除了可以正確地按照組播路由的配置轉發報文外,還能避免由于各種原因造成的環路,環路避免在組播路由中是一個非常重要的問題。RPF的主體是RPF檢查,路由器收到組播報文后,先對報文進行RPF檢查,只有檢查通過才轉發,否則丟棄。
組播轉發原理分析清楚了,下面應該檢查三個站的組播路由是否正確。在確認三個設備的路由協議、組播配置沒有問題后,登錄甲站華為9306,組播路由及組播數據等都是正常的,乙站的組播路由及收發甲站的組播數據均正常,但丙站的組播路由正常,竟然收到了乙站的組播數據。詢問甲站的用戶了解到原來乙站和丙站能互收雙方組播數據,后來乙站的軟件改造后就只收甲站的組播數據了。當把組播轉發原理簡單給甲站的用戶介紹后,他們初步懷疑甲站的組播數據丟包可能與丙站的軟件沒有改造有關系,建議能否將丙站收乙站的組播數據隔斷。
隔斷組播數據,筆者首先想到的是用ACL配置流策略:在丙站的華為5700上配置ACL即拒絕訪問的丙站組播組及組播源,然后配置流分類,再配置流行為,配置流策略,最后在全局下啟用流策略。配置完成后在華為5700上查看組播轉發表,竟然還能看到組播轉發的數據。
問題到這里,筆者認為單組播的流隔斷策略同單播的策略不同。筆者決定還是在配置手冊里查一下問題的原因,在查看《華為交換機學習指南》時,在組播這一章節筆者發現了在VLAN下配置組播轉發的內容,筆者趕緊在華為5700上VLAN 5配置了組播組加入控制策略(IGMPSNOOPING GROUP-POLICY ACL號),本來以為策略能起效,奇怪的是丙站還能收到乙站的組播數據。再翻看《華為交換機學習指南》組播配置篇章時,筆者查到了PIM協議配置組播轉發的內容,再在PIM協議下組播轉發控制策略,丙站收不到乙站的組播數據,甲站用戶大量丟包的現象也消失了,問題解決。
實時數據的組播傳輸作為網絡的一種應用,依賴于基礎網絡的正常運行。根據用戶網絡的客觀條件,將用戶特殊需求分解為一系列子需求并采用適當的技術去實現,不關注于個別技術是否最優,而關注系統整體的效果,以最終達成用戶的目標。總之,網絡技術人員要有解決問題的思路,要綜合運用原理性的知識理解工作中出現的問題,只有如此才能為網絡應用可靠和高效地運行提供有力的技術支撐。