□徐菡潔 高慧 曾菊根
隨著互聯(lián)網(wǎng)的不斷發(fā)展,網(wǎng)絡(luò)中交互的各種數(shù)據(jù)、語音和視頻信息越來越多,電子商務(wù)、網(wǎng)上會(huì)議、網(wǎng)上拍賣、視頻點(diǎn)播、遠(yuǎn)程教學(xué)等服務(wù)也在逐漸興起。這些服務(wù)大多符合點(diǎn)對(duì)多點(diǎn)的模式,對(duì)信息安全性、有償性、網(wǎng)絡(luò)帶寬提出了較高的要求。其中,IPTV在廣域網(wǎng)大范圍部署時(shí),最佳的搭配技術(shù)就是組播。
組播組使用一個(gè)IP組播地址標(biāo)識(shí)。任何用戶主機(jī)(或其他接收設(shè)備),加入一個(gè)組播組,就成為了該組成員,可以識(shí)別并接收以該IP組播地址為目的地址的IP報(bào)文。以組播組地址為目的地址,發(fā)送IP報(bào)文的信源稱為組播源。一個(gè)組播源可以同時(shí)向多個(gè)組播組發(fā)送數(shù)據(jù),多個(gè)組播源可以同時(shí)向一個(gè)組播組發(fā)送報(bào)文。網(wǎng)絡(luò)中支持組播功能的路由器稱為“組播路由器”。和單播路由器一樣,組播路由器的功能是尋址和轉(zhuǎn)發(fā)。組播路由器通過組播路由協(xié)議發(fā)現(xiàn)和選擇路由,最終形成組播路由表,對(duì)組播數(shù)據(jù)進(jìn)行前轉(zhuǎn)。熟悉組播的人都知道,使用組播就是“種植”和“維護(hù)”一棵或兩棵樹。組播樹在組播路由器上最好的體現(xiàn)是組播路由表項(xiàng)(*,G)和(S,G)。組播中常見的就是源樹和共享樹。源樹:以組播源為樹根,組播路徑為樹枝,組成員為樹葉的一棵樹。一般源樹就是一個(gè)組播源對(duì)應(yīng)一個(gè)組播組,或者一個(gè)組播源對(duì)應(yīng)多個(gè)組播組。共享樹:以RP為樹根,組播路徑為樹枝,組播源和組成員為樹葉的一棵樹。共享樹實(shí)質(zhì)維護(hù)了兩棵樹,首先是RP到多個(gè)負(fù)載均衡源的源樹,然后就是RP到多個(gè)組的樹,兩棵樹共享RP,所以簡(jiǎn)稱為共享樹。共享樹模型中多個(gè)組播源對(duì)應(yīng)到一個(gè)組播組,或者多個(gè)組播源對(duì)應(yīng)到多個(gè)組播組,實(shí)現(xiàn)了組播源之間的負(fù)載和冗余。
IGMP協(xié)議是主機(jī)和路由器進(jìn)行組播通信的語言,對(duì)應(yīng)到OSI模型屬于第三層協(xié)議,是我們所說的三層組播協(xié)議中的關(guān)鍵組件。IGMP作為組管理協(xié)議,本身存在協(xié)議的版本、實(shí)現(xiàn)機(jī)制和消息類型。IGMP作為主機(jī)和路由器交互的組管理協(xié)議,一旦主機(jī)和路由器之間運(yùn)行了,那么它們之間的數(shù)據(jù)不再是像單播一樣外部數(shù)據(jù)走網(wǎng)關(guān)。IGMP協(xié)議規(guī)定了組播的數(shù)據(jù)是不需要網(wǎng)關(guān)的,所以在配置組播應(yīng)用時(shí),VRRP對(duì)于組播的冗余性是沒有幫助的。組播路由協(xié)議是組播路由器之間的組播通信語言。組播路由協(xié)議可以按照使用的范圍大小劃分為IGP和EGP,這也和單播路由協(xié)議一樣。如我們常見的OSPF、ISIS、RIP等屬于單播的 IGP,PIMSM、PIMDM、MOSPF 等屬于組播的IGP,其中使用較為頻繁的就是PIM的兩種IGP協(xié)議。利用BGP豐富的路由屬性和地址族,BGP不但作為單播的EGP協(xié)議,同時(shí)也使用在組播的環(huán)境當(dāng)中,我們稱之為MBGP。
PIM(ProtocolIndependentMulticast)是目前使用最廣泛的組播路由協(xié)議,PIM稱為協(xié)議無關(guān)組播。PIM是“拿來主義者”,PIM不自己去發(fā)現(xiàn)路由,而是使用現(xiàn)成的單播路由表中的路由條目,無論這些單播路由條目是哪種單播路由協(xié)議發(fā)現(xiàn)和傳遞的,這就是與協(xié)議無關(guān)的含義。PIM利用現(xiàn)有的單播路由信息,對(duì)組播報(bào)文執(zhí)行RPF(ReversePathForwarding)檢查,從而創(chuàng)建組播路由表項(xiàng),構(gòu)建組播分發(fā)樹。PIM不維護(hù)專門的單播路由,也不依賴某具體的單播路由協(xié)議,它直接利用單播路由的結(jié)果。
RP (RendezvousPoint)是 PIMSM中源樹和共享樹的匯聚點(diǎn),是兩棵樹的總根。一般情況下全網(wǎng)設(shè)備對(duì)于RP地址的認(rèn)識(shí)是一致的,否則兩棵樹無法匯聚,導(dǎo)致源發(fā)送的流量無法達(dá)到組。這里所說的RP地址僅僅是一個(gè)地址,并非同一臺(tái)設(shè)備。有時(shí)候?yàn)榱藢?shí)現(xiàn)RP的路徑擇優(yōu)和負(fù)載分擔(dān),會(huì)部署Anycast,這個(gè)時(shí)候多個(gè)路由器共享一個(gè)RP地址,通過單播路由的路徑擇優(yōu)對(duì)RP進(jìn)行負(fù)載。總之RP地址的配置對(duì)于PIM路由器來說是非常重要的。
通過配置組播路由協(xié)議,形成了一張組播路由表。組播路由表存放的空間和單播路由表是獨(dú)立的。
三層組播技術(shù)運(yùn)行在IP層或者之上,我們平時(shí)常見的基本上都是三層組播技術(shù)。三層組播技術(shù)組成員和組播路由器之間使用IGMP協(xié)議,組播路由器之間只用PIM等路由協(xié)議。
IPTV常見的PIMSM模型包括兩個(gè)方面:組播路由收斂和組播數(shù)據(jù)轉(zhuǎn)發(fā)。不管是單播還是組播路由器,基本功能就是尋址和轉(zhuǎn)發(fā)。尋址就是查找路由表,明確下一條,形成數(shù)據(jù)轉(zhuǎn)發(fā)表;轉(zhuǎn)發(fā)就是依照轉(zhuǎn)發(fā)表項(xiàng)進(jìn)行數(shù)據(jù)投遞。所有的前提就是“有表可查”,這就是組播路由表的收斂。
PIM-SM假設(shè)網(wǎng)絡(luò)中的組成員分布非常稀疏,基于這一假設(shè),PIM-SM的設(shè)計(jì)思路是:在網(wǎng)絡(luò)中維護(hù)一臺(tái)重要的PIM路由器:匯聚點(diǎn)RP,網(wǎng)絡(luò)中所有PIM路由器都知道RP的位置,而RP不需要知道PIM路由器的位置。當(dāng)網(wǎng)絡(luò)中出現(xiàn)組成員 (用戶主機(jī)通過IGMP加入某組播組G)時(shí),最后一條路由器向RP發(fā)送Join消息,逐跳創(chuàng)建(*,G)表項(xiàng),生成以一棵以RP為根的RPT。當(dāng)網(wǎng)絡(luò)中出現(xiàn)活躍的組播源(信源向某組播組G發(fā)送第一個(gè)組播數(shù)據(jù))時(shí),第一跳路由器將組播數(shù)據(jù)封裝在Register消息中單播發(fā)往RP,在RP上創(chuàng)建(S,G)表項(xiàng),注冊(cè)源信息。當(dāng)網(wǎng)絡(luò)中同時(shí)出現(xiàn)組成員和向該組發(fā)送數(shù)據(jù)的組播源時(shí),以RP為中轉(zhuǎn)站:組播數(shù)據(jù)先被封裝在Register消息中發(fā)往RP,再沿RPT到達(dá)組成員。
IPTV系統(tǒng)常見組網(wǎng)
組播的數(shù)據(jù)轉(zhuǎn)發(fā)一直是從源到組進(jìn)行發(fā)送,按照組播路由表中的OIL進(jìn)行數(shù)據(jù)發(fā)送,按照IIL進(jìn)行RPF檢查。RPF基本的思想就是某一個(gè)組播數(shù)據(jù)進(jìn)入本路由器的時(shí)候,本路由器執(zhí)行RPF檢查算法,查看這個(gè)數(shù)據(jù)包是否從IIL接口進(jìn)入,若是從IIL接口進(jìn)入則轉(zhuǎn)發(fā),否則丟棄該數(shù)據(jù)包。由于組播路由表是唯一的,那么某個(gè)數(shù)據(jù)包進(jìn)入本路由器的端口也是唯一的,所以防止了一個(gè)數(shù)據(jù)包從A口接收,從B口發(fā)送,又從其它接口接收的問題,防止了組播環(huán)路。
中心節(jié)點(diǎn)為省內(nèi)IPTV用戶提供組播服務(wù),對(duì)于省內(nèi)用戶來說,此時(shí)IPTV系統(tǒng)是全省的組播源。它規(guī)定和使用了與內(nèi)容源廠商完全不同的一套組播地址,這樣就隔離了省內(nèi)組播用戶直接向內(nèi)容提供商請(qǐng)求流量的可能性。中心節(jié)點(diǎn)與骨干網(wǎng)的組播應(yīng)用較引流相對(duì)簡(jiǎn)單,只需要打通中心節(jié)點(diǎn)和骨干網(wǎng)之間的組播通道,配置相應(yīng)的RP地址和路由即可。具體組播用戶請(qǐng)求如何到達(dá)中心節(jié)點(diǎn),是骨干網(wǎng)考慮的事情,是IPTV系統(tǒng)管理范圍之外的事情。
通過PIMSM組播模型的介紹,我們知道,組播源和RP之間通過單播信息進(jìn)行通告,那么首先RP和組播源之間的雙向路由必須是互通的,否則單播的數(shù)據(jù)無法實(shí)現(xiàn)雙向交互。中心節(jié)點(diǎn)與骨干網(wǎng)組播配置遵循以下思路:1.配置去往骨干網(wǎng)的路由,通常是默認(rèn)路由。2.若是冗余的S9300交換機(jī),保證S9300之間的互聯(lián)三層地址運(yùn)行PIMSM。3.在去往骨干網(wǎng)的三層接口上運(yùn)行PIMSM,確保PIM鄰居關(guān)系建立。4.配置骨干網(wǎng)RP地址(注:此地址為該省骨干網(wǎng)管轄內(nèi)的地址,通常和內(nèi)容提供商的RP地址不一樣)。
至此,IPTV系統(tǒng)內(nèi)部的組播配置完畢。