05-PIM配置
本章節下載: 05-PIM配置 (1.37 MB)
PIM(Protocol Independent Multicast,協議無關組播)協議利用單播靜態路由或者任意單播路由協議所生成的單播路由表為IP組播提供路由。組播路由與所采用的單播路由協議無關,隻要能夠通過單播路由協議產生相應的組播路由表項即可。PIM借助RPF(Reverse Path Forwarding,逆向路徑轉發)機製創建組播路由表項,實現對組播報文的轉發。有關RPF的詳細介紹,請參見“IP組播配置指導”中的“組播路由與轉發”。
根據實現機製的不同,PIM分為以下幾種模式:
· PIM-DM(Protocol Independent Multicast-Dense Mode,協議無關組播—密集模式)
· PIM-SM(Protocol Independent Multicast-Sparse Mode,協議無關組播—稀疏模式)
· BIDIR-PIM(Bidirectional Protocol Independent Multicast,雙向協議無關組播,簡稱雙向PIM)
· PIM-SSM(Protocol Independent Multicast Source-Specific Multicast,協議無關組播-指定源組播)
為了描述方便,本文中把由支持PIM協議的組播設備所組成的網絡簡稱為“PIM域”。
PIM-DM屬於密集模式的組播路由協議,使用“推(Push)模式”傳送組播數據,通常適用於組播組成員相對比較密集的小型網絡。PIM-DM假設網絡中的所有分支都有組播接收者,於是先將組播數據擴散至整個網絡,然後將沒有接收者的分支剪枝掉,隻保留有接收者的分支。當被剪枝的分支上出現了接收者時,再使用嫁接機製將該分支恢複。
一般說來,密集模式下數據包的轉發路徑是以組播源為“根”、組播組成員為“葉子”的一棵轉發樹,由於該樹使用的是從組播源到接收者的最短路徑,因此也稱為SPT(Shortest Path Tree,最短路徑樹)。
PIM-DM工作機製包括鄰居發現、構建SPT、嫁接、斷言。
在PIM域中,設備上每個運行了PIM協議的接口通過定期向本網段的所有PIM設備(224.0.0.13)組播PIM Hello報文(以下簡稱Hello報文),以發現PIM鄰居,維護各設備之間的PIM鄰居關係,從而構建和維護SPT。
構建SPT的過程也就是“擴散—剪枝”的過程:
(1) 在PIM-DM域中,組播源S向組播組G發送組播報文時,首先對組播報文進行擴散:設備對該報文的RPF檢查通過後,便創建一個(S,G)表項,並將該報文向網絡中的所有下遊節點轉發。經過擴散,PIM-DM域內的每個設備上都會創建(S,G)表項。
(2) 然後對那些下遊沒有接收者的節點進行剪枝:由沒有接收者的下遊節點向上遊節點發剪枝報文(Prune Message),以通知上遊節點將相應的接口從其組播轉發表項(S,G)所對應的出接口列表中刪除,並不再轉發該組播組的報文至該節點。
(S,G)表項包括組播源的地址S、組播組的地址G、出接口列表和入接口等。
剪枝過程最先由“葉子”設備發起,如圖1-1所示,由沒有接收者(Receiver)的接口主動發起剪枝,並一直持續到PIM-DM域中隻剩下必要的分支,這些分支共同構成了SPT。
圖1-1 PIM-DM中構建SPT示意圖
“擴散—剪枝”的過程是周期性發生的。各個被剪枝的節點提供超時機製,當剪枝超時後便重新開始這一過程。
當被剪枝的節點上出現了組播組的成員時,為了減少該節點恢複成轉發狀態所需的時間,PIM-DM使用嫁接機製主動恢複其對組播數據的轉發,過程如下:
(1) 需要恢複接收組播數據的節點向其上遊節點發送嫁接報文(Graft Message)以申請重新加入到SPT中;
(2) 當上遊節點收到該報文後恢複該下遊節點的轉發狀態,並向其回應一個嫁接應答報文(Graft-Ack Message)以進行確認;
(3) 如果發送嫁接報文的下遊節點沒有收到來自其上遊節點的嫁接應答報文,將重新發送嫁接報文直到被確認為止。
在一個網段內如果存在多台組播設備,則相同的組播報文可能會被重複發送到該網段。為了避免出現這種情況,就需要通過斷言(Assert)機製來選定唯一的組播數據轉發者。
圖1-2 Assert機製示意圖
如圖1-2所示,當Device A和Device B從上遊節點收到(S,G)組播報文後,都會向本地網段轉發該報文,於是處於下遊的節點Device C就會收到兩份相同的組播報文,Device A和Device B也會從各自的下遊接口收到對方轉發來的該組播報文。此時,Device A和Device B會通過其下遊接口向本網段的所有PIM設備(224.0.0.13)以組播方式發送斷言報文(Assert Message),該報文中攜帶有以下信息:組播源地址S、組播組地址G、到組播源的單播路由/MBGP路由/組播靜態路由的優先級和度量值。通過一定的規則對這些參數進行比較後,Device A和Device B中的獲勝者將成為(S,G)組播報文在本網段的轉發者,比較規則如下:
(1) 到組播源的優先級較高者獲勝;
(2) 如果到組播源的優先級相等,那麼到組播源的度量值較小者獲勝;
(3) 如果到組播源的度量值也相等,則下遊接口IP地址較大者獲勝。
PIM-DM使用以“擴散—剪枝”方式構建的SPT來傳送組播數據。盡管SPT的路徑最短,但是其建立的過程效率較低,並不適合大中型網絡。而PIM-SM則屬於稀疏模式的組播路由協議,使用“拉(Pull)模式”傳送組播數據,通常適用於組播組成員分布相對分散、範圍較廣的大中型網絡。
與PIM-DM相反,PIM-SM假設網絡中沒有組播接收者,於是接收者需要主動發起加入。PIM-SM網絡的核心是RP(Rendezvous Point,彙集點),PIM-SM實現組播轉發的關鍵就是建立以組播源為“根”、RP為“葉子”的SPT,以及以RP為“根”、接收者為“葉子”的RPT。
PIM-SM工作機製包括鄰居發現、DR選舉、RP發現、Anycast-RP、構建RPT、組播源注冊、SPT切換、斷言。
PIM-SM使用與PIM-DM類似的鄰居發現機製,具體請參見“1.2.1 鄰居發現”一節。
無論是與組播源相連的網絡,還是與接收者相連的網絡,都需要選舉DR(Designated Router,指定路由器)。接收者側的DR負責向RP發送加入報文(Join Message);組播源側的DR負責向RP發送注冊報文(Register Message)。
DR對於PIM-SM有實際的意義,而對於PIM-DM來說,其本身並不需要DR,但如果PIM-DM域中的共享網絡上運行了IGMPv1,則需要由DR來充當共享網絡上的IGMPv1查詢器。
在充當接收者側DR的設備上必須使能IGMP,否則連接在該DR上的接收者將無法通過該DR加入組播組。有關IGMP的詳細介紹,請參見“IP組播配置指導”中的“IGMP”。
圖1-3 DR選舉示意圖
如圖1-3所示,DR的選舉過程如下:
(1) 共享網絡上的各設備相互之間發送Hello報文(攜帶有競選DR優先級的參數),擁有最高優先級的設備將成為DR;
(2) 如果優先級相同,或者網絡中至少有一台設備不支持在Hello報文中攜帶競選DR優先級的參數,則根據各設備的IP地址大小來競選DR,IP地址最大的設備將成為DR。
如果DR出現故障,將導致其PIM鄰居可達狀態定時器超時,其餘設備將觸發新的DR選舉過程。
RP是PIM-SM域中的核心設備。每個組播組在任意時刻,隻能由唯一的一個RP為其轉發數據,而不能由多個RP轉發數據。RP可以通過手工方式靜態配置,也可以通過BSR機製動態選舉,緩解RP的負擔並優化RPT的拓撲結構。
動態選舉機製涉及到的角色:
· C-RP(Candidate-RP,候選RP):設備通過自舉機製從C-RP中動態選出RP,使不同的RP服務於不同的組播組。
· BSR(Bootstrap Router,自舉路由器):PIM-SM域的管理核心,負責在PIM-SM域中收集並發布RP信息。BSR是通過C-BSR選舉出來的。一個PIM-SM域內隻能有一個BSR,但可以配置多個C-BSR。
· C-BSR(Candidate-BSR,候選BSR):任意一台設備都可以被配置為C-BSR,從中選舉出BSR。一旦BSR發生故障,其餘C-BSR能夠通過自動選舉產生新的BSR,從而確保業務免受中斷。
動態選舉機製的過程,如圖1-4所示:
圖1-4 RP與BSR信息交互示意圖
(1) 每個C-BSR向其它設備發送自舉報文,某C-BSR收到其它C-BSR發來的自舉報文時,首先比較自己與後者的優先級,優先級較高者獲勝;在優先級相同的情況下,再比較自己與後者的BSR地址,擁有較大IP地址者獲勝。如果後者獲勝,則用後者的BSR地址替換自己的BSR地址,並不再認為自己是BSR;否則,保留自己的BSR地址,並繼續認為自己是BSR。
(2) C-RP周期性地向BSR發送宣告報文(Advertisement Message),該報文中攜帶有C-RP的地址和優先級以及其服務的組範圍。且在其宣告報文中封裝一個保持時間,BSR在收到該報文後,從中獲得該時間值並啟動C-RP超時定時器,如果超時後BSR仍沒有收到來自C-RP後續的宣告報文,則認為目前網絡中的C-RP失效或不可達。
(3) BSR從宣告報文中學習和收集RP-Set信息,將這些信息彙總為RP-Set(RP集,即組播組與RP的映射關係數據庫),並將該信息與自己的IP地址一起封裝在自舉報文(Bootstrap Message,BSM)中發布到整個PIM-SM域。
(4) 網絡內的其它設備根據RP-Set信息計算出特定組播組範圍所對應的RP。
網絡中的各設備將依據RP-Set提供的信息,使用相同的規則從眾多C-RP中為特定組播組選擇其對應的RP,具體規則如下:
(1) 首先比較C-RP所服務的組範圍,所服務的組範圍較小者獲勝。
(2) 若服務的組範圍相同,再比較C-RP的優先級,優先級較高者獲勝。
(3) 若優先級也相同,再使用哈希(Hash)函數計算哈希值,哈希值較大者獲勝。
(4) 若哈希值也相同,則C-RP的IP地址較大者獲勝。
· 一個RP可以同時服務於多個組播組,但一個組播組隻能唯一對應一個RP。
· 一台設備可以同時充當C-RP和C-BSR。
PIM-SM要求每個組播組隻能有一個激活的RP,因此當某RP失效時,可能導致其對應組播組的流量中斷。Anycast-RP機製通過為同一組播組設置具有相同地址的多個RP,組播源和接收者各自就近選擇RP進行注冊或加入,這些RP之間則進行組播源信息的同步,從而實現了RP間的冗餘備份。Anycast-RP具有以下優點:
· RP路徑最優:組播源向距離最近的RP進行注冊,建立路徑最優的SPT;接收者向距離最近的RP發起加入,建立路徑最優的RPT。
· RP冗餘備份:當某RP失效後,原先在該RP上注冊或加入的組播源或接收者會自動選擇就近的RP進行注冊或加入,從而實現了RP間的冗餘備份。
Anycast-RP可以通過以下兩種方式實現:
· 基於MSDP實現:通過為同一組播組設置具有相同地址的多個RP,並在這些RP之間建立MSDP對等體關係來實現。詳細介紹請參見“IP組播配置指導”中的“MSDP”。
· 基於PIM-SM實現:通過對RP進行一定的擴展來實現,不需要依賴MSDP。本文主要介紹這種實現方式。
在基於PIM-SM的實現中,由服務於同一組播組的多個RP組成的集合稱為Anycast-RP集,這些RP則稱為Anycast-RP成員,各成員的地址稱為Anycast-RP成員地址,而Anycast-RP集對外統一發布的地址則稱為Anycast-RP地址。如圖1-5所示,一個Anycast-RP集中包含RP 1、RP 2和RP 3三個成員,Anycast-RP地址為RPA。
圖1-5 基於PIM-SM實現Anycast-RP示意圖
基於PIM-SM實現Anycast-RP的工作過程如下:
(1) RP 1收到一個目的地址為RPA的注冊報文,發現其源地址不是其它成員(RP 2或RP 3)的地址,於是認為此報文由DR發來。然後RP 1將該報文的源地址改為自己的地址後發送給所有其它成員(RP 2和RP 3)。如果一台設備既是DR也是RP,則相當於收到自己發送的注冊報文,也要向所有其它成員轉發。
(2) RP 2和RP 3收到RP 1發來的注冊報文後,發現其源地址是Anycast-RP集的成員地址,於是不再向外轉發。
由此可見,RP接收注冊報文的原有處理沒有任何改變,唯一的變化就是滿足條件的RP要向同一Anycast-RP集內的其它成員轉發注冊報文,以實現組播源信息的共享。
圖1-6 PIM-SM中構建RPT示意圖
如圖1-6所示,RPT的構建過程如下:
(1) 當接收者加入一個組播組G時,先通過IGMP報文通知與其直連的DR;
(2) DR掌握了組播組G的接收者的信息後,向該組所對應的RP方向逐跳發送加入報文;
(3) 從DR到RP所經過的設備就形成了RPT的分支,這些設備都在其轉發表中生成了(*,G)表項,這裏的“*”表示來自任意組播源。RPT以RP為根,以DR為葉子。
當發往組播組G的組播數據流經RP時,數據就會沿著已建立好的RPT到達DR,進而到達接收者。
當某接收者對組播組G的信息不再感興趣時,與其直連的DR會逆著RPT向該組的RP方向逐跳發送剪枝報文;上遊節點收到該報文後在其出接口列表中刪除與下遊節點相連的接口,並檢查自己是否擁有該組播組的接收者,如果沒有則繼續向其上遊轉發該剪枝報文。
當接收者不再通過RP接收發往某組播組的數據(即RP不再服務於該組播組),或RP開始接收組播源沿著SPT發來的組播數據時,RP將向組播源側DR發送注冊停止報文,DR收到該報文後將停止發送封裝有組播數據的注冊報文並啟動注冊停止定時器(Register-Stop Timer)。在注冊停止定時器超時之前,DR會向RP發送一個空注冊報文(Null-Register Message,即不封裝組播數據的注冊報文):如果DR在注冊探測時間(Register_Probe_Time)內收到了來自RP的注冊停止報文,DR將刷新其注冊停止定時器;否則,DR將重新開始發送封裝有組播數據的注冊報文。
組播源注冊的目的是向RP通知組播源的存在。
如圖1-7所示,組播源向RP注冊的過程如下:
(1) 當組播源S向組播組G發送了一個組播報文時,與組播源直連的DR在收到該報文後,就將其封裝成注冊報文,並通過單播方式發送給相應的RP;
(2) 當RP收到該報文後,一方麵解封裝注冊報文並將封裝在其中的組播報文沿著RPT轉發給接收者,另一方麵向組播源方向逐跳發送(S,G)加入報文。這樣,從RP到組播源所經過的設備就形成了SPT的分支,這些設備都在其轉發表中生成了(S,G)表項。
(3) 組播源發出的組播數據沿著已建立好的SPT到達RP,然後由RP把組播數據沿著RPT向接收者進行轉發。當RP收到沿著SPT轉發來的組播數據後,通過單播方式向與組播源直連的DR發送注冊停止報文(Register-Stop Message)。
在PIM-SM域中,一個組播組唯一對應一個RP和一棵RPT。在SPT切換前,所有發往該組的組播報文都必須先由組播源側DR封裝在注冊報文中發往RP,由RP解封裝後再沿RPT分發給接收者側的DR,RP是所有組播數據必經的中轉站。這個過程存在以下三個問題:
· 組播源側的DR和RP必須對組播數據進行繁瑣的封裝/解封裝處理。
· 組播數據的轉發路徑不一定是從組播源到接收者的最短路徑。
· 當組播流量變大時,RP負擔增大,容易引發故障。
為了解決上述問題,當組播數據的轉發速率超過閾值時,PIM-SM允許由RP或接收者側的DR發起SPT切換:
(1) RP發起的SPT切換
RP周期性地檢測組播數據(S,G)的轉發速率,一旦發現其超過閾值,立即向組播源方向發送(S,G)加入報文,建立RP到組播源的SPT分支,後續的組播報文都直接沿該分支到達RP。
由RP發起的SPT切換的詳細過程,請參見“1.3.6 組播源注冊”一節。
(2) 接收者側DR發起的SPT切換
接收者側DR周期性地檢測組播數據(S,G)的轉發速率,一旦發現其超過閾值,立即發起SPT切換,過程如下:
· 首先,接收者側DR向組播源方向發送(S,G)加入報文,沿途經過的所有路由器在其轉發表中都生成了(S,G)表項,從而建立了SPT分支;
· 隨後,當組播數據沿SPT到達RPT與SPT分叉的路由器時,該路由器開始丟棄沿RPT到達的組播數據,同時向RP逐跳發送含RP位的剪枝報文,RP收到該報文後繼續向組播源方向發送剪枝報文(假設此時隻有這一個接收者),從而完成了SPT切換;
· 最終,組播數據將沿SPT從組播源到達到接收者。
通過SPT切換,PIM-SM能夠以比PIM-DM更經濟的方式建立SPT。
PIM-SM使用與PIM-DM類似的斷言機製,具體請參見“1.2.4 斷言”一節。
在某些組網應用(譬如多方電視電話會議)中,在一個組播組同時對應多個接收者和多個組播源的情況下,如果使用傳統的PIM-DM或PIM-SM按SPT轉發組播數據,需在每台設備上針對每個組播源都創建(S,G)表項,這將占用大量的係統資源。為了解決這個問題,提出了雙向PIM的概念。雙向PIM由PIM-SM發展而來,它通過建立以RP為中心、分別連接組播源和接收者的雙向RPT,使組播數據沿著雙向RPT從組播源經由RP轉發到接收者。這樣,在每台設備上隻需維護(*,G)表項即可,從而節約了係統資源。
雙向PIM主要適用於組播源和接收者都比較密集的網絡,工作機製包括鄰居發現、RP發現、DF選舉、構建雙向RPT。
雙向PIM使用與PIM-SM完全相同的鄰居發現機製,具體請參見“1.3.1 鄰居發現”一節。
雙向PIM使用與PIM-SM完全相同的RP發現機製,具體請參見“1.3.3 RP發現”一節。
DF(Designated Forwarder,指定轉發者)是雙向PIM中的重要角色,組播數據由組播源向RP轉發的動力來自於DF,也就是說隻有DF才有能力將組播數據向RP方向轉發。因此,每個RP在每個網段都需要有其對應的DF,以負責將該網段的組播數據向該RP轉發;此外,在有多台組播設備的網段,DF的唯一性也可以避免相同的組播報文被重複發往RP。
在RPL上不需要選舉DF。
圖1-8 DF選舉示意圖
如圖1-8所示,Device B和Device C都可以從Device A收到由組播源向組播組G發送的組播報文,如果它們都向下遊節點轉發該報文,RP最終將收到兩份相同的組播報文。因此,Device B和Device C一旦獲得RP的信息,就會為該RP發起DF的選舉:Device B和Device C將分別向本網段的所有PIM設備(224.0.0.13)以組播方式發送DF選舉報文(DF Election Message),該報文攜帶有以下信息:RP的地址、到RP的單播路由/MBGP路由/組播靜態路由的優先級和度量值。通過一定規則對這些參數進行比較後,Device B和Device C中的獲勝者將成為DF,具體的比較規則如下:
(1) 到RP的優先級較高者獲勝;
(2) 如果到RP的優先級相等,那麼到RP的度量值較小者獲勝;
(3) 如果到RP的度量值也相等,則接口的IP地址較大者獲勝。
雙向RPT由兩部分構成:一部分是以RP為根、以直連接收者的設備為葉子的RPT,簡稱接收者側RPT;而另一部分則是以RP為根、以直連組播源的設備為葉子的RPT,簡稱組播源側RPT。這兩部分RPT的構建過程不同,下麵分別加以介紹。
圖1-9 接收者側RPT構建示意圖
接收者側RPT的構建過程與PIM-SM中RPT的構建過程類似,如圖1-9所示,其構建過程如下:
(1) 當接收者加入一個組播組G時,先通過IGMP報文通知與其直連的設備;
(2) 該設備掌握了組播組G的接收者的信息後,向該組所對應的RP方向逐跳發送加入報文;
(3) 從直連接收者的設備到RP所經過的設備就形成了接收者側RPT的分支,這些設備都在其轉發表中生成了(*,G)表項。
當某接收者對組播組G的信息不再感興趣時,與其直連的設備會逆著接收者側RPT向該組的RP方向逐跳發送剪枝報文;上遊節點收到該報文後在其出接口列表中刪除與下遊節點相連的接口,並檢查自己是否擁有該組播組的接收者,如果沒有則繼續向其上遊轉發該剪枝報文。
圖1-10 組播源側RPT構建示意圖
組播源側RPT的構建過程則相對簡單,如圖1-10所示,其構建過程如下:
(1) 組播源發向組播組G的組播數據在途徑的每個網段,都被該網段的DF無條件地向RP轉發;
(2) 從直連組播源的設備到RP所經過的設備就形成了組播源側RPT的分支,這些設備都在其轉發表中生成了(*,G)表項。
當雙向RPT構建完成之後,由組播源發出的組播數據將依次沿著組播源側RPT和接收者側RPT,經由RP轉發至接收者。
當接收者和組播源位於RP同一側時,組播源側RPT與接收者側RPT有可能在到達RP之前就已彙合。在這種情況下,由該組播源發往該接收者的組播數據將在此彙合點直接被轉發給該接收者,而不必經由RP。
PIM-SM/雙向PIM域的域機製被分為“非管理域機製”和“管理域機製”兩類:
· 非管理域機製:一般情況下,在一個域內隻能有一個BSR,並由該BSR負責在整個域內宣告RP-Set信息,所有組播組的信息都在此BSR管理的網絡範圍內進行轉發。
· 管理域機製:考慮到管理的精細化,可以將整個域劃分為一個Global域(Global-scope Zone)和多個管理域(Admin-scope Zone),一方麵可以有效分擔單一BSR的管理壓力,另一方麵可以使用私有組地址為特定區域提供專門的服務。
其中,管理域與組播組相對應,針對不同組播組劃分相應的管理域。管理域的邊界由ZBR(Zone Border Router,區域邊界路由器)構成,每個管理域各維護一個BSR,為特定範圍的組播組服務,屬於此範圍的組播協議報文(如斷言報文、BSR自舉報文等)無法通過管理域邊界。不同管理域所服務的組播組範圍可以重疊,該範圍內的組播組隻在本管理域內有效,相當於私有組地址。而不屬於任何管理域服務範圍的組播組則一律屬於Global域的服務範圍,Global域中維護一個BSR,為剩餘的所有組播組服務。
每個管理域以及Global域都有獨立的C-RP和BSR設備,這些設備僅在其所屬的域有效,也就是說BSR機製與RP選舉在各管理域之間是隔離的;每個管理域都有自己的邊界,各管理域所服務組播組範圍內的組播信息不能進、出該邊界。為了更清晰地理解管理域和Global域之間的關係,可以從以下兩個角度進行考慮:
· 地域空間角度
管理域是針對特定範圍組播組的邏輯管理區域,屬於此範圍的組播報文隻能在本管理域的域內或域外傳播,無法跨過管理域的邊界。
圖1-11 地域空間上管理域與Global域的關係
如圖1-11所示,對於同一地址範圍內的組播組而言,各管理域在地域上必須相互獨立、相互隔離,即同一設備不能從屬於多個管理域,各管理域所包含的設備也互不相同。而Global域則包含了PIM-SM/雙向PIM域內的所有設備,不屬於任何管理域服務範圍的組播報文,可以在整個PIM-SM/雙向PIM域範圍內傳播。
· 組地址範圍角度
每個管理域為特定的組播組提供服務,這些組播組地址隻在本管理域內有效,不同管理域所服務的組播組地址範圍可以重疊;而不屬於任何管理域的組播組,則一律屬於Global域的服務範圍。
如圖1-12所示,管理域1與管理域2所對應的組地址範圍無交集,而管理域3的組地址是管理域1組地址的子集;其餘不屬於任何管理域的組播組(即G−G1−G2)則都屬於Global域的服務範圍。
目前,ASM(Any-Source Multicast,任意信源組播)模型包括PIM-DM和PIM-SM兩種模式,SSM(Source-Specific Multicast,指定信源組播)模型能夠借助PIM-SM的部分技術來實現,也稱為PIM-SSM。
SSM模型為指定源組播提供了解決方案,通過IGMPv3來維護主機與設備之間的關係。在實際應用中,通常采用IGMPv3以及PIM-SM的一部分技術來實現SSM模型。由於接收者預先已知道組播源的具體位置,因此在SSM模型中無需RP,無需構建RPT,無需組播源注冊過程,也無需通過MSDP(Multicast Source Discovery Protocol,組播源發現協議)來發現其它PIM域內的組播源。
PIM-SSM的工作機製包括鄰居發現、DR選舉、構建SPT。
PIM-SSM使用與PIM-SM完全相同的鄰居發現機製,具體請參見“1.3.1 鄰居發現”一節。
PIM-SSM使用與PIM-SM完全相同的DR選舉機製,具體請參見 “1.3.2 DR選舉”一節。
圖1-13 PIM-SSM中構建SPT示意圖
如圖1-13所示,SPT的構建過程如下:
(1) Host B和Host C作為組播信息的接收者(Receiver),借助IGMPv3的報告報文向DR報告自己對來自組播源S、發往組播組G的信息感興趣。
(2) DR收到該報告報文後,向組播源S逐跳發送通道(Channel)的訂閱報文(Subscribe Message)。
在PIM-SSM中,借助“通道”的概念表示組播組,借助“訂閱報文”的概念表示加入報文。
(3) 該訂閱報文沿途經過的所有設備上都創建(S,G)表項,從而在網絡內構建一棵以組播源S為根、以接收者為葉子的SPT,該SPT就是PIM-SSM中的傳輸通道。
在一個PIM網絡中,不允許PIM-DM與其它類型的PIM協議(PIM-SM、雙向PIM和PIM-SSM)同時運行,但允許同時運行PIM-SM、雙向PIM和PIM-SSM。
當網絡中同時運行PIM-SM、雙向PIM和PIM-SSM時,針對具體的組加入行為運行哪種類型的PIM協議,其判斷過程如圖1-14所示。
圖1-14 各PIM協議運行關係示意圖
有關IGMP SSM Mapping的詳細介紹,請參見“IP組播配置指導”中的“IGMP”。
在多實例應用中,組播設備需要針對不同的實例分別維護PIM鄰居表、組播路由表、BSR信息和RP-Set信息,並保持各實例間上述信息的相互獨立。
當組播設備收到組播數據報文時,需要區分出該數據報文所屬的實例,並根據該實例對應的組播路由表將其轉發,或創建與該實例的PIM相關的組播路由表項。
與PIM相關的協議規範有:
· RFC 3973:Protocol Independent Multicast-Dense Mode (PIM-DM): Protocol Specification (Revised)
· RFC 4601:Protocol Independent Multicast-Sparse Mode (PIM-SM): Protocol Specification (Revised)
· RFC 4610:Anycast-RP Using Protocol Independent Multicast (PIM)
· RFC 5015:Bidirectional Protocol Independent Multicast (BIDIR-PIM)
· RFC 5059:Bootstrap Router (BSR) Mechanism for Protocol Independent Multicast (PIM)
· RFC 4607:Source-Specific Multicast for IP
· draft-ietf-ssm-overview-05:An Overview of Source-Specific Multicast (SSM)
本特性的支持情況與設備型號有關,請以設備的實際情況為準。
型號 |
說明 |
MSR610 |
支持 |
MSR810、MSR810-W、MSR810-W-DB、MSR810-LM、MSR810-W-LM、MSR810-10-PoE、MSR810-LM-HK、MSR810-W-LM-HK、MSR810-LM-CNDE-SJK、MSR810-CNDE-SJK、MSR810-EI、MSR810-LM-EA、MSR810-LM-EI |
支持 |
MSR810-LMS、MSR810-LUS |
不支持 |
MSR810-SI、MSR810-LM-SI |
不支持 |
MSR810-LMS-EA、MSR810-LME |
支持 |
MSR1004S-5G、MSR1004S-5G-CN |
支持 |
MSR1104S-W、MSR1104S-W-CAT6、MSR1104S-5G-CN、MSR1104S-W-5G-CN、MSR1104S-W-5GGL |
支持 |
MSR2600-6-X1、MSR2600-15-X1、MSR2600-15-X1-T |
支持 |
MSR2600-10-X1 |
支持 |
MSR2630-G-X1 |
支持 |
MSR 2630 |
支持 |
MSR3600-28、MSR3600-51 |
支持 |
MSR3600-28-SI、MSR3600-51-SI |
不支持 |
MSR3600-28-X1、MSR3600-28-X1-DP、MSR3600-51-X1、MSR3600-51-X1-DP |
支持 |
MSR3600-28-G-DP、MSR3600-51-G-DP |
支持 |
MSR3600-28-G-X1-DP、MSR3600-51-G-X1-DP |
支持 |
MSR3610-I-DP、MSR3610-IE-DP、MSR3610-IE-ES、MSR3610-IE-EAD、MSR-EAD-AK770、MSR3610-I-IG、MSR3610-IE-IG |
支持 |
MSR-iMC |
支持 |
MSR3610-X1、MSR3610-X1-DP、MSR3610-X1-DC、MSR3610-X1-DP-DC、MSR3620-X1、MSR3640-X1 |
支持 |
MSR 3610、MSR 3620、MSR 3620-DP、MSR 3640、MSR 3660 |
支持 |
MSR3610-G、MSR3620-G |
支持 |
MSR3640-G |
支持 |
MSR3640-X1-HI |
支持 |
型號 |
描述 |
MSR810-W-WiNet、MSR810-LM-WiNet |
支持 |
MSR830-4LM-WiNet |
支持 |
MSR830-5BEI-WiNet、MSR830-6EI-WiNet、MSR830-10BEI-WiNet |
支持 |
MSR830-6BHI-WiNet、MSR830-10BHI-WiNet |
支持 |
MSR2600-6-WiNet |
支持 |
MSR2600-10-X1-WiNet |
支持 |
MSR2630-WiNet |
支持 |
MSR3600-28-WiNet |
支持 |
MSR3610-X1-WiNet |
支持 |
MSR3620-X1-WiNet |
支持 |
MSR3610-WiNet、MSR3620-10-WiNet、MSR3620-DP-WiNet、MSR3620-WiNet、MSR3660-WiNet |
支持 |
型號 |
說明 |
MSR860-6EI-XS |
支持 |
MSR860-6HI-XS |
支持 |
MSR2630-XS |
支持 |
MSR3600-28-XS |
支持 |
MSR3610-XS |
支持 |
MSR3620-XS |
支持 |
MSR3610-I-XS |
支持 |
MSR3610-IE-XS |
支持 |
MSR3620-X1-XS |
支持 |
MSR3640-XS |
支持 |
MSR3660-XS |
支持 |
型號 |
說明 |
MSR810-LM-GL |
支持 |
MSR810-W-LM-GL |
支持 |
MSR830-6EI-GL |
支持 |
MSR830-10EI-GL |
支持 |
MSR830-6HI-GL |
支持 |
MSR830-10HI-GL |
支持 |
MSR1004S-5G-GL |
支持 |
MSR2600-6-X1-GL |
支持 |
MSR3600-28-SI-GL |
不支持 |
同一台設備相同實例的所有接口上啟用的PIM模式必須相同。
當PIM網絡中同時運行PIM-SM和雙向PIM時,請勿使一個RP同時為PIM-SM和雙向PIM工作,否則可能引起PIM路由表出錯。
PIM-DM配置任務如下:
(1) 使能PIM-DM
(2) (可選)配置狀態刷新能力
(3) (可選)配置PIM-DM嫁接報文的重傳時間
(4) (可選)配置PIM公共特性
在配置PIM-DM之前,需要完成如下操作:
· 配置任一單播路由協議,實現域內網絡層互通。
· 使能IP組播路由。
在接口上使能了PIM-DM後,設備之間才能夠建立PIM鄰居,從而對來自PIM鄰居的協議報文進行處理。
在部署PIM-DM域時,建議在其所有非邊界接口上均使能PIM-DM。
(1) 進入係統視圖。
system-view
(2) 使能IP組播路由,並進入MRIB視圖。
multicast routing [ vpn-instance vpn-instance-name ]
缺省情況下,IP組播路由處於關閉狀態。
本命令的詳細介紹請參見“IP組播命令參考”中的“組播路由與轉發”。
(3) 退回係統視圖。
quit
(4) 進入接口視圖。
interface interface-type interface-number
(5) 使能PIM-DM。
pim dm
缺省情況下,PIM-DM處於關閉狀態。
配置狀態刷新能力可以使得設備之間更高效的獲得彼此的(S,G)狀態,分為以下三個可供配置的選項,對各選項的介紹如下:
· 狀態刷新能力:為了避免各設備上被剪枝的接口因為超時而恢複轉發,與組播源直連的設備會周期性地發送(S,G)狀態刷新報文。該報文沿著PIM-DM域最初的擴散路徑逐跳進行轉發,從而刷新沿途所有設備上的剪枝定時器的狀態。隻有當一個共享網段內的所有PIM設備上都開啟了狀態刷新能力時,該共享網段才具備狀態刷新能力。
· 接收新狀態刷新報文的等待時間:設備可能在短時間內收到多個狀態刷新報文,而其中有些報文可能是重複的。為了避免接收這些重複的報文,可以配置接收新狀態刷新報文的等待時間。設備將丟棄在該時間內收到的狀態刷新報文;當該時間超時後,設備將正常接收新的狀態刷新報文,並更新自己的PIM-DM狀態,同時重置該等待時間。
· 狀態刷新報文的TTL值:設備收到狀態刷新報文時,會將該報文的TTL值減1後轉發給其下遊,直至該報文的TTL值減為0,當網絡規模很小時,狀態刷新報文將在網絡中循環傳遞。因此,為了有效控製刷新報文的傳遞範圍,需要根據網絡規模大小在與組播源直連的設備上配置合適的TTL值。
請在PIM-DM域內的所有設備上進行如下配置。
(1) 進入係統視圖。
system-view
(2) 進入接口視圖。
interface interface-type interface-number
(3) 開啟狀態刷新能力。
pim state-refresh-capable
缺省情況下,狀態刷新能力處於開啟狀態。
(4) 退回係統視圖。
quit
(5) 進入PIM視圖。
pim [ vpn-instance vpn-instance-name ]
(6) 配置發送狀態刷新報文的時間間隔。
state-refresh-interval interval
缺省情況下,發送狀態刷新報文的時間間隔為60秒。
可以在與組播源直連的設備上通過配置來改變這個時間間隔。
(7) 配置接收新狀態刷新報文的等待時間。
state-refresh-rate-limit time
缺省情況下,接收新狀態刷新報文的等待時間為30秒。
(8) 配置狀態刷新報文的TTL值。
state-refresh-ttl ttl-value
缺省情況下,狀態刷新報文的TTL值為255。
嫁接報文是PIM-DM中唯一使用確認機製的報文。在PIM-DM域中,下遊設備發出嫁接報文後,如果在指定時間內沒有收到來自其上遊設備的嫁接應答報文,則會重發嫁接報文,直到被確認。
(1) 進入係統視圖。
system-view
(2) 進入接口視圖。
interface interface-type interface-number
(3) 配置嫁接報文的重傳時間。
pim timer graft-retry interval
缺省情況下,嫁接報文的重傳時間為3秒。
PIM-SM配置任務如下:
(1) 使能PIM-SM
(2) 配置靜態RP
當網絡內僅有一個動態RP時,建議手工配置靜態RP。
(3) 配置動態RP
¡ 配置C-RP
¡ 配置C-BSR
¡ (可選)配置BSR服務邊界
¡ (可選)關閉自舉報文語義分片功能
¡ (可選)關閉自舉報文往報文入接口方向轉發功能
當網絡內PIM設備數量較多時建議配置動態RP。
配置靜態RP和配置動態RP可以任選其一,也可以都配置。
(4) (可選)配置自動RP偵聽
(5) (可選)配置Anycast-RP
(6) (可選)配置組播源注冊
(7) (可選)配置SPT切換
(8) (可選)配置PIM公共特性
在配置PIM-SM之前,需要完成如下操作:
· 配置任一單播路由協議,實現域內網絡層互通。
· 使能IP組播路由。
在接口上使能了PIM-SM後,設備之間才能夠建立PIM鄰居,從而對來自PIM鄰居的協議報文進行處理。
在部署PIM-SM域時,建議在其所有非邊界接口上均使能PIM-SM。
(1) 進入係統視圖。
system-view
(2) 使能IP組播路由,並進入MRIB視圖。
multicast routing [ vpn-instance vpn-instance-name ]
缺省情況下,IP組播路由處於關閉狀態。
本命令的詳細介紹請參見“IP組播命令參考”中的“組播路由與轉發”。
(3) 退回係統視圖。
quit
(4) 進入接口視圖。
interface interface-type interface-number
(5) 使能PIM-SM。
pim sm
缺省情況下,PIM-SM處於關閉狀態。
當網絡內僅有一個動態RP時,建議手工配置靜態RP,既可避免因單一節點故障而引起的通信中斷,也可避免C-RP與BSR之間頻繁的信息交互而占用帶寬。
· 同一個網絡可以依據ACL規則配置多個靜態RP。
· 作為靜態RP的接口不必使能PIM。
· 同一個組播組如果配置了多個靜態RP,那麼地址最大的靜態RP為實際靜態RP。
· PIM-SM域內的所有設備上都必須進行完全相同的靜態RP配置,否則映射的RP可能不一致。
(1) 進入係統視圖。
system-view
(2) 進入PIM視圖。
pim [ vpn-instance vpn-instance-name ]
(3) 配置服務於PIM-SM的靜態RP。
static-rp rp-address [ ipv4-acl-number | preferred ] *
為了防止C-RP欺騙,需要在BSR上配置合法的C-RP地址範圍及其服務的組播組範圍。
· 一台設備可以同時充當C-RP和C-BSR,建議在骨幹網路由器上配置C-RP。
· 由於每個C-RP都可能成為RP,因此必須在PIM-SM域內的所有C-RP上都進行相同的配置。
· 配置C-RP時,應在C-RP與PIM-SM域中的其它設備之間保留較大的通信帶寬。
(1) 進入係統視圖。
system-view
(2) 進入PIM視圖。
pim [ vpn-instance vpn-instance-name ]
(3) 配置C-RP。
c-rp ip-address [ advertisement-interval adv-interval | group-policy { ipv4-acl-number | name ipv4-acl-name } | holdtime hold-time | priority priority ] *
(4) (可選)配置合法的C-RP地址範圍及其服務的組播組範圍。
crp-policy ipv4-acl-number
缺省情況下,C-RP地址範圍及其服務的組播組範圍不受限製。
如果配置了C-RP來動態選舉RP,則必須配置C-BSR。通過在PIM-SM域內的所有設備上配置合法BSR的地址範圍,可以對收到的自舉報文按照地址範圍進行過濾,從而防止某些惡意主機非法偽裝成BSR,以避免合法的BSR被惡意取代。
· 當C-BSR與其它PIM設備通過隧道連接時請配置組播靜態路由以保證單播路由中到C-BSR的下一跳是tunnel接口,否則將影響RPF檢查。有關組播靜態路由的相關配置,請參見“IP組播配置指導”中的“組播路由與轉發”。
· 由於BSR與PIM-SM域中的其它設備需要交換大量信息,因此應在C-BSR與PIM-SM域中的其它設備之間保留較大的通信帶寬。
· 一台設備可以同時充當C-RP和C-BSR,C-BSR應配置在骨幹網的路由器上。
· 必須在PIM-SM域內的所有路由器上進行相同的配置。
(1) 進入係統視圖。
system-view
(2) 進入PIM視圖。
pim [ vpn-instance vpn-instance-name ]
(3) 配置C-BSR。
c-bsr ip-address [ scope group-address { mask-length | mask } ] [ hash-length hash-length | priority priority ] *
(4) (可選)配置合法的BSR地址範圍。
bsr-policy ipv4-acl-number
缺省情況下,BSR的地址範圍不受限製。
BSR的服務邊界,即PIM-SM域的邊界。BSR是針對特定的服務範圍而言的,眾多的BSR服務邊界接口將網絡劃分成不同的PIM-SM域,自舉報文無法通過PIM-SM域的邊界,BSR服務邊界之外的設備也不能參與本PIM-SM域內的組播轉發。
(1) 進入係統視圖。
system-view
(2) 進入接口視圖。
interface interface-type interface-number
(3) 配置BSR的服務邊界。
pim bsr-boundary
當自舉報文的大小可能超過接口的MTU(Maximum Transmission Unit,最大傳輸單元)值時,可能會導致整個自舉報文都被丟棄。自舉報文語義分片功能可以解決上述問題:當自舉報文大於接口MTU時,會被分解為多個自舉報文分片(Bootstrap Message Fragment,BSMF)。非BSR收到自舉報文分片後,若發現某組範圍對應的RP信息都在這一個分片中,便立即更新該組範圍對應的RP-Set;若發現某組範圍映射的RP信息被分在了多個分片中,則待收齊了這些分片後再更新該組範圍對應的RP-Set。這樣,由於不同分片所含組範圍對應的RP信息不同,因此個別分片的丟失隻影響該分片所含組範圍對應的RP信息,而不會導致整個自舉報文都被丟棄。
自舉報文語義分片功能是缺省開啟的,但由於不支持該功能的設備會將自舉報文分片當作完整的自舉報文處理,從而導致其學到的RP-Set信息不完整,因此當PIM-SM域中存在此類設備時,請在已配置為C-BSR的設備上關閉本功能。
(1) 進入係統視圖。
system-view
(2) 進入PIM視圖。
pim [ vpn-instance vpn-instance-name ]
(3) 關閉自舉報文語義分片功能。
undo bsm-fragment enable
缺省情況下,自舉報文語義分片功能處於開啟狀態。
BSR將自舉報文(Bootstrap Message,BSM)發布到整個PIM-SM域。在大多數PIM-SM域中,設備並不需要將自舉報文向入接口轉發出去,可以在設備上關閉本功能。
(1) 進入係統視圖。
system-view
(2) 進入PIM視圖。
pim [ vpn-instance vpn-instance-name ]
(3) 關閉自舉報文往報文入接口方向轉發功能。
undo bsm-reflection enable
缺省情況下,自舉報文往報文入接口方向轉發功能處於開啟狀態。
自動RP宣告(Announce)和發現(Discovery)報文的目的地址分別為組播組地址224.0.1.39和224.0.1.40。在設備上使能了自動RP偵聽功能後,該設備便能夠接收這兩種報文,並記錄報文中所攜帶的RP信息。
設備不支持主動發送RP宣告和發現報文,隻支持接收和轉發該報文。
(1) 進入係統視圖。
system-view
(2) 進入PIM視圖。
pim [ vpn-instance vpn-instance-name ]
(3) 開啟自動RP偵聽功能。
auto-rp enable
缺省情況下,自動RP偵聽功能處於關閉狀態。
· 處於同一個Anycast-RP集中的成員設備上,都必須存在相同的IP地址(LoopBack接口地址),並將該IP地址同時配置為Anycast-RP和C-RP。
· Anycast-RP地址不能再用作BSR的地址,否則其發出的自舉報文將被其它成員設備丟棄。
· 一個Anycast-RP集中的成員設備不建議超過16台,否則將影響網絡性能。
· 建議使用LoopBack接口的地址作為Anycast-RP成員地址。如果一台成員設備有多個接口的地址被添加到Anycast-RP集中,則采用IP地址最小的那個作為其成員地址,其餘作為備份。
· 充當Anycast-RP的接口地址必須為主機地址(即子網掩碼為255.255.255.255)。
· Anycast-RP集中必須包括Anycast-RP地址所在的設備。
在配置Anycast-RP前,需要先在PIM-SM域中完成靜態RP或C-RP的配置,然後將靜態RP或動態選舉出的RP當作Anycast-RP地址進行Anycast-RP的配置。
(1) 進入係統視圖。
system-view
(2) 進入PIM視圖。
pim [ vpn-instance vpn-instance-name ]
(3) 配置Anycast-RP。
anycast-rp anycast-rp-address member-rp-address
在Anycast-RP集的每台成員設備上通過重複執行anycast-rp命令,將包括自己在內的所有成員的地址都添加到Anycast-RP集中。
· 注冊報文的過濾策略:在PIM-SM域內,組播源側DR向RP發送注冊報文,而這些注冊報文擁有不同的組播源或組播組地址。為了讓RP服務於特定的組播組,可以對注冊報文進行過濾。如果注冊報文中的(S,G)表項被過濾策略中的ACL規則拒絕,或者該ACL中沒有定義針對該表項的規則,RP將丟棄該注冊報文,並向DR發送注冊停止報文。
· 根據注冊報文的全部內容來計算校驗和:出於注冊報文在傳遞過程中信息完整性的考慮,可以配置根據注冊報文的全部內容計算校驗和。但當其它設備不支持根據注冊報文的全部內容計算校驗和時,則需要配置僅根據注冊報文頭計算校驗和。
· 注冊抑製時間:注冊停止定時器的超時時間是一個隨機值,由其它兩個時間值決定:注冊抑製時間(Register_Suppression_Time)和注冊探測時間(固定為5秒)。其具體取值範圍如下:(0.5×注冊抑製時間,1.5×注冊抑製時間)-注冊探測時間。
請在所有已配置為C-RP的設備上配置注冊報文的過濾策略和注冊報文的校驗方式;請在所有可能成為組播源側DR的設備上配置注冊抑製時間。
(1) 進入係統視圖。
system-view
(2) 進入PIM視圖。
pim [ vpn-instance vpn-instance-name ]
(3) 配置注冊報文的過濾策略。
register-policy { ipv4-acl-number | name ipv4-acl-name }
(4) 配置根據注冊報文的全部內容來計算校驗和。
register-whole-checksum
缺省情況下,僅根據注冊報文頭來計算校驗和。
(5) 配置注冊抑製時間。
register-suppression-timeout interval
缺省情況下,注冊抑製時間為60秒。
接收者側DR和RP都能夠周期性地檢測流經本設備的組播數據的轉發速率(交換機無此功能),從而觸發從RPT切換到SPT。
如果組播源是通過MSDP學習到的,則不論閾值traffic-rate為多大,設備收到第一個組播數據包後便立即向SPT切換。
由於某些設備無法將組播報文封裝在注冊報文中發給RP,因此在可能成為RP的設備上不建議配置永不發起SPT切換,以免導致組播報文轉發失敗。
(1) 進入係統視圖。
system-view
(2) 進入PIM視圖。
pim [ vpn-instance vpn-instance-name ]
(3) 配置發起SPT切換的條件。
spt-switch-threshold { traffic-rate | immediacy | infinity } [ group-policy ipv4-acl-number ]
缺省情況下,設備收到第一個組播數據包後便立即向SPT切換。
雙向PIM配置任務如下:
(1) 使能雙向PIM
(2) 配置靜態RP
當網絡內僅有一個動態RP時,建議手工配置靜態RP。
(3) 配置動態RP
¡ 配置C-RP
¡ 配置C-BSR
¡ (可選)配置BSR服務邊界
¡ (可選)關閉自舉報文語義分片功能
¡ (可選)關閉自舉報文往報文入接口方向轉發功能
當網絡內PIM設備數量較多時建議配置動態RP。
配置靜態RP和配置動態RP可以任選其一,也可以都配置。
(4) (可選)配置雙向PIM RP的最大數目
(5) (可選)配置自動RP偵聽
(6) (可選)配置PIM公共特性
在配置雙向PIM之前,需要完成如下操作:
· 配置任一單播路由協議,實現域內網絡層互通。
· 使能PIM-SM。
在部署雙向PIM域時,建議在其所有非邊界接口上均使能PIM-SM。
(1) 進入係統視圖。
system-view
(2) 使能IP組播路由,並進入MRIB視圖。
multicast routing [ vpn-instance vpn-instance-name ]
缺省情況下,IP組播路由處於關閉狀態。
本命令的詳細介紹請參見“IP組播命令參考”中的“組播路由與轉發”。
(3) 退回係統視圖。
quit
(4) 進入接口視圖。
interface interface-type interface-number
(5) 使能PIM-SM。
pim sm
缺省情況下,PIM-SM處於關閉狀態。
(6) 退回係統視圖。
quit
(7) 進入PIM視圖。
pim [ vpn-instance vpn-instance-name ]
(8) 使能雙向PIM。
bidir-pim enable
缺省情況下,雙向PIM處於關閉狀態。
當網絡內僅有一個動態RP時,建議手工配置靜態RP,既可避免因單一節點故障而引起的通信中斷,也可避免C-RP與BSR之間頻繁的信息交互而占用帶寬。
· 雙向PIM域內的所有設備上都必須進行完全相同的靜態RP配置,否則映射的RP可能不一致。
· 同一個網絡可以依據ACL規則配置多個靜態RP。
· 作為靜態RP的接口不必使能PIM。
· 同一個組播組如果配置了多個靜態RP,那麼地址最大的靜態RP為實際靜態RP。
· 雙向PIM允許將靜態RP的IP地址指定為一個實際不存在的IP地址。譬如,一條鏈路兩端接口的IP地址分別為10.1.1.1/24和10.1.1.2/24,可以將靜態RP的IP地址指定為同網段但實際不存在的一個地址,如10.1.1.100/24,該鏈路就成為了RPL。
(1) 進入係統視圖。
system-view
(2) 進入PIM視圖。
pim [ vpn-instance vpn-instance-name ]
(3) 配置服務於雙向PIM的靜態RP。
static-rp rp-address bidir [ { ipv4-acl-number | name ipv4-acl-name } | preferred ] *
為了防止C-RP欺騙,需要在BSR上配置合法的C-RP地址範圍及其服務的組播組範圍。
· 一台設備可以同時充當C-RP和C-BSR,建議在骨幹網路由器上配置C-RP。
· 由於每個C-RP都可能成為RP,因此必須在雙向PIM域內的所有C-RP上都進行相同的配置。
· 在配置C-RP時,應在C-RP與雙向PIM域中的其它設備之間保留較大的通信帶寬。
(1) 進入係統視圖。
system-view
(2) 進入PIM視圖。
pim [ vpn-instance vpn-instance-name ]
(3) 配置服務於雙向PIM的C-RP。
c-rp ip-address [ advertisement-interval adv-interval | group-policy ipv4-acl-number | holdtime hold-time | priority priority ] * bidir
通過在雙向PIM域內的所有設備上配置合法BSR的地址範圍,可以對收到的自舉報文按照地址範圍進行過濾,從而防止某些惡意主機非法偽裝成BSR,以避免合法的BSR被惡意取代。如果配置了C-RP來動態選舉RP,則必須配置C-BSR。
· 當C-BSR與其它PIM設備通過隧道連接時請配置組播靜態路由以保證單播路由中到C-BSR的下一跳是tunnel接口,否則將影響RPF檢查。有關組播靜態路由的相關配置,請參見“IP組播配置指導”中的“組播路由與轉發”。
· 由於BSR與雙向PIM域中的其它設備需要交換大量信息,因此應在C-BSR與雙向PIM-SM域中的其它設備之間保留較大的通信帶寬。
· 一台設備可以同時充當C-RP和C-BSR,C-BSR應配置在骨幹網的路由器上。
· 必須在雙向PIM域內的所有路由器上進行相同的配置。
(1) 進入係統視圖。
system-view
(2) 進入PIM視圖。
pim [ vpn-instance vpn-instance-name ]
(3) 配置C-BSR。
c-bsr ip-address [ scope group-address { mask-length | mask } ] [ hash-length hash-length | priority priority ] *
(4) (可選)配置合法的BSR地址範圍。
bsr-policy ipv4-acl-number
缺省情況下,BSR的地址範圍不受限製。
BSR的服務邊界,即雙向PIM域的邊界。BSR是針對特定的服務範圍而言的,眾多的BSR服務邊界接口將網絡劃分成不同的雙向PIM域,自舉報文無法通過雙向PIM域的邊界,BSR服務邊界之外的設備也不能參與本雙向PIM域內的組播轉發。
(1) 進入係統視圖。
system-view
(2) 進入接口視圖。
interface interface-type interface-number
(3) 配置BSR的服務邊界。
pim bsr-boundary
當自舉報文的大小可能超過接口的MTU值時,可能會導致整個自舉報文都被丟棄。自舉報文語義分片功能可以解決上述問題:當自舉報文大於接口MTU時,會被分解為多個自舉報文分片。非BSR收到自舉報文分片後,若發現某組範圍對應的RP信息都在這一個分片中,便立即更新該組範圍對應的RP-Set;若發現某組範圍映射的RP信息被分在了多個分片中,則待收齊了這些分片後再更新該組範圍對應的RP-Set。這樣,由於不同分片所含組範圍對應的RP信息不同,因此個別分片的丟失隻影響該分片所含組範圍對應的RP信息,而不會導致整個自舉報文都被丟棄。
自舉報文語義分片功能是缺省開啟的,但由於不支持該功能的設備會將自舉報文分片當作完整的自舉報文處理,從而導致其學到的RP-Set信息不完整,因此當雙向PIM域中存在此類設備時,請在已配置為C-BSR的設備上關閉本功能。
(1) 進入係統視圖。
system-view
(2) 進入PIM視圖。
pim [ vpn-instance vpn-instance-name ]
(3) 關閉自舉報文語義分片功能。
undo bsm-fragment enable
缺省情況下,自舉報文語義分片功能處於開啟狀態。
BSR將自舉報文(Bootstrap Message,BSM)發布到整個雙向PIM域。在大多數雙向PIM域中,設備並不需要將自舉報文向入接口轉發出去,可以在設備上關閉本功能。
(1) 進入係統視圖。
system-view
(2) 進入PIM視圖。
pim [ vpn-instance vpn-instance-name ]
(3) 關閉自舉報文往報文入接口方向轉發功能。
undo bsm-reflection enable
缺省情況下,自舉報文往報文入接口方向轉發功能處於開啟狀態。
由於雙向PIM為每個RP都要在所有PIM接口上進行DF選舉,因此實際組網中不建議配置多個雙向PIM RP。通過本配置可以限製雙向PIM RP的數目,超出限製值的RP不會生效,僅能進行DF選舉而無法指導轉發。
在配置雙向PIM RP的最大數目時,如果現有雙向PIM RP的數目已超過配置值,係統不會自動刪除超出限製值的RP,用戶可根據需要進行手工刪除。
(1) 進入係統視圖。
system-view
(2) 進入PIM視圖。
pim [ vpn-instance vpn-instance-name ]
(3) 配置雙向PIM RP的最大數目。
bidir-rp-limit limit
與設備的型號有關,請以設備的實際情況為準。
自動RP宣告(Announce)和發現(Discovery)報文的目的地址分別為組播組地址224.0.1.39和224.0.1.40。在設備上開啟了自動RP偵聽功能後,該設備便能夠接收這兩種報文,並記錄報文中所攜帶的RP信息。
設備不支持主動發送RP宣告和發現報文,隻支持接收和轉發該報文。
(1) 進入係統視圖。
system-view
(2) 進入公網實例或VPN實例PIM視圖。
pim [ vpn-instance vpn-instance-name ]
(3) 開啟自動RP偵聽功能。
auto-rp enable
缺省情況下,自動RP偵聽功能處於關閉狀態。
PIM-SSM配置任務如下:
(1) 使能PIM-SM
(2) (可選)配置SSM組播組範圍
(3) (可選)配置PIM公共特性
在配置PIM-SSM之前,需要完成如下操作:
· 配置任一單播路由協議,實現域內網絡層互通。
· 使能PIM-SM。
· PIM-SSM模型需要IGMPv3的支持,確保連接有接收者的PIM設備上使能了IGMPv3。
在部署PIM-SSM域時,建議在其所有非邊界接口上均使能PIM-SM。
(1) 進入係統視圖。
system-view
(2) 使能IP組播路由,並進入MRIB視圖。
multicast routing [ vpn-instance vpn-instance-name ]
缺省情況下,IP組播路由處於關閉狀態。
本命令的詳細介紹請參見“IP組播命令參考”中的“組播路由與轉發”。
(3) 退回係統視圖。
quit
(4) 進入接口視圖。
interface interface-type interface-number
(5) 使能PIM-SM。
pim sm
缺省情況下,PIM-SM處於關閉狀態。
在把來自組播源的信息傳遞給接收者的過程中,是采用PIM-SSM模型還是PIM-SM模型,這取決於接收者訂閱通道(S,G)中的組播組是否在SSM組播組範圍之內,所有使能了PIM-SM的接口將會認為屬於該範圍內的組播組采用了PIM-SSM模型。
配置SSM組播組範圍時,需要注意:
· 應確保PIM-SSM域內所有設備上配置的SSM組播組地址範圍都一致,否則組播信息將無法通過SSM模型進行傳輸。
· 如果某組播組屬於SSM組播組範圍,但該組成員使用IGMPv1或IGMPv2發送加入報文,則設備不會觸發(*,G)加入報文。
(1) 進入係統視圖。
system-view
(2) 進入PIM視圖。
pim [ vpn-instance vpn-instance-name ]
(3) 配置SSM組播組的範圍。
ssm-policy { ipv4-acl-number | name ipv4-acl-name }
缺省情況下,SSM組播組的範圍為232.0.0.0/8。
本節中的所有配置均為可選,請根據實際情況選擇配置。
無論在PIM-DM還是PIM-SM域內,各設備都可以對流經自己的組播數據進行檢查,通過比較是否符合過濾規則來決定是否繼續轉發組播數據。也就是說PIM域內的設備能夠作為組播數據的過濾器。過濾器的存在一方麵有助於實現信息流量控製,另一方麵可以在安全性方麵限定下遊接收者能夠獲得的信息。過濾器不僅過濾獨立的組播數據,還過濾封裝在注冊報文中的組播數據。
通常,過濾器的位置距離組播源越近,過濾影響越明顯。
(1) 進入係統視圖。
system-view
(2) 進入PIM視圖。
pim [ vpn-instance vpn-instance-name ]
(3) 配置組播數據過濾器。
source-policy { ipv4-acl-number | name ipv4-acl-name }
隨著PIM協議的推廣和應用,對其安全性的要求也越來越高。建立正確的PIM鄰居是PIM協議安全應用的前提。如果在接口上指定了合法Hello報文的源地址範圍,便能夠保證PIM鄰居的正確建立,從而有效防止各種PIM協議報文攻擊,提高設備對PIM協議報文處理的安全性。
當Hello報文過濾器的配置生效後,對於之前已建立的PIM鄰居,若由於其Hello報文被過濾而導致無法收到後續的Hello報文,將會在老化超時後被自動刪除。
(1) 進入係統視圖。
system-view
(2) 進入接口視圖。
interface interface-type interface-number
(3) 配置合法Hello報文的源地址範圍。
pim neighbor-policy { ipv4-acl-number | name ipv4-acl-name }
缺省情況下,Hello報文的源地址範圍不受限製。
無論在PIM-DM域還是在PIM-SM域內,各設備之間發送的Hello報文都包含很多可供配置的選項,對各選項的介紹如下:
· 競選DR的優先級(DR_Priority,僅用於PIM-SM):優先級高的設備被選舉為DR。可以在與組播源或接收者直連的共享網段中的所有設備上都配置此參數。
· 保持PIM鄰居可達狀態的時間(Holdtime):若此時間超時後仍沒有收到Hello報文,則認為PIM鄰居失效或不可達。
· PIM報文在共享網段中的傳輸延遲(LAN_Prune_Delay):用於調節共享網段上的剪枝延遲,由三部分組成:LAN-delay、Override-interval和T字段。LAN-delay表示PIM報文在共享網段中的傳輸延遲,Override-interval表示允許下遊設備否決剪枝動作的時間,當共享網段中各PIM設備的LAN-delay或Override-interval不同時,取其中最大的值。T字段表示是否開啟鄰居跟蹤功能。
· 剪枝否決時間:如果設備從其上遊接口收到了剪枝報文但還需要繼續接收組播數據,則必須在Override-interval時間內向上遊設備發送加入報文以否決這個剪枝動作,這個過程就稱為剪枝否決。上遊設備在收到下遊設備發來的剪枝報文後並不立即執行剪枝動作,而是將當前的轉發狀態保持LAN-delay+Override-interval時間,在該時間內如果收到下遊的剪枝否決,則取消剪枝動作。
· 跟蹤下遊鄰居的功能:通過在上遊鄰居上開啟跟蹤下遊鄰居的功能,可以記錄已發送了加入報文且加入狀態尚未超時的下遊鄰居的信息,允許接收所有加入報文。開啟該功能時,應在共享網段的所有PIM設備上都開啟,否則上遊鄰居無法跟蹤每個下遊鄰居的加入報文。
對於既可在PIM視圖又可在接口視圖下進行的配置來說,前者對所有接口都生效,而後者隻對當前接口生效,但後者的配置優先級較高。
(1) 進入係統視圖。
system-view
(2) 進入PIM視圖。
pim [ vpn-instance vpn-instance-name ]
(3) 配置競選DR的優先級。
hello-option dr-priority priority
缺省情況下,競選DR的優先級為1。
(4) 配置保持PIM鄰居可達狀態的時間。
hello-option holdtime time
缺省情況下,保持PIM鄰居可達狀態的時間為105秒。
(5) 配置PIM報文在共享網段中的傳輸延遲。
hello-option lan-delay delay
缺省情況下,PIM報文在共享網段中的傳輸延遲為500毫秒。
(6) 配置剪枝否決時間。
hello-option override-interval interval
缺省情況下,剪枝否決時間為2500毫秒。
(7) 開啟鄰居跟蹤功能。
hello-option neighbor-tracking
缺省情況下,鄰居跟蹤功能處於關閉狀態。
(1) 進入係統視圖。
system-view
(2) 進入接口視圖。
interface interface-type interface-number
(3) 配置競選DR的優先級。
pim hello-option dr-priority priority
缺省情況下,競選DR的優先級為1。
(4) 配置保持PIM鄰居可達狀態的時間。
pim hello-option holdtime time
缺省情況下,保持PIM鄰居可達狀態的時間為105秒。
(5) 配置PIM報文在共享網段中的傳輸延遲。
pim hello-option lan-delay delay
缺省情況下,PIM報文在共享網段中的傳輸延遲為500毫秒。
(6) 配置剪枝否決時間。
pim hello-option override-interval interval
缺省情況下,剪枝否決時間為2500毫秒。
(7) 開啟鄰居跟蹤功能。
pim hello-option neighbor-tracking
缺省情況下,鄰居跟蹤功能處於關閉狀態,即不禁止加入報文抑製能力。
在接口上使能PIM後,設備會生成一個隨機數作為Hello報文中的Generation ID。一台PIM設備的Generation ID一般不會改變,除非其狀態更新才會生成新的Generation ID。這樣,當PIM設備發現來自上遊鄰居的Hello報文中的Generation ID發生改變時,便認為上遊鄰居的狀態發生了改變,從而觸發發送加入報文以進行狀態刷新。通過在接口上配置拒絕無Generation ID的Hello報文,可以實時了解上遊鄰居的狀態。
(1) 進入係統視圖。
system-view
(2) 進入接口視圖。
interface interface-type interface-number
(3) 配置拒絕無Generation ID的Hello報文。
pim require-genid
缺省情況下,接受無Generation ID的Hello報文。
· Hello報文的時間間隔與最大延遲時間:PIM設備通過周期性地發送Hello報文,以發現PIM鄰居,並維護各設備之間的PIM鄰居關係。為了避免多個PIM設備同時發送Hello報文而導致衝突,當PIM設備在收到新鄰居發來的Hello報文時,將延遲一段時間再發送Hello報文,該時間值為小於“觸發Hello報文的最大延遲時間”的一個隨機值。
· 加入/剪枝狀態的時間間隔與保持時間:PIM設備通過周期性地向其上遊設備發送加入/剪枝報文以更新狀態,在該報文中攜帶有保持時間,上遊設備為被剪枝的下遊接口設置加入/剪枝狀態保持定時器。
· 組播源生存時間:當設備沒有收到來自組播源S的後續組播數據時,不會立即刪除(S,G)表項,而是將其維持一段時間後再刪除,這段時間就稱為組播源的生存時間。
PIM接口向上遊鄰居發送加入/剪枝報文的時間間隔必須小於加入/剪枝狀態的保持時間,以免上遊鄰居老化超時。
對於既可在PIM視圖又可在接口視圖下進行的配置來說,前者對所有接口都生效,而後者隻對當前接口生效,但後者的配置優先級較高。
如果對網絡沒有特殊要求,各定時器的值建議采用缺省值。
(1) 進入係統視圖。
system-view
(2) 進入PIM視圖。
pim [ vpn-instance vpn-instance-name ]
(3) 配置發送Hello報文的時間間隔。
timer hello interval
缺省情況下,發送Hello報文的時間間隔為30秒。
(4) 配置發送加入/剪枝報文的時間間隔。
timer join-prune interval
缺省情況下,發送加入/剪枝報文的時間間隔為60秒。
本命令不會立即生效,新配置的發送間隔將在當前發送間隔完成後生效。
(5) 配置加入/剪枝狀態的保持時間。
holdtime join-prune time
缺省情況下,加入/剪枝狀態的保持時間為210秒。
(6) 配置組播源生存時間。
source-lifetime time
缺省情況下,組播源的生存時間為210秒。
(1) 進入係統視圖。
system-view
(2) 進入接口視圖。
interface interface-type interface-number
(3) 配置發送Hello報文的時間間隔。
pim timer hello interval
缺省情況下,發送Hello報文的時間間隔為30秒。
(4) 配置觸發Hello報文的最大延遲時間。
pim triggered-hello-delay delay
缺省情況下,觸發Hello報文的最大延遲時間為5秒。
(5) 配置發送加入/剪枝報文的時間間隔。
pim timer join-prune interval
缺省情況下,發送加入/剪枝報文的時間間隔為60秒。
本命令不會立即生效,新配置的發送間隔將在當前發送間隔完成後生效。
(6) 配置加入/剪枝狀態的保持時間。
pim holdtime join-prune time
缺省情況下,加入/剪枝狀態的保持時間為210秒。
如果加入/剪枝報文的尺寸較大,則丟失一個報文將導致較多信息的遺失;如果加入/剪枝報文的尺寸較小,則單個報文的丟失所產生的影響也將降低。
(1) 進入係統視圖。
system-view
(2) 進入PIM視圖。
pim [ vpn-instance vpn-instance-name ]
(3) 配置加入/剪枝報文的最大長度。
jp-pkt-size size
缺省情況下,加入/剪枝報文的最大長度為1200字節。
PIM借助Hello報文在共享網段中選舉出DR。當DR出現故障時,隻有待其老化後才會觸發新的DR選舉過程,這個過程通常比較長。為了實現DR的快速切換,可以在共享網段的PIM鄰居之間引入BFD(Bidirectional Forwarding Detection,雙向轉發檢測)機製進行鏈路狀態的快速檢測。通過在共享網段內的所有PIM設備上都開啟PIM與BFD聯動功能,可以使這些PIM鄰居快速感知DR故障並重新選舉DR。有關BFD的詳細介紹,請參見“可靠性配置指導”中的“BFD”。
(1) 進入係統視圖。
system-view
(2) 進入接口視圖。
interface interface-type interface-number
(3) 開啟PIM與BFD聯動功能。
pim bfd enable
缺省情況下,PIM與BFD聯動功能處於關閉狀態。
為了避免惡意主機模擬PIM Hello報文攻擊設備,可以在直連用戶的接口上配置PIM消極模式,用來禁止在該接口上接收和轉發任何PIM協議報文(不包括單播發送的注冊、注冊停止和C-RP宣告報文)。同時由於認為在該網段內隻有本設備一台PIM設備,開啟了PIM消極模式的接口會自動成為該網段的DR和DF。
當網段中有多台PIM設備時請勿開啟本功能,這是由於開啟了PIM消極模式的接口將自動成為DR和DF,從而導致該網段中出現多個DR和DF。
(1) 進入係統視圖。
system-view
(2) 進入接口視圖。
interface interface-type interface-number
(3) 開啟PIM消極模式。
pim passive
缺省情況下,接口上的PIM消極模式處於關閉狀態。
PIM NSR(Nonstop Routing,不間斷路由)通過將PIM協議的必要協議狀態和數據(如PIM鄰居信息和路由信息)從主進程備份到備進程,使得PIM協議的主進程中斷時,備份進程能夠無縫地接管主進程的工作,從而確保鄰接設備感知不到PIM協議中斷,保持路由信息,並保證組播轉發不會中斷。
本命令的支持情況與設備型號有關,請以設備的實際情況為準。
型號 |
說明 |
MSR610 |
不支持 |
MSR810、MSR810-W、MSR810-W-DB、MSR810-LM、MSR810-W-LM、MSR810-10-PoE、MSR810-LM-HK、MSR810-W-LM-HK、MSR810-LM-CNDE-SJK、MSR810-CNDE-SJK、MSR810-EI、MSR810-LM-EA、MSR810-LM-EI |
不支持 |
MSR810-LMS、MSR810-LUS |
不支持 |
MSR810-SI、MSR810-LM-SI |
不支持 |
MSR810-LMS-EA、MSR810-LME |
不支持 |
MSR1004S-5G、MSR1004S-5G-CN |
不支持 |
MSR1104S-W、MSR1104S-W-CAT6、MSR1104S-5G-CN、MSR1104S-W-5G-CN、MSR1104S-W-5GGL |
不支持 |
MSR2600-6-X1、MSR2600-15-X1、MSR2600-15-X1-T |
不支持 |
MSR2600-10-X1 |
不支持 |
MSR2630-G-X1 |
· 獨立運行模式時,不支持 · IRF模式時,支持 |
MSR 2630 |
· 獨立運行模式時,不支持 · IRF模式時,支持 |
MSR3600-28、MSR3600-51 |
· 獨立運行模式時,不支持 · IRF模式時,支持 |
MSR3600-28-SI、MSR3600-51-SI |
不支持 |
MSR3600-28-X1、MSR3600-28-X1-DP、MSR3600-51-X1、MSR3600-51-X1-DP |
· 獨立運行模式時,不支持 · IRF模式時,支持 |
MSR3600-28-G-DP、MSR3600-51-G-DP |
· 獨立運行模式時,不支持 · IRF模式時,支持 |
MSR3600-28-G-X1-DP、MSR3600-51-G-X1-DP |
· 獨立運行模式時,不支持 · IRF模式時,支持 |
MSR3610-I-DP、MSR3610-IE-DP、MSR3610-IE-ES、MSR3610-IE-EAD、MSR-EAD-AK770、MSR3610-I-IG、MSR3610-IE-IG |
不支持 |
MSR-iMC |
· 獨立運行模式時,不支持 · IRF模式時,支持 |
MSR3610-X1、MSR3610-X1-DP、MSR3610-X1-DC、MSR3610-X1-DP-DC、MSR3620-X1、MSR3640-X1 |
· 獨立運行模式時,不支持 · IRF模式時,支持 |
MSR 3610、MSR 3620、MSR 3620-DP、MSR 3640、MSR 3660 |
· 獨立運行模式時,不支持 · IRF模式時,支持 |
MSR3610-G、MSR3620-G |
· 獨立運行模式時,不支持 · IRF模式時,支持 |
MSR3640-G |
· 獨立運行模式時,不支持 · IRF模式時,支持 |
MSR3640-X1-HI |
不支持 |
型號 |
描述 |
MSR810-W-WiNet、MSR810-LM-WiNet |
不支持 |
MSR830-4LM-WiNet |
不支持 |
MSR830-5BEI-WiNet、MSR830-6EI-WiNet、MSR830-10BEI-WiNet |
不支持 |
MSR830-6BHI-WiNet、MSR830-10BHI-WiNet |
不支持 |
MSR2600-6-WiNet |
不支持 |
MSR2600-10-X1-WiNet |
不支持 |
MSR2630-WiNet |
不支持 |
MSR3600-28-WiNet |
不支持 |
MSR3610-X1-WiNet |
不支持 |
MSR3620-X1-WiNet |
不支持 |
MSR3610-WiNet、MSR3620-10-WiNet、MSR3620-DP-WiNet、MSR3620-WiNet、MSR3660-WiNet |
不支持 |
型號 |
說明 |
MSR860-6EI-XS |
不支持 |
MSR860-6HI-XS |
不支持 |
MSR2630-XS |
不支持 |
MSR3600-28-XS |
· 獨立運行模式時,不支持 · IRF模式時,支持 |
MSR3610-XS |
· 獨立運行模式時,不支持 · IRF模式時,支持 |
MSR3620-XS |
· 獨立運行模式時,不支持 · IRF模式時,支持 |
MSR3610-I-XS |
不支持 |
MSR3610-IE-XS |
不支持 |
MSR3620-X1-XS |
· 獨立運行模式時,不支持 · IRF模式時,支持 |
MSR3640-XS |
· 獨立運行模式時,不支持 · IRF模式時,支持 |
MSR3660-XS |
不支持 |
型號 |
說明 |
MSR810-LM-GL |
不支持 |
MSR810-W-LM-GL |
不支持 |
MSR830-6EI-GL |
不支持 |
MSR830-10EI-GL |
不支持 |
MSR830-6HI-GL |
不支持 |
MSR830-10HI-GL |
不支持 |
MSR1004S-5G-GL |
不支持 |
MSR2600-6-X1-GL |
不支持 |
MSR3600-28-SI-GL |
不支持 |
(1) 進入係統視圖。
system-view
(2) 開啟PIM NSR功能。
pim non-stop-routing
缺省情況下,PIM協議的NSR功能處於關閉狀態。
ADVPN應用組網中,ADVPN隧道接口上需要開啟NBMA模式,實現組播的按需轉發,即把組播數據報文發送給需要數據的Spoke或者Hub,對於不需要數據的Spoke或者Hub不發送。有關ADVPN的詳細介紹,請參見“三層技術-IP業務配置指導”中的“ADVPN”。
PIM-DM不支持該功能。
隻有ADVPN隧道接口上先使能了PIM-SM,本配置才能生效。
運行雙向PIM模式時,不支持將RP配置在ADVPN隧道接口或其所在網段。
ADVPN隧道接口上使能NBMA模式時,該接口上不支持IGMP配置。
(1) 進入係統視圖。
system-view
(2) 創建ADVPN隧道類型的Tunnel接口,並進入Tunnel接口視圖。
interface tunnel number mode advpn { gre | udp }
(3) 開啟NBMA模式。
pim nbma-mode
缺省情況下,NBMA模式處於關閉狀態。
本命令隻支持在ADVPN隧道口配置。
開啟了PIM的告警功能之後,PIM會生成告警信息,以向網管軟件報告本模塊的重要事件。該信息將發送至SNMP模塊,通過設置SNMP中告警信息的發送參數,來決定告警信息輸出的相關屬性。有關告警信息的詳細介紹,請參見“網絡管理和監控配置指導”中的“SNMP”。
(1) 進入係統視圖。
system-view
(2) 開啟PIM的告警功能。
snmp-agent trap enable pim [ candidate-bsr-win-election | elected-bsr-lost-election | neighbor-loss ] *
缺省情況下,PIM的告警功能處於開啟狀態。
在完成上述配置後,在任意視圖下執行display命令可以顯示配置後PIM的運行情況,通過查看顯示信息驗證配置的效果。
表2-1 PIM顯示和維護
操作 |
命令 |
顯示Register-Tunnel接口的相關信息 |
display interface [ register-tunnel [ interface-number ] ] [ brief [ description | down ] ] |
顯示PIM-SM域中的BSR信息 |
display pim [ vpn-instance vpn-instance-name ] bsr-info |
顯示PIM所使用的路由信息 |
display pim [ vpn-instance vpn-instance-name ] claimed-route [ source-address ] |
顯示PIM-SM域中的C-RP信息 |
display pim [ vpn-instance vpn-instance-name ] c-rp [ local ] |
顯示雙向PIM的DF信息 |
display pim [ vpn-instance vpn-instance-name ] df-info [ rp-address ] |
顯示接口上的PIM信息 |
display pim [ vpn-instance vpn-instance-name ] interface [ interface-type interface-number ] [ verbose ] |
顯示PIM鄰居信息 |
display pim [ vpn-instance vpn-instance-name ] neighbor [ neighbor-address | interface interface-type interface-number | verbose ] * |
顯示PIM路由表的內容 |
display pim [ vpn-instance vpn-instance-name ] routing-table [ group-address [ mask { mask-length | mask } ] | source-address [ mask { mask-length | mask } ] | flags flag-value | fsm | incoming-interface interface-type interface-number | mode mode-type | outgoing-interface { exclude | include | match } interface-type interface-number | proxy | extranet { source-vpn-instance source-vpn-instance-name | source-public-instance | receive-vpn-instance receive-vpn-instance-name | receive-public-instance } ] * |
顯示PIM-SM域中的RP信息 |
display pim [ vpn-instance vpn-instance-name ] rp-info [ group-address ] |
顯示PIM協議報文的統計信息 |
display pim statistics |
顯示ADVPN隧道接口上對端信息 |
display pim [ vpn-instance vpn-instance-name ] nbma-link [ interface { interface-type interface-number } ] |
· 網絡中運行OSPF協議,接收者通過組播方式接收視頻點播信息,不同組織的接收者群體組成末梢網絡,每個末梢網絡中都存在至少一個接收者,整個PIM域采用DM方式。
· Host A和Host C為兩個末梢網絡中的組播信息接收者;Router D通過GigabitEthernet1/0/1接口與組播源(Source)所在的網絡連接;Router A通過GigabitEthernet1/0/1接口連接末梢網絡N1,通過GigabitEthernet1/0/2接口連接Router D;Router B和Router C分別通過各自的GigabitEthernet1/0/1接口連接末梢網絡N2,並分別通過各自的GigabitEthernet1/0/2接口連接Router D。
· Router A與末梢網絡N1之間運行IGMPv2;Router B和Router C與末梢網絡N2之間也運行IGMPv2。
圖2-1 PIM-DM典型配置組網圖
設備 |
接口 |
IP地址 |
設備 |
接口 |
IP地址 |
Router A |
GE1/0/1 |
10.110.1.1/24 |
Router D |
GE1/0/1 |
10.110.5.1/24 |
|
GE1/0/2 |
192.168.1.1/24 |
|
GE1/0/2 |
192.168.1.2/24 |
Router B |
GE1/0/1 |
10.110.2.1/24 |
|
GE1/0/3 |
192.168.2.2/24 |
|
GE1/0/2 |
192.168.2.1/24 |
|
GE1/0/4 |
192.168.3.2/24 |
Router C |
GE1/0/1 |
10.110.2.2/24 |
|
|
|
|
GE1/0/2 |
192.168.3.1/24 |
|
|
|
(1) 配置IP地址和單播路由協議
請按照圖2-1配置各接口的IP地址和子網掩碼,並在PIM-DM域內的各路由器上配置OSPF協議,具體配置過程略。
(2) 使能IP組播路由,並使能PIM-DM和IGMP
# 在Router A上使能IP組播路由,在接口GigabitEthernet1/0/2上使能PIM-DM,並在其連接末梢網絡的接口GigabitEthernet1/0/1上使能IGMP。
<RouterA> system-view
[RouterA] multicast routing
[RouterA-mrib] quit
[RouterA] interface gigabitethernet 1/0/1
[RouterA-GigabitEthernet1/0/1] igmp enable
[RouterA-GigabitEthernet1/0/1] quit
[RouterA] interface gigabitethernet 1/0/2
[RouterA-GigabitEthernet1/0/2] pim dm
[RouterA-GigabitEthernet1/0/2] quit
Router B和Router C的配置與Router A相似,配置過程略。
# 在Router D上使能IP組播路由,並在各接口上使能PIM-DM。
<RouterD> system-view
[RouterD] multicast routing
[RouterD-mrib] quit
[RouterD] interface gigabitethernet 1/0/1
[RouterD-GigabitEthernet1/0/1] pim dm
[RouterD-GigabitEthernet1/0/1] quit
[RouterD] interface gigabitethernet 1/0/2
[RouterD-GigabitEthernet1/0/2] pim dm
[RouterD-GigabitEthernet1/0/2] quit
[RouterD] interface gigabitethernet 1/0/3
[RouterD-GigabitEthernet1/0/3] pim dm
[RouterD-GigabitEthernet1/0/3] quit
[RouterD] interface gigabitethernet 1/0/4
[RouterD-GigabitEthernet1/0/4] pim dm
[RouterD-GigabitEthernet1/0/4] quit
# 顯示Router D上PIM的配置信息。
[RouterD] display pim interface
Interface NbrCnt HelloInt DR-Pri DR-Address
GE1/0/1 0 30 1 10.110.5.1 (local)
GE1/0/2 1 30 1 192.168.1.2 (local)
GE1/0/3 1 30 1 192.168.2.2 (local)
GE1/0/4 1 30 1 192.168.3.2 (local)
# 顯示Router D上PIM的鄰居關係信息。
[RouterD] display pim neighbor
Total Number of Neighbors = 3
Neighbor Interface Uptime Expires Dr-Priority Mode
192.168.1.1 GE1/0/2 00:02:22 00:01:27 1
192.168.2.1 GE1/0/3 00:00:22 00:01:29 1
192.168.3.1 GE1/0/4 00:00:23 00:01:31 1
假如Host A需要接收組播組G(225.1.1.1)的信息,當組播源S(10.110.5.100/24)向組播組G發送組播數據時,通過擴散生成SPT,SPT路徑中各路由器(Router A和Router D)上都存在(S,G)表項,Host A向Router A發送IGMP報告以加入組播組G,在Router A上生成(*,G)表項。
# 顯示Router A上的PIM路由表信息。
[RouterA] display pim routing-table
Total 1 (*, G) entry; 1 (S, G) entry
(*, 225.1.1.1)
Protocol: pim-dm, Flag: WC
UpTime: 00:04:25
Upstream interface: NULL
Upstream neighbor: NULL
RPF prime neighbor: NULL
Downstream interface(s) information:
Total number of downstreams: 1
1: GigabitEthernet1/0/1
Protocol: igmp, UpTime: 00:04:25, Expires: -
(10.110.5.100, 225.1.1.1)
Protocol: pim-dm, Flag: ACT
UpTime: 00:06:14
Upstream interface: GigabitEthernet1/0/2
Upstream neighbor: 192.168.1.2
RPF prime neighbor: 192.168.1.2
Downstream interface(s) information:
Total number of downstreams: 1
1: GigabitEthernet1/0/1
Protocol: pim-dm, UpTime: 00:04:25, Expires: -
# 顯示Router D上的PIM路由表信息。
[RouterD] display pim routing-table
Total 0 (*, G) entry; 1 (S, G) entry
(10.110.5.100, 225.1.1.1)
Protocol: pim-dm, Flag: LOC ACT
UpTime: 00:03:27
Upstream interface: GigabitEthernet1/0/1
Upstream neighbor: NULL
RPF prime neighbor: NULL
Downstream interface(s) information:
Total number of downstreams: 1
1: GigabitEthernet1/0/2
Protocol: pim-dm, UpTime: 00:03:27, Expires: -
· 網絡中運行OSPF協議,接收者通過組播方式接收視頻點播信息,不同組織的接收者群體組成末梢網絡,每個末梢網絡中都存在至少一個接收者,整個PIM域采用SM非管理域方式。
· Host A和Host C為兩個末梢網絡中的組播信息接收者;Router D通過GigabitEthernet1/0/1接口與組播源(Source)所在網絡連接;Router A通過GigabitEthernet1/0/1接口連接末梢網絡N1,通過GigabitEthernet1/0/2接口和GigabitEthernet1/0/3接口分別連接Router D和Router E;Router B和Router C分別通過各自的GigabitEthernet1/0/1接口連接末梢網絡N2,並分別通過各自的GigabitEthernet1/0/2接口連接Router E。
· 將Router E的GigabitEthernet1/0/3接口配置為C-BSR和C-RP,其中C-RP所服務的組播組範圍為225.1.1.0/24;在所有路由器上將Router D的GigabitEthernet1/0/2接口配置為靜態RP,以對動態RP進行備份。
· Router A與末梢網絡N1之間運行IGMPv2;Router B和Router C與末梢網絡N2之間也運行IGMPv2。
圖2-2 PIM-SM非管理域配置組網圖
設備 |
接口 |
IP地址 |
設備 |
接口 |
IP地址 |
Router A |
GE1/0/1 |
10.110.1.1/24 |
Router D |
GE1/0/1 |
10.110.5.1/24 |
|
GE1/0/2 |
192.168.1.1/24 |
|
GE1/0/2 |
192.168.1.2/24 |
|
GE1/0/3 |
192.168.9.1/24 |
|
GE1/0/3 |
192.168.4.2/24 |
Router B |
GE1/0/1 |
10.110.2.1/24 |
Router E |
GE1/0/1 |
192.168.3.2/24 |
|
GE1/0/2 |
192.168.2.1/24 |
|
GE1/0/2 |
192.168.2.2/24 |
Router C |
GE1/0/1 |
10.110.2.2/24 |
|
GE1/0/3 |
192.168.9.2/24 |
|
GE1/0/2 |
192.168.3.1/24 |
|
GE1/0/4 |
192.168.4.1/24 |
(1) 配置IP地址和單播路由協議
請按照圖2-2配置各接口的IP地址和子網掩碼,並在PIM-SM域內的各路由器上配置OSPF協議,具體配置過程略。
(2) 使能IP組播路由,並使能PIM-SM和IGMP
# 在Router A上使能IP組播路由,在其連接末梢網絡的接口GigabitEthernet1/0/1上使能IGMP,並在其它接口上使能PIM-SM。
<RouterA> system-view
[RouterA] multicast routing
[RouterA-mrib] quit
[RouterA] interface gigabitethernet 1/0/1
[RouterA-GigabitEthernet1/0/1] igmp enable
[RouterA-GigabitEthernet1/0/1] quit
[RouterA] interface gigabitethernet 1/0/2
[RouterA-GigabitEthernet1/0/2] pim sm
[RouterA-GigabitEthernet1/0/2] quit
[RouterA] interface gigabitethernet 1/0/3
[RouterA-GigabitEthernet1/0/3] pim sm
[RouterA-GigabitEthernet1/0/3] quit
Router B和Router C的配置與Router A相似,Router D和Router E除了不需要在相應接口上使能IGMP外,其它的配置也與Router A相似,配置過程略。
(3) 配置C-BSR、C-RP和靜態RP
# 在Router E上配置RP通告的服務範圍,以及C-BSR和C-RP的位置,並指定靜態RP。
<RouterE> system-view
[RouterE] acl basic 2005
[RouterE-acl-ipv4-basic-2005] rule permit source 225.1.1.0 0.0.0.255
[RouterE-acl-ipv4-basic-2005] quit
[RouterE] pim
[RouterE-pim] c-bsr 192.168.9.2
[RouterE-pim] c-rp 192.168.9.2 group-policy 2005
[RouterE-pim] static-rp 192.168.1.2
[RouterE-pim] quit
# 在Router A上配置靜態RP。
[RouterA] pim
[RouterA-pim] static-rp 192.168.1.2
[RouterA-pim] quit
Router B、Router C和Router D的配置與Router A相似,配置過程略。
# 顯示Router A的接口上的PIM信息。
[RouterA] display pim interface
Interface NbrCnt HelloInt DR-Pri DR-Address
GE1/0/2 1 30 1 192.168.1.2
GE1/0/3 1 30 1 192.168.9.2
# 顯示Router A上PIM-SM域中的BSR信息。
[RouterA] display pim bsr-info
Scope: non-scoped
State: Accept Preferred
Bootstrap timer: 00:01:44
Elected BSR address: 192.168.9.2
Priority: 64
Hash mask length: 30
Uptime: 00:11:18
# 顯示Router E上PIM-SM域中的BSR信息。
[RouterE] display pim bsr-info
Scope: non-scoped
State: Elected
Bootstrap timer: 00:01:44
Elected BSR address: 192.168.9.2
Priority: 64
Hash mask length: 30
Uptime: 00:11:18
Candidate BSR address: 192.168.9.2
Priority: 64
Hash mask length: 30
# 顯示Router A上所有組播組對應的RP信息。
[RouterA] display pim rp-info
BSR RP information:
Scope: non-scoped
Group/MaskLen: 225.1.1.0/24
RP address Priority HoldTime Uptime Expires
192.168.9.2 192 180 00:51:45 00:02:22
Static RP information:
RP address ACL Mode Preferred
192.168.1.2 ---- pim-sm No
· 網絡中運行OSPF協議,接收者通過組播方式接收視頻點播信息,整個PIM域采用SM管理域方式,劃分為管理域1、管理域2和Global域,Router B、Router C和Router D為各管理域的ZBR。
· Source 1和Source 2分別向組播組239.1.1.1發送內容不同的組播信息,Host A和Host B則分別隻接收來自Source 1和Source 2的組播信息;Source 3向組播組224.1.1.1發送組播信息,Host C為其接收者。
· Router B的GigabitEthernet1/0/2接口為管理域1的C-BSR和C-RP,服務於239.0.0.0/8;Router D的GigabitEthernet1/0/1接口為管理域2的C-BSR和C-RP,服務於239.0.0.0/8;Router F的GigabitEthernet1/0/1接口為Global域的C-BSR和C-RP,服務於239.0.0.0/8以外的所有組播組。
· Router A、Router E和Router I分別與各自所連接的接收者之間運行IGMPv2。
圖2-3 PIM-SM管理域配置組網圖
設備 |
接口 |
IP地址 |
設備 |
接口 |
IP地址 |
Router A |
GE1/0/1 |
192.168.1.1/24 |
Router D |
GE1/0/1 |
10.110.5.2/24 |
|
GE1/0/2 |
10.110.1.1/24 |
|
GE1/0/2 |
10.110.7.1/24 |
Router B |
GE1/0/1 |
192.168.2.1/24 |
|
GE1/0/3 |
10.110.8.1/24 |
|
GE1/0/2 |
10.110.1.2/24 |
Router E |
GE1/0/1 |
192.168.4.1/24 |
|
GE1/0/3 |
10.110.2.1/24 |
|
GE1/0/2 |
10.110.4.2/24 |
|
GE1/0/4 |
10.110.3.1/24 |
|
GE1/0/3 |
10.110.7.2/24 |
Router C |
GE1/0/1 |
192.168.3.1/24 |
Router F |
GE1/0/1 |
10.110.9.1/24 |
|
GE1/0/2 |
10.110.4.1/24 |
|
GE1/0/2 |
10.110.8.2/24 |
|
GE1/0/3 |
10.110.5.1/24 |
|
GE1/0/3 |
10.110.3.2/24 |
|
GE1/0/4 |
10.110.2.2/24 |
Router G |
GE1/0/1 |
192.168.5.1/24 |
|
GE1/0/5 |
10.110.6.1/24 |
|
GE1/0/2 |
10.110.9.2/24 |
Router H |
GE1/0/1 |
10.110.10.1/24 |
Source 1 |
- |
192.168.2.10/24 |
|
GE1/0/2 |
10.110.6.2/24 |
Source 2 |
- |
192.168.3.10/24 |
Router I |
GE1/0/1 |
192.168.6.1/24 |
Source 3 |
- |
192.168.5.10/24 |
|
GE1/0/2 |
10.110.10.2/24 |
|
|
|
(1) 配置IP地址和單播路由協議
請按照圖2-3配置各接口的IP地址和子網掩碼,並在PIM-SM域內的各路由器上配置OSPF協議,具體配置過程略。
(2) 使能IP組播路由,並使能PIM-SM和IGMP
# 在Router A上使能IP組播路由,在接口GigabitEthernet1/0/2上使能PIM-SM,並在其連接有接收者的接口GigabitEthernet1/0/1上使能IGMP。
<RouterA> system-view
[RouterA] multicast routing
[RouterA-mrib] quit
[RouterA] interface gigabitethernet 1/0/1
[RouterA-GigabitEthernet1/0/1] igmp enable
[RouterA-GigabitEthernet1/0/1] quit
[RouterA] interface gigabitethernet 1/0/2
[RouterA-GigabitEthernet1/0/2] pim sm
[RouterA-GigabitEthernet1/0/2] quit
Router E和Router I的配置與Router A相似,配置過程略。
# 在Router B上使能IP組播路由,並在各接口上使能PIM-SM。
<RouterB> system-view
[RouterB] multicast routing
[RouterB-mrib] quit
[RouterB] interface gigabitethernet 1/0/1
[RouterB-GigabitEthernet1/0/1] pim sm
[RouterB-GigabitEthernet1/0/1] quit
[RouterB] interface gigabitethernet 1/0/2
[RouterB-GigabitEthernet1/0/2] pim sm
[RouterB-GigabitEthernet1/0/2] quit
[RouterB] interface gigabitethernet 1/0/3
[RouterB-GigabitEthernet1/0/3] pim sm
[RouterB-GigabitEthernet1/0/3] quit
[RouterB] interface gigabitethernet 1/0/4
[RouterB-GigabitEthernet1/0/4] pim sm
[RouterB-GigabitEthernet1/0/4] quit
Router C、Router D、Router F、Router G和Router H的配置與Router B相似,配置過程略。
(3) 配置管理域邊界
# 在Router B上將接口GigabitEthernet1/0/3和GigabitEthernet1/0/4配置為管理域1的邊界。
[RouterB] interface gigabitethernet 1/0/3
[RouterB-GigabitEthernet1/0/3] multicast boundary 239.0.0.0 8
[RouterB-GigabitEthernet1/0/3] quit
[RouterB] interface gigabitethernet 1/0/4
[RouterB-GigabitEthernet1/0/4] multicast boundary 239.0.0.0 8
[RouterB-GigabitEthernet1/0/4] quit
# 在Router C上將接口GigabitEthernet1/0/4和GigabitEthernet1/0/5配置為管理域2的邊界。
<RouterC> system-view
[RouterC] interface gigabitethernet 1/0/4
[RouterC-GigabitEthernet1/0/4] multicast boundary 239.0.0.0 8
[RouterC-GigabitEthernet1/0/4] quit
[RouterC] interface gigabitethernet 1/0/5
[RouterC-GigabitEthernet1/0/5] multicast boundary 239.0.0.0 8
[RouterC-GigabitEthernet1/0/5] quit
# 在Router D上將接口GigabitEthernet1/0/3配置為管理域2的邊界。
<RouterD> system-view
[RouterD] interface gigabitethernet 1/0/3
[RouterD-GigabitEthernet1/0/3] multicast boundary 239.0.0.0 8
[RouterD-GigabitEthernet1/0/3] quit
(4) 配置C-BSR和C-RP
# 在Router B上配置RP通告的服務範圍,並將接口GigabitEthernet1/0/2配置為管理域1的C-BSR和C-RP。
[RouterB] acl basic 2001
[RouterB-acl-ipv4-basic-2001] rule permit source 239.0.0.0 0.255.255.255
[RouterB-acl-ipv4-basic-2001] quit
[RouterB] pim
[RouterB-pim] c-bsr 10.110.1.2 scope 239.0.0.0 8
[RouterB-pim] c-rp 10.110.1.2 group-policy 2001
[RouterB-pim] quit
# 在Router D上配置RP通告的服務範圍,並將接口GigabitEthernet1/0/1配置為管理域2的C-BSR和C-RP。
[RouterD] acl basic 2001
[RouterD-acl-ipv4-basic-2001] rule permit source 239.0.0.0 0.255.255.255
[RouterD-acl-ipv4-basic-2001] quit
[RouterD] pim
[RouterD-pim] c-bsr 10.110.5.2 scope 239.0.0.0 8
[RouterD-pim] c-rp 10.110.5.2 group-policy 2001
[RouterD-pim] quit
# 在Router F上將接口GigabitEthernet1/0/1配置為Global域的C-BSR和C-RP。
<RouterF> system-view
[RouterF] pim
[RouterF-pim] c-bsr 10.110.9.1
[RouterF-pim] c-rp 10.110.9.1
[RouterF-pim] quit
# 顯示Router B上PIM-SM域中的BSR信息。
[RouterB] display pim bsr-info
Scope: non-scoped
State: Accept Preferred
Bootstrap timer: 00:01:44
Elected BSR address: 10.110.9.1
Priority: 64
Hash mask length: 30
Uptime: 00:01:45
Scope: 239.0.0.0/8
State: Elected
Bootstrap timer: 00:00:06
Elected BSR address: 10.110.1.2
Priority: 64
Hash mask length: 30
Uptime: 00:04:54
Candidate BSR address: 10.110.1.2
Priority: 64
Hash mask length: 30
# 顯示Router D上PIM-SM域中的BSR信息。
[RouterD] display pim bsr-info
Scope: non-scoped
State: Accept Preferred
Bootstrap timer: 00:01:44
Elected BSR address: 10.110.9.1
Priority: 64
Hash mask length: 30
Uptime: 00:01:45
Scope: 239.0.0.0/8
State: Elected
Bootstrap timer: 00:01:12
Elected BSR address: 10.110.5.2
Priority: 64
Hash mask length: 30
Uptime: 00:03:48
Candidate BSR address: 10.110.5.2
Priority: 64
Hash mask length: 30
# 顯示Router F上PIM-SM域中的BSR信息。
[RouterF] display pim bsr-info
Scope: non-scoped
State: Elected
Bootstrap timer: 00:00:49
Elected BSR address: 10.110.9.1
Priority: 64
Hash mask length: 30
Uptime: 00:11:11
Candidate BSR address: 10.110.9.1
Priority: 64
Hash mask length: 30
# 顯示Router B上所有組播組對應的RP信息。
[RouterB] display pim rp-info
BSR RP information:
Scope: non-scoped
Group/MaskLen: 224.0.0.0/4
RP address Priority HoldTime Uptime Expires
10.110.9.1 192 180 00:03:39 00:01:51
Scope: 239.0.0.0/8
Group/MaskLen: 239.0.0.0/8
RP address Priority HoldTime Uptime Expires
10.110.1.2 (local) 192 180 00:07:44 00:01:51
# 顯示Router D上所有組播組對應的RP信息。
[RouterD] display pim rp-info
BSR RP information:
Scope: non-scoped
Group/MaskLen: 224.0.0.0/4
RP address Priority HoldTime Uptime Expires
10.110.9.1 192 180 00:03:42 00:01:48
Scope: 239.0.0.0/8
Group/MaskLen: 239.0.0.0/8
RP address Priority HoldTime Uptime Expires
10.110.5.2 (local) 192 180 00:06:54 00:02:41
# 顯示Router F上所有組播組對應的RP信息。
[RouterF] display pim rp-info
BSR RP information:
Scope: non-scoped
Group/MaskLen: 224.0.0.0/4
RP address Priority HoldTime Uptime Expires
10.110.9.1 (local) 192 180 00:00:32 00:01:58
· 網絡中運行OSPF協議,整個PIM域采用BIDIR方式,Source 1和Source 2都向組播組225.1.1.1發送組播信息,Host A和Host B為組播信息的接收者。
· 將Router C的GigabitEthernet1/0/1接口配置為C-BSR,Loopback0接口配置為服務於雙向PIM的C-RP。
· Router B和Router D分別與各自所連接的接收者之間運行IGMPv2。
圖2-4 雙向PIM典型配置組網圖
設備 |
接口 |
IP地址 |
設備 |
接口 |
IP地址 |
Router A |
GE1/0/1 |
192.168.1.1/24 |
Router D |
GE1/0/1 |
192.168.3.1/24 |
|
GE1/0/2 |
10.110.1.1/24 |
|
GE1/0/2 |
192.168.4.1/24 |
Router B |
GE1/0/1 |
192.168.2.1/24 |
|
GE1/0/3 |
10.110.3.2/24 |
|
GE1/0/2 |
10.110.1.2/24 |
Source 1 |
- |
192.168.1.100/24 |
|
GE1/0/3 |
10.110.2.1/24 |
Source 2 |
- |
192.168.4.100/24 |
Router C |
GE1/0/1 |
10.110.2.2/24 |
Receiver 1 |
- |
192.168.2.100/24 |
|
GE1/0/2 |
10.110.3.1/24 |
Receiver 2 |
- |
192.168.3.100/24 |
|
Loop0 |
1.1.1.1/32 |
|
|
|
(1) 配置IP地址和單播路由協議
請按照圖2-4配置各接口的IP地址和子網掩碼,並在雙向PIM域內的各路由器上配置OSPF協議,具體配置過程略。
(2) 使能IP組播路由,並使能PIM-SM、雙向PIM和IGMP
# 在Router A上使能IP組播路由,在各接口上使能PIM-SM,並使能雙向PIM。
<RouterA> system-view
[RouterA] multicast routing
[RouterA-mrib] quit
[RouterA] interface gigabitethernet 1/0/1
[RouterA-GigabitEthernet1/0/1] pim sm
[RouterA-GigabitEthernet1/0/1] quit
[RouterA] interface gigabitethernet 1/0/2
[RouterA-GigabitEthernet1/0/2] pim sm
[RouterA-GigabitEthernet1/0/2] quit
[RouterA] pim
[RouterA-pim] bidir-pim enable
[RouterA-pim] quit
# 在Router B上使能IP組播路由,在其連接有接收者的接口GigabitEthernet1/0/1上使能IGMP,在其它接口上使能PIM-SM,並使能雙向PIM。
<RouterB> system-view
[RouterB] multicast routing
[RouterB-mrib] quit
[RouterB] interface gigabitethernet 1/0/1
[RouterB-GigabitEthernet1/0/1] igmp enable
[RouterB-GigabitEthernet1/0/1] quit
[RouterB] interface gigabitethernet 1/0/2
[RouterB-GigabitEthernet1/0/2] pim sm
[RouterB-GigabitEthernet1/0/2] quit
[RouterB] interface gigabitethernet 1/0/3
[RouterB-GigabitEthernet1/0/3] pim sm
[RouterB-GigabitEthernet1/0/3] quit
[RouterB] pim
[RouterB-pim] bidir-pim enable
[RouterB-pim] quit
# 在Router C上使能IP組播路由,在各接口上使能PIM-SM,並使能雙向PIM。
<RouterC> system-view
[RouterC] multicast routing
[RouterC-mrib] quit
[RouterC] interface gigabitethernet 1/0/1
[RouterC-GigabitEthernet1/0/1] pim sm
[RouterC-GigabitEthernet1/0/1] quit
[RouterC] interface gigabitethernet 1/0/2
[RouterC-GigabitEthernet1/0/2] pim sm
[RouterC-GigabitEthernet1/0/2] quit
[RouterC] interface loopback 0
[RouterC-LoopBack0] pim sm
[RouterC-LoopBack0] quit
[RouterC] pim
[RouterC-pim] bidir-pim enable
# 在Router D上使能IP組播路由,在其連接有接收者的接口GigabitEthernet1/0/1上使能IGMP,在其它接口上使能PIM-SM,並使能雙向PIM。
<RouterD> system-view
[RouterD] multicast routing
[RouterD-mrib] quit
[RouterD] interface gigabitethernet 1/0/1
[RouterD-GigabitEthernet1/0/1] igmp enable
[RouterD-GigabitEthernet1/0/1] quit
[RouterD] interface gigabitethernet 1/0/2
[RouterD-GigabitEthernet1/0/2] pim sm
[RouterD-GigabitEthernet1/0/2] quit
[RouterD] interface gigabitethernet 1/0/3
[RouterD-GigabitEthernet1/0/3] pim sm
[RouterD-GigabitEthernet1/0/3] quit
[RouterD] pim
[RouterD-pim] bidir-pim enable
[RouterD-pim] quit
(3) 配置C-BSR和C-RP
# 在Router C上將接口GigabitEthernet1/0/1配置為C-BSR,並將接口Loopback0配置為服務於雙向PIM的C-RP。
[RouterC-pim] c-bsr 10.110.2.2
[RouterC-pim] c-rp 1.1.1.1 bidir
[RouterC-pim] quit
# 顯示Router A上雙向PIM的DF信息。
[RouterA] display pim df-info
RP address: 1.1.1.1
Interface: GigabitEthernet1/0/1
State : Win DF preference: 100
DF metric : 2 DF uptime : 00:06:59
DF address: 192.168.1.1 (local)
Interface: GigabitEthernet1/0/2
State : Lose DF preference: 100
DF metric : 1 DF uptime : 00:06:59
DF address: 10.110.1.2
# 顯示Router B上雙向PIM的DF信息。
[RouterB] display pim df-info
RP address: 1.1.1.1
Interface: GigabitEthernet1/0/2
State : Win DF preference: 100
DF metric : 1 DF uptime : 00:06:59
DF address: 10.110.1.2 (local)
Interface: GigabitEthernet1/0/3
State : Lose DF preference: 0
DF metric : 0 DF uptime : 00:06:59
DF address: 10.110.2.2
# 顯示Router C上雙向PIM的DF信息。
[RouterC] display pim df-info
RP address: 1.1.1.1
Interface: Loop0
State : - DF preference: -
DF metric : - DF uptime : -
DF address: -
RP address: 1.1.1.1
Interface: GigabitEthernet1/0/1
State : Win DF preference: 0
DF metric : 0 DF uptime : 00:06:59
DF address: 10.110.2.2 (local)
Interface: GigabitEthernet1/0/2
State : Win DF preference: 0
DF metric : 0 DF uptime : 00:06:59
DF address: 10.110.3.1
# 顯示Router D上雙向PIM的DF信息。
[RouterD] display pim df-info
RP address: 1.1.1.1
Interface: GigabitEthernet1/0/2
State : Win DF preference: 100
DF metric : 1 DF uptime : 00:06:59
DF address: 192.168.4.1 (local)
Interface: GigabitEthernet1/0/3
State : Lose DF preference: 0
DF metric : 0 DF uptime : 00:06:59
DF address: 10.110.3.1
# 顯示Router A上組播轉發的DF信息。
[RouterA] display multicast forwarding df-info
Total 1 RPs, 1 matched
00001. RP address: 1.1.1.1
Flags: 0x0
Uptime: 00:08:32
RPF interface: GigabitEthernet1/0/2
List of 1 DF interfaces:
1: GigabitEthernet1/0/1
# 顯示Router B上組播轉發的DF信息。
[RouterB] display multicast forwarding df-info
Total 1 RPs, 1 matched
00001. RP address: 1.1.1.1
Flags: 0x0
Uptime: 00:06:24
RPF interface: GigabitEthernet1/0/3
List of 1 DF interfaces:
1: GigabitEthernet1/0/2
# 顯示Router C上組播轉發的DF信息。
[RouterC] display multicast forwarding df-info
Total 1 RPs, 1 matched
00001. RP address: 1.1.1.1
Flags: 0x0
Uptime: 00:07:21
RPF interface: LoopBack0
List of 2 DF interfaces:
1: GigabitEthernet1/0/1
2: GigabitEthernet1/0/2
# 顯示Router D上組播轉發的DF信息。
[RouterD] display multicast forwarding df-info
Total 1 RPs, 1 matched
00001. RP address: 1.1.1.1
Flags: 0x0
Uptime: 00:05:12
RPF interface: GigabitEthernet1/0/3
List of 1 DF interfaces:
1: GigabitEthernet1/0/2
· 網絡中運行OSPF協議,接收者通過組播方式接收視頻點播信息,不同組織的接收者群體組成末梢網絡,每個末梢網絡中都存在至少一個接收者,整個PIM域采用SSM方式。
· Host A和Host C為兩個末梢網絡中的組播信息接收者;Router D通過GigabitEthernet1/0/1接口與組播源(Source)所在網絡連接;Router A通過GigabitEthernet1/0/1接口連接末梢網絡N1,通過GigabitEthernet1/0/2接口和GigabitEthernet1/0/3接口分別連接Router D和Router E;Router B和Router C分別通過各自的GigabitEthernet1/0/1接口連接末梢網絡N2,並分別通過各自的GigabitEthernet1/0/2接口連接Router E。
· SSM組播組的範圍是232.1.1.0/24。
· Router A與末梢網絡N1之間運行IGMPv3;Router B和Router C與末梢網絡N2之間也運行IGMPv3。
圖2-5 PIM-SSM典型配置組網圖
設備 |
接口 |
IP地址 |
設備 |
接口 |
IP地址 |
Router A |
GE1/0/1 |
10.110.1.1/24 |
Router D |
GE1/0/1 |
10.110.5.1/24 |
|
GE1/0/2 |
192.168.1.1/24 |
|
GE1/0/2 |
192.168.1.2/24 |
|
GE1/0/3 |
192.168.9.1/24 |
|
GE1/0/3 |
192.168.4.2/24 |
Router B |
GE1/0/1 |
10.110.2.1/24 |
Router E |
GE1/0/1 |
192.168.3.2/24 |
|
GE1/0/2 |
192.168.2.1/24 |
|
GE1/0/2 |
192.168.2.2/24 |
Router C |
GE1/0/1 |
10.110.2.2/24 |
|
GE1/0/3 |
192.168.9.2/24 |
|
GE1/0/2 |
192.168.3.1/24 |
|
GE1/0/4 |
192.168.4.1/24 |
(1) 配置IP地址和單播路由協議
請按照圖2-5配置各接口的IP地址和子網掩碼,並在PIM-SSM域內的各路由器上配置OSPF協議,具體配置過程略。
(2) 使能IP組播路由,並使能PIM-SM和IGMP
# 在Router A上使能IP組播路由,在其連接末梢網絡的接口GigabitEthernet1/0/1上使能IGMP,且配置其版本為3;並在其它接口上使能PIM-SM。
<RouterA> system-view
[RouterA] multicast routing
[RouterA-mrib] quit
[RouterA] interface gigabitethernet 1/0/1
[RouterA-GigabitEthernet1/0/1] igmp enable
[RouterA-GigabitEthernet1/0/1] igmp version 3
[RouterA-GigabitEthernet1/0/1] quit
[RouterA] interface gigabitethernet 1/0/2
[RouterA-GigabitEthernet1/0/2] pim sm
[RouterA-GigabitEthernet1/0/2] quit
[RouterA] interface gigabitethernet 1/0/3
[RouterA-GigabitEthernet1/0/3] pim sm
[RouterA-GigabitEthernet1/0/3] quit
Router B和Router C的配置與Router A相似,Router D和Router E除了不需要在相應接口上使能IGMP外,其它的配置也與Router A相似,配置過程略。
(3) 配置SSM組播組的地址範圍
# 在Router A上配置SSM組播組地址範圍為232.1.1.0/24。
[RouterA] acl basic 2000
[RouterA-acl-ipv4-basic-2000] rule permit source 232.1.1.0 0.0.0.255
[RouterA-acl-ipv4-basic-2000] quit
[RouterA] pim
[RouterA-pim] ssm-policy 2000
[RouterA-pim] quit
Router B、Router C、Router D和Router E的配置與Router A相似,配置過程略。
# 顯示Router A上PIM的配置信息。
[RouterA] display pim interface
Interface NbrCnt HelloInt DR-Pri DR-Address
GE1/0/2 1 30 1 192.168.1.2
GE1/0/3 1 30 1 192.168.9.2
假如Host A需要接收指定組播源S(10.110.5.100/24)發往組播組G(232.1.1.1)的信息,Router A會向組播源方向構造SPT,SPT路徑中的路由器(Router A和Router D)上生成(S,G)表項,而SPT路徑之外的路由器(Router E)上沒有組播路由項。
# 顯示Router A上的PIM路由表信息。
[RouterA] display pim routing-table
Total 0 (*, G) entry; 1 (S, G) entry
(10.110.5.100, 232.1.1.1)
Protocol: pim-ssm, Flag:
UpTime: 00:13:25
Upstream interface: GigabitEthernet1/0/2
Upstream neighbor: 192.168.1.2
RPF prime neighbor: 192.168.1.2
Downstream interface(s) information:
Total number of downstreams: 1
1: GigabitEthernet1/0/1
Protocol: igmp, UpTime: 00:13:25, Expires: 00:03:25
# 查看Router D上的PIM路由表信息。
[RouterD] display pim routing-table
Total 0 (*, G) entry; 1 (S, G) entry
(10.110.5.100, 232.1.1.1)
Protocol: pim-ssm, Flag: LOC
UpTime: 00:12:05
Upstream interface: GigabitEthernet1/0/1
Upstream neighbor: NULL
RPF prime neighbor: NULL
Downstream interface(s) information:
Total number of downstreams: 1
1: GigabitEthernet1/0/2
Protocol: pim-ssm, UpTime: 00:12:05, Expires: 00:03:25
網絡中各設備(包括直連組播源或接收者的設備)上都沒有組播轉發項,也就是說無法正確建立組播分發樹,客戶端無法接收組播數據。
· 當全網運行PIM-DM時,組播數據由直連組播源的第一跳設備擴散到直連客戶端的最後一跳設備。無論組播數據擴散到哪一台設備,隻有該設備存在到達組播源的路由,才會創建(S,G)表項。反之,如果沒有到達組播源的路由或者到達組播源的RPF接口沒有使能PIM-DM,該設備就無法創建(S,G)表項。
· 當全網運行PIM-SM時,設備在準備加入SPT時,隻有存在到達組播源的路由,才會創建(S,G)表項。反之,如果沒有到達組播源的路由或者到達組播源的RPF接口沒有使能PIM-SM,該設備就無法創建(S,G)表項。
· 對於某個RPF檢查對象,在現存的單播路由表中查找到達該對象的最優路由,該路由的出接口作為RPF接口,下一跳作為RPF鄰居。RPF接口完全依賴於現存的單播路由,並且與PIM本身無關。RPF接口上必須使能PIM,而且RPF鄰居也必須是PIM鄰居。如果RPF接口或RPF鄰居所在設備上沒有使能PIM,必然使組播分發樹無法正確建立,導致組播數據轉發異常。
· Hello報文並不攜帶PIM的模式信息,所以運行PIM的設備無法掌握自己的PIM鄰居運行的是何種模式的PIM。如果RPF接口和RPF鄰居所在設備的對應接口沒有使能相同模式的PIM,必然使組播分發樹無法正確建立,導致組播數據轉發異常。
· 全網必須運行相同模式的PIM。否則,組播分發樹必然無法正確建立,導致組播數據轉發異常。
(1) 檢查單播路由。使用命令display ip routing-table命令檢查是否有到達組播源或RP的單播路由。
(2) 檢查接口上是否使能了PIM,尤其是RPF接口上是否使能了PIM。通過命令display pim interface命令查看接口上的PIM信息。若接口上未使能PIM,請使用pim dm或pim sm命令使能PIM-DM或PIM-SM。
(3) 檢查RPF鄰居是否是PIM鄰居。通過display pim neighbor命令查看PIM鄰居的信息。
(4) 檢查直連組播源或接收者的設備接口上是否使能了PIM和IGMP。
(5) 檢查PIM模式是否一致。通過命令display pim interface verbose檢查RPF接口和RPF鄰居所在設備的對應接口上是否使能了相同模式的PIM。
(6) 檢查全網各設備上的PIM模式是否一致。通過命令display current-configuration查看接口上的PIM模式信息,確保全網所有設備配置有相同模式的PIM。如果都配置為PIM-SM,則還需檢查BSR以及C-RP的配置是否正確。
組播數據可以到達中間設備,但無法到達最後一跳設備。中間設備某接口上收到組播數據,但PIM路由表中沒有創建相應的(S,G)表項。
· 命令multicast boundary用於在接口上設置組播轉發邊界,如果組播數據無法通過該邊界,PIM將無法創建路由項。
· 此外,source-policy命令用於過濾接收到的組播數據報文。如果組播數據報文無法通過該命令中的ACL規則,PIM也無法創建路由項。
(1) 檢查組播轉發邊界的配置。通過命令display current-configuration查看組播轉發邊界上的設置,使用multicast boundary命令更改組播轉發邊界的設置,使組播數據能夠通過該邊界。
(2) 檢查組播過濾器配置。通過命令display current-configuration查看組播過濾器的配置,更改source-policy命令的ACL規則,使組播數據的源/組地址通過ACL過濾。
RPT無法正確建立,或者RP無法加入到達組播源的SPT。
· RP是PIM-SM網絡的核心,為特定的組播組服務,網絡中可以同時存在多個RP。必須保證所有設備上的RP信息完全一致,並且相同的組播組映射到相同的RP,否則將導致組播數據轉發異常。
· 如果使用了靜態RP,必須在全網所有設備上配置完全相同的靜態RP,否則將導致組播數據轉發異常。
(1) 檢查是否有到達RP的單播路由。通過命令display ip routing-table查看各設備上是否有到達RP的單播路由。
(2) 檢查動態RP的信息。通過命令display pim rp-info查看各設備上的RP信息是否一致。
(3) 檢查靜態RP的配置。通過命令display pim rp-info查看全網所有設備上的靜態RP配置是否完全相同。
C-RP無法向BSR單播通告報文,BSR沒有發布包含C-RP的自舉報文,BSR上沒有到達各C-RP的單播路由,RPT無法正確建立,或者DR無法向RP進行源注冊。
· C-RP周期性地向BSR單播宣告報文,如果C-RP沒有到達BSR的單播路由就無法發送宣告報文,BSR就收不到C-RP宣告報文,也就不會發布包含該C-RP的自舉報文。
· 另外,如果BSR沒有到達C-RP的單播路由,就會丟棄C-RP發來的宣告報文,也不會發布包含該C-RP的自舉報文。
· RP是PIM-SM網絡的核心。必須保證全網所有設備的RP信息完全一致,並且特定的組G映射到相同的RP,以及存在到達RP的單播路由。
(1) 檢查是否有到各C-RP、BSR的單播路由。通過命令display ip routing-table查看各設備上是否有到達C-RP和BSR的路由,以及C-RP和BSR之間的路由是否可達。確保各C-RP上存在到達BSR的路由,BSR上存在到達各C-RP的路由,全網所有設備上存在到達C-RP的路由。
(2) 檢查RP和BSR信息。PIM-SM協議需要有RP和BSR的支持,首先使用命令display pim bsr-info查看各設備上是否有BSR的信息,使用display pim rp-info命令查看各設備上的RP信息是否正確。
(3) 檢查PIM鄰居關係。通過命令display pim neighbor查看各設備之間是否正確建立了鄰居關係。
不同款型規格的資料略有差異, 詳細信息請向具體銷售和400谘詢。H3C保留在沒有任何通知或提示的情況下對資料內容進行修改的權利!