13-IPv6組播路由與轉發配置
本章節下載: 13-IPv6組播路由與轉發配置 (201.86 KB)
· S5500-SI係列交換機不支持IPv6組播路由與轉發功能。
· 本文所指的路由器代表運行了路由協議的三層設備。
· IPv6組播路由與轉發功能中所指的“接口”為三層口,包括VLAN接口、三層以太網端口等。三層以太網端口是指被配置為三層模式的以太網端口,有關以太網端口模式切換的操作,請參見“二層技術-以太網交換配置指導”中的“以太網端口配置”。
在IPv6組播實現中,組播路由和轉發分為三種表:
· 每個IPv6組播路由協議都有一個協議自身的路由表,如IPv6 PIM路由表(IPv6 PIM Routing-Table);
· 各IPv6組播路由協議的組播路由信息經過綜合形成一個總的IPv6組播路由表(IPv6 Multicast Routing-Table);
· IPv6組播轉發表(IPv6 Multicast Forwarding-Table)直接用於控製IPv6組播數據包的轉發,是真正指導IPv6組播數據轉發的轉發表。
IPv6組播路由表由一組(S,G)表項組成,其中(S,G)表示由源S向IPv6組播組G發送IPv6組播數據的路由信息。如果路由器支持多種IPv6組播路由協議,則其IPv6組播路由表中將包括由多種協議生成的組播路由。路由器根據組播路由和轉發策略,從IPv6組播路由表中選出最優的組播路由,並下發到IPv6組播轉發表中。
IPv6組播路由協議依賴於現有的IPv6單播路由信息或IPv6 MBGP路由來創建IPv6組播路由表項。IPv6組播路由協議在創建IPv6組播路由表項時,運用了RPF(Reverse Path Forwarding,逆向路徑轉發)檢查機製,以確保IPv6組播數據能夠沿正確的路徑傳輸,同時還能避免由於各種原因而造成的環路。
執行RPF檢查的依據是IPv6單播路由或IPv6 MBGP路由:
· IPv6單播路由表中彙集了到達各個目的網段的最短路徑;
· IPv6 MBGP路由表直接提供IPv6組播路由信息。
在執行RPF檢查時,路由器同時查找IPv6單播路由表和IPv6 MBGP路由表,具體過程如下:
(1) 首先,分別從IPv6單播路由表和IPv6 MBGP路由表中各選出一條最優路由:
· 以“報文源”的IPv6地址為目的地址查找IPv6單播路由表,自動選取一條最優IPv6單播路由。對應表項中的出接口為RPF接口,下一跳為RPF鄰居。路由器認為來自RPF鄰居且由該RPF接口收到的IPv6組播報文所經曆的路徑是從源S到本地的最短路徑。
· 以“報文源”的IPv6地址為目的地址查找IPv6 MBGP路由表,自動選取一條最優IPv6 MBGP路由。對應表項中的出接口為RPF接口,下一跳為RPF鄰居。
(2) 然後,從這兩條最優路由中選擇一條作為RPF路由:
· 如果配置了按照最長匹配選擇路由,則從這兩條路由中選出最長匹配的那條路由;如果這兩條路由的前綴長度一樣,則選擇其中優先級最高的那條路由;如果它們的優先級也相同,則按照IPv6 MBGP路由、IPv6單播路由的順序進行選擇。
· 如果沒有配置按照最長匹配選擇路由,則從這兩條路由中選出優先級最高的那條路由;如果它們的優先級相同,則按照IPv6 MBGP路由、IPv6單播路由的順序進行選擇。
根據IPv6組播報文傳輸的具體情況不同,“報文源”所代表的具體含義也不同:
· 如果當前報文沿從組播源到接收者或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組播配置指導”中的“IPv6 PIM”。
對每一個收到的IPv6組播數據報文都進行RPF檢查會給路由器帶來較大負擔,而利用IPv6組播轉發表可以解決這個問題。在建立IPv6組播路由和轉發表時,會把IPv6組播數據報文(S,G)的RPF接口記錄為(S,G)表項的入接口。當路由器收到IPv6組播數據報文(S,G)後,查找IPv6組播轉發表:
(1) 如果IPv6組播轉發表中不存在(S,G)表項,則對該報文執行RPF檢查,將其RPF接口作為入接口,結合相關路由信息創建相應的表項,並下發到IPv6組播轉發表中:
· 若該報文實際到達的接口正是其RPF接口,則RPF檢查通過,向所有的出接口轉發該報文;
· 若該報文實際到達的接口不是其RPF接口,則RPF檢查失敗,丟棄該報文。
(2) 如果IPv6組播轉發表中已存在(S,G)表項,且該報文實際到達的接口與入接口相匹配,則向所有的出接口轉發該報文。
(3) 如果IPv6組播轉發表中已存在(S,G)表項,但該報文實際到達的接口與入接口不匹配,則對此報文執行RPF檢查:
· 若其RPF接口與入接口一致,則說明(S,G)表項正確,丟棄這個來自錯誤路徑的報文;
· 若其RPF接口與入接口不符,則說明(S,G)表項已過時,於是把入接口更新為RPF接口。如果該報文實際到達的接口正是其RPF接口,則向所有的出接口轉發該報文,否則將其丟棄。
如圖1-1所示,假設網絡中IPv6單播路由暢通,未配置IPv6 MBGP。IPv6組播報文(S,G)沿從組播源(Source)到接收者(Receiver)的SPT進行傳輸。假定Router C上的IPv6組播轉發表中已存在(S,G)表項,其記錄的入接口為Vlan-interface20。
圖1-1 RPF檢查過程
· 如果該IPv6組播報文從接口Vlan-interface20到達Router C,與(S,G)表項的入接口相匹配,則向所有的出接口轉發該報文。
· 如果該IPv6組播報文從接口Vlan-interface10到達Router C,與(S,G)表項的入接口不匹配,則對其執行RPF檢查:通過查找IPv6單播路由表發現到達Source的出接口(即RPF接口)是Vlan-interface20,與(S,G)表項的入接口一致。這說明(S,G)表項是正確的,該報文來自錯誤的路徑,RPF檢查失敗,於是丟棄該報文。
表1-1 IPv6組播路由與轉發配置任務簡介
配置任務 |
說明 |
詳細配置 |
|
使能IPv6組播路由 |
必選 |
||
配置IPv6組播路由與轉發 |
配置IPv6組播路由策略 |
可選 |
|
配置IPv6組播轉發範圍 |
可選 |
||
配置IPv6組播轉發表容量 |
可選 |
在配置各項三層IPv6組播功能之前,必須首先使能IPv6組播路由。
表1-2 使能IPv6組播路由
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
使能IPv6組播路由 |
multicast ipv6 routing-enable |
必選 缺省情況下,IPv6組播路由處於關閉狀態 |
在配置IPv6組播路由與轉發之前,需完成以下任務:
· 使能IPv6轉發功能並配置任一IPv6單播路由協議,實現域內網絡層互通
· 配置IPv6 PIM-DM(或IPv6 PIM-SM)
在配置IPv6組播路由與轉發之前,需準備以下數據:
· 單條IPv6組播轉發表項的最大下行節點數目
· IPv6組播轉發表的最大表項數
可以配置組播路由器按照最長匹配原則來選擇RPF路由,有關RPF路由選擇的詳細介紹,請參見“1.1.1 1. RPF檢查過程”一節。此外,通過配置根據組播源或組播源組進行IPv6組播流量的負載分擔,還可以優化存在多條IPv6組播數據流時的網絡流量。
表1-3 配置IPv6組播路由策略
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
配置按照最長匹配選擇RPF路由 |
multicast ipv6 longest-match |
可選 缺省情況下,選擇優先級最高的路由作為RPF路由 |
配置對IPv6組播流量進行負載分擔 |
multicast ipv6 load-splitting {source | source-group } |
可選 缺省情況下,不對IPv6組播流量進行負載分擔 |
multicast ipv6 load-splitting命令對IPv6雙向PIM不生效。
IPv6組播信息在網絡中的轉發並不是漫無邊際的,每個IPv6組播組對應的IPv6組播信息都必須在確定的範圍內傳遞。目前可以在所有支持IPv6組播轉發的接口上配置針對某個IPv6組播組或Scope值的轉發邊界。IPv6組播轉發邊界為指定範圍或Scope值的IPv6組播組劃定了邊界條件,如果IPv6組播報文的目的地址與邊界條件匹配,就停止轉發。當在一個接口上配置了IPv6組播轉發邊界後,將不能從該接口轉發IPv6組播報文(包括本機發出的IPv6組播報文),也不能從該接口接收IPv6組播報文。
表1-4 配置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組播轉發邊界 |
路由器為每個收到的IPv6組播數據報文都維護相應的轉發表項。但是,IPv6組播轉發表項過多可能會耗盡路由器內存,從而導致路由器性能下降。用戶可以根據實際組網情況和業務性能要求對IPv6組播轉發表中的表項數量進行限製。如果IPv6組播轉發表最大表項數的配置值小於當前值,則超出數目的表項並不會立刻被刪除,而必須由IPv6組播路由協議來刪除,同時也無法添加新的IPv6組播轉發表項。
路由器為每個下行節點複製一份IPv6組播數據報文並發送出去,每個下行節點就形成IPv6組播分發樹的一條分支。用戶可以根據實際組網情況和業務性能要求對IPv6組播轉發表中單條表項的下行節點數目(即出接口數目)進行限製,以緩解路由器的複製壓力。如果單條IPv6組播轉發表項的最大下行節點數目的配置值小於當前值,則超出數目的下行節點並不會被立刻刪除,而必須由IPv6組播路由協議來刪除,同時新增的下行節點將無法添加到該表項中。
表1-5 配置IPv6組播轉發表容量
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
配置IPv6組播轉發表的最大表項數 |
multicast ipv6 forwarding-table route-limit limit |
可選 缺省情況下,IPv6組播轉發表的最大表項數為1000 |
配置單條IPv6組播轉發表項的最大下行節點數目 |
multicast ipv6 forwarding-table downstream-limit limit |
可選 缺省情況下,單條IPv6組播轉發表項的最大下行節點數目為128 |
在完成上述配置後,在任意視圖下執行display命令可以顯示配置後IPv6組播路由與轉發的運行情況,通過查看顯示信息驗證配置的效果。
在用戶視圖下執行reset命令可以清除IPv6組播路由與轉發的統計信息。
表1-6 IPv6組播路由與轉發顯示和維護
操作 |
命令 |
查看IPv6組播邊界信息 |
display multicast ipv6 boundary { group [ ipv6-group-address [ prefix-length ] ] | scope [ scope-id ] } [ interface interface-type interface-number ] [ | { begin | exclude | include } regular-expression ] |
查看IPv6組播轉發表信息 |
display multicast ipv6 forwarding-table [ ipv6-source-address [ prefix-length ] | ipv6-group-address [ prefix-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 ] |
查看IPv6組播轉發表的DF信息 |
display multicast ipv6 forwarding-table df-info [ rp-address ] [ slot slot-number ] [ | { begin | exclude | include } regular-expression ] |
查看IPv6組播路由表信息 |
display multicast ipv6 routing-table [ ipv6-source-address [ prefix-length ] | ipv6-group-address [ prefix-length ] | incoming-interface { interface-type interface-number | register } | outgoing-interface { { exclude | include | match } { interface-type interface-number | register } } ] * [ | { begin | exclude | include } regular-expression ] |
查看IPv6組播源的RPF信息 |
display multicast ipv6 rpf-info ipv6-source-address [ ipv6-group-address ] [ | { begin | exclude | include } regular-expression ] |
清除IPv6組播轉發表中的轉發項 |
reset multicast ipv6 forwarding-table { { ipv6-source-address [ prefix-length ] | ipv6-group-address [ prefix-length ] | incoming-interface { interface-type interface-number | register } } * | all } |
清除IPv6組播路由表中的路由項 |
reset multicast ipv6 routing-table { { ipv6-source-address [ prefix-length ] | ipv6-group-address [ prefix-length ] | incoming-interface { interface-type interface-number | register } } * | all } |
有關DF(Designated Forwarder,指定轉發者)的詳細介紹,請參見“IP組播配置指導”中的“IPv6 PIM”。
· 執行reset命令將清除IPv6組播路由表或IPv6組播轉發表中的信息,可能導致IPv6組播信息無法正常傳輸;
· 清除IPv6組播路由表中的路由項後,IPv6組播轉發表中的相應表項也將隨之刪除;
· 清除IPv6組播轉發表中的轉發項後,IPv6組播路由表中的相應表項也將隨之刪除。
· 當某主機發送了加入IPv6組播組G的報文後,離該主機最近的路由器上卻沒有IPv6組播組G的組成員信息。中間路由器能成功接收IPv6組播數據,但數據不能到達末梢網絡。
· 中間路由器的接口收到IPv6組播數據,但在IPv6 PIM路由表裏沒有相應的(S,G)表項。
· 命令multicast ipv6 boundary用來過濾接口上收到的IPv6組播報文。如果報文沒有通過這個命令的IPv6 ACL匹配規則,則IPv6 PIM不能創建路由表項。
· 此外,IPv6 PIM中的命令source-policy用來過濾接收的IPv6組播報文。如果報文沒有通過這個命令的IPv6 ACL匹配規則,則IPv6 PIM也不能創建路由表項。
(1) 使用命令display current-configuration查看組播轉發邊界上配置的IPv6 ACL過濾規則。更改multicast ipv6 boundary命令的IPv6 ACL規則,使IPv6組播數據的源地址和IPv6組播組地址通過IPv6 ACL過濾。
(2) 檢查組播過濾器配置。使用命令display current-configuration查看組播過濾器的配置,更改source-policy命令的IPv6 ACL規則,使IPv6組播數據的源地址和IPv6組播組地址通過IPv6 ACL過濾。
不同款型規格的資料略有差異, 詳細信息請向具體銷售和400谘詢。H3C保留在沒有任何通知或提示的情況下對資料內容進行修改的權利!