16-IPv6 PIM配置
本章節下載: 16-IPv6 PIM配置 (928.41 KB)
本文所涉及的路由器和路由器圖標,代表了一般意義下的路由器或運行IPv6 PIM協議的三層交換機。
IPv6 PIM(Protocol Independent Multicast for IPv6,IPv6協議無關組播)表示可以利用IPv6單播靜態路由或者任意IPv6單播路由協議(包括RIPng、OSPFv3、IS-ISv6、BGP4+等)所生成的IPv6單播路由表為IPv6組播提供路由。IPv6組播路由與所采用的IPv6單播路由協議無關,隻要能夠通過IPv6單播路由協議產生相應的IPv6組播路由表項即可。IPv6 PIM借助RPF(Reverse Path Forwarding,逆向路徑轉發)機製實現對IPv6組播報文的轉發。當IPv6組播報文到達本地設備時,首先對其進行RPF檢查:若RPF檢查通過,則創建相應的IPv6組播路由表項,從而進行IPv6組播報文的轉發;若RPF檢查失敗,則丟棄該報文。有關RPF的詳細介紹,請參見“IP組播配置指導”中的“IPv6組播路由與轉發”。
根據實現機製的不同,IPv6 PIM分為以下幾種類型:
· IPv6 PIM-DM(Protocol Independent Multicast-Dense Mode for IPv6,IPv6協議無關組播—密集模式)
· IPv6 PIM-SM(Protocol Independent Multicast-Sparse Mode for IPv6,IPv6協議無關組播—稀疏模式)
· IPv6 BIDIR-PIM(Bidirectional Protocol Independent Multicast for IPv6,IPv6雙向協議無關組播,簡稱IPv6雙向PIM)
· IPv6 PIM-SSM(Protocol Independent Multicast Source-Specific Multicast for IPv6,IPv6協議無關組播-指定源組播)
· 為了描述的方便,本文中把由支持IPv6 PIM協議的組播路由器所組成的網絡簡稱為“IPv6 PIM域”。
· 設備目前不支持IPv6雙向PIM。
IPv6 PIM-DM屬於密集模式的IPv6組播路由協議,使用“推(Push)模式”傳送IPv6組播數據,通常適用於IPv6組播組成員相對比較密集的小型網絡,其基本原理如下:
· IPv6 PIM-DM假設網絡中的每個子網都存在至少一個IPv6組播組成員,因此IPv6組播數據將被擴散(Flooding)到網絡中的所有節點。然後,IPv6 PIM-DM對沒有IPv6組播數據轉發的分支進行剪枝(Prune),隻保留包含接收者的分支。這種“擴散—剪枝”現象周期性地發生,被剪枝的分支也可以周期性地恢複成轉發狀態。
· 當被剪枝分支的節點上出現了IPv6組播組的成員時,為了減少該節點恢複成轉發狀態所需的時間,IPv6 PIM-DM使用嫁接(Graft)機製主動恢複其對IPv6組播數據的轉發。
一般說來,密集模式下數據包的轉發路徑是有源樹(Source Tree,即以IPv6組播源為“根”、IPv6組播組成員為“枝葉”的一棵轉發樹)。由於有源樹使用的是從IPv6組播源到接收者的最短路徑,因此也稱為SPT(Shortest Path Tree,最短路徑樹)。
IPv6 PIM-DM的工作機製可以概括如下:
· 鄰居發現
· 構建SPT
· 嫁接
· 斷言
在IPv6 PIM域中,路由器通過周期性地的向本網段的所有IPv6 PIM路由器以組播方式發送IPv6 PIM Hello報文(以下簡稱Hello報文),以發現IPv6 PIM鄰居,維護各路由器之間的IPv6 PIM鄰居關係,從而構建和維護SPT。
路由器每個運行了IPv6 PIM協議的接口都會周期性地發送Hello報文,從而了解與該接口相關的IPv6 PIM鄰居信息。
構建SPT的過程也就是“擴散—剪枝”的過程:
在IPv6 PIM-DM域中,IPv6組播源S向IPv6組播組G發送IPv6組播報文時,首先對IPv6組播報文進行擴散:路由器對該報文的RPF檢查通過後,便創建一個(S,G)表項,並將該報文向網絡中的所有下遊節點轉發。經過擴散,IPv6 PIM-DM域內的每個路由器上都會創建(S,G)表項。
然後對那些下遊沒有接收者的節點進行剪枝:由沒有接收者的下遊節點向上遊節點發剪枝報文(Prune Message),以通知上遊節點將相應的接口從其組播轉發表項(S,G)所對應的出接口列表中刪除,並不再轉發該IPv6組播組的報文至該節點。
· (S,G)表項包括IPv6組播源的地址S、IPv6組播組的地址G、出接口列表和入接口等。
· 路由器上收到IPv6組播數據的接口稱為“上遊”,轉發IPv6組播數據的接口稱為“下遊”。
剪枝過程最先由葉子路由器發起,如圖1-1所示,沒有接收者(Receiver)的路由器(如與Host A直連的路由器)主動發起剪枝,並一直持續到IPv6 PIM-DM域中隻剩下必要的分支,這些分支共同構成了SPT。
圖1-1 IPv6 PIM-DM中構建SPT示意圖
“擴散—剪枝”的過程是周期性發生的。各個被剪枝的節點提供超時機製,當剪枝超時後便重新開始這一過程。
當被剪枝的節點上出現了IPv6組播組的成員時,為了減少該節點恢複成轉發狀態所需的時間,IPv6 PIM-DM使用嫁接機製主動恢複其對IPv6組播數據的轉發,過程如下:
表1-1 需要恢複接收IPv6組播數據的節點向其上遊節點發送嫁接報文(Graft Message)以申請重新加入到SPT中;
當上遊節點收到該報文後恢複該下遊節點的轉發狀態,並向其回應一個嫁接應答報文(Graft-Ack Message)以進行確認;
如果發送嫁接報文的下遊節點沒有收到來自其上遊節點的嫁接應答報文,將重新發送嫁接報文直到被確認為止。
在一個網段內如果存在多台組播路由器,則相同的IPv6組播報文可能會被重複發送到該網段。為了避免出現這種情況,就需要通過斷言(Assert)機製來選定唯一的IPv6組播數據轉發者。
圖1-2 Assert機製示意圖
如圖1-2所示,當Router A和Router B從上遊節點收到(S,G)的IPv6組播報文後,都會向本地網段轉發該報文,於是處於下遊的節點Router C就會收到兩份相同的IPv6組播報文,Router A和Router B也會從各自的下遊接口收到對方轉發來的該IPv6組播報文。此時,Router A和Router B會通過其下遊接口向本網段的所有IPv6 PIM路由器以組播方式發送斷言報文(Assert Message),該報文中攜帶有以下信息:IPv6組播源地址S、IPv6組播地址G、到IPv6組播源的IPv6單播路由/IPv6 MBGP路由/IPv6組播靜態路由的優先級和度量值。通過一定的規則對這些參數進行比較後,Router A和Router B中的獲勝者將成為(S,G)IPv6組播報文在本網段的轉發者,比較規則如下:
表1-1 到IPv6組播源的優先級較高者獲勝;
如果到IPv6組播源的優先級相等,那麼到IPv6組播源的度量值較小者獲勝;
如果到IPv6組播源的度量值也相等,則下遊接口IPv6鏈路本地地址較大者獲勝。
IPv6 PIM-DM使用以“擴散—剪枝”方式構建的SPT來傳送IPv6組播數據。盡管SPT的路徑最短,但是其建立的過程效率較低,並不適合大中型網絡。
IPv6 PIM-SM屬於稀疏模式的IPv6組播路由協議,使用“拉(Pull)模式”傳送IPv6組播數據,通常適用於IPv6組播組成員分布相對分散、範圍較廣的大中型網絡,其基本原理如下:
· IPv6 PIM-SM假設所有主機都不需要接收IPv6組播數據,隻向明確提出需要IPv6組播數據的主機轉發。IPv6 PIM-SM實現組播轉發的核心任務就是構造並維護RPT(Rendezvous Point Tree,共享樹或彙集樹),RPT選擇IPv6 PIM域中某台路由器作為公用的根節點RP(Rendezvous Point,彙集點),IPv6組播數據通過RP沿著RPT轉發給接收者;
· 連接接收者的路由器向某IPv6組播組對應的RP發送加入報文,該報文被逐跳送達RP,所經過的路徑就形成了RPT的分支;
· IPv6組播源如果要向某IPv6組播組發送IPv6組播數據,首先由IPv6組播源側DR(Designated Router,指定路由器)負責向RP進行注冊,把注冊報文(Register Message)通過單播方式發送給RP,該報文到達RP後觸發建立SPT。之後IPv6組播源把IPv6組播數據沿著SPT發向RP,當IPv6組播數據到達RP後,被複製並沿著RPT發送給接收者。
複製僅發生在分發樹的分支處,這個過程能夠自動重複直到數據包最終到達接收者。
IPv6 PIM-SM的工作機製可以概括如下:
· 鄰居發現
· DR選舉
· RP發現
· 嵌入式RP
· 構建RPT
· IPv6組播源注冊
· SPT切換
· 斷言
IPv6 PIM-SM使用與IPv6 PIM-DM類似的鄰居發現機製,具體請參見“1.1.1 1. 鄰居發現”一節。
借助Hello報文還可以為共享網絡(如Ethernet)選舉DR,DR將作為該共享網絡中IPv6組播數據的唯一轉發者。
無論是與IPv6組播源相連的網絡,還是與接收者相連的網絡,都需要選舉DR。接收者側的DR負責向RP發送加入報文;IPv6組播源側的DR負責向RP發送注冊報文。
· 各路由器之間通過比較Hello報文中所攜帶的優先級和IPv6鏈路本地地址,可以為多路由器網段選舉DR。
· 在充當接收者側DR的設備上必須使能MLD,否則連接在該DR上的接收者將不能通過該DR加入IPv6組播組。有關MLD的介紹,請參見“IP組播配置指導”中的“MLD”。
圖1-3 DR選舉示意圖
如圖1-3所示,DR的選舉過程如下:
表1-1 共享網絡上的各路由器相互之間發送Hello報文(攜帶有競選DR優先級的參數),擁有最高優先級的路由器將成為DR;
如果優先級相同,或者網絡中至少有一台路由器不支持在Hello報文中攜帶競選DR優先級的參數,則根據各路由器的IPv6鏈路本地地址大小來競選DR,IPv6鏈路本地地址最大的路由器將成為DR。
當DR出現故障時,其餘路由器在超時後仍沒有收到來自DR的Hello報文,則會觸發新的DR選舉過程。
RP是IPv6 PIM-SM域中的核心設備。在結構簡單的小型網絡中,IPv6組播信息量少,整個網絡僅依靠一個RP進行IPv6組播信息的轉發即可,此時可以在IPv6 PIM-SM域中的各路由器上靜態指定RP的位置;但是在更多的情況下,IPv6 PIM-SM域的規模都很大,通過RP轉發的IPv6組播信息量巨大。為了緩解RP的負擔並優化RPT的拓撲結構,可以在IPv6 PIM-SM域中配置多個C-RP(Candidate-RP,候選RP),通過自舉機製來動態選舉RP,使不同的RP服務於不同的組播組,此時需要配置BSR(BootStrap Router,自舉路由器)。BSR是IPv6 PIM-SM域中的管理核心,一個IPv6 PIM-SM域內隻能有一個BSR,但可以配置多個C-BSR(Candidate-BSR,候選BSR)。這樣,一旦BSR發生故障,其餘C-BSR能夠通過自動選舉產生新的BSR,從而確保業務免受中斷。
· 一個RP可以同時服務於多個IPv6 組播組,但一個IPv6 組播組隻能唯一對應一個RP。
· 一台設備可以同時充當C-RP和C-BSR。
如圖1-4所示,BSR負責收集網絡中由C-RP發來的宣告報文(Advertisement Message),該報文中攜帶有C-RP的地址和優先級以及其服務的IPv6組範圍,BSR將這些信息彙總為RP-Set(RP集,即IPv6組播組與RP的映射關係數據庫),封裝在自舉報文(Bootstrap Message,BSM)中並發布到整個IPv6 PIM-SM域。
圖1-4 RP與BSR信息交互示意圖
網絡中的各路由器將依據RP-Set提供的信息,使用相同的規則從眾多C-RP中為特定IPv6組播組選擇其對應的RP,具體規則如下:
表1-1 首先比較C-RP的優先級,優先級較高者獲勝。
若優先級相同,則使用哈希(Hash)函數計算哈希值,該值較大者獲勝。
若優先級和哈希值都相同,則C-RP地址較大者獲勝。
哈希函數的表達式為:Value (G, M, Ci) = (1103515245 * ( (1103515245 * (G & M) + 12345) XOR Ci) + 12345) mod 231,其中各符號的含義如表1-2所示。
符號 |
含義 |
Value |
哈希值 |
G |
將IPv6組播組地址的每32比特作為一節,各節之間通過異或運算而得的數值。假設IPv6組播組地址為FF0E:C20:1A3:63::101,則G = 0xFF0E0C20 XOR 0x01A30063 XOR 0x00000000 XOR 0x00000101 |
M |
哈希掩碼長度(Hash Mask Length) |
Ci |
將C-RP IPv6地址的每32比特作為一節,各節之間通過異或運算而得的數值。假設C-RP的IPv6地址為3FFE:B00:C18:1::10,則Ci = 0x3FFE0B00 XOR 0x0C180001 XOR 0x00000000 XOR 0x00000010 |
& |
邏輯運算符,表示與運算 |
XOR |
邏輯運算符,表示異或運算 |
mod |
算術運算符,表示整除取餘 |
通過嵌入式RP(Embedded RP)機製可以從IPv6組播地址中解析出RP的地址,從而實現IPv6組播組到RP的映射,以取代靜態配置的RP或由BSR機製動態計算出來的RP,DR不再需要預先知道RP的信息,隻需對組播報文進行分析即可知道RP的地址。其工作原理如下:
· 接收者側:
表1-1 接收者主機發送MLD報告報文聲明加入某IPv6組播組;
接收者側的DR提取內嵌在IPv6組播地址中的RP地址,並向該RP發送加入報文(Join Message)。
· IPv6組播源側:
表1-1 IPv6組播源要向某IPv6組播組發送IPv6組播數據;
IPv6組播源側的DR提取內嵌在IPv6組播地址中的RP地址,並向該RP發送注冊報文。
圖1-5 IPv6 PIM-SM中構建RPT示意圖
如圖1-5所示,RPT的構建過程如下:
表1-1 當接收者加入一個IPv6組播組G時,先通過MLD報文通知與其直連的DR;
DR掌握了IPv6組播組G的接收者的信息後,向該組所對應的RP方向逐跳發送加入報文;
從DR到RP所經過的路由器就形成了RPT的分支,這些路由器都在其轉發表中生成了(*,G)表項,這裏的“*”表示來自任意IPv6組播源。RPT以RP為根,以DR為葉子。
當發往IPv6組播組G的IPv6組播數據流經RP時,數據就會沿著已建立好的RPT到達DR,進而到達接收者。
當某接收者對IPv6組播組G的信息不再感興趣時,與其直連的DR會逆著RPT向該組的RP方向逐跳發送剪枝報文;上遊節點收到該報文後在其出接口列表中刪除與下遊節點相連的接口,並檢查自己是否擁有該IPv6組播組的接收者,如果沒有則繼續向其上遊轉發該剪枝報文。
IPv6組播源注冊的目的是向RP通知IPv6組播源的存在。
圖1-6 IPv6組播源注冊示意圖
如圖1-6所示,IPv6組播源向RP注冊的過程如下:
表1-1 當IPv6組播源S向IPv6組播組G發送了一個IPv6組播報文時,與IPv6組播源直連的DR在收到該報文後,就將其封裝成注冊報文,並通過單播方式發送給相應的RP;
當RP收到該報文後,一方麵解封裝注冊報文並將封裝在其中的IPv6組播報文沿著RPT轉發給接收者,另一方麵向IPv6組播源方向逐跳發送(S,G)加入報文。這樣,從RP到IPv6組播源所經過的路由器就形成了SPT的分支,這些路由器都在其轉發表中生成了(S,G)表項。SPT以IPv6組播源側的DR為根,以RP為葉子。
IPv6組播源發出的IPv6組播數據沿著已建立好的SPT到達RP,然後由RP把IPv6組播數據沿著RPT向接收者進行轉發。當RP收到沿著SPT轉發來的IPv6組播數據後,通過單播方式向與IPv6組播源直連的DR發送注冊停止報文(Register-Stop Message),IPv6組播源注冊過程結束。
本節中假設允許RP發起SPT切換,否則IPv6組播源側DR將一直用注冊報文封裝IPv6組播報文,注冊過程不會結束,除非RP上(S,G)表項的出接口變為空。
在IPv6 PIM-SM域中,一個IPv6組播組唯一對應一個RP和一棵RPT。在SPT切換前,所有發往該組的IPv6組播報文都必須先由IPv6組播源側DR封裝在注冊報文中發往RP,由RP解封裝後再沿RPT分發給接收者側的DR,RP是所有IPv6組播數據必經的中轉站。這個過程存在以下三個問題:
· IPv6組播源側的DR和RP必須對IPv6組播數據進行繁瑣的封裝/解封裝處理。
· IPv6組播數據的轉發路徑不一定是從IPv6組播源到接收者的最短路徑。
· 當IPv6組播流量變大時,RP負擔增大,容易引發故障。
為了解決上述問題,IPv6 PIM-SM允許由RP或接收者側的DR發起SPT切換:
表1-1 RP發起的SPT切換
RP收到IPv6組播報文後,立即向IPv6組播源方向發送(S,G)加入報文,在IPv6組播源側DR與RP之間建立起SPT分支,後續的IPv6組播報文都直接沿該分支到達RP。
接收者側DR發起的SPT切換
默認情況下,接收者側DR從RPT收到第一個IPv6組播數據包後便立即向SPT切換,過程如下:
· 首先,接收者側DR向IPv6組播源方向逐跳發送(S,G)加入報文,並最終送達IPv6組播源側DR,沿途經過的所有路由器在其轉發表中都生成了(S,G)表項,從而建立了SPT分支;
· 隨後,當IPv6組播數據沿SPT到達RPT與SPT分叉的路由器時,該路由器開始丟棄沿RPT到達的IPv6組播數據,同時向RP逐跳發送含RP位的剪枝報文,RP收到該報文後繼續向IPv6組播源方向發送剪枝報文(假設此時隻有這一個接收者),從而完成了SPT切換;
· 最終,IPv6組播數據將沿SPT從IPv6組播源到達接收者。
通過SPT切換,IPv6 PIM-SM能夠以比IPv6 PIM-DM更經濟的方式建立SPT。
IPv6 PIM-SM使用與IPv6 PIM-DM類似的斷言機製,具體請參見“2. 斷言”一節。
一般情況下,在一個IPv6 PIM-SM域內隻能有一個BSR,並由該BSR負責在整個IPv6 PIM-SM域內宣告RP-Set信息,所有IPv6組播組的信息都在此BSR管理的網絡範圍內進行轉發,我們稱之為IPv6非管理域機製。
考慮到管理的精細化,可以將整個IPv6 PIM-SM域劃分為一個IPv6 Global域(IPv6 Global-scope Zone)和多個IPv6管理域(IPv6 Admin-scope Zone),一方麵可以有效分擔單一BSR的管理壓力,另一方麵可以使用私有組地址為特定區域提供專門的服務。相應地,我們稱之為IPv6管理域機製。
IPv6管理域與特定Scope值的IPv6組播組相對應,針對不同的Scope值劃分相應的IPv6管理域。IPv6管理域的邊界由ZBR(Zone Border Router,區域邊界路由器)構成,每個IPv6管理域各維護一個BSR,為特定Scope值的IPv6組播組服務,屬於此範圍的IPv6組播協議報文(如斷言報文、BSR自舉報文等)無法通過IPv6管理域邊界。不同IPv6管理域所服務的IPv6組播組範圍可以重疊,該範圍內的IPv6組播組隻在本IPv6管理域內有效,相當於私有組地址。而IPv6 Global域則可視為一種特殊的IPv6管理域,其維護的BSR為Scope值為14的IPv6組播組提供服務。
每個IPv6管理域以及IPv6 Global域都有獨立的C-RP和BSR設備,這些設備僅在其所屬的域有效,也就是說BSR機製與RP選舉在各IPv6管理域之間是隔離的;每個IPv6管理域都有自己的邊界,各IPv6管理域所服務IPv6組播組範圍內的IPv6組播信息不能進、出該邊界。為了更清晰地理解IPv6管理域和IPv6 Global域之間的關係,可以從以下兩個角度進行考慮:
地域空間角度
IPv6管理域是針對特定Scope值的邏輯管理區域,屬於此範圍的IPv6組播報文隻能在本IPv6管理域的域內或域外傳播,無法跨過IPv6管理域的邊界。
圖1-7 地域空間上IPv6管理域與IPv6 Global域的關係
如圖1-7所示,對於同一Scope值的IPv6組播組而言,各IPv6管理域在地域上必須相互獨立、相互隔離。而IPv6 Global域則包含了IPv6 PIM-SM域內的所有路由器,不屬於任何IPv6管理域服務範圍的IPv6組播報文,可以在整個IPv6 PIM-SM域範圍內傳播。
Scope值角度
如圖1-8所示,IPv6組播通過其地址結構中的Scope字段來表明該IPv6組播組屬於哪個域。
圖1-8 IPv6組播地址結構
Scope值較大的域包含Scope值較小的域,Scope值為E所對應的域(即IPv6 Global域)最大。Scope字段可能的取值及其含義如表1-2所示。
表1-2 Scope字段的取值及其含義
取值 |
含義 |
所屬域 |
0、F |
保留(Reserved) |
- |
1 |
接口本地範圍(Interface-Local Scope) |
- |
2 |
鏈路本地範圍(Link-Local Scope) |
- |
3 |
子網本地範圍(Subnet-Local Scope) |
IPv6管理域 |
4 |
管理本地範圍(Admin-Local Scope) |
IPv6管理域 |
5 |
站點本地範圍(Site-Local Scope) |
IPv6管理域 |
6、7、9~D |
未分配(Unassigned) |
IPv6管理域 |
8 |
機構本地範圍(Organization-Local Scope) |
IPv6管理域 |
E |
全球範圍(Global Scope) |
IPv6 Global域 |
SSM(Source-Specific Multicast,指定信源組播)模型和ASM(Any-Source Multicast,任意信源組播)模型是兩個完全對等的模型。目前,ASM模型包括IPv6 PIM-DM和IPv6 PIM-SM兩種模式,SSM模型能夠借助IPv6 PIM-SM的部分技術來實現,也稱為IPv6 PIM-SSM。
SSM模型為指定源組播提供了解決方案,通過MLDv2來維護主機與路由器之間的關係。在實際應用中,通常采用MLDv2以及IPv6 PIM-SM的一部分技術來實現SSM模型。由於接收者已經通過其它渠道(如廣告谘詢等)知道了IPv6組播源的具體位置,因此在SSM模型中無需RP,無需構建RPT,也無需IPv6組播源注冊過程來發現其它IPv6 PIM域內的IPv6組播源。
IPv6 PIM-SSM的工作機製可以概括如下:
· 鄰居發現
· DR選舉
· 構建SPT
IPv6 PIM-SSM使用與IPv6 PIM-SM完全相同的鄰居發現機製,具體請參見“1.1.1 1. 鄰居發現”一節。
IPv6 PIM-SSM使用與IPv6 PIM-SM完全相同的DR選舉機製,具體請參見 “4. DR選舉”一節。
構建為IPv6 PIM-SM服務的RPT,還是構建為IPv6 PIM-SSM服務的SPT,關鍵在於接收者準備加入的IPv6組播組是否屬於IPv6 SSM組地址範圍(IANA保留的IPv6 SSM組地址範圍為FF3x::/32,其中x表示任意合法的scope)。
圖1-9 IPv6 PIM-SSM中構建SPT示意圖
如圖1-9所示,Host B和Host C為IPv6組播信息的接收者(Receiver),由其借助MLDv2的報告報文向DR報告自己對來自IPv6組播源S、發往IPv6組播組G的信息感興趣。收到該報告報文的DR先判斷該報文中的IPv6組地址是否在IPv6 SSM組地址範圍內:
· 如果在IPv6 SSM組地址範圍內,則構建IPv6 PIM-SSM,並向IPv6組播源S逐跳發送通道(Channel)的訂閱報文(Subscribe Message)。沿途所有路由器上都創建(S,G)表項,從而在網絡內構建了一棵以IPv6組播源S為根、以接收者為葉子的SPT,該SPT就是IPv6 PIM-SSM中的傳輸通道;
· 如果不在IPv6 SSM組地址範圍內,則仍舊按照IPv6 PIM-SM的流程進行後續處理,此時接收者側DR需要向RP發送(*,G)加入報文,同時IPv6組播源側DR需要進行IPv6組播源的注冊。
在IPv6 PIM-SSM中,借助“通道”的概念表示IPv6組播組,借助“訂閱報文”的概念表示加入報文。
與IPv6 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 3956:Embedding the Rendezvous Point (RP) Address in an IPv6 Multicast Address
· 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)
表1-3 IPv6 PIM-DM配置任務簡介
配置任務 |
說明 |
詳細配置 |
使能IPv6 PIM-DM |
必選 |
|
使能狀態刷新能力 |
可選 |
|
配置狀態刷新參數 |
可選 |
|
配置IPv6 PIM-DM定時器 |
可選 |
|
配置IPv6 PIM公共特性 |
可選 |
在配置IPv6 PIM-DM之前,需完成以下任務:
· 使能IPv6轉發功能並配置任一IPv6單播路由協議,實現域內網絡層互通
在配置IPv6 PIM-DM之前,需準備以下數據:
· 發送狀態刷新報文的時間間隔
· 等待接收新狀態刷新報文的最小時間
· 狀態刷新報文的Hop Limit值
· 嫁接報文的重傳時間
在接口上使能了IPv6 PIM-DM後,路由器會定期發送Hello報文以發現IPv6 PIM鄰居,並對收到的來自IPv6 PIM鄰居的報文進行處理。在部署IPv6 PIM-DM域時,建議在其所有非邊界接口上均使能IPv6 PIM-DM。
表1-4 使能IPv6 PIM-DM
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
使能IPv6組播路由 |
multicast ipv6 routing-enable |
必選 缺省情況下,IPv6組播路由處於關閉狀態 |
進入接口視圖 |
interface interface-type interface-number |
- |
使能IPv6 PIM-DM |
pim ipv6 dm |
必選 缺省情況下,IPv6 PIM-DM處於關閉狀態 |
· 同一台設備所有接口上所啟用的IPv6 PIM模式必須相同。
· IPv6 PIM-DM不能與處於IPv6 SSM組地址範圍內的IPv6組播組同時使用。
有關multicast ipv6 routing-enable命令的詳細介紹,請參見“IP組播命令參考”中的“IPv6組播路由與轉發”。
為了避免各路由器上被剪枝的接口因為超時而恢複轉發,與IPv6組播源直連的路由器會周期性地發送(S,G)狀態刷新報文,該報文沿著IPv6 PIM-DM域最初的擴散路徑逐跳進行轉發,從而刷新沿途所有路由器上的剪枝定時器的狀態。隻有當一個共享網段內的所有IPv6 PIM路由器上都使能了狀態刷新能力時,該共享網段才具備狀態刷新能力。
請在IPv6 PIM-DM域內的所有路由器上進行如下配置。
表1-5 使能狀態刷新能力
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入接口視圖 |
interface interface-type interface-number |
- |
使能狀態刷新能力 |
pim ipv6 state-refresh-capable |
可選 缺省情況下,狀態刷新能力處於使能狀態 |
在與IPv6組播源直連的路由器上,會以一定的時間間隔周期性地發送(S,G)狀態刷新報文,可以通過配置來改變這個時間間隔。
路由器可能在短時間內收到多個狀態刷新報文,而其中有些報文可能是重複的。為了避免接收這些重複的報文,可以配置接收新狀態刷新報文的等待時間:路由器將丟棄在該時間內收到的狀態刷新報文;當該時間超時後,路由器將正常接收新的狀態刷新報文,並更新自己的IPv6 PIM-DM狀態,同時重置該等待時間。
在收到狀態刷新報文時,路由器會將該報文的Hop Limit值減1後轉發給其下遊,直至該報文的Hop Limit值減為0,當網絡規模很小時,狀態刷新報文將在網絡中循環傳遞。因此,為了有效控製刷新報文的傳遞範圍,需要根據網絡規模大小配置合適的Hop Limit值。
請在IPv6 PIM-DM域內的所有路由器上進行如下配置。
表1-6 配置狀態刷新參數
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入IPv6 PIM視圖 |
pim ipv6 |
- |
配置發送狀態刷新報文的時間間隔 |
state-refresh-interval interval |
可選 缺省情況下,發送狀態刷新報文的時間間隔為60秒 |
配置接收新狀態刷新報文的等待時間 |
state-refresh-rate-limit interval |
可選 缺省情況下,接收新狀態刷新報文的等待時間為30秒 |
配置狀態刷新報文的Hop Limit值 |
state-refresh-hoplimit hoplimit-value |
可選 缺省情況下,狀態刷新報文的Hop Limit值為255 |
嫁接報文是IPv6 PIM-DM中唯一使用確認機製的報文。在IPv6 PIM-DM域中,下遊路由器發出嫁接報文後,如果在指定時間內沒有收到來自其上遊路由器的嫁接應答報文,則會重發嫁接報文,直到被確認。
表1-7 配置IPv6 PIM-DM定時器
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入接口視圖 |
interface interface-type interface-number |
- |
配置嫁接報文的重傳時間 |
pim ipv6 timer graft-retry interval |
可選 缺省情況下,嫁接報文的重傳時間為3秒 |
表1-8 IPv6 PIM-SM配置任務簡介
配置任務 |
說明 |
詳細配置 |
|
使能IPv6 PIM-SM |
必選 |
||
配置RP |
配置靜態RP |
三者至少選其一,若隻配置靜態RP,則不必再配置BSR |
|
配置C-RP |
|||
使能嵌入式RP |
|||
全局配置C-RP定時器 |
可選 |
||
配置BSR |
配置C-BSR |
必選 |
|
配置BSR服務邊界 |
可選 |
||
全局配置C-BSR參數 |
可選 |
||
配置C-BSR定時器 |
可選 |
||
關閉自舉報文語義分片功能 |
可選 |
||
配置IPv6管理域 |
使能IPv6管理域機製 |
可選 |
|
配置IPv6管理域邊界 |
可選 |
||
配置IPv6管理域的C-BSR |
可選 |
||
配置IPv6組播源注冊 |
可選 |
||
配置SPT切換 |
可選 |
||
配置IPv6 PIM公共特性 |
可選 |
在配置IPv6 PIM-SM之前,需完成以下任務:
· 使能IPv6轉發功能並配置任一IPv6單播路由協議,實現域內網絡層互通
在配置IPv6 PIM-SM之前,需準備以下數據:
· 靜態RP的IPv6地址及表示其所服務IPv6組範圍的IPv6 ACL規則
· C-RP的優先級及表示其所服務IPv6組範圍的IPv6 ACL規則
· 合法C-RP的地址範圍及表示其所服務IPv6組範圍的IPv6 ACL規則
· 發送宣告報文的時間間隔
· C-RP超時時間
· C-BSR的優先級
· 哈希掩碼長度
· 表示合法BSR地址範圍的IPv6 ACL規則
· 自舉時間間隔
· 自舉超時時間
· 表示注冊報文過濾規則的IPv6 ACL規則
· 注冊抑製時間
· 注冊探測時間
· 發起SPT切換的IPv6 ACL規則和排序規則
在接口上使能了IPv6 PIM-SM後,路由器會定期發送Hello報文以發現IPv6 PIM鄰居,並對收到的來自IPv6 PIM鄰居的報文進行處理。在部署IPv6 PIM-SM域時,建議在其所有非邊界接口上均使能IPv6 PIM-SM。
表1-9 使能IPv6 PIM-SM
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
使能IPv6組播路由 |
multicast ipv6 routing-enable |
必選 缺省情況下,IPv6組播路由處於關閉狀態 |
進入接口視圖 |
interface interface-type interface-number |
- |
使能IPv6 PIM-SM |
pim ipv6 sm |
必選 缺省情況下,IPv6 PIM-SM處於關閉狀態 |
同一台設備所有接口上所啟用的IPv6 PIM模式必須相同。
有關multicast ipv6 routing-enable命令的詳細介紹,請參見“IP組播命令參考”中的“IPv6組播路由與轉發”。
RP可以通過手工方式靜態配置,也可以通過BSR機製動態選舉。對於大型IPv6 PIM網絡,配置靜態RP將會非常繁瑣。所以,通常靜態RP是作為動態選舉RP機製的備份手段,以提高網絡的健壯性,增強組播網絡的運營管理能力。
當網絡內僅有一個動態RP時,通過手工配置靜態RP可以避免因單一節點故障而引起的通信中斷,同時也可以避免C-RP與BSR之間頻繁的信息交互而占用帶寬。
請在IPv6 PIM-SM域內的所有路由器上進行如下配置。
表1-10 配置靜態RP
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入IPv6 PIM視圖 |
pim ipv6 |
- |
配置服務於IPv6 PIM-SM的靜態RP |
static-rp ipv6-rp-address [ acl6-number ] [ preferred ] |
必選 缺省情況下,沒有配置靜態RP |
為了讓靜態RP功能正常發揮作用,必須在所有路由器上指定相同的靜態RP地址。
在PIM-SM域中,可以把有意成為RP的路由器配置為C-RP。BSR通過接收來自C-RP的C-RP信息,或者接收來自其它路由器的自動RP宣告,收集C-RP信息並將其彙總為RP-Set信息,然後在全網內擴散。之後,網絡內的其它路由器根據RP-Set信息計算出特定組播組範圍所對應的RP。建議在骨幹網路由器上配置C-RP。
為了防止C-RP欺騙,需要在BSR上配置合法的C-RP地址範圍及其所服務的組播組範圍。同時由於每個C-BSR都可能成為BSR,因此必須在IPv6 PIM-SM域內的所有C-BSR上都配置相同的過濾策略。
表1-11 配置C-RP
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入IPv6 PIM視圖 |
pim ipv6 |
- |
配置某接口為服務於IPv6 PIM-SM的C-RP |
c-rp ipv6-address [ { group-policy acl6-number | scope scope-id } | priority priority | holdtime hold-interval | advertisement-interval adv-interval ] * |
必選 缺省情況下,沒有配置C-RP |
合法C-RP的地址範圍及其所服務的IPv6組播組範圍 |
crp-policy acl6-number |
可選 缺省情況下,C-RP的地址範圍及其所服務的IPv6組播組範圍不受任何限製 |
· 在配置C-RP時,應在C-RP與IPv6 PIM-SM域中的其它設備之間保留較大的通信帶寬。
· 一個RP可以為多個IPv6組播組服務,也可以為所有IPv6組播組服務。每個IPv6組播組在任意時刻,隻能由唯一的一個RP為其轉發數據,而不能由多個RP轉發數據。
嵌入式RP機製可以從IPv6組播地址中直接解析出RP,從而取代靜態配置的RP或由BSR機製動態計算出來的RP,DR不再需要預先知道RP的信息,隻需對組播報文進行分析即可知道RP的地址。
請在IPv6 PIM-SM域內的所有路由器上進行如下配置。
表1-12 使能嵌入式RP
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入IPv6 PIM視圖 |
pim ipv6 |
- |
使能嵌入式RP功能 |
embedded-rp [ acl6-number ] |
可選 缺省情況下,默認嵌入式RP地址範圍內的IPv6組播組均可以使用嵌入式RP功能 |
默認的嵌入式RP地址範圍為FF7x::/12和FFFx::/12,其中x表示任意合法的scope。有關scope字段的詳細介紹,請參見“IP組播配置指導”中的“組播概述”。
為了使BSR能夠在IPv6 PIM-SM域內分發RP-Set信息,C-RP必須周期性地向BSR發送宣告報文,BSR從該報文中學習RP-Set信息,並將該信息與自己的IPv6地址一起封裝在自舉報文中向域中的所有IPv6 PIM路由器進行宣告。
C-RP在其宣告報文中封裝一個保持時間,BSR在收到該報文後,從中獲得該時間值並啟動C-RP超時定時器,如果超時後BSR仍沒有收到來自C-RP後續的宣告報文,則認為目前網絡中的C-RP失效或不可達。
請在已配置為C-RP的路由器上進行如下配置。
表1-13 全局配置C-RP定時器
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入IPv6 PIM視圖 |
pim ipv6 |
- |
配置發送宣告報文的時間間隔 |
c-rp advertisement-interval interval |
可選 缺省情況下,發送宣告報文的時間間隔為60秒 |
配置C-RP超時時間 |
c-rp holdtime interval |
可選 缺省情況下,C-RP的超時時間為150秒 |
有關IPv6 PIM-SM其它定時器的相關配置,請參見“1.5.7 配置IPv6 PIM公共定時器”。
在一個IPv6 PIM-SM域中隻能有一個BSR,但需要配置至少一個C-BSR。任意一台路由器都可以被配置為C-BSR。在C-BSR之間通過自動選舉產生BSR,BSR負責在IPv6 PIM-SM域中收集並發布RP信息。
C-BSR應配置在骨幹網的路由器上,在將路由器配置為C-BSR時,必須同時指定一個使能了IPv6 PIM-SM的接口的IPv6地址。C-BSR間的自動選舉機製簡單描述如下:
· 最初,每個C-BSR都認為自己是本IPv6 PIM-SM域的BSR,並使用接口的IPv6地址作為BSR地址,發送自舉報文;
· 當某C-BSR收到其它C-BSR發來的自舉報文時,首先比較自己與後者的優先級,優先級較高者獲勝;在優先級相同的情況下,再比較自己與後者的BSR地址,擁有較大IPv6地址者獲勝。如果後者獲勝,則用後者的BSR地址替換自己的BSR地址,並不再認為自己是BSR;否則,保留自己的BSR地址,並繼續認為自己是BSR。
通過在路由器上配置合法BSR的地址範圍,可以對收到的自舉報文按照地址範圍進行過濾,從而防止某些惡意主機非法偽裝成BSR,以避免合法的BSR被惡意取代。必須在IPv6 PIM-SM域內的所有路由器上進行相同的配置。通常針對以下兩類情況實施預防措施:
某些惡意主機通過偽造自舉報文以欺騙路由器,試圖更改RP映射關係。這種攻擊通常發生在邊緣路由器上,由於BSR處於網絡內部,主機在網絡外部,因此邊緣路由器通過對收到的自舉報文進行鄰居檢查和RPF檢查,丟棄不符合要求的報文,就可以避免外部網絡用戶對內部網絡BSR的攻擊;
網絡中某台路由器被攻擊者控製,或者有非法接入的路由器時,攻擊者可以將這樣的路由器配置為C-BSR,並使其在競爭中獲勝,從而控製網絡中RP信息的發布權。由於在被配置為C-BSR後,路由器會自動向整個網絡擴散自舉報文,而自舉報文是Hop Limit值為1的IPv6組播報文,所以隻要其鄰居路由器不接收該自舉報文,就不會影響整個網絡。因此,通過在整個網絡的所有路由器上都配置合法BSR的地址範圍,從而丟棄合法範圍之外的自舉報文,就可以防止此類攻擊。
以上兩種預防措施可以部分地保護網絡中BSR的安全。但是如果某台合法的BSR路由器被攻擊者控製,還是可能導致問題。
表1-14 配置C-BSR
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入IPv6 PIM視圖 |
pim ipv6 |
- |
配置某接口為C-BSR |
c-bsr ipv6-address [ hash-length [ priority ] ] |
必選 缺省情況下,沒有配置C-BSR |
配置合法的BSR地址範圍 |
bsr-policy acl6-number |
可選 缺省情況下,BSR的地址範圍不受任何限製 |
由於BSR與IPv6 PIM-SM域中的其它設備需要交換大量信息,因此應在C-BSR與IPv6 PIM-SM域中的其它設備之間保留較大的通信帶寬。
BSR作為IPv6 PIM-SM域中的管理核心,負責將收集到的RP-Set信息以自舉報文的形式發向IPv6 PIM-SM域中的所有路由器。
BSR的服務邊界,即IPv6 PIM-SM域的邊界。BSR是針對特定的服務範圍而言的,眾多的BSR服務邊界接口將網絡劃分成不同的IPv6 PIM-SM域,自舉報文無法通過IPv6 PIM-SM域的邊界,BSR服務邊界之外的路由器也不能參與本IPv6 PIM-SM域內的組播轉發。
請在欲配置為BSR服務邊界的路由器上進行如下配置。
表1-15 配置BSR服務邊界
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入接口視圖 |
interface interface-type interface-number |
- |
配置BSR的服務邊界 |
pim ipv6 bsr-boundary |
必選 缺省情況下,沒有配置BSR的服務邊界 |
在一個IPv6 PIM-SM域中,從眾多C-BSR中選舉出唯一的BSR。IPv6 PIM-SM域內的C-RP向BSR發送宣告報文,由BSR彙總為RP-Set,並向本IPv6 PIM-SM域內的所有路由器進行宣告。所有路由器都使用統一的哈希算法,得到特定IPv6組播組所對應RP的地址。
請在已配置為C-BSR的路由器上進行如下配置。
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入IPv6 PIM視圖 |
pim ipv6 |
- |
配置哈希掩碼長度 |
c-bsr hash-length hash-length |
可選 缺省情況下,哈希掩碼長度為126 |
配置C-BSR的優先級 |
c-bsr priority priority |
可選 缺省情況下,C-BSR的優先級為64 |
當某C-BSR競選成為BSR後,它會通過自舉報文向其所服務的區域以組播方式發送自己的IPv6地址和RP-Set信息。BSR以自舉時間間隔周期性地向網絡發送自舉報文,收到該報文的C-BSR會在自舉超時時間內將其保持,此時BSR選舉過程暫停;當自舉超時時間超時後,C-BSR之間會觸發新一輪的BSR選舉過程。
請在已配置為C-BSR的路由器上進行如下配置。
表1-17 配置C-BSR定時器
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入IPv6 PIM視圖 |
pim ipv6 |
- |
配置自舉時間間隔 |
c-bsr interval interval |
可選 缺省取值請參見表後的說明 |
配置自舉超時時間 |
c-bsr holdtime interval |
可選 缺省取值請參見表後的說明 |
關於自舉時間間隔的取值:
· 如果沒有進行手工配置,則其取值由如下公式決定:自舉時間間隔=(自舉超時時間-10)÷2。缺省情況下,自舉超時時間為130秒,則自舉時間間隔的缺省值=(130-10)÷2=60(秒)。
· 如果進行了手工配置,則取配置值。
關於自舉超時時間的取值:
· 如果沒有進行手工配置,則其取值由如下公式決定:自舉超時時間=自舉時間間隔×2+10。缺省情況下,自舉時間間隔為60秒,則自舉超時時間的缺省值=60×2+10=130(秒)。
· 如果進行了手工配置,則取配置值。
配置時,應保證自舉時間間隔小於自舉超時時間。
BSR周期性地向所在IPv6 PIM-SM域發送自舉報文以通告RP-Set信息。當RP-Set信息較少時,自舉報文被封裝在一個IPv6報文中發送出去;而當RP-Set信息較多時,自舉報文的大小可能超過接口的MTU(Maximum Transmission Unit,最大傳輸單元)值,從而觸發其在IP層的分片。在這種情況下,一個IP分片的丟失就會導致整個自舉報文都被丟棄。
自舉報文語義分片功能可以解決上述問題:當自舉報文大於接口MTU時,會被分解為多個自舉報文分片(Bootstrap Message Fragment,BSMF)。非BSR收到自舉報文分片後,若發現某組範圍對應的RP信息都在這一個分片中,便立即更新該組範圍對應的RP-Set;若發現某組範圍映射的RP信息被分在了多個分片中,則待收齊了這些分片後再更新該組範圍對應的RP-Set。這樣,由於不同分片所含組範圍對應的RP信息不同,因此個別分片的丟失隻影響該分片所含組範圍對應的RP信息,而不會導致整個自舉報文都被丟棄。
自舉報文語義分片功能是缺省使能的,但由於不支持該功能的設備會將自舉報文分片當作完整的自舉報文處理,從而導致其學到的RP-Set信息不完整,因此當IPv6 PIM-SM域中存在此類設備時,請在已配置為C-BSR的路由器上關閉本功能。
表1-18 關閉自舉報文語義分片功能
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入IPv6 PIM視圖 |
pim ipv6 |
- |
關閉自舉報文語義分片功能 |
undo bsm-fragment enable |
必選 缺省情況下,自舉報文語義分片功能處於使能狀態 |
通常,BSR根據其BSR接口的MTU值對自舉報文進行語義分片;而對由於新學到IPv6 PIM鄰居而觸發的自舉報文發送,則根據發送接口的MTU值進行語義分片。
在IPv6非管理域機製下,一個IPv6 PIM-SM域中隻有唯一的BSR,整個網絡都在該BSR的管理範圍之內。為了更有針對性地管理,可以將整個IPv6 PIM-SM域劃分為多個IPv6管理域:每個IPv6管理域中各維護一個BSR,服務於特定Scope值的IPv6組播組;IPv6 Global域則可視為一種特殊的IPv6管理域,其維護的BSR為Scope值為14的IPv6組播組提供服務。
在配置IPv6管理域各項功能之前,必須先使能IPv6管理域機製。
請在IPv6 PIM-SM域內的所有路由器上進行如下配置。
表1-19 使能IPv6管理域機製
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入IPv6 PIM視圖 |
pim ipv6 |
- |
使能IPv6管理域機製 |
c-bsr admin-scope |
必選 缺省情況下,IPv6管理域機製處於關閉狀態 |
在IPv6管理域機製中,各IPv6管理域的邊界由ZBR構成,每個IPv6管理域各維護一個BSR,服務於特定Scope值的IPv6組播組,屬於此範圍的IPv6組播協議報文(如斷言報文、BSR自舉報文等)無法通過IPv6管理域邊界。
請在欲配置為ZBR的路由器上進行如下配置。
表1-20 配置IPv6管理域邊界
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入接口視圖 |
interface interface-type interface-number |
- |
配置IPv6組播轉發邊界 |
multicast ipv6 boundary { ipv6-group-address prefix-length | scope { scope-id | admin-local | global | organization-local | site-local } } |
必選 缺省情況下,沒有配置IPv6組播轉發邊界 |
有關multicast ipv6 boundary命令的詳細介紹,請參見“IP組播命令參考”中的“IPv6組播路由與轉發”。
在應用了IPv6管理域機製的網絡中,從眾多C-BSR中選舉出針對不同Scope值的BSR。網絡內的C-RP隻向對應的BSR發送宣告報文,由BSR彙總為RP-Set,並向其所服務IPv6管理域內的所有路由器進行宣告。所有路由器都使用統一的哈希算法,得到特定IPv6組播組所對應RP的地址。
請在欲配置為IPv6管理域C-BSR的路由器上進行如下配置。
表1-21 配置IPv6管理域的C-BSR
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入IPv6 PIM視圖 |
pim ipv6 |
- |
配置IPv6管理域的C-BSR |
c-bsr scope { scope-id | admin-local | global | organization-local | site-local } [ hash-length hash-length | priority priority ] * |
必選 缺省情況下,沒有配置IPv6管理域的C-BSR |
· 哈希掩碼長度和C-BSR的優先級可以在全局和IPv6管理域這兩種範圍內進行配置:
· 如果在IPv6管理域下進行了配置,則取其配置值;
· 如果未在IPv6管理域下進行配置,則取相應的全局值。
有關全局C-BSR參數的相關配置,請參見“1.3.5 3. 全局配置C-BSR參數”。
在IPv6 PIM-SM域內,IPv6組播源側DR向RP發送注冊報文,而這些注冊報文擁有不同的IPv6組播源或IPv6組播地址。為了讓RP服務於特定的IPv6組播組,可以對注冊報文進行過濾。如果某個(S,G)表項被過濾規則拒絕,或者過濾規則中沒有定義對它的操作,RP都會向DR發送注冊停止報文,以停止該IPv6組播數據的注冊過程。
出於對注冊報文在傳遞過程中完整性的考慮,可以配置根據整個報文來計算校驗和。但為了減少往注冊報文中封裝數據報文的工作量並考慮到互通性,一般情況下不建議配置根據注冊報文的全部內容來計算校驗和的方式。
當接收者不再通過RP接收發往某IPv6組播組的數據(即RP不再服務於該IPv6組播組),或RP開始接收IPv6組播源沿著SPT發來的IPv6組播數據時,RP將向IPv6組播源側DR發送注冊停止報文,DR收到該報文後將停止發送封裝有IPv6組播數據的注冊報文並啟動注冊停止定時器(Register-Stop Timer)。在注冊停止定時器超時之前,DR會向RP發送一個空注冊報文(Null-Register Message,即不封裝IPv6組播數據的注冊報文):如果DR在注冊探測時間(Register_Probe_Time)內收到了來自RP的注冊停止報文,DR將刷新其注冊停止定時器;否則,DR將重新開始發送封裝有IPv6組播數據的注冊報文。
注冊停止定時器的超時時間是一個隨機值,由其它兩個時間值決定:注冊抑製時間(Register_Suppression_Time)和注冊探測時間。其具體取值範圍如下:(0.5×注冊抑製時間,1.5×注冊抑製時間)-注冊探測時間。
請在所有已配置為C-RP的路由器上配置注冊報文的過濾規則和根據注冊報文的全部內容來計算校驗和;請在所有可能成為IPv6組播源側DR的路由器上配置注冊抑製時間和注冊探測時間。
表1-22 配置IPv6組播源注冊
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入IPv6 PIM視圖 |
pim ipv6 |
- |
配置注冊報文的過濾規則 |
register-policy acl6-number |
可選 缺省情況下,沒有配置注冊報文的過濾規則 |
配置根據注冊報文的全部內容來計算校驗和 |
register-whole-checksum |
可選 缺省情況下,僅根據注冊報文頭來計算校驗和 |
配置注冊抑製時間 |
register-suppression-timeout interval |
可選 缺省情況下,注冊抑製時間為60秒 |
配置注冊探測時間 |
probe-interval interval |
可選 缺省情況下,注冊探測時間為5秒 |
由於RPT不一定是路徑最短的樹,因此當IPv6組播數據流量變大時有必要將RPT切換為路徑最短的SPT。IPv6 PIM-SM路由器最初通過RPT轉發IPv6組播數據,默認情況下,設備從RPT收到第一個IPv6組播數據包後便立即向SPT切換。
設備一旦建立了IPv6組播轉發表項,即使有注冊出接口,後續的IPv6組播數據報文也不會被封裝成注冊報文進行轉發。所以,在可能成為RP的交換機(即靜態RP或C-RP等)上,請不要使用參數infinity配置永遠不向SPT切換,以免導致轉發失敗。
請在所有可能成為接收者側DR上進行如下配置。
表1-23 配置SPT切換
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入IPv6 PIM視圖 |
pim ipv6 |
- |
配置發起SPT切換的條件 |
spt-switch-threshold infinity [ group-policy acl6-number [ order order-value ] ] |
可選 缺省情況下,設備收到第一個IPv6組播數據包後便立即向SPT切換 |
IPv6 PIM-SSM模型需要MLDv2的支持,因此應確保連接有接收者的IPv6 PIM路由器上使能了MLDv2。
表1-24 IPv6 PIM-SSM配置任務簡介
配置任務 |
說明 |
詳細配置 |
使能IPv6 PIM-SM |
必選 |
|
配置IPv6 SSM組播組範圍 |
可選 |
|
配置IPv6 PIM公共特性 |
可選 |
在配置IPv6 PIM-SSM之前,需完成以下任務:
· 使能IPv6轉發功能並配置任一IPv6單播路由協議,實現域內網絡層互通
在配置IPv6 PIM-SSM之前,需準備以下數據:
· IPv6 SSM組播組範圍
由於IPv6 PIM-SSM是通過IPv6 PIM-SM的部分子集功能實現的,因此在配置IPv6 PIM-SSM之前須先使能IPv6 PIM-SM。在部署IPv6 PIM-SSM域時,建議在其所有非邊界接口上均使能IPv6 PIM-SM。
表1-25 使能IPv6 PIM-SM
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
使能IPv6組播路由 |
multicast ipv6 routing-enable |
必選 缺省情況下,IPv6組播路由處於關閉狀態 |
進入接口視圖 |
interface interface-type interface-number |
- |
使能IPv6 PIM-SM |
pim ipv6 sm |
必選 缺省情況下,IPv6 PIM-SM處於關閉狀態 |
同一台設備所有接口上所啟用的IPv6 PIM模式必須相同。
有關multicast ipv6 routing-enable命令的詳細介紹,請參見“IP組播命令參考”中的“IPv6組播路由與轉發”。
在把來自IPv6組播源的信息傳遞給接收者的過程中,是采用IPv6 PIM-SSM模型還是IPv6 PIM-SM模型,這取決於接收者訂閱通道(S,G)中的IPv6組播組是否在IPv6 SSM組播組範圍之內,所有使能了IPv6 PIM-SM的接口將會認為屬於該範圍內的IPv6組播組采用了IPv6 SSM模型。
請在IPv6 PIM-SSM域內的所有路由器上進行如下配置。
表1-26 配置IPv6 SSM組播組範圍
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入IPv6 PIM視圖 |
pim ipv6 |
- |
配置IPv6 SSM組播組的範圍 |
ssm-policy acl6-number |
可選 缺省情況下,IPv6 SSM組播組的範圍為FF3x::/32,其中x表示任意合法的scope |
· 應確保域內所有路由器上配置的IPv6 SSM組播組地址範圍都一致,否則組播信息將無法通過IPv6 SSM模型進行傳輸。
· 如果某IPv6組播組屬於IPv6 SSM組播組範圍,但該組成員使用MLDv1發送加入報文,則設備不會觸發(*,G)加入報文。
對於本節中那些既可在IPv6 PIM視圖、又可在接口視圖下進行配置的功能或參數來說:
· 在IPv6 PIM視圖下所作的配置對所有接口生效,在接口視圖下所作的配置僅對當前接口生效;
· 如果在這兩個視圖下對某功能或參數均進行了配置,則不論配置先後,接口視圖下的配置將被優先采用。
表1-27 IPv6 PIM公共特性配置任務簡介
配置任務 |
說明 |
詳細配置 |
配置IPv6組播數據過濾器 |
可選 |
|
配置Hello報文過濾器 |
可選 |
|
配置Hello報文選項 |
可選 |
|
配置剪枝延遲時間 |
可選 |
|
配置IPv6 PIM公共定時器 |
可選 |
|
配置加入/剪枝報文規格 |
可選 |
|
配置IPv6 PIM與BFD聯動 |
可選 |
在配置IPv6 PIM公共特性之前,需完成以下任務:
· 使能IPv6轉發功能並配置任一IPv6單播路由協議,實現域內網絡層互通
· 配置IPv6 PIM-DM(或IPv6 PIM-SM、IPv6 PIM-SSM)
在配置IPv6 PIM公共特性之前,需準備以下數據:
· 表示IPv6組播數據過濾規則的IPv6 ACL規則
· 表示合法Hello報文的源地址範圍的IPv6 ACL規則
· 競選DR的優先級(全局值/接口值)
· 保持IPv6 PIM鄰居可達狀態的時間(全局值/接口值)
· 發送剪枝報文的延遲時間(全局值/接口值)
· 剪枝否決時間(全局值/接口值)
· 剪枝延遲時間
· 發送Hello報文的時間間隔(全局值/接口值)
· 發送Hello報文的最大延遲時間(接口值)
· 保持斷言狀態的時間(全局值/接口值)
· 發送加入/剪枝報文的時間間隔(全局值/接口值)
· 保持加入/剪枝狀態的時間(全局值/接口值)
· IPv6組播源生存時間
· 加入/剪枝報文的最大長度
· 加入/剪枝報文中(S,G)表項的最大數量
無論在IPv6 PIM-DM還是IPv6 PIM-SM域內,各路由器都可以對流經自己的IPv6組播數據進行檢查,通過比較是否符合過濾規則,從而決定是否繼續轉發IPv6組播數據。也就是說IPv6 PIM域內的路由器能夠成為IPv6組播數據的過濾器。過濾器的存在一方麵有助於實現信息流量控製,另一方麵可以在安全性方麵限定下遊接收者能夠獲得的信息。
表1-28 配置IPv6組播數據過濾器
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入IPv6 PIM視圖 |
pim ipv6 |
- |
配置IPv6組播數據過濾器 |
source-policy acl6-number |
必選 缺省情況下,沒有配置IPv6組播數據過濾器 |
· 通常,過濾器的位置離IPv6組播源距離越近,過濾影響越明顯。
· 過濾器不僅過濾獨立的IPv6組播數據,還過濾封裝在注冊報文中的IPv6組播數據。
隨著IPv6 PIM協議的推廣和應用,對其安全性的要求也越來越高。建立正確的IPv6 PIM鄰居是IPv6 PIM協議安全應用的前提。如果在接口上指定了合法Hello報文的源地址範圍,便能夠保證IPv6 PIM鄰居的正確建立,從而有效防止各種IPv6 PIM協議報文攻擊,提高設備對IPv6 PIM協議報文處理的安全性。
表1-29 配置Hello報文過濾器
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入接口視圖 |
interface interface-type interface-number |
- |
配置合法Hello報文的源地址範圍 |
pim ipv6 neighbor-policy acl6-number |
必選 缺省情況下,Hello報文的源地址範圍不受任何限製 |
當Hello報文過濾器的配置生效後,對於之前已建立的IPv6 PIM鄰居,若由於其Hello報文被過濾而導致無法收到後續的Hello報文,將會在老化超時後被自動刪除。
無論在IPv6 PIM-DM域還是在IPv6 PIM-SM域內,各路由器之間發送的Hello報文都包含很多可供配置的選項,對各選項的介紹如下:
· DR_Priority(僅用於IPv6 PIM-SM):表示競選DR的優先級,優先級高的設備被選舉為DR。可以在與IPv6組播源或接收者直連的共享網絡中的所有路由器上都配置此參數。
· Holdtime:表示保持IPv6 PIM鄰居可達狀態的時間,若超時後仍沒有收到Hello報文,則認為IPv6 PIM鄰居失效或不可達。
· LAN_Prune_Delay:表示在共享網絡上傳遞剪枝報文的延遲時間,該選項由三部分組成:LAN-delay(發送剪枝報文的延遲時間)、Override-interval(剪枝否決時間)和禁止加入報文抑製能力。當共享網段內各IPv6 PIM路由器的LAN-delay或Override-interval不同時,取其中最大的值;當要禁止加入報文抑製能力時,須在共享網段內的所有IPv6 PIM路由器上都禁止該能力。
LAN-delay表示路由器從收到下遊路由器發來的剪枝報文到繼續向上遊路由器發送剪枝報文的延遲時間,Override-interval則表示允許下遊路由器否決剪枝動作的時間。路由器在收到下遊路由器發來的剪枝報文後並不立即執行剪枝動作,而是仍將當前的轉發狀態保持LAN-delay+Override-interval時間。如果下遊路由器需要繼續接收IPv6組播數據,則必須在Override-interval時間內向上遊路由器發送加入報文以否決這個剪枝動作,這就稱為剪枝否決;如果Override-interval時間超時後未收到任何加入報文,上遊路由器就會在LAN-delay+Override-interval時間超時後執行剪枝動作。
IPv6 PIM路由器發送Hello報文時,會生成一個隨機數Generation ID並攜帶在該報文中。一台IPv6 PIM路由器的Generation ID一般不會變化,除非該路由器的狀態發生了改變(如接口剛使能了IPv6 PIM或設備進行了重啟),此時,當其開始或重新開始發送Hello報文時,會生成一個新的Generation ID。這樣,如果IPv6 PIM路由器發現其上遊鄰居發來的Hello報文中Generation ID發生了改變,就會認為該鄰居的狀態已經丟失或其上遊鄰居已經改變,從而觸發發送加入報文以進行狀態刷新。
在禁止加入報文抑製能力(即使能鄰居跟蹤)時,應在共享網段的所有IPv6 PIM路由器上都禁止該能力,否則上遊路由器無法跟蹤每台下遊路由器的加入報文。
表1-30 全局配置Hello報文選項
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入IPv6 PIM視圖 |
pim ipv6 |
- |
配置競選DR的優先級 |
hello-option dr-priority priority |
可選 缺省情況下,競選DR的優先級為1 |
配置保持IPv6 PIM鄰居可達狀態的時間 |
hello-option holdtime interval |
可選 缺省情況下,保持IPv6 PIM鄰居可達狀態的時間為105秒 |
配置發送剪枝報文的延遲時間 |
hello-option lan-delay interval |
可選 缺省情況下,發送剪枝報文的延遲時間為500毫秒 |
配置剪枝否決時間 |
hello-option override-interval interval |
可選 缺省情況下,剪枝否決時間為2500毫秒 |
禁止加入報文抑製能力 |
hello-option neighbor-tracking |
必選 缺省情況下,加入報文抑製能力處於使能狀態 |
表1-31 在接口上配置Hello報文選項
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入接口視圖 |
interface interface-type interface-number |
- |
配置競選DR的優先級 |
pim ipv6 hello-option dr-priority priority |
可選 缺省情況下,競選DR的優先級為1 |
配置保持IPv6 PIM鄰居可達狀態的時間 |
pim ipv6 hello-option holdtime interval |
可選 缺省情況下,保持IPv6 PIM鄰居可達狀態的時間為105秒 |
配置發送剪枝報文的延遲時間 |
pim ipv6 hello-option lan-delay interval |
可選 缺省情況下,發送剪枝報文的延遲時間為500毫秒 |
配置剪枝否決時間 |
pim ipv6 hello-option override-interval interval |
可選 缺省情況下,剪枝否決時間為2500毫秒 |
禁止加入報文抑製能力 |
pim ipv6 hello-option neighbor-tracking |
必選 缺省情況下,加入報文抑製能力處於使能狀態 |
配置不接受無Generation ID的Hello報文 |
pim ipv6 require-genid |
必選 缺省情況下,接受無Generation ID的Hello報文 |
剪枝延遲時間(Prune Delay)的作用是使共享網段中的上遊路由器在收到下遊路由器發來的剪枝報文後不會立即執行剪枝動作,而將當前的轉發狀態繼續保持Prune Delay時間:如果在該時間內收到了下遊路由器發來的加入報文,則否決這個剪枝動作;否則,便執行這個執行剪枝動作。
表1-32 配置剪枝延遲時間
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入IPv6 PIM視圖 |
pim ipv6 |
- |
配置剪枝延遲時間 |
prune delay interval |
可選 缺省情況下,剪枝延遲時間等於剪枝未決時間(Prune Pending Timer,缺省為3秒) |
IPv6 PIM路由器通過周期性地發送Hello報文,以發現IPv6 PIM鄰居,並維護各路由器之間的IPv6 PIM鄰居關係。
為了避免多個IPv6 PIM路由器同時發送Hello報文而導致衝突,當IPv6 PIM路由器在收到Hello報文時,將延遲一段時間後再發送Hello報文,該時間值為小於“觸發Hello報文的最大延遲時間”的一個隨機值。
IPv6 PIM路由器通過周期性地向其上遊路由器發送加入/剪枝報文以更新狀態,在該報文中攜帶有保持時間,上遊路由器為被剪枝的下遊接口設置保持加入/剪枝狀態定時器。
在斷言中落選的路由器將會剪掉其下遊的轉發接口,並把這種斷言狀態保持一段時間。超時後,落選的路由器會重新恢複轉發IPv6組播數據。
當路由器沒有收到來自IPv6組播源S的後續IPv6組播數據時,不會立即刪除(S,G)表項,而是將其維持一段時間後再刪除,這段時間就稱為IPv6組播源的生存時間。
表1-33 全局配置IPv6 PIM公共定時器
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入IPv6 PIM視圖 |
pim ipv6 |
- |
配置發送Hello報文的時間間隔 |
timer hello interval |
可選 缺省情況下,發送Hello報文的時間間隔為30秒 |
配置發送加入/剪枝報文的時間間隔 |
timer join-prune interval |
可選 缺省情況下,發送加入/剪枝報文的時間間隔為60秒 |
配置保持加入/剪枝狀態的時間 |
holdtime join-prune interval |
可選 缺省情況下,保持加入/剪枝狀態的時間為210秒 |
配置保持斷言狀態的時間 |
holdtime assert interval |
可選 缺省情況下,保持斷言狀態的時間為180秒 |
配置IPv6組播源生存時間 |
source-lifetime interval |
可選 缺省情況下,IPv6組播源的生存時間為210秒 |
表1-34 在接口上配置IPv6 PIM公共定時器
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入接口視圖 |
interface interface-type interface-number |
- |
配置發送Hello報文的時間間隔 |
pim ipv6 timer hello interval |
可選 缺省情況下,發送Hello報文的時間間隔為30秒 |
配置觸發Hello報文的最大延遲時間 |
pim ipv6 triggered-hello-delay interval |
可選 缺省情況下,觸發Hello報文的最大延遲時間為5秒 |
配置發送加入/剪枝報文的時間間隔 |
pim ipv6 timer join-prune interval |
可選 缺省情況下,發送加入/剪枝報文的時間間隔為60秒 |
配置保持加入/剪枝狀態的時間 |
pim ipv6 holdtime join-prune interval |
可選 缺省情況下,保持加入/剪枝狀態的時間為210秒 |
配置保持斷言狀態的時間 |
pim ipv6 holdtime assert interval |
可選 缺省情況下,保持斷言狀態的時間為180秒 |
如果網絡沒有特殊要求,建議采用缺省值。
如果加入/剪枝報文的尺寸較大,則丟失一個報文將導致較多信息的遺失;如果加入/剪枝報文的尺寸較小,則單個報文的丟失所產生的影響也將降低。
通過控製加入/剪枝報文中(S,G)表項的數目,可以有效減少單位時間內發送的(S,G)表項數量。
表1-35 配置加入/剪枝報文規格
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入IPv6 PIM視圖 |
pim ipv6 |
- |
配置加入/剪枝報文的最大長度 |
jp-pkt-size packet-size |
可選 缺省情況下,加入/剪枝報文的最大長度為8100字節 |
配置加入/剪枝報文中(S,G)表項的最大數量 |
jp-queue-size queue-size |
可選 缺省情況下,加入/剪枝報文中(S,G)表項的最大數量為1020個 |
IPv6 PIM借助Hello報文在共享網段中選舉出DR,使其成為該網段中IPv6組播數據的唯一轉發者。當DR出現故障時,隻有待其老化後才會觸發新的DR選舉過程,這個過程通常比較長。為了實現DR的快速切換,可以在共享網段的IPv6 PIM鄰居之間引入BFD機製進行鏈路狀態的快速檢測。通過在共享網段內的所有IPv6 PIM路由器上都使能IPv6 PIM與BFD聯動功能,可以使這些IPv6 PIM鄰居快速感知DR故障並重新選舉DR。
表1-36 配置IPv6 PIM與BFD聯動
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入接口視圖 |
interface interface-type interface-number |
- |
使能IPv6 PIM BFD功能 |
pim ipv6 bfd enable |
必選 缺省情況下,IPv6 PIM BFD功能處於關閉狀態 |
· 隻有在接口上先使能了IPv6 PIM-DM或IPv6 PIM-SM,本配置才能生效。
· 有關BFD的詳細介紹,請參見“可靠性配置指導”中的“BFD”。
在完成上述配置後,在任意視圖下執行display命令可以顯示配置後IPv6 PIM的運行情況,通過查看顯示信息驗證配置的效果。
在用戶視圖下執行reset命令可以清除IPv6 PIM統計信息。
表1-37 IPv6 PIM顯示和維護
操作 |
命令 |
查看IPv6 PIM-SM域中的BSR信息,以及本地配置並生效的C-RP信息 |
display pim ipv6 bsr-info [ | { begin | exclude | include } regular-expression ] |
查看IPv6 PIM所使用的IPv6單播路由信息 |
display pim ipv6 claimed-route [ ipv6-source-address ] [ | { begin | exclude | include } regular-expression ] |
查看IPv6 PIM控製報文的數量 |
display pim ipv6 control-message counters [ message-type { probe | register | register-stop } | [ interface interface-type interface-number | message-type { assert | bsr | crp | graft | graft-ack | hello | join-prune | state-refresh } ] * ] [ | { begin | exclude | include } regular-expression ] |
查看尚未被確認的IPv6 PIM-DM嫁接信息 |
display pim ipv6 grafts [ | { begin | exclude | include } regular-expression ] |
查看接口上的IPv6 PIM信息 |
display pim ipv6 interface [ interface-type interface-number ] [ verbose ] [ | { begin | exclude | include } regular-expression ] |
查看待發送的加入/剪枝報文信息 |
display pim ipv6 join-prune mode { sm [ flags flag-value ] | ssm } [ interface interface-type interface-number | neighbor ipv6-neighbor-address ] * [ verbose ] [ | { begin | exclude | include } regular-expression ] |
查看IPv6 PIM鄰居信息 |
display pim ipv6 neighbor [ interface interface-type interface-number | ipv6-neighbor-address | verbose ] * [ | { begin | exclude | include } regular-expression ] |
查看IPv6 PIM路由表的內容 |
display pim ipv6 routing-table [ ipv6-group-address [ prefix-length ] | ipv6-source-address [ prefix-length ] | incoming-interface [ interface-type interface-number | register ] | outgoing-interface { include | exclude | match } { interface-type interface-number | register } | mode mode-type | flags flag-value | fsm ] * [ | { begin | exclude | include } regular-expression ] |
查看RP的信息 |
display pim ipv6 rp-info [ ipv6-group-address ] [ | { begin | exclude | include } regular-expression ] |
重置IPv6 PIM控製報文計數器 |
reset pim ipv6 control-message counters [ interface interface-type interface-number ] |
缺省情況下,以太網接口、VLAN接口及聚合接口處於DOWN狀態。如果要對這些接口進行配置,請先使用undo shutdown命令使接口狀態處於UP狀態。
· 接收者通過組播方式接收視頻點播信息,不同組織的接收者群體組成末梢網絡,每個末梢網絡中都存在至少一個接收者,整個IPv6 PIM域采用DM方式。
· Host A和Host C為兩個末梢網絡中的IPv6組播信息接收者;Switch D通過Vlan-interface300接口與IPv6組播源(Source)所在的網絡連接;Switch A通過Vlan-interface100接口連接末梢網絡N1,通過Vlan-interface103接口連接Switch D;Switch B和Switch C通過各自的Vlan-interface200接口連接末梢網絡N2,分別通過Vlan-interface101和Vlan-interface102接口連接Switch D。
· Switch A與末梢網絡N1之間運行MLDv1;Switch B和Switch C與末梢網絡N2之間也運行MLDv1。
圖1-10 IPv6 PIM-DM典型配置組網圖
設備 |
接口 |
IPv6地址 |
設備 |
接口 |
IPv6地址 |
Switch A |
Vlan-int100 |
1001::1/64 |
Switch D |
Vlan-int300 |
4001::1/64 |
|
Vlan-int103 |
1002::1/64 |
|
Vlan-int103 |
1002::2/64 |
Switch B |
Vlan-int200 |
2001::1/64 |
|
Vlan-int101 |
2002::2/64 |
|
Vlan-int101 |
2002::1/64 |
|
Vlan-int102 |
3001::2/64 |
Switch C |
Vlan-int200 |
2001::2/64 |
|
|
|
|
Vlan-int102 |
3001::1/64 |
|
|
|
使能IPv6轉發功能,並配置IPv6地址和IPv6單播路由協議
使能各交換機的IPv6轉發功能,並按照圖1-10配置各接口的IPv6地址和前綴長度,具體配置過程略。
配置IPv6 PIM-DM域內的各交換機之間采用OSPFv3協議進行互連,確保IPv6 PIM-DM域內部在網絡層互通,並且各交換機之間能夠借助IPv6單播路由協議實現動態路由更新,具體配置過程略。
使能IPv6組播路由,並使能IPv6 PIM-DM和MLD
# 在Switch A上使能IPv6組播路由,在各接口上使能IPv6 PIM-DM,並在其連接末梢網絡的接口Vlan-interface100上使能MLD。
<SwitchA> system-view
[SwitchA] multicast ipv6 routing-enable
[SwitchA] interface vlan-interface 100
[SwitchA-Vlan-interface100] mld enable
[SwitchA-Vlan-interface100] pim ipv6 dm
[SwitchA-Vlan-interface100] quit
[SwitchA] interface vlan-interface 103
[SwitchA-Vlan-interface103] pim ipv6 dm
[SwitchA-Vlan-interface103] quit
Switch B和Switch C的配置與Switch A相似,配置過程略。
# 在Switch D上使能IPv6組播路由,並在各接口上使能IPv6 PIM-DM。
<SwitchD> system-view
[SwitchD] multicast ipv6 routing-enable
[SwitchD] interface vlan-interface 300
[SwitchD-Vlan-interface300] pim ipv6 dm
[SwitchD-Vlan-interface300] quit
[SwitchD] interface vlan-interface 103
[SwitchD-Vlan-interface103] pim ipv6 dm
[SwitchD-Vlan-interface103] quit
[SwitchD] interface vlan-interface 101
[SwitchD-Vlan-interface101] pim ipv6 dm
[SwitchD-Vlan-interface101] quit
[SwitchD] interface vlan-interface 102
[SwitchD-Vlan-interface102] pim ipv6 dm
[SwitchD-Vlan-interface102] quit
通過使用display pim ipv6 interface命令可以查看交換機接口上IPv6 PIM的配置和運行情況。例如:
# 查看Switch D上IPv6 PIM的配置信息。
[SwitchD] display pim ipv6 interface
Interface NbrCnt HelloInt DR-Pri DR-Address
Vlan300 0 30 1 4001::1
(local)
Vlan103 0 30 1 1002::2
(local)
Vlan101 1 30 1 2002::2
(local)
Vlan102 1 30 1 3001::2
(local)
通過使用display pim ipv6 neighbor命令可以查看交換機之間的IPv6 PIM鄰居關係。例如:
# 查看Switch D上IPv6 PIM的鄰居關係信息。
[SwitchD] display pim ipv6 neighbor
Total Number of Neighbors = 3
Neighbor Interface Uptime Expires Dr-Priority
1002::1 Vlan103 00:04:00 00:01:29 1
2002::1 Vlan101 00:04:16 00:01:29 3
3001::1 Vlan102 00:03:54 00:01:17 5
假如Host A需要接收IPv6組播組G(FF0E::101)的信息,當IPv6組播源S(4001::100/64)向IPv6組播組G發送IPv6組播數據時,通過擴散生成SPT,SPT路徑中各交換機(Switch A和Switch D)上都存在(S,G)表項,Host A向Switch A發送MLD報告以加入IPv6組播組G,在Switch A上生成(*,G)表項。通過使用display pim ipv6 routing-table命令可以查看交換機的IPv6 PIM路由表信息。例如:
# 查看Switch A上的IPv6 PIM路由表信息。
[SwitchA] display pim ipv6 routing-table
Total 1 (*, G) entry; 1 (S, G) entry
(*, FF0E::101)
Protocol: pim-dm, Flag: WC
UpTime: 00:01:24
Upstream interface: NULL
Upstream neighbor: NULL
RPF prime neighbor: NULL
Downstream interface(s) information:
Total number of downstreams: 1
1: Vlan-interface100
Protocol: mld, UpTime: 00:01:20, Expires: never
(4001::100, FF0E::101)
Protocol: pim-dm, Flag: ACT
UpTime: 00:01:20
Upstream interface: Vlan-interface103
Upstream neighbor: 1002::2
RPF prime neighbor: 1002::2
Downstream interface(s) information:
Total number of downstreams: 1
1: Vlan-interface100
Protocol: pim-dm, UpTime: 00:01:20, Expires: never
# 查看Switch D上的IPv6 PIM路由表信息。
[SwitchD] display pim ipv6 routing-table
Total 0 (*, G) entry; 1 (S, G) entry
(4001::100, FF0E::101)
Protocol: pim-dm, Flag: LOC ACT
UpTime: 00:02:19
Upstream interface: Vlan-interface300
Upstream neighbor: NULL
RPF prime neighbor: NULL
Downstream interface(s) information:
Total number of downstreams: 2
1: Vlan-interface103
Protocol: pim-dm, UpTime: 00:02:19, Expires: never
2: Vlan-interface102
Protocol: pim-dm, UpTime: 00:02:19, Expires: never
· 接收者通過組播方式接收視頻點播信息,不同組織的接收者群體組成末梢網絡,每個末梢網絡中都存在至少一個接收者,整個IPv6 PIM域采用SM方式。
· Host A和Host C為兩個末梢網絡中的IPv6組播信息接收者;Switch D通過Vlan-interface300接口與IPv6組播源(Source)所在網絡連接;Switch A通過Vlan-interface100接口連接末梢網絡N1,通過Vlan-interface101接口和Vlan-interface102接口分別連接Switch D和Switch E;Switch B和Switch C通過各自的Vlan-interface200接口連接末梢網絡N2,分別通過Vlan-interface103和Vlan-interface104接口連接Switch E。
· 將Switch D的Vlan-interface105接口和Switch E的Vlan-interface102都配置為C-BSR和C-RP,其中Switch E上C-BSR的優先級較高。C-RP所服務的IPv6組播組範圍為FF0E::101/64,通過改變哈希掩碼長度使此範圍內的IPv6組地址間隔映射到這兩個C-RP上。
· Switch A與末梢網絡N1之間運行MLDv1;Switch B和Switch C與末梢網絡N2之間也運行MLDv1。
圖1-11 IPv6 PIM-SM非管理域典型配置組網圖
設備 |
接口 |
IPv6地址 |
設備 |
接口 |
IPv6地址 |
Switch A |
Vlan-int100 |
1001::1/64 |
Switch D |
Vlan-int300 |
4001::1/64 |
|
Vlan-int101 |
1002::1/64 |
|
Vlan-int101 |
1002::2/64 |
|
Vlan-int102 |
1003::1/64 |
|
Vlan-int105 |
4002::1/64 |
Switch B |
Vlan-int200 |
2001::1/64 |
Switch E |
Vlan-int104 |
3001::2/64 |
|
Vlan-int103 |
2002::1/64 |
|
Vlan-int103 |
2002::2/64 |
Switch C |
Vlan-int200 |
2001::2/64 |
|
Vlan-int102 |
1003::2/64 |
|
Vlan-int104 |
3001::1/64 |
|
Vlan-int105 |
4002::2/64 |
表1-1 使能IPv6轉發功能,並配置IPv6地址和IPv6單播路由協議
使能各交換機的IPv6轉發功能,並按照圖1-11配置各接口的IPv6地址和前綴長度,具體配置過程略。
配置IPv6 PIM-SM域內的各交換機之間采用OSPFv3協議進行互連,確保IPv6 PIM-SM域內部在網絡層互通,並且各交換機之間能夠借助IPv6單播路由協議實現動態路由更新,具體配置過程略。
使能IPv6組播路由,並使能IPv6 PIM-SM和MLD
# 在Switch A上使能IPv6組播路由,在各接口上使能IPv6 PIM-SM,並在其連接末梢網絡的接口Vlan-interface300上使能MLD。
<SwitchA> system-view
[SwitchA] multicast ipv6 routing-enable
[SwitchA] interface vlan-interface 100
[SwitchA-Vlan-interface100] mld enable
[SwitchA-Vlan-interface100] pim ipv6 sm
[SwitchA-Vlan-interface100] quit
[SwitchA] interface vlan-interface 101
[SwitchA-Vlan-interface101] pim ipv6 sm
[SwitchA-Vlan-interface101] quit
[SwitchA] interface vlan-interface 102
[SwitchA-Vlan-interface102] pim ipv6 sm
[SwitchA-Vlan-interface102] quit
Switch B和Switch C的配置與Switch A相似,Switch D和Switch E除了不需要在相應接口上使能MLD外,其它的配置也與Switch A相似,配置過程略。
配置C-BSR和C-RP
# 在Switch D上配置RP通告的服務範圍,以及C-BSR和C-RP的位置,並指定哈希掩碼長度為128,C-BSR的優先級為10。
<SwitchD> system-view
[SwitchD] acl ipv6 number 2005
[SwitchD-acl6-basic-2005] rule permit source ff0e::101 64
[SwitchD-acl6-basic-2005] quit
[SwitchD] pim ipv6
[SwitchD-pim6] c-bsr 4002::1 128 10
[SwitchD-pim6] c-rp 4002::1 group-policy 2005
[SwitchD-pim6] quit
# 在Switch E上配置RP通告的服務範圍,以及C-BSR和C-RP的位置,並指定哈希掩碼長度為128,C-BSR的優先級為20。
<SwitchE> system-view
[SwitchE] acl ipv6 number 2005
[SwitchE-acl6-basic-2005] rule permit source ff0e::101 64
[SwitchE-acl6-basic-2005] quit
[SwitchE] pim ipv6
[SwitchE-pim6] c-bsr 1003::2 128 20
[SwitchE-pim6] c-rp 1003::2 group-policy 2005
[SwitchE-pim6] quit
通過使用display pim ipv6 interface命令可以查看交換機接口上IPv6 PIM的配置和運行情況。例如:
# 查看Switch A上IPv6 PIM的配置信息。
[SwitchA] display pim ipv6 interface
Interface NbrCnt HelloInt DR-Pri DR-Address
Vlan100 0 30 1 1001::1
(local)
Vlan101 1 30 1 1002::2
Vlan102 1 30 1 1003::2
通過使用display pim ipv6 bsr-info命令可以查看交換機上BSR選舉的信息,以及本地配置並生效的C-RP信息。例如:
# 查看Switch A上的BSR信息,以及本地配置並生效的C-RP信息。
[SwitchA] display pim ipv6 bsr-info
Elected BSR Address: 1003::2
Priority: 20
Hash mask length: 128
State: Accept Preferred
Uptime: 00:04:22
Expires: 00:01:46
# 查看Switch D上的BSR信息,以及本地配置並生效的C-RP信息。
[SwitchD] display pim ipv6 bsr-info
Elected BSR Address: 1003::2
Priority: 20
Hash mask length: 128
State: Elected
Uptime: 00:05:26
Expires: 00:01:45
Candidate BSR Address: 4002::1
Priority: 10
Hash mask length: 128
State: Candidate
Candidate RP: 4002::1(Vlan-interface105)
Priority: 192
HoldTime: 130
Advertisement Interval: 60
Next advertisement scheduled at: 00:00:48
# 查看Switch E上的BSR信息,以及本地配置並生效的C-RP信息。
[SwitchE] display pim ipv6 bsr-info
Elected BSR Address: 1003::2
Priority: 20
Hash mask length: 128
State: Elected
Uptime: 00:01:10
Next BSR message scheduled at: 00:01:48
Candidate BSR Address: 1003::2
Priority: 20
Hash mask length: 128
State: Elected
Candidate RP: 1003::2(Vlan-interface102)
Priority: 192
HoldTime: 130
Advertisement Interval: 60
Next advertisement scheduled at: 00:00:48
通過使用display pim ipv6 rp-info命令可以查看交換機上獲取的RP信息。例如:
# 查看Switch A上的RP信息。
[SwitchA] display pim ipv6 rp-info
PIM-SM BSR RP information:
prefix/prefix length: FF0E::101/64
RP: 4002::1
Priority: 192
HoldTime: 130
Uptime: 00:05:19
Expires: 00:02:11
RP: 1003::2
Priority: 192
HoldTime: 130
Uptime: 00:05:19
Expires: 00:02:11
假如Host A需要接收IPv6組播組G(FF0E::100)的信息,由於根據哈希算法得出G對應的RP為Router E,因此Switch A和Switch E之間會生成RPT。當IPv6組播源S(4001::100/64)向RP發起注冊後,Switch D和Switch E之間會生成SPT。當Switch A收到IPv6組播數據後立即執行從RPT到SPT的切換。RPT路徑中的交換機(Switch A和Switch E)上存在(*,G)表項,而SPT路徑中的交換機(Switch A和Switch D)上存在(S,G)表項,通過使用display pim ipv6 routing-table命令可以查看交換機的IPv6 PIM路由表信息。例如:
# 查看Switch A上的IPv6 PIM路由表信息。
[SwitchA] display pim ipv6 routing-table
Total 1 (*, G) entry; 1 (S, G) entry
(*, FF0E::100)
RP: 1003::2
Protocol: pim-sm, Flag: WC
UpTime: 00:03:45
Upstream interface: Vlan-interface102
Upstream neighbor: 1003::2
RPF prime neighbor: 1003::2
Downstream interface(s) information:
Total number of downstreams: 1
1: Vlan-interface100
Protocol: mld, UpTime: 00:02:15, Expires: 00:03:06
(4001::100, FF0E::100)
RP: 1003::2
Protocol: pim-sm, Flag: SPT ACT
UpTime: 00:02:15
Upstream interface: Vlan-interface101
Upstream neighbor: 1002::2
RPF prime neighbor: 1002::2
Downstream interface(s) information:
Total number of downstreams: 1
1: Vlan-interface100
Protocol: pim-sm, UpTime: 00:02:15, Expires: 00:03:06
# 查看Switch D上的IPv6 PIM路由表信息。
[SwitchD] display pim ipv6 routing-table
Total 0 (*, G) entry; 1 (S, G) entry
(4001::100, FF0E::100)
RP: 1003::2
Protocol: pim-sm, Flag: SPT LOC ACT
UpTime: 00:14:44
Upstream interface: Vlan-interface300
Upstream neighbor: NULL
RPF prime neighbor: NULL
Downstream interface(s) information:
Total number of downstreams: 1
1: Vlan-interface105
Protocol: mld, UpTime: 00:14:44, Expires: 00:02:26
# 查看Switch E上的IPv6 PIM路由表信息。
[SwitchE] display pim ipv6 routing-table
Total 1 (*, G) entry; 0 (S, G) entry
(*, FF0E::100)
RP: 1003::2 (local)
Protocol: pim-sm, Flag: WC
UpTime: 00:16:56
Upstream interface: Register
Upstream neighbor: 4002::1
RPF prime neighbor: 4002::1
Downstream interface(s) information:
Total number of downstreams: 1
1: Vlan-interface102
Protocol: pim-sm, UpTime: 00:16:56, Expires: 00:02:34
· 接收者通過組播方式接收視頻點播信息,整個IPv6 PIM域采用SM管理域方式,劃分為IPv6管理域1(Scope值為4)、IPv6管理域2(Scope值為4)和IPv6 Global域,Switch B、Switch C和Switch D為各IPv6管理域的ZBR。
· Source 1和Source 2分別向IPv6組播組FF14::101發送內容不同的IPv6組播信息,Host A和Host B則分別隻接收來自Source 1和Source 2的IPv6組播信息;Source 3向IPv6組播組FF1E::202發送IPv6組播信息,Host C為其接收者。
· Switch B的Vlan-interface101接口為IPv6管理域1的C-BSR和C-RP,服務於Scope值為4的IPv6組播組;Switch D的Vlan-interface104接口為IPv6管理域2的C-BSR和C-RP,服務於Scope值為4的IPv6組播組;Switch F的Vlan-interface109接口為IPv6 Global域的C-BSR和C-RP,服務於Scope值為14的IPv6組播組。
· Switch A、Switch E和Switch I分別與各自所連接的接收者之間運行MLDv1。
圖1-12 IPv6 PIM-SM管理域配置組網圖
設備 |
接口 |
IPv6地址 |
設備 |
接口 |
IPv6地址 |
Switch A |
Vlan-int100 |
1001::1/64 |
Switch D |
Vlan-int104 |
3002::2/64 |
|
Vlan-int101 |
1002::1/64 |
|
Vlan-int108 |
6001::1/64 |
Switch B |
Vlan-int200 |
2001::1/64 |
|
Vlan-int107 |
6002::1/64 |
|
Vlan-int101 |
1002::2/64 |
Switch E |
Vlan-int400 |
7001::1/64 |
|
Vlan-int103 |
2002::1/64 |
|
Vlan-int105 |
3003::2/64 |
|
Vlan-int102 |
2003::1/64 |
|
Vlan-int108 |
6001::2/64 |
Switch C |
Vlan-int300 |
3001::1/64 |
Switch F |
Vlan-int109 |
8001::1/64 |
|
Vlan-int104 |
3002::1/64 |
|
Vlan-int107 |
6002::2/64 |
|
Vlan-int105 |
3003::1/64 |
|
Vlan-int102 |
2003::2/64 |
|
Vlan-int103 |
2002::2/64 |
Switch G |
Vlan-int500 |
9001::1/64 |
|
Vlan-int106 |
3004::1/64 |
|
Vlan-int109 |
8001::2/64 |
Switch H |
Vlan-int110 |
4001::1/64 |
Source 1 |
- |
2001::100/64 |
|
Vlan-int106 |
3004::2/64 |
Source 2 |
- |
3001::100/64 |
Switch I |
Vlan-int600 |
5001::1/64 |
Source 3 |
- |
9001::100/64 |
|
Vlan-int110 |
4001::2/64 |
|
|
|
配置IPv6地址和IPv6單播路由協議
使能各交換機的IPv6轉發功能,請按照圖1-12配置各接口的IPv6地址和前綴長度,具體配置過程略。
配置IPv6 PIM-SM域內的各交換機之間采用OSPFv3協議進行互連,確保IPv6 PIM-SM域內部在網絡層互通,並且各交換機之間能夠借助IPv6單播路由協議實現動態路由更新,具體配置過程略。
使能IPv6組播路由和IPv6管理域機製,並使能IPv6 PIM-SM和MLD
# 在Switch A上使能IPv6組播路由和IPv6管理域機製,在各接口上使能IPv6 PIM-SM,並在其連接有接收者的接口Vlan-interface100上使能MLD。
<SwitchA> system-view
[SwitchA] multicast ipv6 routing-enable
[SwitchA] pim ipv6
[SwitchA-pim6] c-bsr admin-scope
[SwitchA-pim6] quit
[SwitchA] interface vlan-interface 100
[SwitchA-Vlan-interface100] mld enable
[SwitchA-Vlan-interface100] pim ipv6 sm
[SwitchA-Vlan-interface100] quit
[SwitchA] interface vlan-interface 101
[SwitchA-Vlan-interface101] pim ipv6 sm
[SwitchA-Vlan-interface101] quit
Switch E和Switch I的配置與Switch A相似,配置過程略。
# 在Switch B上使能IPv6組播路由和IPv6管理域機製,並在各接口上使能IPv6 PIM-SM。
<SwitchB> system-view
[SwitchB] multicast ipv6 routing-enable
[SwitchB] pim ipv6
[SwitchB-pim6] c-bsr admin-scope
[SwitchB-pim6] quit
[SwitchB] interface vlan-interface 200
[SwitchB-Vlan-interface200] pim ipv6 sm
[SwitchB-Vlan-interface200] quit
[SwitchB] interface vlan-interface 101
[SwitchB-Vlan-interface101] pim ipv6 sm
[SwitchB-Vlan-interface101] quit
[SwitchB] interface vlan-interface 102
[SwitchB-Vlan-interface102] pim ipv6 sm
[SwitchB-Vlan-interface102] quit
[SwitchB] interface vlan-interface 103
[SwitchB-Vlan-interface103] pim ipv6 sm
[SwitchB-Vlan-interface103] quit
Switch C、Switch D、Switch F、Switch G和Switch H的配置與Switch B相似,配置過程略。
配置IPv6管理域邊界
# 在Switch B上將接口Vlan-interface102和Vlan-interface103配置為IPv6管理域1的邊界。
[SwitchB] interface vlan-interface 102
[SwitchB-Vlan-interface102] multicast ipv6 boundary scope 4
[SwitchB-Vlan-interface102] quit
[SwitchB] interface vlan-interface 103
[SwitchB-Vlan-interface103] multicast ipv6 boundary scope 4
[SwitchB-Vlan-interface103] quit
# 在Switch C上將接口Vlan-interface103和Vlan-interface106配置為IPv6管理域2的邊界。
<SwitchC> system-view
[SwitchC] interface vlan-interface 103
[SwitchC-Vlan-interface103] multicast ipv6 boundary scope 4
[SwitchC-Vlan-interface103] quit
[SwitchC] interface vlan-interface 106
[SwitchC-Vlan-interface106] multicast ipv6 boundary scope 4
[SwitchC-Vlan-interface106] quit
# 在Switch D上將接口Vlan-interface107配置為IPv6管理域2的邊界。
<SwitchD> system-view
[SwitchD] interface vlan-interface 107
[SwitchD-Vlan-interface107] multicast ipv6 boundary scope 4
[SwitchD-Vlan-interface107] quit
配置C-BSR和C-RP
# 在Switch B上配置RP通告的服務範圍,並將接口Vlan-interface101配置為IPv6管理域1的C-BSR和C-RP。
[SwitchB] pim ipv6
[SwitchB-pim6] c-bsr scope 4
[SwitchB-pim6] c-bsr 1002::2
[SwitchB-pim6] c-rp 1002::2 scope 4
[SwitchB-pim6] quit
# 在Switch D上配置RP通告的服務範圍,並將接口Vlan-interface104配置為IPv6管理域2的C-BSR和C-RP。
[SwitchD] pim ipv6
[SwitchD-pim6] c-bsr scope 4
[SwitchD-pim6] c-bsr 3002::2
[SwitchD-pim6] c-rp 3002::2 scope 4
[SwitchD-pim6] quit
# 在Switch F上將接口Vlan-interface109配置為IPv6 Global域的C-BSR和C-RP。
<SwitchF> system-view
[SwitchF] pim ipv6
[SwitchF-pim6] c-bsr scope global
[SwitchF-pim6] c-bsr 8001::1
[SwitchF-pim6] c-rp 8001::1
[SwitchF-pim6] quit
通過使用display pim ipv6 bsr-info命令可以查看交換機上BSR選舉的信息,以及本地配置並生效的C-RP信息。例如:
# 查看Switch B上的BSR信息,以及本地配置並生效的C-RP信息。
[SwitchB] display pim ipv6 bsr-info
Elected BSR Address: 8001::1
Priority: 64
Hash mask length: 126
State: Accept Preferred
Scope: 14
Uptime: 00:01:45
Expires: 00:01:25
Elected BSR Address: 1002::2
Priority: 64
Hash mask length: 126
State: Elected
Scope: 4
Uptime: 00:04:54
Next BSR message scheduled at: 00:00:06
Candidate BSR Address: 1002::2
Priority: 64
Hash mask length: 126
State: Elected
Scope: 4
Candidate RP: 1002::2(Vlan-interface101)
Priority: 192
HoldTime: 130
Advertisement Interval: 60
Next advertisement scheduled at: 00:00:15
# 查看Switch D上的BSR信息,以及本地配置並生效的C-RP信息。
[SwitchD] display pim ipv6 bsr-info
Elected BSR Address: 8001::1
Priority: 64
Hash mask length: 126
State: Accept Preferred
Scope: 14
Uptime: 00:01:45
Expires: 00:01:25
Elected BSR Address: 3002::2
Priority: 64
Hash mask length: 126
State: Elected
Scope: 4
Uptime: 00:03:48
Next BSR message scheduled at: 00:01:12
Candidate BSR Address: 3002::2
Priority: 64
Hash mask length: 126
State: Elected
Scope: 4
Candidate RP: 3002::2(Vlan-interface104)
Priority: 192
HoldTime: 130
Advertisement Interval: 60
Next advertisement scheduled at: 00:00:10
# 查看Switch F上的BSR信息,以及本地配置並生效的C-RP信息。
[SwitchF] display pim ipv6 bsr-info
Elected BSR Address: 8001::1
Priority: 64
Hash mask length: 126
State: Elected
Scope: 14
Uptime: 00:01:11
Next BSR message scheduled at: 00:00:49
Candidate BSR Address: 8001::1
Priority: 64
Hash mask length: 126
State: Elected
Scope: 14
Candidate RP: 8001::1(Vlan-interface109)
Priority: 192
HoldTime: 130
Advertisement Interval: 60
Next advertisement scheduled at: 00:00:55
通過使用display pim ipv6 rp-info命令可以查看交換機上獲取的RP信息。例如:
# 查看Switch B上的RP信息。
[SwitchB] display pim ipv6 rp-info
PIM-SM BSR RP information:
prefix/prefix length: FF0E::/16
RP: 8001::1
Priority: 192
HoldTime: 130
Uptime: 00:03:39
Expires: 00:01:51
prefix/prefix length: FF1E::/16
RP: 8001::1
Priority: 192
HoldTime: 130
Uptime: 00:03:39
Expires: 00:01:51
prefix/prefix length: FF2E::/16
RP: 8001::1
Priority: 192
HoldTime: 130
Uptime: 00:03:39
Expires: 00:01:51
prefix/prefix length: FF3E::/16
RP: 8001::1
Priority: 192
HoldTime: 130
Uptime: 00:03:39
Expires: 00:01:51
prefix/prefix length: FF4E::/16
RP: 8001::1
Priority: 192
HoldTime: 130
Uptime: 00:03:39
Expires: 00:01:51
prefix/prefix length: FF5E::/16
RP: 8001::1
Priority: 192
HoldTime: 130
Uptime: 00:03:39
Expires: 00:01:51
prefix/prefix length: FF6E::/16
RP: 8001::1
Priority: 192
HoldTime: 130
Uptime: 00:03:39
Expires: 00:01:51
prefix/prefix length: FF7E::/16
RP: 8001::1
Priority: 192
HoldTime: 130
Uptime: 00:03:39
Expires: 00:01:51
prefix/prefix length: FF8E::/16
RP: 8001::1
Priority: 192
HoldTime: 130
Uptime: 00:03:39
Expires: 00:01:51
prefix/prefix length: FF9E::/16
RP: 8001::1
Priority: 192
HoldTime: 130
Uptime: 00:03:39
Expires: 00:01:51
prefix/prefix length: FFAE::/16
RP: 8001::1
Priority: 192
HoldTime: 130
Uptime: 00:03:39
Expires: 00:01:51
prefix/prefix length: FFBE::/16
RP: 8001::1
Priority: 192
HoldTime: 130
Uptime: 00:03:39
Expires: 00:01:51
prefix/prefix length: FFCE::/16
RP: 8001::1
Priority: 192
HoldTime: 130
Uptime: 00:03:39
Expires: 00:01:51
prefix/prefix length: FFDE::/16
RP: 8001::1
Priority: 192
HoldTime: 130
Uptime: 00:03:39
Expires: 00:01:51
prefix/prefix length: FFEE::/16
RP: 8001::1
Priority: 192
HoldTime: 130
Uptime: 00:03:39
Expires: 00:01:51
prefix/prefix length: FFFE::/16
RP: 8001::1
Priority: 192
HoldTime: 130
Uptime: 00:03:39
Expires: 00:01:51
prefix/prefix length: FF04::/16
RP: 1002::2
Priority: 192
HoldTime: 130
Uptime: 00:03:39
Expires: 00:01:51
prefix/prefix length: FF14::/16
RP: 1002::2
Priority: 192
HoldTime: 130
Uptime: 00:03:39
Expires: 00:01:51
prefix/prefix length: FF24::/16
RP: 1002::2
Priority: 192
HoldTime: 130
Uptime: 00:03:39
Expires: 00:01:51
prefix/prefix length: FF34::/16
RP: 1002::2
Priority: 192
HoldTime: 130
Uptime: 00:03:39
Expires: 00:01:51
prefix/prefix length: FF44::/16
RP: 1002::2
Priority: 192
HoldTime: 130
Uptime: 00:03:39
Expires: 00:01:51
prefix/prefix length: FF54::/16
RP: 1002::2
Priority: 192
HoldTime: 130
Uptime: 00:03:39
Expires: 00:01:51
prefix/prefix length: FF64::/16
RP: 1002::2
Priority: 192
HoldTime: 130
Uptime: 00:03:39
Expires: 00:01:51
prefix/prefix length: FF74::/16
RP: 1002::2
Priority: 192
HoldTime: 130
Uptime: 00:03:39
Expires: 00:01:51
prefix/prefix length: FF84::/16
RP: 1002::2
Priority: 192
HoldTime: 130
Uptime: 00:03:39
Expires: 00:01:51
prefix/prefix length: FF94::/16
RP: 1002::2
Priority: 192
HoldTime: 130
Uptime: 00:03:39
Expires: 00:01:51
prefix/prefix length: FFA4::/16
RP: 1002::2
Priority: 192
HoldTime: 130
Uptime: 00:03:39
Expires: 00:01:51
prefix/prefix length: FFB4::/16
RP: 1002::2
Priority: 192
HoldTime: 130
Uptime: 00:03:39
Expires: 00:01:51
prefix/prefix length: FFC4::/16
RP: 1002::2
Priority: 192
HoldTime: 130
Uptime: 00:03:39
Expires: 00:01:51
prefix/prefix length: FFD4::/16
RP: 1002::2
Priority: 192
HoldTime: 130
Uptime: 00:03:39
Expires: 00:01:51
prefix/prefix length: FFE4::/16
RP: 1002::2
Priority: 192
HoldTime: 130
Uptime: 00:03:39
Expires: 00:01:51
prefix/prefix length: FFF4::/16
RP: 1002::2
Priority: 192
HoldTime: 130
Uptime: 00:03:39
Expires: 00:01:51
# 查看Switch F上的RP信息。
[SwitchF] display pim rp-info
PIM-SM BSR RP information:
prefix/prefix length: FF0E::/16
RP: 8001::1
Priority: 192
HoldTime: 130
Uptime: 00:03:39
Expires: 00:01:51
prefix/prefix length: FF1E::/16
RP: 8001::1
Priority: 192
HoldTime: 130
Uptime: 00:03:39
Expires: 00:01:51
prefix/prefix length: FF2E::/16
RP: 8001::1
Priority: 192
HoldTime: 130
Uptime: 00:03:39
Expires: 00:01:51
prefix/prefix length: FF3E::/16
RP: 8001::1
Priority: 192
HoldTime: 130
Uptime: 00:03:39
Expires: 00:01:51
prefix/prefix length: FF4E::/16
RP: 8001::1
Priority: 192
HoldTime: 130
Uptime: 00:03:39
Expires: 00:01:51
prefix/prefix length: FF5E::/16
RP: 8001::1
Priority: 192
HoldTime: 130
Uptime: 00:03:39
Expires: 00:01:51
prefix/prefix length: FF6E::/16
RP: 8001::1
Priority: 192
HoldTime: 130
Uptime: 00:03:39
Expires: 00:01:51
prefix/prefix length: FF7E::/16
RP: 8001::1
Priority: 192
HoldTime: 130
Uptime: 00:03:39
Expires: 00:01:51
prefix/prefix length: FF8E::/16
RP: 8001::1
Priority: 192
HoldTime: 130
Uptime: 00:03:39
Expires: 00:01:51
prefix/prefix length: FF9E::/16
RP: 8001::1
Priority: 192
HoldTime: 130
Uptime: 00:03:39
Expires: 00:01:51
prefix/prefix length: FFAE::/16
RP: 8001::1
Priority: 192
HoldTime: 130
Uptime: 00:03:39
Expires: 00:01:51
prefix/prefix length: FFBE::/16
RP: 8001::1
Priority: 192
HoldTime: 130
Uptime: 00:03:39
Expires: 00:01:51
prefix/prefix length: FFCE::/16
RP: 8001::1
Priority: 192
HoldTime: 130
Uptime: 00:03:39
Expires: 00:01:51
prefix/prefix length: FFDE::/16
RP: 8001::1
Priority: 192
HoldTime: 130
Uptime: 00:03:39
Expires: 00:01:51
prefix/prefix length: FFEE::/16
RP: 8001::1
Priority: 192
HoldTime: 130
Uptime: 00:03:39
Expires: 00:01:51
prefix/prefix length: FFFE::/16
RP: 8001::1
Priority: 192
HoldTime: 130
Uptime: 00:03:39
Expires: 00:01:51
· 接收者通過組播方式接收視頻點播信息,不同組織的接收者群體組成末梢網絡,每個末梢網絡中都存在至少一個接收者,整個IPv6 PIM域采用SSM方式。
· Host A和Host C為兩個末梢網絡中的IPv6組播信息接收者;Switch D通過Vlan-interface300接口與IPv6組播源(Source)所在網絡連接;Switch A通過Vlan-interface100接口連接末梢網絡N1,通過Vlan-interface101接口和Vlan-interface102接口分別連接Switch D和Switch E;Switch B和Switch C通過各自的Vlan-interface200接口連接末梢網絡N2,分別通過Vlan-interface103和Vlan-interface104接口連接Switch E;Switch E連接Switch A、Switch B、Switch C和Switch D。
· SSM組播組的範圍是FF3E::/64。
· Switch A與末梢網絡N1之間運行MLDv2;Switch B和Switch C與末梢網絡N2之間也運行MLDv2。
圖1-13 IPv6 PIM-SSM典型配置組網圖
設備 |
接口 |
IPv6地址 |
設備 |
接口 |
IPv6地址 |
Switch A |
Vlan-int100 |
1001::1/64 |
Switch D |
Vlan-int300 |
4001::1/64 |
|
Vlan-int101 |
1002::1/64 |
|
Vlan-int101 |
1002::2/64 |
|
Vlan-int102 |
1003::1/64 |
|
Vlan-int105 |
4002::1/64 |
Switch B |
Vlan-int200 |
2001::1/64 |
Switch E |
Vlan-int104 |
3001::2/64 |
|
Vlan-int103 |
2002::1/64 |
|
Vlan-int103 |
2002::2/64 |
Switch C |
Vlan-int200 |
2001::2/64 |
|
Vlan-int102 |
1003::2/64 |
|
Vlan-int104 |
3001::1/64 |
|
Vlan-int105 |
4002::2/64 |
表1-1 使能IPv6轉發功能,並配置IPv6地址和IPv6單播路由協議
使能各交換機的IPv6轉發功能,並按照圖1-13配置各接口的IPv6地址和前綴長度,具體配置過程略。
配置IPv6 PIM-SSM域內的各交換機之間采用OSPFv3協議進行互連,確保IPv6 PIM-SM域內部在網絡層互通,並且各交換機之間能夠借助IPv6單播路由協議實現動態路由更新,具體配置過程略。
使能IPv6組播路由,並使能IPv6 PIM-SM和MLD
# 在Switch A上使能IPv6組播路由,在各接口上使能IPv6 PIM-SM,並在其連接末梢網絡的接口Vlan-interface100上使能MLD,且配置其版本為2。
<SwitchA> system-view
[SwitchA] multicast ipv6 routing-enable
[SwitchA] interface vlan-interface 100
[SwitchA-Vlan-interface100] mld enable
[SwitchA-Vlan-interface100] mld version 2
[SwitchA-Vlan-interface100] pim ipv6 sm
[SwitchA-Vlan-interface100] quit
[SwitchA] interface vlan-interface 101
[SwitchA-Vlan-interface101] pim ipv6 sm
[SwitchA-Vlan-interface101] quit
[SwitchA] interface vlan-interface 102
[SwitchA-Vlan-interface102] pim ipv6 sm
[SwitchA-Vlan-interface102] quit
Switch B和Switch C的配置與Switch A相似,Switch D和Switch E除了不需要在相應接口上使能MLD外,其它的配置也與Switch A相似,配置過程略。
配置IPv6 SSM組播組的地址範圍
# 在Switch A上配置IPv6 SSM組播組的地址範圍為FF3E::/64。
[SwitchA] acl ipv6 number 2000
[SwitchA-acl6-basic-2000] rule permit source ff3e:: 64
[SwitchA-acl6-basic-2000] quit
[SwitchA] pim ipv6
[SwitchA-pim6] ssm-policy 2000
[SwitchA-pim6] quit
Switch B、Switch C、Switch D和Switch E的配置與Switch A相似,配置過程略。
通過使用display pim ipv6 interface命令可以查看交換機接口上IPv6 PIM的配置和運行情況。例如:
# 查看Switch A上IPv6 PIM的配置信息。
[SwitchA] display pim ipv6 interface
Interface NbrCnt HelloInt DR-Pri DR-Address
Vlan100 0 30 1 1001::1
(local)
Vlan101 1 30 1 1002::2
Vlan102 1 30 1 1003::2
假如Host A需要接收指定IPv6組播源S(4001::100/64)發往IPv6組播組G(FF3E::101)的信息,Switch A會向IPv6組播源方向構造SPT,SPT路徑中的交換機(Switch A和Switch D)上生成(S,G)表項,而SPT路徑之外的交換機(Switch E)上沒有IPv6組播路由項,通過使用display pim ipv6 routing-table命令可以查看交換機的IPv6 PIM路由表信息。例如:
# 查看Switch A上的IPv6 PIM路由表信息。
[SwitchA] display pim ipv6 routing-table
Total 0 (*, G) entry; 1 (S, G) entry
(4001::100, FF3E::101)
Protocol: pim-ssm, Flag:
UpTime: 00:00:11
Upstream interface: Vlan-interface101
Upstream neighbor: 1002::2
RPF prime neighbor: 1002::2
Downstream interface(s) information:
Total number of downstreams: 1
1: Vlan-interface100
Protocol: mld, UpTime: 00:00:11, Expires: 00:03:25
# 查看Switch D上的IPv6 PIM路由表信息。
[SwitchD] display pim ipv6 routing-table
Total 0 (*, G) entry; 1 (S, G) entry
(4001::100, FF3E::101)
Protocol: pim-ssm, Flag: LOC
UpTime: 00:08:02
Upstream interface: Vlan-interface300
Upstream neighbor: NULL
RPF prime neighbor: NULL
Downstream interface(s) information:
Total number of downstreams: 1
1: Vlan-interface105
Protocol: pim-ssm, UpTime: 00:08:02, Expires: 00:03:25
網絡中各路由器(包括直連IPv6組播源或接收者的路由器)上都沒有IPv6組播轉發項,也就是說無法正確建立組播分發樹,客戶端無法接收IPv6組播數據。
· 無論運行哪個IPv6 PIM模式,IPv6單播路由是創建IPv6 PIM路由項的基礎。隻有單播運行順暢,組播才能運行成功。
· IPv6 PIM協議需要RPF接口支持IPv6 PIM協議。RPF鄰居也必須是IPv6 PIM鄰居。如果RPF接口或RPF鄰居沒有使能IPv6 PIM,組播分發樹就不能正確建立,導致組播數據轉發異常。
· IPv6 PIM協議需要整個網絡運行相同的IPv6 PIM模式,即DM或SM。否則,組播分發樹不能正確建立,導致組播數據轉發異常。
表1-1 檢查IPv6單播路由。使用命令display ipv6 routing-table命令檢查是否有到達IPv6組播源或RP的IPv6單播路由項。
檢查RPF接口上是否使能IPv6 PIM。通過命令display pim ipv6 interface命令查看接口的IPv6 PIM信息。若接口上沒有使能IPv6 PIM,請使用pim ipv6 dm或pim ipv6 sm命令使能IPv6 PIM。
檢查RPF鄰居是否是IPv6 PIM鄰居。通過命令display pim ipv6 neighbor查看IPv6 PIM鄰居信息。
檢查直連IPv6組播源、直連接收者的路由器接口上是否使能了IPv6 PIM和MLD。
檢查IPv6 PIM模式是否一致。通過命令display pim ipv6 interface verbose檢查RPF接口和RPF鄰居所在路由器的對應接口上是否使能了相同模式的IPv6 PIM協議。
檢查整個網絡中各路由器上的IPv6 PIM模式是否一致。通過命令display current-configuration查看接口上的IPv6 PIM模式信息,確保所有路由器配置相同模式的IPv6 PIM協議,即要麼全部配置為pim ipv6 sm,要麼全部配置為pim ipv6 dm。
IPv6組播數據可以到達中間路由器,但無法到達最後一跳路由器。中間路由器某接口上收到IPv6組播數據,但IPv6 PIM路由表中沒有創建相應的(S,G)表項。
· 命令multicast ipv6 boundary用於在接口上設置IPv6組播轉發邊界,如果IPv6組播數據無法通過該邊界,IPv6 PIM是無法創建路由項的。
· 此外,source-policy命令用於過濾接收到的IPv6組播數據報文。如果IPv6組播數據報文無法通過該命令的IPv6 ACL規則,IPv6 PIM也是無法創建路由項的。
檢查IPv6組播轉發邊界的配置。通過命令display current-configuration查看IPv6組播轉發邊界上的設置,使用multicast ipv6 boundary命令更改IPv6組播轉發邊界的設置,使IPv6組播數據能夠通過該邊界。
檢查IPv6組播過濾器配置。通過命令display current-configuration查看IPv6組播過濾器的配置,更改source-policy命令的IPv6 ACL規則,使IPv6組播數據的源/組地址通過IPv6 ACL過濾。
共享樹不能正確建立,或者RP不能加入到達IPv6組播源的源樹。
· RP是IPv6 PIM-SM網絡的核心,為指定IPv6組播組服務。多個RP可以在網絡中共存。請確保所有路由器上的RP信息是一致的;同一個指定組是被映射到相同的RP。否則,IPv6組播異常。
· 對於靜態RP機製,整個網絡中的所有路由器包括靜態RP本身必須用靜態RP命令配置相同的RP。否則,IPv6組播異常。
表1-1 檢查是否有到達RP的路由。通過命令display ipv6 routing-table查看各路由器上是否有到達RP的路由。
檢查動態RP信息。通過命令display pim ipv6 rp-info查看各路由器上的RP信息是否一致。如果不一致,請配置成一致。
檢查靜態RP的配置。通過命令display pim ipv6 rp-info查看全網所有路由器上是否配置了相同的靜態RP。
C-RP無法向BSR單播通告報文,BSR沒有發布包含C-RP的自舉報文,BSR上沒有到達各C-RP的單播路由,共享樹無法正確建立,或者DR無法向RP進行源注冊。
· C-RP周期性用單播模式向BSR通告報文。如果C-RP沒有到達BSR的路由,BSR就不能接收C-RP發來的通告報文,也就不會通告包含該C-RP的自舉消息。
· RP是IPv6 PIM-SM網絡的核心。請確保所有路由器上的RP信息是一致的,指定IPv6組播組G被映射到相同的RP,到RP的單播路由是可達的。
表1-1 檢查到各C-RP、RP和BSR的單播路由是否可達。通過命令display ipv6 routing-table查看各路由器上是否有到達RP和BSR的路由,及C-RP和BSR之間的路由。請確保各C-RP上存在到達BSR的單播路由,BSR上存在到達各C-RP的單播路由,整個網絡中所有路由器上存在到達RP的單播路由。
檢查RP和BSR信息。IPv6 PIM-SM協議需要RP和BSR的支持,首先使用命令display pim ipv6 bsr-info查看各路由器上是否有BSR信息,使用display pim ipv6 rp-info命令查看各路由器上RP信息是否正確。
檢查IPv6 PIM鄰居關係。通過命令display pim ipv6 neighbor查看各路由器是否建立了正常的鄰居關係。
不同款型規格的資料略有差異, 詳細信息請向具體銷售和400谘詢。H3C保留在沒有任何通知或提示的情況下對資料內容進行修改的權利!