□徐菡潔 高慧 曾菊根
隨著互聯網的不斷發展,網絡中交互的各種數據、語音和視頻信息越來越多,電子商務、網上會議、網上拍賣、視頻點播、遠程教學等服務也在逐漸興起。這些服務大多符合點對多點的模式,對信息安全性、有償性、網絡帶寬提出了較高的要求。其中,IPTV在廣域網大范圍部署時,最佳的搭配技術就是組播。
組播組使用一個IP組播地址標識。任何用戶主機(或其他接收設備),加入一個組播組,就成為了該組成員,可以識別并接收以該IP組播地址為目的地址的IP報文。以組播組地址為目的地址,發送IP報文的信源稱為組播源。一個組播源可以同時向多個組播組發送數據,多個組播源可以同時向一個組播組發送報文。網絡中支持組播功能的路由器稱為“組播路由器”。和單播路由器一樣,組播路由器的功能是尋址和轉發。組播路由器通過組播路由協議發現和選擇路由,最終形成組播路由表,對組播數據進行前轉。熟悉組播的人都知道,使用組播就是“種植”和“維護”一棵或兩棵樹。組播樹在組播路由器上最好的體現是組播路由表項(*,G)和(S,G)。組播中常見的就是源樹和共享樹。源樹:以組播源為樹根,組播路徑為樹枝,組成員為樹葉的一棵樹。一般源樹就是一個組播源對應一個組播組,或者一個組播源對應多個組播組。共享樹:以RP為樹根,組播路徑為樹枝,組播源和組成員為樹葉的一棵樹。共享樹實質維護了兩棵樹,首先是RP到多個負載均衡源的源樹,然后就是RP到多個組的樹,兩棵樹共享RP,所以簡稱為共享樹。共享樹模型中多個組播源對應到一個組播組,或者多個組播源對應到多個組播組,實現了組播源之間的負載和冗余。
IGMP協議是主機和路由器進行組播通信的語言,對應到OSI模型屬于第三層協議,是我們所說的三層組播協議中的關鍵組件。IGMP作為組管理協議,本身存在協議的版本、實現機制和消息類型。IGMP作為主機和路由器交互的組管理協議,一旦主機和路由器之間運行了,那么它們之間的數據不再是像單播一樣外部數據走網關。IGMP協議規定了組播的數據是不需要網關的,所以在配置組播應用時,VRRP對于組播的冗余性是沒有幫助的。組播路由協議是組播路由器之間的組播通信語言。組播路由協議可以按照使用的范圍大小劃分為IGP和EGP,這也和單播路由協議一樣。如我們常見的OSPF、ISIS、RIP等屬于單播的 IGP,PIMSM、PIMDM、MOSPF 等屬于組播的IGP,其中使用較為頻繁的就是PIM的兩種IGP協議。利用BGP豐富的路由屬性和地址族,BGP不但作為單播的EGP協議,同時也使用在組播的環境當中,我們稱之為MBGP。
PIM(ProtocolIndependentMulticast)是目前使用最廣泛的組播路由協議,PIM稱為協議無關組播。PIM是“拿來主義者”,PIM不自己去發現路由,而是使用現成的單播路由表中的路由條目,無論這些單播路由條目是哪種單播路由協議發現和傳遞的,這就是與協議無關的含義。PIM利用現有的單播路由信息,對組播報文執行RPF(ReversePathForwarding)檢查,從而創建組播路由表項,構建組播分發樹。PIM不維護專門的單播路由,也不依賴某具體的單播路由協議,它直接利用單播路由的結果。
RP (RendezvousPoint)是 PIMSM中源樹和共享樹的匯聚點,是兩棵樹的總根。一般情況下全網設備對于RP地址的認識是一致的,否則兩棵樹無法匯聚,導致源發送的流量無法達到組。這里所說的RP地址僅僅是一個地址,并非同一臺設備。有時候為了實現RP的路徑擇優和負載分擔,會部署Anycast,這個時候多個路由器共享一個RP地址,通過單播路由的路徑擇優對RP進行負載。總之RP地址的配置對于PIM路由器來說是非常重要的。
通過配置組播路由協議,形成了一張組播路由表。組播路由表存放的空間和單播路由表是獨立的。
三層組播技術運行在IP層或者之上,我們平時常見的基本上都是三層組播技術。三層組播技術組成員和組播路由器之間使用IGMP協議,組播路由器之間只用PIM等路由協議。
IPTV常見的PIMSM模型包括兩個方面:組播路由收斂和組播數據轉發。不管是單播還是組播路由器,基本功能就是尋址和轉發。尋址就是查找路由表,明確下一條,形成數據轉發表;轉發就是依照轉發表項進行數據投遞。所有的前提就是“有表可查”,這就是組播路由表的收斂。
PIM-SM假設網絡中的組成員分布非常稀疏,基于這一假設,PIM-SM的設計思路是:在網絡中維護一臺重要的PIM路由器:匯聚點RP,網絡中所有PIM路由器都知道RP的位置,而RP不需要知道PIM路由器的位置。當網絡中出現組成員 (用戶主機通過IGMP加入某組播組G)時,最后一條路由器向RP發送Join消息,逐跳創建(*,G)表項,生成以一棵以RP為根的RPT。當網絡中出現活躍的組播源(信源向某組播組G發送第一個組播數據)時,第一跳路由器將組播數據封裝在Register消息中單播發往RP,在RP上創建(S,G)表項,注冊源信息。當網絡中同時出現組成員和向該組發送數據的組播源時,以RP為中轉站:組播數據先被封裝在Register消息中發往RP,再沿RPT到達組成員。

IPTV系統常見組網
組播的數據轉發一直是從源到組進行發送,按照組播路由表中的OIL進行數據發送,按照IIL進行RPF檢查。RPF基本的思想就是某一個組播數據進入本路由器的時候,本路由器執行RPF檢查算法,查看這個數據包是否從IIL接口進入,若是從IIL接口進入則轉發,否則丟棄該數據包。由于組播路由表是唯一的,那么某個數據包進入本路由器的端口也是唯一的,所以防止了一個數據包從A口接收,從B口發送,又從其它接口接收的問題,防止了組播環路。
中心節點為省內IPTV用戶提供組播服務,對于省內用戶來說,此時IPTV系統是全省的組播源。它規定和使用了與內容源廠商完全不同的一套組播地址,這樣就隔離了省內組播用戶直接向內容提供商請求流量的可能性。中心節點與骨干網的組播應用較引流相對簡單,只需要打通中心節點和骨干網之間的組播通道,配置相應的RP地址和路由即可。具體組播用戶請求如何到達中心節點,是骨干網考慮的事情,是IPTV系統管理范圍之外的事情。
通過PIMSM組播模型的介紹,我們知道,組播源和RP之間通過單播信息進行通告,那么首先RP和組播源之間的雙向路由必須是互通的,否則單播的數據無法實現雙向交互。中心節點與骨干網組播配置遵循以下思路:1.配置去往骨干網的路由,通常是默認路由。2.若是冗余的S9300交換機,保證S9300之間的互聯三層地址運行PIMSM。3.在去往骨干網的三層接口上運行PIMSM,確保PIM鄰居關系建立。4.配置骨干網RP地址(注:此地址為該省骨干網管轄內的地址,通常和內容提供商的RP地址不一樣)。
至此,IPTV系統內部的組播配置完畢。