武忠 于紅增
(1 中國民用航空三亞空中交通管理站 海南 三亞 572000)
(2 中國電子科技集團公司第五十四研究所河北 石家莊 050081)
IP組播技術實現了IP網絡中點到多點的高效數據傳送,能夠有效地節約網絡帶寬和降低網絡負載,在諸多方面都有廣泛的應用[1]。根據IP組播中源和目的的不同,可以分為3種模型:任意源組播(ASM)、源過濾組播(SFM)和指定源組播(SSM)[2]。協議獨立組播-稀疏模式(Protocol Independent M ulticast Sparse Mode)默認所有主機都不需要接收組播包,只向明確需要組播包的主機轉發,支持以上3種組播模型,所支持的SSM稱為PIM-SSM。
經過廣域網互聯的2個網絡之間傳輸指定源組播數據,如果組播源地址相同,按照PIM-SSM的傳播模型,同一發送者到同一接收者的不同組播組信息必然經過同樣的路徑傳輸。某些情形下需要將這些信息經過不同的廣域網路徑傳輸,對組播分流的機理和效果進行分析和驗證就很必要。
單播報文的轉發過程中,路由器只關心報文中的目的地址,通過目的地址決定向哪個接口轉發。在組播中,報文是發送給一組接收者的,這些接收者用一個邏輯地址標識。路由器在接收到報文后,必須根據源和目的地址確定出上游(指向組播源)和下游方向,把報文沿著遠離組播源的方向進行轉發,這個過程稱作逆向路徑轉發[3]。
PIM-SSM屬于稀疏模式的組播路由協議,不依賴于具體的單播路由協議,只要求組播接收者到組播源的單播路由可達,這些單播路由協議可以是靜態路由協議、R IP、OSPF、BGP和 IS-IS 等[4]。
組播路由表又稱為組播分發樹,用來描述IP組播報文在網絡中經過的路徑。組播路由項包含3個要素:(S,G)、iif和oiflist,其中S為源地址,G為組地址,iif為入接口,oiflist為出接口列表。組播分發樹的2個基本類型:源路徑樹和共享樹。
源路徑樹是指以組播源作為樹根,將組播源到每一個接收者的最短路徑結合起來構成的轉發樹。由于源路徑樹使用的是從組播源到接收者的最短路徑,因此也稱為最短路徑樹(shortestpath tree,SPT)。對于某個組,網絡要為任何一個向該組發送報文的組播源建立一棵樹,源路徑樹示意圖如圖1所示。

圖1 源路徑樹示意圖
共享樹以某個路由器作為路由樹的樹根,該路由器稱為匯集點(RendezvousPoint,RP),將RP到所有接收者的最短路徑結合起來構成轉發樹。使用共享樹時,對應某個組,網絡中只有一棵樹,所有的組播源和接收者都使用這棵樹來收發報文,組播源先向樹根發送數據報文,之后報文又向下轉發到達所有的接收者,如圖2所示。
PIM-SSM是PIM-SM支持的指定源組播,直接反向構建從組播接收者到組播源的源路徑樹(最短路徑樹SPT),為每一個組播源與接收者之間建立一棵獨立的SPT[5]。

圖2 共享樹示意圖
路由器收到組播數據報文后,只有確認這個數據報文是從自己到組播源的出接口上到來的,才進行轉發,否則丟棄報文。
RPF執行過程中會用到原有的單播路由表以確定上游和下游的鄰接結點。只有當報文是從上游鄰接結點對應的接口(稱作RPF接口)到達時,才向下游轉發。RPF的作用除了可以正確地按照組播路由的配置轉發報文外,還能避免由于各種原因造成的環路,環路避免在組播路由中是一個非常重要的問題。RPF的主體是RPF檢查,路由器收到組播報文后,先對報文進行RPF檢查,只有檢查通過才轉發,否則丟棄。
RPF檢查過程如下:①路由器在單播路由表中查找組播源或RP對應的RPF接口(當使用信源樹時,查找組播源對應的RPF接口,使用共享樹時查找RP對應的RPF接口),某個地址對應的RPF接口是指從路由器向該地址發送報文時的出接口;②如果組播報文是從RPF接口接收下來的,則RPF檢查通過,報文向下游接口轉發;③否則,丟棄該報文。
經過廣域網互聯的2個網絡A和B之間傳輸指定源組播數據(S,G1)和(S,G2),由于組播源地址相同,按照PIM-SSM的傳播模型,同一發送者到同一接收者的不同組播組信息必然經過同樣的路徑傳輸,如圖3所示。在具備等價路由的條件下,雖然負載分擔算法可以將不同流量分布到不同的鏈路上,但傳播路徑是自動選擇的,不可控。在某專用通信網中受廣域信道限制,需要將這些信息手工指定到不同的廣域網路徑傳輸,以實現不同的安全策略和負載分擔。網絡B中接收者R是2個組播組(S,G1)和(S,G2)成員,源S位于網絡A中,在路由器E上到達網絡A的首選路由為S2端口連接鏈路,備用路由為P3端口連接鏈路,默認情況下,2個組播組(S,G1)和(S,G2)的流量沿著路由器A--路由器B--路由器C--路由器E--路由器F的路由傳遞。

圖3 組播分流合流示意圖
由于組播信息是沿著從組播接收者到組播源的單播路徑相反的方向傳遞的,因此,組播分流點、合流點與網絡拓撲中單播路由的分流點和合流點是一致的。
根據組播流驗證規則(進行RPF)和轉發規則(依據組播路由表),為了將組播組(S,G1)的流量經路由器D所在鏈路pull到路由器E上,要在連接路由器E端口S3的上游端口處(這里為路由器D的端口S3)聲明靜態加入組播組(S,G1),這樣在路由器B上組播路由表中(S,G1)將有2個下游接口S2和S3。
路由器D的端口S3上靜態加入組播組(S,G1)后,接收者R加入組播組(S,G1)的信息還會經PIM-SM協議經路由器E的端口S2擴散給路由器C和路由器B,在路由器B上S2端口經路由器C到路由器E的鏈路上還會存在組播組 (S,G1)的流量,這部分流量造成資源的浪費,必須采取一定的措施(如基于源組播過濾的PIM策略,或普通流策略)對其進行過濾[6]。
路由器E從端口S3收到組播組(S,G1)信息由于從不能通過RPF檢查,將被直接丟棄。網絡的目標是將這些流量向S1方向正常送出,這就需要采取流策略重定向(S,G1)的流量到P1端口,而流策略優先于RPF起作用,RPF檢查未起作用。
采取以上措施之后,從組播源S到接收者R的各個路由器上都有了正確的組播路由表,如表1所示,可以看到組播在路由器B上將被正確的分流,而從接收者R看來,依然正確收到了(S,G1)和(S,G2)的組播數據,這些改變對它來說是透明的,沒有察覺的。

表1 路由器B的組播路由信息
同源同宿SSM組播的路由控制是組播路由控制的特殊情形,需要采用一系列技術組合才能實現,借助于提出的技術已經在某專有通信網絡中獲得了良好的應用效果,充分利用了線路資源,更好地保護了用戶的數據安全,也提高了系統服務質量。
根據用戶網絡的客觀條件,將用戶特殊需求分解為一系列子需求并采用適當的技術去實現,不關注于個別技術是否最優,而關注于系統整體的效果,以最終達成用戶的目標,在為用戶排憂解難的過程中,也提高了綜合應用水平,解決問題的過程也體現了技術之美。
[1](美)科默.用TCP/IP進行網際互連[M].北京:電子工業出版社,1998.
[2]杭州華三通信技術有限公司.路由交換技術(第3卷)[M].北京:清華大學出版社,2012.
[3]譚云蘭.Internet的組播與組播路由實現[J].計算機與現代化,2001(3):72-75,
[4]朱華虹,閔 銳.大型IP網絡中組播部署方案研究[J].電信科學,2005(11):14-17.
[5]徐 俊,陳雪軍,等.航天測控通信IP網中可控組播的實現[J].遙測遙控,2012(4):61-63,68.
[6]邱 劍,劉莉麗.組播路由協議對網絡性能的影響[J].信息技術,2006(6):84-86,91.