05-組播路由與轉發配置
本章節下載: 05-組播路由與轉發配置 (446.57 KB)
· 本文所涉及的路由器和路由器圖標,代表了一般意義下的路由器或運行了IP組播路由協議的路由交換機。
· 設備支持兩種運行模式:獨立運行模式和IRF模式,缺省情況下為獨立運行模式。有關IRF模式的介紹,請參見“IRF配置指導”中的“IRF”。
在組播實現中,組播路由和轉發分為三種表:
· 每個組播路由協議都有一個協議自身的路由表,如PIM路由表(PIM Routing-Table);
· 各組播路由協議的組播路由信息經過綜合形成一個總的組播路由表(Multicast Routing-Table);
· 組播轉發表(Multicast Forwarding-Table)直接用於控製組播數據包的轉發。
組播路由表由一組(S,G)表項組成,其中(S,G)表示由源S向組播組G發送組播數據的路由信息。如果路由器支持多種組播路由協議,則其組播路由表中將包括由多種協議生成的組播路由。路由器根據組播路由和轉發策略,從組播路由表中選出最優的組播路由,並下發到組播轉發表中。
組播路由協議依賴於現有的單播路由信息、MBGP路由或組播靜態路由來創建組播路由表項。組播路由協議在創建組播路由表項時,運用了RPF(Reverse Path Forwarding,逆向路徑轉發)檢查機製,以確保組播數據能夠沿正確的路徑傳輸,同時還能避免由於各種原因而造成的環路。
執行RPF檢查的依據是單播路由、MBGP路由或組播靜態路由:
· 單播路由表中彙集了到達各個目的網段的最短路徑;
· MBGP路由表直接提供組播路由信息;
· 組播靜態路由表中列出了用戶通過手工靜態配置指定的RPF路由信息。
在執行RPF檢查時,路由器同時查找單播路由表、MBGP路由表和組播靜態路由表,具體過程如下:
首先,分別從單播路由表、MBGP路由表和組播靜態路由表中各選出一條最優路由:
· 以“報文源”的IP地址為目的地址查找單播路由表,自動選取一條最優單播路由。對應表項中的出接口為RPF接口,下一跳為RPF鄰居。路由器認為來自RPF鄰居且由該RPF接口收到的組播報文所經曆的路徑是從源S到本地的最短路徑。
· 以“報文源”的IP地址為目的地址查找MBGP路由表,自動選取一條最優MBGP路由。對應表項中的出接口為RPF接口,下一跳為RPF鄰居。
· 以“報文源”的IP地址為指定源地址查找組播靜態路由表,自動選取一條最優組播靜態路由。對應表項明確指定了RPF接口和RPF鄰居。
然後,從這三條最優路由中選擇一條作為RPF路由:
· 如果配置了按照最長匹配選擇路由,則從這三條路由中選出最長匹配的那條路由;如果這三條路由的掩碼一樣,則選擇其中優先級最高的那條路由;如果它們的優先級也相同,則按照組播靜態路由、MBGP路由、單播路由的順序進行選擇。
· 如果沒有配置按照最長匹配選擇路由,則從這三條路由中選出優先級最高的那條路由;如果它們的優先級相同,則按照組播靜態路由、MBGP路由、單播路由的順序進行選擇。
根據組播報文傳輸的具體情況不同,“報文源”所代表的具體含義也不同:
· 如果當前報文沿從組播源到接收者或RP(Rendezvous Point,彙集點)的SPT(Shortest Path Tree,最短路徑樹)進行傳輸,則以組播源為“報文源”進行RPF檢查;
· 如果當前報文沿從RP到接收者的RPT(Rendezvous Point Tree,共享樹或彙集樹)進行傳輸,或者沿從組播源到RP的組播源側RPT進行傳輸,則都以RP為“報文源”進行RPF檢查;
· 如果當前報文為BSR(BootStrap Router,自舉路由器)報文,沿從BSR到各路由器的路徑進行傳輸,則以BSR為“報文源”進行RPF檢查。
有關SPT、RPT、組播源側RPT、RP和BSR的詳細介紹,請參見“IP組播配置指導”中的“PIM”。
對每一個收到的組播數據報文都進行RPF檢查會給路由器帶來較大負擔,而利用組播轉發表可以解決這個問題。在建立組播路由和轉發表時,會把組播數據報文(S,G)的RPF接口記錄為(S,G)表項的入接口。當路由器收到組播數據報文(S,G)後,查找組播轉發表:
如果組播轉發表中不存在(S,G)表項,則對該報文執行RPF檢查,將其RPF接口作為入接口,結合相關路由信息創建相應的表項,並下發到組播轉發表中:
· 若該報文實際到達的接口正是其RPF接口,則RPF檢查通過,向所有的出接口轉發該報文;
· 若該報文實際到達的接口不是其RPF接口,則RPF檢查失敗,丟棄該報文。
如果組播轉發表中已存在(S,G)表項,且該報文實際到達的接口與入接口相匹配,則向所有的出接口轉發該報文。
如果組播轉發表中已存在(S,G)表項,但該報文實際到達的接口與入接口不匹配,則對此報文執行RPF檢查:
· 若其RPF接口與入接口一致,則說明(S,G)表項正確,丟棄這個來自錯誤路徑的報文;
· 若其RPF接口與入接口不符,則說明(S,G)表項已過時,於是把入接口更新為RPF接口。如果該報文實際到達的接口正是其RPF接口,則向所有的出接口轉發該報文,否則將其丟棄。
可以配置對RPF檢查失敗的報文進行特殊處理,而不是簡單地將其丟棄。相關配置請參見“1.4.7 配置RPF檢查失敗的處理方式”。
如圖1-1所示,假設網絡中單播路由暢通,未配置MBGP,Switch C上也未配置組播靜態路由。組播報文(S,G)沿從組播源(Source)到接收者(Receiver)的SPT進行傳輸。假定Switch C上的組播轉發表中已存在(S,G)表項,其記錄的入接口為Vlan-int5。
圖1-1 RPF檢查過程
· 如果該組播報文從接口Vlan-int5到達Switch C,與(S,G)表項的入接口相匹配,則向所有的出接口轉發該報文。
· 如果該組播報文從接口Vlan-int2到達Switch C,與(S,G)表項的入接口不匹配,則對其執行RPF檢查:通過查找單播路由表發現到達Source的出接口(即RPF接口)是Vlan-int5,與(S,G)表項的入接口一致。這說明(S,G)表項是正確的,該報文來自錯誤的路徑,RPF檢查失敗,於是丟棄該報文。
組播靜態路由是RPF檢查的重要依據之一。根據具體應用環境的不同,組播靜態路由有以下兩種主要用途:
通常,組播的網絡拓撲結構與單播相同,組播數據的傳輸路徑也與單播相同。可以通過配置組播靜態路由以改變RPF路由,從而為組播數據創建一條與單播不同的傳輸路徑。
圖1-2 改變RPF路由示意圖
如圖1-2所示,當網絡中沒有配置組播靜態路由時,Switch C到組播源(Source)的RPF鄰居為Switch A,從Source發出的組播信息沿Switch A—Switch C的路徑傳輸,與單播路徑一致;當在Switch C上配置了組播靜態路由,指定從Switch C到Source的RPF鄰居為Switch B之後,從Source發出的組播信息將改變傳輸路徑,沿Switch A—Switch B—Switch C的新路徑傳輸。
當網絡中的單播路由被阻斷時,由於沒有RPF路由而無法進行包括組播數據在內的數據轉發。可以通過配置組播靜態路由以生成RPF路由,從而創建組播路由表項以指導組播數據的轉發。
圖1-3 銜接RPF路由示意圖
如圖1-3所示,RIP域與OSPF域之間實行單播路由隔離。當網絡中沒有配置組播靜態路由時,OSPF域內的接收者(Receiver)不能收到RIP域內的組播源(Source)所發出的組播信息;當在Switch C和Switch D上均配置了組播靜態路由,分別指定從Switch C到Source的RPF鄰居為Switch B、從Switch D到Source的RPF鄰居為Switch C之後,Receiver便能收到Source發出的組播信息了。
· 組播靜態路由的作用隻在於影響RPF檢查,而不能用於指導組播數據轉發,故又稱為RPF靜態路由;
· 組播靜態路由僅在所配置的組播設備上生效,不會以任何方式被廣播或者引入給其它路由器。
網絡中可能存在不支持組播協議的網絡設備。從組播源(Source)發出的組播數據沿組播設備逐跳轉發,當下一跳設備不支持組播協議時,組播轉發路徑將被阻斷。此時,通過在處於單播網段兩端的設備之間建立GRE(Generic Routing Encapsulation,通用路由封裝)隧道,可以實現跨越單播網段的組播數據交換。有關GRE隧道的詳細介紹,請參見“三層技術-IP業務配置指導”中的“GRE”。
如圖1-4所示,在Device A和Device B之間建立起GRE隧道。Device A將組播數據包封裝在單播IP報文中,經由單播路由器轉發,傳送到隧道另一端的Device B。然後,Device B將單播IP報文頭剝掉,繼續進行組播傳輸。
如果在隧道的兩端配置了單播靜態路由,則任意單播數據包都可以通過該隧道傳輸。為了將該隧道專用於組播數據包的傳輸,可以在隧道兩端隻配置組播靜態路由,從而使單播數據包的傳輸不能再使用此隧道。
Multicast traceroute(組播路徑跟蹤)用來跟蹤組播數據從第一跳到最後一跳路由器所經過的路徑。
最後一跳路由器(Last-hop Router):如果某路由器有一個接口的IP地址與指定地址在同一個網段內,具備組播功能,且能夠向該網段轉發特定組播源發來的組播流,則稱該路由器為最後一跳路由器。
第一跳路由器(First-hop Router):與組播源直連的路由器。
查詢器(Querier):觸發組播路徑跟蹤的路由器。
Multicast traceroute報文是一種特殊的IGMP報文,與普通IGMP報文的區別在於其類型字段為0x1F/0x1E,且其目的IP地址為單播地址。Multicast traceroute報文分為以下三種類型:
· Query報文:類型字段為0x1F
· Request報文:類型字段為0x1F
· Response報文:類型字段為0x1E
查詢器向最後一跳路由器發送Query報文;
最後一跳路由器在收到的Query報文後加上本地響應數據塊轉換成Request報文,查找到上遊鄰居後向其單播發送該Request報文;
最後一跳路由器到組播源之間的每一跳都在Request報文之後附加一個響應數據塊,並向其上遊鄰居單播轉發;
第一跳路由器在收到Request報文後,將其報文類型改為Response報文,向查詢器單播發送完整的報文。
表1-1 組播路由與轉發配置任務簡介
配置任務 |
說明 |
詳細配置 |
|
使能IP組播路由 |
必選 |
||
配置組播路由與轉發 |
配置組播靜態路由 |
可選 |
|
配置組播路由策略 |
可選 |
||
配置組播轉發範圍 |
可選 |
||
配置組播轉發表容量 |
可選 |
||
配置靜態組播MAC地址表項 |
可選 |
||
配置RPF檢查失敗的處理方式 |
可選 |
||
跟蹤組播數據的傳輸路徑 |
可選 |
· 當一個接口配置有從IP地址或借用了其他接口的IP地址時,組播數據不能通過該從IP地址或借用來的IP地址進行路由和轉發,而隻能通過該接口的主IP地址進行路由和轉發。有關主、從IP地址以及IP地址借用的詳細介紹,請參見“三層技術-IP業務配置指導”中的“IP地址”。
· 係統工作在標準模式下時,如果需要配置VPN實例中的組播路由與轉發,則必須配置保留VLAN,否則係統會出現異常。保留VLAN配置完成後,請不要修改,否則需要重新配置。關於係統工作模式的介紹請參見“基礎配置指導”中的“設備管理”。關於保留VLAN的詳細配置和命令,請參見“MPLS配置指導”和“MPLS命令參考”中的“MPLS L3VPN”。
在配置各項三層組播功能之前,必須首先使能IP組播路由。
表1-2 使能公網實例中的IP組播路由
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
使能IP組播路由 |
multicast routing-enable |
必選 缺省情況下,IP組播路由處於關閉狀態 |
係統工作在標準模式下時,如果需要使能VPN實例中的IP組播路由,則必須配置保留VLAN。關於係統工作模式的介紹請參見“基礎配置指導”中的“設備管理”。關於保留VLAN的詳細配置和命令,請參見“MPLS配置指導”和“MPLS命令參考”中的“MPLS L3VPN”。
表1-3 使能VPN實例中的IP組播路由
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
創建VPN實例,並進入VPN實例視圖 |
ip vpn-instance vpn-instance-name |
- |
配置VPN實例的RD |
route-distinguisher route-distinguisher |
必選 缺省情況下,VPN實例沒有RD |
使能IP組播路由 |
multicast routing-enable |
必選 缺省情況下,IP組播路由處於關閉狀態 |
有關ip vpn-instance和route-distinguisher命令的詳細介紹,請參見“MPLS命令參考”中的“MPLS L3VPN”。
在配置組播路由與轉發之前,需完成以下任務:
· 配置任一單播路由協議,實現域內網絡層互通
· 配置PIM-DM(或PIM-SM)
在配置組播路由與轉發之前,需準備以下數據:
· 單條組播轉發表項的最大下行節點數目
· 組播轉發表的最大表項數
通過配置組播靜態路由,可以為來自特定組播源的組播報文指定RPF接口或RPF鄰居。在刪除已配置好的組播靜態路由時,既可通過undo ip rpf-route-static命令刪除指定的組播靜態路由,也可通過delete ip rpf-route-static命令刪除所有的組播靜態路由。
表1-4 配置組播靜態路由
命令 |
說明 |
|
進入係統視圖 |
system-view |
- |
配置組播靜態路由 |
ip rpf-route-static [ vpn-instance vpn-instance-name ] source-address { mask | mask-length } [ protocol [ process-id ] ] [ route-policy policy-name ] { rpf-nbr-address | interface-type interface-number } [ preference preference ] [ order order-number ] |
必選 缺省情況下,沒有配置組播靜態路由 |
刪除所有組播靜態路由 |
delete ip rpf-route-static [ vpn-instance vpn-instance-name ] |
可選 |
在配置組播靜態路由時,若RPF鄰居的接口類型是三層以太網接口、三層聚合接口、三層RPR邏輯接口、Loopback接口或VLAN接口時,則不能用指定接口(interface-type interface-number)的方式來指定RPF鄰居,而隻能用指定地址(rpf-nbr-address)的方式。
可以配置組播路由器按照最長匹配原則來選擇RPF路由,有關RPF路由選擇的詳細介紹,請參見“1.1.1 1. RPF檢查過程”一節。此外,通過配置根據組播源或組播源組進行組播流量的負載分擔,還可以優化存在多條組播數據流時的網絡流量。
表1-5 配置公網實例中的組播路由策略
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
配置按照最長匹配選擇RPF路由 |
multicast longest-match |
可選 缺省情況下,選擇優先級最高的路由作為RPF路由 |
配置對組播流量進行負載分擔 |
multicast load-splitting { source | source-group } |
可選 缺省情況下,不對組播流量進行負載分擔 |
表1-6 配置VPN實例中的組播路由策略
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入VPN實例視圖 |
ip vpn-instance vpn-instance-name |
- |
配置按照最長匹配選擇RPF路由 |
multicast longest-match |
可選 缺省情況下,選擇優先級最高的路由作為RPF路由 |
配置對組播流量進行負載分擔 |
multicast load-splitting { source | source-group } |
可選 缺省情況下,不對組播流量進行負載分擔 |
multicast load-splitting命令對雙向PIM不生效。
組播信息在網絡中的轉發並不是漫無邊際的,每個組播組對應的組播信息都必須在確定的範圍內傳遞。目前定義組播轉發範圍的方式為:
確定充當組播轉發邊界的接口,以形成一個封閉的組播轉發區域。
可以在所有支持組播轉發的接口上配置針對某個組播組的轉發邊界。組播轉發邊界為指定範圍的組播組劃定了邊界條件,如果組播報文的目的地址與邊界條件匹配,就停止轉發。當在一個接口上配置了組播轉發邊界後,將不能從該接口轉發組播報文(包括本機發出的組播報文),也不能從該接口接收組播報文。
表1-7 配置組播轉發範圍
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入接口視圖 |
interface interface-type interface-number |
- |
配置組播轉發邊界 |
multicast boundary group-address { mask | mask-length } |
必選 缺省情況下,沒有配置組播轉發邊界 |
路由器為每個收到的組播數據報文都維護相應的轉發表項。但是,組播轉發表項過多可能會耗盡路由器內存,從而導致路由器性能下降。用戶可以根據實際組網情況和業務性能要求對組播轉發表中的表項數量進行限製。如果組播轉發表最大表項數的配置值小於當前值,則超出數目的表項並不會立刻被刪除,而必須由組播路由協議來刪除,同時也無法添加新的組播轉發表項。
路由器為每個下行節點複製一份組播數據報文並發送出去,每個下行節點就形成組播分發樹的一條分支。用戶可以根據實際組網情況和業務性能要求對組播轉發表中單條表項的下行節點數目(即出接口數目)進行限製,以緩解路由器的複製壓力。如果單條組播轉發表項的最大下行節點數目的配置值小於當前值,則超出數目的下行節點並不會被立刻刪除,而必須由組播路由協議來刪除,同時新增的下行節點將無法添加到該表項中。
表1-8 配置公網實例中的組播轉發表容量
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
配置組播轉發表的最大表項數 |
multicast forwarding-table route-limit limit |
可選 缺省情況下,組播轉發表的最大表項數為係統所允許的最大值,該值和係統工作模式相關,設備工作在不同的係統模式下時,係統所允許的最大值會不同,詳細說明請參見“基礎配置指導”中的“設備管理” |
配置單條組播轉發表項的最大下行節點數目 |
multicast forwarding-table downstream-limit limit |
可選 缺省情況下,單條組播轉發表項的最大下行節點數目為係統所允許的最大值256 |
表1-9 配置VPN實例中的組播轉發表容量
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入VPN實例視圖 |
ip vpn-instance vpn-instance-name |
- |
配置組播轉發表的最大表項數 |
multicast forwarding-table route-limit limit |
可選 缺省情況下,組播轉發表的最大表項數為1024 |
配置單條組播轉發表項的最大下行節點數目 |
multicast forwarding-table downstream-limit limit |
可選 缺省情況下,單條組播轉發表項的最大下行節點數目為係統所允許的最大值256 |
在二層組播中,除了可通過二層組播協議(如IGMP Snooping)動態建立組播MAC地址表項外,還可以通過手工方式配置組播MAC地址表項,將端口與組播MAC地址進行靜態綁定,以便靈活控製組播信息送達的目的端口。
表1-10 係統視圖下配置靜態組播MAC地址表項
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
配置靜態組播MAC地址表項 |
mac-address multicast mac-address interface interface-list vlan vlan-id |
必選 缺省情況下,沒有配置靜態組播MAC地址表項 |
表1-11 接口視圖下配置靜態組播MAC地址表項
操作 |
命令 |
說明 |
|
進入係統視圖 |
system-view |
- |
|
進入相應視圖 |
進入以太網或二層聚合接口視圖 |
interface interface-type interface-number |
二者必選其一 進入以太網接口或二層聚合接口視圖後,下麵進行的配置隻在當前接口生效;進入端口組視圖後,下麵進行的配置將在端口組的所有接口生效 |
進入端口組視圖 |
port-group manual port-group-name |
||
配置靜態組播MAC地址表項 |
mac-address multicast mac-address vlan vlan-id |
必選 缺省情況下,沒有配置靜態組播MAC地址表項 |
· 係統視圖下的配置對指定接口有效,而接口視圖下的配置隻對當前接口(或當前端口組內的所有接口)有效。
· 可手工配置的組播MAC地址表項為除0100-5Exx-xxxx以外的任意合法的組播MAC地址(組播MAC地址就是最高字節的最低比特位為1的MAC地址),其中x代表0~F的任意一個十六進製數。
對於RPF檢查失敗的組播數據報文,針對不同情況需要進行不同的處理,而不僅僅是簡單地將其丟棄。
在某些特定組網環境下,會出現RPF檢查失敗的VLAN接口對應的VLAN內存在接收者的情況,為了讓這些接收者也能收到RPF檢查失敗的組播數據報文,就需要將這些報文在該VLAN內進行組播或廣播。
配置了在VLAN內轉發RPF檢查失敗的組播數據報文後,當VLAN內收到了RPF檢查失敗的組播數據報文時,如果有相應的轉發表項,則在該VLAN內進行組播;否則,在該VLAN內進行廣播。
當需要將RPF檢查失敗的組播數據報文在VLAN內進行組播時,還須在該VLAN內使能按需組播功能。
表1-12 配置VLAN內的轉發
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
配置在VLAN內轉發RPF檢查失敗的組播數據報文 |
multicast rpf-fail-pkt bridging |
必選 缺省情況下,不在VLAN內轉發RPF檢查失敗的組播數據報文 |
進入VLAN視圖 |
vlan vlan-id |
- |
使能VLAN內的按需組播功能 |
multicast forwarding on-demand |
必選 缺省情況下,VLAN內的按需組播功能處於關閉狀態 |
· 配置完在VLAN內轉發RPF檢查失敗的組播數據報文後,必須使用命令reset multicast forwarding-table清除組播轉發表中的所有轉發項,否則該配置將不能生效。
· 如果配置按需組播功能的VLAN是組播VLAN,則配置完後必須使用命令reset igmp-snooping group清除該VLAN內所有IGMP Snooping組播組的信息,否則該配置將不能生效。有關reset igmp-snooping group命令的詳細介紹,請參見“IP組播命令參考”中的“IGMP Snooping”。
· 如果配置按需組播功能的VLAN不是組播VLAN,且對應的VLAN接口上配置了三層組播協議(IGMP或PIM),則配置完後必須使用命令reset igmp group port-info清除該VLAN內所有IGMP組播組的二層端口信息,並使用命令reset igmp group清除對應VLAN接口上所有IGMP組播組的信息,否則該配置將不能生效。有關reset igmp group port-info和reset igmp group命令的詳細介紹,請參見“IP組播命令參考”中的“IGMP”。
· 如果配置按需組播功能的VLAN不是組播VLAN,且該VLAN內使能了IGMP Snooping,則該配置將不能生效。
· 如果在VLAN下配置按需組播功能,且該VLAN內使能了雙向PIM,則配置完後必須使用命令reset multicast forwarding-table清除組播轉發表中的所有轉發項,否則該配置將不生效。
在以下兩種情況下,需要將RPF檢查失敗的組播數據報文上送給CPU進行處理:
· 如果組播數據報文從組播轉發表項的出接口到達,則RPF檢查失敗,需要將該報文上送給CPU進行處理,以觸發Assert機製剪枝多餘的組播流量。
· 在RPT向SPT切換時,如果SPT與RPT在DR(Designated Router,指定路由器)上的入接口不同,若在SPT上的組播流量到達DR前就剪枝RPT,將導致組播流量的中斷;若待SPT上的組播流量到達DR後再剪枝RPT,就可以避免組播流量的中斷。為了使DR能感知到SPT上組播流量的到達,就需要將到達SPT入接口但RPF檢查失敗(剪枝RPT前的RPF接口是RPT的入接口)的組播數據報文上送給CPU進行處理。
有關Assert機製、DR以及RPT向SPT切換的詳細介紹,請參見“IP組播配置指導”中的“PIM”。
表1-13 配置上送CPU處理
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
配置把RPF檢查失敗的組播數據報文上送CPU處理 |
multicast rpf-fail-pkt trap-to-cpu |
必選 缺省情況下,不把RPF檢查失敗的組播數據報文上送CPU處理 |
· 配置完後必須使用命令reset multicast forwarding-table清除組播轉發表中的所有轉發項,否則本配置將不能生效。
· 本配置對匹配雙向PIM表項的組播數據報文不能生效。
可在任意視圖下執行mtracert命令來跟蹤組播數據從第一跳到最後一跳路由器所經過的路徑。
表1-14 跟蹤組播數據的傳輸路徑
操作 |
命令 |
說明 |
跟蹤組播數據的傳輸路徑 |
mtracert source-address [ [ last-hop-router-address ] group-address ] |
必選 可在任意視圖下執行 |
在完成上述配置後,在任意視圖下執行display命令可以顯示配置後組播路由與轉發的信息,通過查看顯示信息驗證配置的效果。
在用戶視圖下執行reset命令可以清除組播路由與轉發的統計信息。
表1-15 組播路由與轉發顯示和維護
操作 |
命令 |
查看組播邊界信息 |
display multicast [ all-instance | vpn-instance vpn-instance-name ] boundary [ group-address [ mask | mask-length ] ] [ interface interface-type interface-number ] [ | { begin | exclude | include } regular-expression ] |
查看組播轉發表信息(獨立運行模式) |
display multicast [ all-instance | vpn-instance vpn-instance-name ] forwarding-table [ source-address [ mask { mask | mask-length } ] | group-address [ mask { mask | mask-length } ] | incoming-interface { interface-type interface-number | register } | outgoing-interface { exclude | include | match } { interface-type interface-number | register } | statistics | slot slot-number ] * [ port-info ] [ | { begin | exclude | include } regular-expression ] |
查看組播轉發表信息(IRF模式) |
display multicast [ all-instance | vpn-instance vpn-instance-name ] forwarding-table [ source-address [ mask { mask | mask-length } ] | group-address [ mask { mask | mask-length } ] | incoming-interface { interface-type interface-number | register } | outgoing-interface { exclude | include | match } { interface-type interface-number | register } | statistics | chassis chassis-number slot slot-number ] * [ port-info ] [ | { begin | exclude | include } regular-expression ] |
查看組播轉發表的DF信息(獨立運行模式) |
display multicast [ all-instance | vpn-instance vpn-instance-name ] forwarding-table df-info [ rp-address ] [ slot slot-number ] [ | { begin | exclude | include } regular-expression ] |
查看組播轉發表的DF信息(IRF模式) |
display multicast [ all-instance | vpn-instance vpn-instance-name ] forwarding-table df-info [ rp-address ] [ chassis chassis-number slot slot-number ] [ | { begin | exclude | include } regular-expression ] |
查看組播路由表信息 |
display multicast [ all-instance | vpn-instance vpn-instance-name ] routing-table [ source-address [ mask { mask | mask-length } ] | group-address [ mask { mask | mask-length } ] | incoming-interface { interface-type interface-number | register } | outgoing-interface { exclude | include | match } { interface-type interface-number | register } ] * [ | { begin | exclude | include } regular-expression ] |
查看組播靜態路由信息 |
display multicast routing-table [ all-instance | vpn-instance vpn-instance-name ] static [ source-address { mask-length | mask } ] [ | { begin | exclude | include } regular-expression ] |
查看組播源的RPF信息 |
display multicast [ all-instance | vpn-instance vpn-instance-name ] rpf-info source-address [ group-address ] [ | { begin | exclude | include } regular-expression ] |
查看靜態組播MAC地址表信息 |
display mac-address [ mac-address [ vlan vlan-id ] | [ multicast ] [ vlan vlan-id ] [ count ] ] [ | { begin | exclude | include } regular-expression ] |
清除組播轉發表中的轉發項 |
reset multicast [ all-instance | vpn-instance vpn-instance-name ] forwarding-table { { source-address [ mask { mask | mask-length } ] | group-address [ mask { mask | mask-length } ] | incoming-interface { interface-type interface-number | register } } * | all } |
清除組播路由表中的路由項 |
reset multicast [ all-instance | vpn-instance vpn-instance-name ] routing-table { { source-address [ mask { mask | mask-length } ] | group-address [ mask { mask | mask-length } ] | incoming-interface { interface-type interface-number | register } } * | all } |
有關DF(Designated Forwarder,指定轉發者)的詳細介紹,請參見“IP組播配置指導”中的“PIM”。
· 執行reset命令將清除組播路由表或組播轉發表中的信息,可能導致組播信息無法正常傳輸;
· 清除組播路由表中的路由項後,組播轉發表中的相應表項也將隨之刪除;
· 清除組播轉發表中的轉發項後,組播路由表中的相應表項也將隨之刪除。
缺省情況下,以太網接口、VLAN接口及聚合接口處於DOWN狀態。如果要對這些接口進行配置,請先使用undo shutdown命令使接口狀態處於UP狀態。
· 網絡中運行PIM-DM,所有交換機都支持組播功能;
· Switch A、Switch B和Switch C之間運行OSPF協議;
· 通常情況下,Receiver能通過Switch A—Switch B這條與單播路徑相同的路徑接收來自Source的組播信息;
· 要求通過配置,使Receiver能通過Switch A—Switch C—Switch B這條與單播路徑不同的路徑接收來自Source的組播信息。
圖1-5 改變RPF路由配置舉例
配置IP地址和單播路由協議
請按照圖1-5配置各接口的IP地址和掩碼,具體配置過程略。
配置PIM-DM域內的各交換機之間采用OSPF協議進行互連,確保PIM-DM域內部在網絡層互通,並且各交換機之間能夠借助單播路由協議實現動態路由更新,具體配置過程略。
使能IP組播路由,並使能PIM-DM和IGMP
# 在Switch B上使能IP組播路由,在各接口上使能PIM-DM,並在主機側接口Vlan-interface100上使能IGMP。
<SwitchB> system-view
[SwitchB] multicast routing-enable
[SwitchB] interface vlan-interface 100
[SwitchB-Vlan-interface100] igmp enable
[SwitchB-Vlan-interface100] pim dm
[SwitchB-Vlan-interface100] quit
[SwitchB] interface vlan-interface 101
[SwitchB-Vlan-interface101] pim dm
[SwitchB-Vlan-interface101] quit
[SwitchB] interface vlan-interface 102
[SwitchB-Vlan-interface102] pim dm
[SwitchB-Vlan-interface102] quit
# 在Switch A上使能IP組播路由,並在各接口上使能PIM-DM。
<SwitchA> system-view
[SwitchA] multicast routing-enable
[SwitchA] interface vlan-interface 200
[SwitchA-Vlan-interface200] pim dm
[SwitchA-Vlan-interface200] quit
[SwitchA] interface vlan-interface 102
[SwitchA-Vlan-interface102] pim dm
[SwitchA-Vlan-interface102] quit
[SwitchA] interface vlan-interface 103
[SwitchA-Vlan-interface103] pim dm
[SwitchA-Vlan-interface103] quit
Switch C上的配置與Switch A相似,配置過程略。
# 在Switch B上使用display multicast rpf-info命令查看到Source的RPF信息。
[SwitchB] display multicast rpf-info 50.1.1.100
RPF information about source 50.1.1.100:
RPF interface: Vlan-interface102, RPF neighbor: 30.1.1.2
Referenced route/mask: 50.1.1.0/24
Referenced route type: igp
Route selection rule: preference-preferred
Load splitting rule: disable
Switch B上當前的RPF路由來源於單播路由,RPF鄰居是Switch A。
配置組播靜態路由
# 在Switch B上配置組播靜態路由,指定到Source的RPF鄰居為Switch C。
[SwitchB] ip rpf-route-static 50.1.1.100 24 20.1.1.2
檢驗配置效果
# 在Switch B上使用display multicast rpf-info命令查看到Source的RPF信息。
[SwitchB] display multicast rpf-info 50.1.1.100
RPF information about source 50.1.1.100:
RPF interface: Vlan-interface101, RPF neighbor: 20.1.1.2
Referenced route/mask: 50.1.1.0/24
Referenced route type: multicast static
Route selection rule: preference-preferred
Load splitting rule: disable
與配置組播靜態路由前相比,Switch B上的RPF路由已經產生了變化,其來源變為組播靜態路由,RPF鄰居變為Switch C。
· 網絡中運行PIM-DM,所有交換機都支持組播功能;
· Switch B和Switch C之間運行OSPF協議,並與Switch A單播路由隔離;
· 通常情況下,Receiver能接收來自OSPF域內Source 1的組播信息;
· 要求通過配置,使Receiver也可以接收來自OSPF域外Source 2的組播信息。
圖1-6 銜接RPF路由配置組網圖
配置IP地址和單播路由協議
請按照圖1-6配置各接口的IP地址和掩碼,具體配置過程略。
配置Switch B和Switch C之間采用OSPF協議進行互連,確保Switch B和Switch C之間在網絡層互通,並且能夠借助單播路由協議實現動態路由更新,具體配置過程略。
使能IP組播路由,並使能PIM-DM和IGMP
# 在Switch C上使能IP組播路由,在各接口上使能PIM-DM,並在主機側接口Vlan-interface100上使能IGMP。
<SwitchC> system-view
[SwitchC] multicast routing-enable
[SwitchC] interface vlan-interface 100
[SwitchC-Vlan-interface100] igmp enable
[SwitchC-Vlan-interface100] pim dm
[SwitchC-Vlan-interface100] quit
[SwitchC] interface vlan-interface 101
[SwitchC-Vlan-interface101] pim dm
[SwitchC-Vlan-interface101] quit
# 在Switch A上使能IP組播路由,並在各接口上使能PIM-DM。
<SwitchA> system-view
[SwitchA] multicast routing-enable
[SwitchA] interface vlan-interface 300
[SwitchA-Vlan-interface300] pim dm
[SwitchA-Vlan-interface300] quit
[SwitchA] interface vlan-interface 102
[SwitchA-Vlan-interface102] pim dm
[SwitchA-Vlan-interface102] quit
Switch B上的配置與Switch A相似,配置過程略。
# 在Switch B和Switch C上分別使用display multicast rpf-info命令查看到Source 2的RPF信息。
[SwitchB] display multicast rpf-info 50.1.1.100
[SwitchC] display multicast rpf-info 50.1.1.100
沒有顯示信息輸出,說明在Switch B和Switch C上都沒有到Source 2的RPF路由。
配置組播靜態路由
# 在Switch B上配置組播靜態路由,指定到Source 2的RPF鄰居為Switch A。
[SwitchB] ip rpf-route-static 50.1.1.100 24 30.1.1.2
# 在Switch C上配置組播靜態路由,指定到Source 2的RPF鄰居為Switch B。
[SwitchC] ip rpf-route-static 50.1.1.100 24 20.1.1.2
檢驗配置效果
# 在Switch B和Switch C上分別使用display multicast rpf-info命令查看到Source 2的RPF信息。
[SwitchB] display multicast rpf-info 50.1.1.100
RPF information about source 50.1.1.100:
RPF interface: Vlan-interface102, RPF neighbor: 30.1.1.2
Referenced route/mask: 50.1.1.0/24
Referenced route type: multicast static
Route selection rule: preference-preferred
Load splitting rule: disable
[SwitchC] display multicast rpf-info 50.1.1.100
RPF information about source 50.1.1.100:
RPF interface: Vlan-interface101, RPF neighbor: 20.1.1.2
Referenced route/mask: 50.1.1.0/24
Referenced route type: multicast static
Route selection rule: preference-preferred
Load splitting rule: disable
與配置組播靜態路由前相比,Switch B和Switch C上都有了到Source 2的RPF路由,且其均來源於組播靜態路由。
· Switch A和Switch C支持組播功能並運行PIM-DM,但Switch B不支持組播功能;
· Switch A、Switch B和Switch C之間運行OSPF協議;
· 要求通過配置,使Receiver能夠接收來自Source的組播信息。
圖1-7 利用GRE隧道實現組播轉發配置組網圖
配置IP地址
請按照圖1-7配置各接口的IP地址和掩碼,具體配置過程略。
配置GRE隧道
# 在Switch A上創建接口Tunnel0,並為其配置IP地址和掩碼。
<SwitchA> system-view
[SwitchA] interface tunnel 0
[SwitchA-Tunnel0] ip address 50.1.1.1 24
# 在Switch A上配置Tunnel0接口采用GRE隧道模式,並為該接口指定源地址和目的地址。
[SwitchA-Tunnel0] tunnel-protocol gre
[SwitchA-Tunnel0] source 20.1.1.1
[SwitchA-Tunnel0] destination 30.1.1.2
[SwitchA-Tunnel0] quit
# 在Switch C上創建接口Tunnel0,並為其配置IP地址和掩碼。
<SwitchC> system-view
[SwitchC] interface tunnel 0
[SwitchC-Tunnel0] ip address 50.1.1.2 24
# 在Switch C上配置Tunnel0接口采用GRE隧道模式,並為該接口指定源地址和目的地址。
[SwitchC-Tunnel0] tunnel-protocol gre
[SwitchC-Tunnel0] source 30.1.1.2
[SwitchC-Tunnel0] destination 20.1.1.1
[SwitchC-Tunnel0] quit
配置OSPF協議
# 在Switch A上配置OSPF協議。
[SwitchA] ospf 1
[SwitchA-ospf-1] area 0
[SwitchA-ospf-1-area-0.0.0.0] network 10.1.1.0 0.0.0.255
[SwitchA-ospf-1-area-0.0.0.0] network 20.1.1.0 0.0.0.255
[SwitchA-ospf-1-area-0.0.0.0] network 50.1.1.0 0.0.0.255
[SwitchA-ospf-1-area-0.0.0.0] quit
[SwitchA-ospf-1] quit
# 在Switch B上配置OSPF協議。
<SwitchB> system-view
[SwitchB] ospf 1
[SwitchB-ospf-1] area 0
[SwitchB-ospf-1-area-0.0.0.0] network 20.1.1.0 0.0.0.255
[SwitchB-ospf-1-area-0.0.0.0] network 30.1.1.0 0.0.0.255
[SwitchB-ospf-1-area-0.0.0.0] quit
[SwitchB-ospf-1] quit
# 在Switch C上配置OSPF協議。
[SwitchC] ospf 1
[SwitchC-ospf-1] area 0
[SwitchC-ospf-1-area-0.0.0.0] network 30.1.1.0 0.0.0.255
[SwitchC-ospf-1-area-0.0.0.0] network 40.1.1.0 0.0.0.255
[SwitchC-ospf-1-area-0.0.0.0] network 50.1.1.0 0.0.0.255
[SwitchC-ospf-1-area-0.0.0.0] quit
[SwitchC-ospf-1] quit
使能IP組播路由,並使能PIM-DM和IGMP
# 在Switch A上使能IP組播路由,並在各接口上使能PIM-DM。
[SwitchA] multicast routing-enable
[SwitchA] interface vlan-interface 100
[SwitchA-Vlan-interface100] pim dm
[SwitchA-Vlan-interface100] quit
[SwitchA] interface vlan-interface 101
[SwitchA-Vlan-interface101] pim dm
[SwitchA-Vlan-interface101] quit
[SwitchA] interface tunnel 0
[SwitchA-Tunnel0] pim dm
[SwitchA-Tunnel0] quit
# 在Switch C上使能IP組播路由,在各接口上使能PIM-DM,並在主機側接口Vlan-interface200上使能IGMP。
[SwitchC] multicast routing-enable
[SwitchC] interface vlan-interface 200
[SwitchC-Vlan-interface200] igmp enable
[SwitchC-Vlan-interface200] pim dm
[SwitchC-Vlan-interface200] quit
[SwitchC] interface vlan-interface 102
[SwitchC-Vlan-interface102] pim dm
[SwitchC-Vlan-interface102] quit
[SwitchC] interface tunnel 0
[SwitchC-Tunnel0] pim dm
[SwitchC-Tunnel0] quit
配置組播靜態路由
# 在Switch C上配置組播靜態路由,指定到Source的RPF鄰居為Switch A的Tunnel0接口。
[SwitchC] ip rpf-route-static 10.1.1.0 24 50.1.1.1
檢驗配置效果
組播源向組播組225.1.1.1發送組播數據,接收者加入該組播組後能夠收到組播源發來的組播數據。通過使用display pim routing-table命令可以查看交換機的PIM路由表信息。例如:
# 查看Switch C上的PIM路由表信息。
[SwitchC] display pim routing-table
VPN-Instance: public net
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: Vlan-interface200
Protocol: igmp, UpTime: 00:04:25, Expires: never
(10.1.1.100, 225.1.1.1)
Protocol: pim-dm, Flag: ACT
UpTime: 00:06:14
Upstream interface: Tunnel0
Upstream neighbor: 50.1.1.1
RPF prime neighbor: 50.1.1.1
Downstream interface(s) information:
Total number of downstreams: 1
1: Vlan-interface200
Protocol: pim-dm, UpTime: 00:04:25, Expires: never
Switch C的RPF鄰居為Switch A,組播數據通過GRE隧道直接由Switch A發往Switch C。
路由器沒有配置動態路由協議,接口的物理狀態與鏈路層協議狀態都顯示為up;但是組播靜態路由失敗。
· 如果沒有正確配置或更新與當前網絡情況相匹配的組播靜態路由,則組播路由表中不存在此路由項以及組播靜態路由的配置信息;
· 如果查詢到有比組播靜態路由更優的路由,也可能導致組播靜態路由失敗。
使用display multicast routing-table static命令在組播路由表中查看組播靜態路由的信息,以確定是否正確配置了對應的路由並存在於組播路由表中;
檢查組播靜態路由下一跳接口的接口類型。若為非點到點接口,則配置組播靜態路由時,出接口必須使用下一跳地址的形式配置;
檢查組播靜態路由是否匹配指定的路由協議。如果配置組播靜態路由時指定了協議,則使用display ip routing-table命令檢查該協議是否添加了相同的路由;
檢查組播靜態路由是否匹配指定的路由策略。如果配置組播靜態路由時指定了路由策略,則使用display route-policy命令檢查配置的路由策略。
組播數據可以到達一些路由器,但無法到達最後一跳路由器。
通過在接口上使用multicast boundary命令可以設置組播轉發邊界,組播數據是無法跨越該邊界的。
使用display pim routing-table命令查看各路由器上是否有(S,G)表項:如果有則表示收到了組播數據;否則表示沒有收到組播數據。
使用display multicast boundary命令來查看接口的組播邊界信息。使用multicast boundary命令來更改組播轉發邊界。
若采用了PIM-SM,使用display current-configuration命令檢查是否配置了BSR和RP。
不同款型規格的資料略有差異, 詳細信息請向具體銷售和400谘詢。H3C保留在沒有任何通知或提示的情況下對資料內容進行修改的權利!