MSDP技術介紹


MSDP

MSDP簡介

MSDP概述

MSDPMulticast Source Discovery Protocol(組播源發現協議)的簡稱,是為了解決多個PIM-SMProtocol Independent Multicast Sparse Mode,協議無關組播—稀疏模式)域之間的互連而開發的一種域間組播解決方案,用來發現其它PIM-SM域內的組播源信息。

在基本的PIM-SM模式下,組播源隻向本PIM-SM域內的RP注冊,且各域的組播源信息是相互隔離的,因此RP僅知道本域內的組播源信息,隻能在本域內建立組播分發樹,將本域內組播源發出的組播數據分發給本地用戶。如果能夠有一種機製,將其它域內的組播源信息傳遞給本域內的RP,則本域內的RP就可以向其它域內的組播源發起加入過程並建立組播分發樹,從而實現組播數據的跨域傳輸。

基於這一設想,MSDP通過在網絡中選取適當的路由器建立MSDP對等體關係,以連通各PIM-SM域的RP。通過在各MSDP對等體之間交互SASource Active,信源有效)消息來共享組播源信息。

  注意:

l      MSDP的適用前提:域內組播路由協議必須是PIM-SM

l      MSDP僅對ASMAny-Source Multicast,任意信源組播)模型有意義。

 

MSDP原理

1. MSDP對等體

通過在網絡中配置一對或多對MSDP對等體,形成彼此相連的一張“MSDP連通圖”,以連通各個PIM-SM域的RP。通過這些MSDP對等體之間的接力,可以把某RP發出的SA消息傳遞給其它所有的RP

圖1 MSDP對等體的位置

1所示,MSDP對等體可以創建在任意的PIM-SM路由器上,在不同角色的PIM-SM路由器上所創建的MSDP對等體的功能有所不同:

(1)        RP上創建的MSDP對等體

l              源端MSDP對等體:即離組播源(Source)最近的MSDP對等體(通常也就是源端RP,如RP 1)。源端RP創建SA消息並發送給遠端MSDP對等體,通告在本RP上注冊的組播源信息。源端MSDP對等體必須配置在RP上,否則將無法向外發布組播源信息。

l              接收者端MSDP對等體:即離接收者(Receiver)最近的MSDP對等體(如RP 3)。接收者端MSDP對等體在收到SA消息後,根據該消息中所包含的組播源信息,跨域加入以該組播源為根的SPT;當來自該組播源的組播數據到達後,再沿RPT向本地接收者轉發。

l              中間MSDP對等體:即擁有多個遠端MSDP對等體的MSDP對等體(如RP 2)。中間MSDP對等體把從一個遠端MSDP對等體收到的SA消息轉發給其它遠端MSDP對等體,其作用相當於傳輸組播源信息的中轉站。

(2)        在普通的PIM-SM路由器(非RP)上創建的MSDP對等體

Router ARouter B,其作用僅限於將收到的SA消息轉發出去。

&  說明:

對於通過BSR機製動態選舉RPPIM-SM網絡來說,RP是由C-RP選舉產生的。為了增強其網絡的健壯性,一個PIM-SM域內往往存在不止一個C-RP。由於無法預計RP選舉的結果,為了保證選舉獲勝的C-RP能始終位於“MSDP連通圖”上,需要在所有的C-RP之間建立MSDP對等體關係。而選舉落敗的C-RP在“MSDP連通圖”上所擔當的角色相當於普通的PIM-SM路由器。

 

2. 借助MSDP對等體實現域間組播

2所示,PIM-SM 1域內存在激活的組播源(Source),RP 1通過組播源注冊過程了解到了該組播源的存在。如果PIM-SM 2PIM-SM 3域也希望知道該組播源的具體位置,進而能夠從該組播源獲取組播數據,則需要在RP 1RP 3RP 2RP 3之間分別建立MSDP對等體關係。

圖2 MSDP對等體示意圖

借助MSDP對等體進行域間組播的工作過程如下:

(1)        PIM-SM 1域內的組播源向組播組G發送第一個組播數據包時,DR 1將該組播數據封裝在注冊消息(Register Message)中,並發給RP 1RP 1因此獲知了該組播源的相關信息。

(2)        RP 1作為源端RP,創建SA消息,並周期性地向其它MSDP對等體發送。SA消息中包含組播源的地址S、組播組的地址G以及創建該SA消息的源端RP(即RP 1)的地址。

(3)        MSDP對等體對收到的SA消息進行RPFReverse Path Forwarding,逆向路徑轉發)檢查,以及各種轉發策略的過濾,從而隻接受和轉發來自正確路徑並通過過濾的SA消息,以避免SA消息傳遞環路;另外,可以在MSDP對等體之間配置MSDP全連接組(Mesh Group),以避免SA消息在MSDP對等體之間的泛濫。

(4)        SA消息在MSDP對等體之間轉發,最終該組播源的相關信息將傳遍所有建立了MSDP對等體關係的PIM-SM域(即PIM-SM 2PIM-SM 3)。

(5)        PIM-SM 2中的RP 2在收到該SA消息後,檢查本域內是否有組播組G的接收者(Receiver)存在:

l              如果有接收者,RP 2與接收者之間維護組播組GRPTRP 2創建(SG)表項,向源端的DR 1逐跳發送(SG)加入消息(Join Message),從而跨越各PIM-SM域直接加入以該組播源為根的SPT。組播數據沿SPT到達RP 2後,再沿RPT向接收者轉發。當接收者端的DR 2收到來自組播源的組播數據後,可以自行決定是否發起從RPTSPT的切換;

l              如果沒有接收者,RP 2不會創建(SG)表項,也不加入以該組播源為根的SPT

&  說明:

l      MSDP全連接組:要求所有組成員之間兩兩建立MSDP對等體關係,且所有組成員均使用相同的組名稱。

l      在使用MSDP進行域間組播時,RP在收到組播源的信息後就不再需要依賴其它PIM-SM域內的RP,此時接收者可以跨越各PIM-SM域內的RP,而直接加入基於組播源的SPT

 

3. SA消息的RPF檢查規則

3所示,網絡中有五個自治係統AS 1AS 5AS內部使用IGP互聯,AS之間使用BGPMBGP互聯。每個AS中包含至少一個PIM-SM域,且每個PIM-SM域中包含至少一個RP。各RP之間建立起MSDP對等體關係,其中RP 3RP 4RP 5之間建立MSDP全連接組,並在RP 7上將RP 6配置為其靜態RPF對等體。

&  說明:

PIM-SM域內隻存在一個MSDP對等體時,該域又稱為STUB域(如3中的AS 4)。STUB域內的MSDP對等體可以同時擁有多個遠端MSDP對等體,用戶可以從中選取其中一個或多個配置為靜態RPF對等體。對於來自靜態RPF對等體的SA消息不進行RPF檢查,直接接受並向其它對等體轉發。

 

圖3 SA消息的RPF檢查規則

對照3,這些MSDP對等體將按照如下RPF檢查規則處理收到的SA消息:

(1)        RP 2收到RP 1發來的SA消息時

由於SA消息中所攜帶的源端RP的地址與MSDP對等體的地址相同,說明發出SA消息的MSDP對等體就是創建該SA消息的RP,於是RP 2接受該SA消息並向其它對等體(RP 3)轉發。

(2)        RP 3收到RP 2發來的SA消息時

由於SA消息來自同一個ASMSDP對等體(RP 2),且該對等體是到源端RP最佳路徑上的下一跳,於是RP 3接受該SA消息並向其它對等體(RP 4RP 5)轉發。

(3)        RP 4RP 5分別收到RP 3發來的SA消息時

由於SA消息來自同一個全連接組的MSDP對等體(RP 3),於是RP 4RP 5均接受該SA消息並不再向本組其它成員轉發,而隻向本組之外的其它MSDP對等體(RP 6)轉發。

(4)        RP 6收到RP 4RP 5(假設RP 5IP地址較大)發來的SA消息時

盡管同處AS 3RP 4RP 5都與RP 6建立了MSDP對等體關係,但由於RP 5IP地址較大,於是RP 6隻接受IP地址較高的MSDP對等體(RP 5)發來的SA消息。

(5)        RP 7收到RP 6發來的SA消息時

由於SA消息來自其靜態RPF對等體(RP 6),於是RP 7接受該SA消息並向其它對等體(RP 8)轉發。

(6)        RP 8收到RP 7發來的SA消息時

屬於不同ASMSDP對等體之間存在BGPMBGP路由。由於SA消息來自不同ASMSDP對等體(RP 7),且該對等體是到源端RPBGPMBGP路由的下一跳,於是RP 8接受該SA消息並向其它對等體(RP 9)轉發。

(7)        RP 9收到RP 8發來的SA消息時

由於隻有一個MSDP對等體(RP 8),於是RP 9接受該SA消息。

對於由其它路徑到來的SA消息,MSDP對等體將不接受也不轉發。

4. 借助MSDP對等體實現域內Anycast RP

Anycast RP(任播RP)是指在同一個PIM-SM域內設置兩個或多個具有相同地址的RP,並在這些RP之間建立MSDP對等體關係,以實現域內各RP之間的負載分擔和冗餘備份。

4所示,在一個PIM-SM域內,組播源(Source)向組播組G發送組播數據,接收者(Receiver)是組播組G的成員。分別在Router ARouter B上配置相同的IP地址(稱為Anycast RP地址,通常使用私有地址),同時將這些接口配置為C-RP,並在Router ARouter B之間建立MSDP對等體關係。

&  說明:

通常在設備的邏輯接口(如Loopback接口)上配置Anycast RP地址。

 

圖4 Anycast RP典型組網圖

Anycast RP的工作過程如下:

(1)        組播源選擇距離最近的RP進行注冊。如:SourceRP 1注冊,注冊消息中封裝有Source發出的組播數據。當該注冊消息到達RP 1後,進行解封裝。

(2)        接收者向距離最近的RP發送加入消息,加入以該RP為根的RPT。如:Receiver加入以RP 2為根的RPT

(3)        RP之間通過發送SA消息,共享注冊的組播源信息。如:RP 1創建一個SA消息,發送給RP 2,該SA消息中封裝有Source發出的組播數據。當該SA消息到達RP 2後,進行解封裝。

(4)        接收者沿RPT收到組播數據後,直接加入以該組播源為根的SPT。如:RP 2沿RPT將組播數據向下轉發。當Receiver收到來自Source的組播數據後,直接加入以Source為根的SPT

Anycast RP的意義如下:

l              RP路徑最優:組播源向距離最近的RP進行注冊,建立路徑最優的SPT;接收者向距離最近的RP發起加入,建立路徑最優的RPT

l              RP間的負載分擔:每個RP上隻需維護PIM-SM域內的部分源/組信息、轉發部分的組播數據,從而實現了RP間的負載分擔。

l              RP間的冗餘備份:當某RP失效後,原先在該RP上注冊或加入的組播源或接收者會自動選擇就近的RP進行注冊或加入操作,從而實現了RP間的冗餘備份。

  注意:

l      必須為Anycast RP地址配置32位的子網掩碼(即255.255.255.255),也即將其配置為一個主機地址。

l      MSDP對等體的地址不能與Anycast RP地址相同。

 

多實例的MSDP

屬於同一實例的組播路由器各接口之間可以建立MSDP對等體。通過在MSDP對等體之間交互SA消息,可以實現跨域的VPN組播。

應用多實例的組播路由器,為其所支持的每一個實例都獨立維護了一套MSDP機製,包括:SA緩存、對等體連接、定時器、發送緩存和PIM交互的緩衝區。同時,保證不同實例之間信息隔離。所以,隻有屬於同一實例的MSDPPIM-SM信息才可以交互。

附件下載

聯係我們