04-MLD Snooping配置
本章節下載: 04-MLD Snooping配置 (574.42 KB)
MLD Snooping是Multicast Listener Discovery Snooping(組播偵聽者發現協議窺探)的簡稱。它是運行在二層設備上的IPv6組播約束機製,用於管理和控製IPv6組播組。
運行MLD Snooping的二層設備通過對收到的MLD報文進行分析,為端口和MAC組播地址建立起映射關係,並根據這樣的映射關係轉發IPv6組播數據。
如圖1-1所示,當二層設備沒有運行MLD Snooping時,IPv6組播數據報文在二層被廣播;當二層設備運行了MLD Snooping後,已知IPv6組播組的組播數據報文不會在二層被廣播,而在二層被組播給指定的接收者。
圖1-1 二層設備運行MLD Snooping前後的對比
MLD Snooping通過二層組播將信息隻轉發給有需要的接收者,可以帶來以下好處:
· 減少了二層網絡中的廣播報文,節約了網絡帶寬;
· 增強了IPv6組播信息的安全性;
· 為實現對每台主機的單獨計費帶來了方便。
如圖1-2所示,Router A連接組播源,在Switch A和Switch B上分別運行MLD Snooping,Host A和Host C為接收者主機(即IPv6組播組成員)。
結合圖1-2,介紹一下MLD Snooping相關的端口概念:
· 路由器端口(Router Port):交換機上朝向三層組播設備(DR或MLD查詢器)一側的端口,如Switch A和Switch B各自的GigabitEthernet1/0/1端口。交換機將本設備上的所有路由器端口都記錄在路由器端口列表中。
· 成員端口(Member Port):又稱IPv6組播組成員端口,表示交換機上朝向IPv6組播組成員一側的端口,如Switch A的GigabitEthernet1/0/2和GigabitEthernet1/0/3端口,以及Switch B的GigabitEthernet1/0/2端口。交換機將本設備上的所有成員端口都記錄在MLD Snooping轉發表中。
· 本文中提到的路由器端口都是指交換機上朝向組播路由器的端口,而不是指路由器上的端口。
· 如不特別指明,本文中提到的路由器/成員端口均包括動態和靜態端口。
· 在運行了MLD Snooping的交換機上,所有收到源地址不為0::0的MLD普遍組查詢報文或IPv6 PIM Hello報文的端口都將被視為動態路由器端口。
表1-1 MLD Snooping動態端口老化定時器
定時器 |
說明 |
超時前應收到的報文 |
超時後交換機的動作 |
動態路由器端口老化定時器 |
交換機為其每個動態路由器端口都啟動一個定時器,其超時時間就是動態路由器端口老化時間 |
源地址不為0::0的MLD普遍組查詢報文或IPv6 PIM Hello報文 |
將該端口從路由器端口列表中刪除 |
動態成員端口老化定時器 |
當一個端口動態加入某IPv6組播組時,交換機為該端口啟動一個定時器,其超時時間就是動態成員端口老化時間 |
MLD成員關係報告報文 |
將該端口從MLD Snooping轉發表中刪除 |
MLD Snooping端口老化機製隻針對動態端口,靜態端口永不老化。
運行了MLD Snooping的交換機對不同MLD動作的具體處理方式如下:
MLD查詢器定期向本地網段內的所有主機與路由器(FF02::1)發送MLD普遍組查詢報文,以查詢該網段有哪些IPv6組播組的成員。
在收到MLD普遍組查詢報文時,交換機將其通過VLAN內除接收端口以外的其它所有端口轉發出去,並對該報文的接收端口做如下處理:
· 如果在路由器端口列表中已包含該動態路由器端口,則重置其老化定時器。
· 如果在路由器端口列表中尚未包含該動態路由器端口,則將其添加到路由器端口列表中,並啟動其老化定時器。
以下情況,主機會向MLD查詢器發送MLD成員關係報告報文:
· 當IPv6組播組的成員主機收到MLD查詢報文後,會回複MLD成員關係報告報文。
· 如果主機要加入某個IPv6組播組,它會主動向MLD查詢器發送MLD成員關係報告報文以聲明加入該IPv6組播組。
在收到MLD成員關係報告報文時,交換機將其通過VLAN內的所有路由器端口轉發出去,從該報文中解析出主機要加入的IPv6組播組地址,並對該報文的接收端口做如下處理:
· 如果不存在該IPv6組播組所對應的轉發表項,則創建轉發表項,將該端口作為動態成員端口添加到出端口列表中,並啟動其老化定時器;
· 如果已存在該IPv6組播組所對應的轉發表項,但其出端口列表中不包含該端口,則將該端口作為動態成員端口添加到出端口列表中,並啟動其老化定時器;
· 如果已存在該IPv6組播組所對應的轉發表項,且其出端口列表中已包含該動態成員端口,則重置其老化定時器。
交換機不會將MLD成員關係報告報文通過非路由器端口轉發出去,因為根據主機上的MLD成員關係報告抑製機製,如果非路由器端口下還有該IPv6組播組的成員主機,則這些主機在收到該報告報文後便抑製了自身的報告,從而使交換機無法獲知這些端口下還有該IPv6組播組的成員主機。
當主機離開IPv6組播組時,會通過發送MLD離開組報文,以通知組播路由器自己離開了某個IPv6組播組。當交換機從某動態成員端口上收到MLD離開組報文時,首先判斷要離開的IPv6組播組所對應的轉發表項是否存在,以及該IPv6組播組所對應轉發表項的出端口列表中是否包含該接收端口:
· 如果不存在該IPv6組播組對應的轉發表項,或者該IPv6組播組對應轉發表項的出端口列表中不包含該端口,交換機不會向任何端口轉發該報文,而將其直接丟棄;
· 如果存在該IPv6組播組對應的轉發表項,且該IPv6組播組對應轉發表項的出端口列表中包含該端口,交換機會將該報文通過VLAN內的所有路由器端口轉發出去。同時,由於並不知道該接收端口下是否還有該IPv6組播組的其它成員,所以交換機不會立刻把該端口從該IPv6組播組所對應轉發表項的出端口列表中刪除,而是重置其老化定時器。
當MLD查詢器收到MLD離開組報文後,從中解析出主機要離開的IPv6組播組的地址,並通過接收端口向該IPv6組播組發送MLD特定組查詢報文。交換機在收到MLD特定組查詢報文後,將其通過VLAN內的所有路由器端口和該IPv6組播組的所有成員端口轉發出去。對於MLD離開組報文的接收端口(假定為動態成員端口),交換機在其老化時間內:
· 如果從該端口收到了主機響應該特定組查詢的MLD成員關係報告報文,則表示該端口下還有該IPv6組播組的成員,於是重置其老化定時器;
· 如果沒有從該端口收到主機響應該特定組查詢的MLD成員關係報告報文,則表示該端口下已沒有該IPv6組播組的成員,則在其老化時間超時後,將其從該IPv6組播組所對應轉發表項的出端口列表中刪除。
為了減少上遊設備收到的MLD報告報文和離開報文的數量,可以通過在邊緣設備上配置MLD Snooping Proxying(MLD Snooping代理)功能,使其能夠代理下遊主機來向上遊設備發送報告報文和離開報文。配置了MLD Snooping Proxying功能的設備稱為MLD Snooping代理設備,在其上遊設備看來,它就相當於一台主機。
盡管在其上遊設備看來,MLD Snooping代理設備相當於一台主機,但主機上的MLD成員關係報告抑製機製在MLD Snooping代理設備上並不會生效。
如圖1-3所示,作為MLD Snooping代理設備的Switch A,對其上遊的MLD查詢器Router A來說相當於一台主機,代理下遊主機向Router A發送報告報文和離開報文。
MLD Snooping代理設備對MLD報文的處理方式如表1-2所示。
表1-2 MLD Snooping代理設備對MLD報文的處理方式
MLD報文類型 |
處理方式 |
普遍組查詢報文 |
收到普遍組查詢報文後,向本VLAN內除接收端口以外的所有端口轉發;同時根據本地維護的組成員關係生成報告報文,並向所有路由器端口發送 |
特定組查詢報文 |
收到針對某IPv6組播組的特定組查詢報文時,若該組對應的轉發表項中還有成員端口,則向所有路由器端口回複該組的報告報文 |
報告報文 |
從某端口收到某IPv6組播組的報告報文時,若已存在該組對應的轉發表項,且其出端口列表中已包含該動態成員端口,則重置其老化定時器;若已存在該組對應的轉發表項,但其出端口列表中不包含該端口,則將該端口作為動態成員端口添加到出端口列表中,並啟動其老化定時器;若尚不存在該組對應的轉發表項,則創建轉發表項,將該端口作為動態成員端口添加到出端口列表中,並啟動其老化定時器,然後向所有路由器端口發送該組的報告報文 |
離開報文 |
從某端口收到某IPv6組播組的離開報文後,向該端口發送針對該組的特定組查詢報文。隻有當刪除某IPv6組播組對應轉發表項中的最後一個成員端口時,才會向所有路由器端口發送該組的離開報文 |
與MLD Snooping相關的協議規範有:
· RFC 4541:Considerations for Internet Group Management Protocol (IGMP) and Multicast Listener Discovery (MLD) Snooping Switches
表1-3 MLD Snooping配置任務簡介
配置任務 |
說明 |
詳細配置 |
|
配置MLD Snooping基本功能 |
使能MLD Snooping |
必選 |
|
配置MLD Snooping版本 |
可選 |
||
配置IPv6靜態組播MAC地址表項 |
可選 |
||
配置MLD Snooping端口功能 |
配置動態端口老化定時器 |
可選 |
|
配置靜態端口 |
可選 |
||
配置模擬主機加入 |
可選 |
||
配置端口快速離開 |
可選 |
||
禁止端口成為動態路由器端口 |
可選 |
||
配置MLD Snooping查詢器 |
使能MLD Snooping查詢器 |
可選 |
|
配置MLD查詢和響應 |
可選 |
||
配置MLD查詢報文源IPv6地址 |
可選 |
||
配置MLD Snooping Proxying |
使能MLD Snooping Proxying |
可選 |
|
配置代理發送MLD報文的源IPv6地址 |
可選 |
||
配置MLD Snooping策略 |
配置IPv6組播組過濾器 |
可選 |
|
配置IPv6組播數據報文源端口過濾 |
可選 |
||
配置丟棄未知IPv6組播數據報文 |
可選 |
||
配置MLD成員關係報告報文抑製 |
可選 |
||
配置端口加入的IPv6組播組最大數量 |
可選 |
||
配置IPv6組播組替換 |
可選 |
||
配置MLD報文的802.1p優先級 |
可選 |
對於MLD Snooping的相關配置來說:
· MLD-Snooping視圖下的配置對所有VLAN都有效,VLAN視圖下的配置隻對當前VLAN有效。對於某VLAN來說,優先采用該VLAN視圖下的配置,隻有當在該VLAN視圖下沒有進行配置時,才采用MLD-Snooping視圖下的相應配置。
· MLD-Snooping視圖下的配置對所有端口都有效;二層以太網端口視圖下的配置隻對當前端口有效;二層聚合接口視圖下的配置隻對當前接口有效;端口組視圖下的配置對當前端口組中的所有端口有效。對於某端口來說,優先采用二層以太網端口視圖、二層聚合接口視圖或端口組視圖下的配置,隻有當在上述視圖下沒有進行配置時,才采用MLD-Snooping視圖下的相應配置。
· 二層聚合接口與其各成員端口上的配置互不影響,且成員端口上的配置隻有當該端口退出聚合組後才會生效,二層聚合接口上的配置也不會參與聚合計算。
在配置MLD Snooping基本功能之前,需完成以下任務:
· 配置相應VLAN
在配置MLD Snooping基本功能之前,需準備以下數據:
· MLD Snooping的版本
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
全局使能MLD Snooping,並進入MLD-Snooping視圖 |
mld-snooping |
必選 缺省情況下,MLD Snooping處於關閉狀態 |
退回係統視圖 |
quit |
- |
進入VLAN視圖 |
vlan vlan-id |
- |
在VLAN內使能MLD Snooping |
mld-snooping enable |
必選 缺省情況下,VLAN內的MLD Snooping處於關閉狀態 |
· 在VLAN內使能MLD Snooping之前,必須先在係統視圖下全局使能MLD Snooping,否則將無法在VLAN內使能MLD Snooping。
· 在VLAN內使能MLD Snooping之後,不允許在該VLAN所對應的VLAN接口上再使能MLD和IPv6 PIM,反之亦然。
· 在指定VLAN內使能了MLD Snooping之後,該功能隻在屬於該VLAN的端口上生效。
配置MLD Snooping的版本,實際上就是配置MLD Snooping可以處理的MLD報文的版本:
· 當MLD Snooping的版本為1時,MLD Snooping能夠對MLDv1的報文進行處理,對MLDv2的報文則不進行處理,而是在VLAN內將其廣播;
· 當MLD Snooping的版本為2時,MLD Snooping能夠對MLDv1和MLDv2的報文進行處理。
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入VLAN視圖 |
vlan vlan-id |
- |
配置MLD Snooping的版本 |
mld-snooping version version-number |
可選 缺省情況下,MLD Snooping的版本為1 |
當MLD Snooping的版本由版本2切換到版本1時,係統將清除所有通過動態加入的MLD Snooping轉發表項;對於在版本2下通過手工配置而靜態加入的MLD Snooping轉發表項,則分為以下兩種情況進行不同的處理:
· 如果配置的僅僅是靜態加入IPv6組播組,而沒有指定IPv6組播源,則這些轉發表項將不會被清除;
· 如果配置的是指定了IPv6組播源的靜態加入IPv6組播源組,則這些轉發表項將會被清除,並且當再次切換回版本2時,這些轉發表項將被重新恢複。
在二層組播中,除了可通過二層IPv6組播協議(如MLD Snooping)動態建立IPv6組播MAC地址表項外,還可以通過手工方式配置IPv6組播MAC地址表項,將端口與IPv6組播MAC地址進行靜態綁定,以便靈活控製IPv6組播信息送達的目的端口。
表1-6 係統視圖下配置IPv6靜態組播MAC地址表項
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
配置靜態組播MAC地址表項 |
mac-address multicast mac-address interface interface-list vlan vlan-id |
必選 缺省情況下,沒有配置靜態組播MAC地址表項 |
表1-7 接口視圖下配置IPv6靜態組播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-address multicast命令的詳細介紹,請參見“IP組播命令參考”中的“IGMP Snooping配置命令”。
· 係統視圖下的配置對指定接口有效,而接口視圖下的配置隻對當前接口(或當前端口組內的所有接口)有效。
· 可手工配置的IPv6組播MAC地址表項為除3333-xxxx-xxxx以外的任意合法的IPv6組播MAC地址,其中x代表0~F的任意一個十六進製數。
在配置MLD Snooping端口功能之前,需完成以下任務:
· 在VLAN內使能MLD Snooping
· 配置相應端口組
在配置MLD Snooping端口功能之前,需準備以下數據:
· 動態路由器端口老化時間
· 動態成員端口老化時間
· IPv6組播組和IPv6組播源的地址
對於動態路由器端口,如果在其老化時間超時前沒有收到MLD普遍組查詢報文或者IPv6 PIM Hello報文,交換機將把該端口從路由器端口列表中刪除。
對於動態成員端口,如果在其老化時間超時前沒有收到該IPv6組播組的MLD成員關係報告報文,交換機將把該端口從該IPv6組播組所對應轉發表的出端口列表中刪除。
如果IPv6組播組成員的變動比較頻繁,可以把動態成員端口老化時間設置小一些,反之亦然。
表1-8 全局配置動態端口老化定時器
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入MLD-Snooping視圖 |
mld-snooping |
- |
配置動態路由器端口老化時間 |
router-aging-time interval |
可選 缺省情況下,動態路由器端口的老化時間為260秒 |
配置動態成員端口老化時間 |
host-aging-time interval |
可選 缺省情況下,動態成員端口的老化時間為260秒 |
表1-9 在VLAN內配置動態端口老化定時器
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入VLAN視圖 |
vlan vlan-id |
- |
配置動態路由器端口老化時間 |
mld-snooping router-aging-time interval |
可選 缺省情況下,動態路由器端口的老化時間為260秒 |
配置動態成員端口老化時間 |
mld-snooping host-aging-time interval |
可選 缺省情況下,動態成員端口的老化時間為260秒 |
如果某端口所連接的主機需要固定接收發往某IPv6組播組的IPv6組播數據,可以配置該端口靜態加入該IPv6組播組,成為靜態成員端口。
可以通過將交換機上的端口配置為靜態路由器端口,從而使交換機上所有收到的IPv6組播數據可以通過該端口被轉發出去。
操作 |
命令 |
說明 |
|
進入係統視圖 |
system-view |
- |
|
進入相應視圖 |
進入以太網或二層聚合接口視圖 |
interface interface-type interface-number |
二者必選其一 |
進入端口組視圖 |
port-group manual port-group-name |
||
配置靜態成員端口 |
mld-snooping static-group ipv6-group-address [ source-ip ipv6-source-address ] vlan vlan-id |
必選 缺省情況下,端口不是靜態成員端口 |
|
配置靜態路由器端口 |
mld-snooping static-router-port vlan vlan-id |
必選 缺省情況下,端口不是靜態路由器端口 |
· 隻有指定了有效的IPv6組播源地址,且MLD Snooping的版本為2時,配置端口靜態加入IPv6組播源組才會有效。
· 靜態成員端口不會對MLD查詢器發出的查詢報文進行響應;在配置靜態成員端口,即配置或取消靜態加入IPv6組播組或組播源組時,端口也不會主動發送MLD成員關係報告報文或MLD離開組報文。
· 靜態成員端口和靜態路由器端口都不會老化,隻能通過相應的undo命令刪除。
通常情況下,運行MLD的主機會對MLD查詢器發出的查詢報文進行響應。如果主機由於某種原因無法響應,就可能導致組播路由器認為該網段沒有該IPv6組播組的成員,從而取消相應的轉發路徑。
為避免這種情況的發生,可以將交換機的端口配置成為IPv6組播組成員(即配置模擬主機加入)。當收到MLD查詢報文時由模擬主機進行響應,從而保證該交換機能夠繼續收到IPv6組播報文。
模擬主機加入功能的實現原理如下:
· 在某端口上使能模擬主機加入功能時,交換機會通過該端口主動發送一個MLD成員關係報告報文;
· 在某端口上使能了模擬主機加入功能後,當收到MLD普遍組查詢報文時,交換機會通過該端口響應一個MLD成員關係報告報文;
· 在某端口上關閉模擬主機加入功能時,交換機會通過該端口發送一個MLD離開組報文。
操作 |
命令 |
說明 |
|
進入係統視圖 |
system-view |
- |
|
進入相應視圖 |
進入以太網或二層聚合接口視圖 |
interface interface-type interface-number |
二者必選其一 |
進入端口組視圖 |
port-group manual port-group-name |
||
配置模擬主機加入IPv6組播組或組播源組 |
mld-snooping host-join ipv6-group-address [ source-ip ipv6-source-address ] vlan vlan-id |
必選 缺省情況下,沒有配置模擬主機加入IPv6組播組或組播源組 |
· 每配置一次模擬主機加入,即相當於啟動了一台獨立的主機。例如,當收到MLD查詢報文時,每條配置所對應的模擬主機將分別進行響應。
· 與靜態成員端口不同,配置了模擬主機加入的端口會作為動態成員端口而參與動態成員端口的老化過程。
端口快速離開是指當交換機從某端口收到主機發送的離開某IPv6組播組的MLD離開組報文時,直接把該端口從對應轉發表項的出端口列表中刪除。此後,當交換機收到對該IPv6組播組的MLD特定組查詢報文時,交換機將不再向該端口轉發。
在交換機上,在隻連接有一個接收者的端口上,可以通過使能端口快速離開功能來節約帶寬和資源;而在連接有多個接收者的端口上,如果交換機或該端口所在的VLAN已使能了丟棄未知IPv6組播數據報文功能,則不要再使能端口快速離開功能,否則,一個接收者的離開將導致該端口下屬於同一IPv6組播組的其它接收者無法收到IPv6組播數據。
表1-12 全局配置端口快速離開
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入MLD-Snooping視圖 |
mld-snooping |
- |
使能端口快速離開功能 |
fast-leave [ vlan vlan-list ] |
必選 缺省情況下,端口快速離開功能處於關閉狀態 |
表1-13 在端口上配置端口快速離開
操作 |
命令 |
說明 |
|
進入係統視圖 |
system-view |
- |
|
進入相應視圖 |
進入以太網或二層聚合接口視圖 |
interface interface-type interface-number |
二者必選其一 |
進入端口組視圖 |
port-group manual port-group-name |
||
使能端口快速離開功能 |
mld-snooping fast-leave [ vlan vlan-list ] |
必選 缺省情況下,端口快速離開功能處於關閉狀態 |
目前,在IPv6組播用戶接入網絡中存在以下問題:
· 如果交換機收到了某用戶主機發來的MLD普遍組查詢報文或IPv6 PIM Hello報文,那麼該主機所在的端口就將成為動態路由器端口,從而使VLAN內的所有IPv6組播報文都會向該端口轉發,導致該用戶主機收到的IPv6組播報文失控。
· 同時,用戶主機發送MLD普遍組查詢報文或IPv6 PIM Hello報文,也會影響該接入網絡中三層設備上的IPv6組播路由協議狀態(如影響MLD查詢器或DR的選舉),嚴重時可能導致網絡中斷。
當禁止某端口成為動態路由器端口後,即使該端口收到了MLD普遍組查詢報文或IPv6 PIM Hello報文,該端口也不會成為動態路由器端口,從而能夠有效解決上述問題,提高網絡的安全性和對IPv6組播用戶的控製能力。
表1-14 禁止端口成為動態路由器端口
操作 |
命令 |
說明 |
|
進入係統視圖 |
system-view |
- |
|
進入相應視圖 |
進入以太網或二層聚合接口視圖 |
interface interface-type interface-number |
二者必選其一 |
進入端口組視圖 |
port-group manual port-group-name |
||
禁止端口成為動態路由器端口 |
mld-snooping router-port-deny [ vlan vlan-list ] |
必選 缺省情況下,不禁止端口成為動態路由器端口 |
本配置與靜態路由器端口的配置互不影響。
在配置MLD Snooping查詢器之前,需完成以下任務:
· 在VLAN內使能MLD Snooping
在配置MLD Snooping查詢器之前,需準備以下數據:
· 發送MLD普遍組查詢報文的時間間隔
· 發送MLD特定組查詢報文的時間間隔
· MLD普遍組查詢的最大響應時間
· MLD普遍組查詢報文的源IPv6地址
· MLD特定組查詢報文的源IPv6地址
在運行了MLD的IPv6組播網絡中,會有一台三層組播設備充當MLD查詢器,負責發送MLD查詢報文,使三層組播設備能夠在網絡層建立並維護IPv6組播轉發表項,從而在網絡層正常轉發IPv6組播數據。
但是,在一個沒有三層組播設備的網絡中,由於二層設備並不支持MLD,因此無法實現MLD查詢器的相關功能。為了解決這個問題,可以在二層設備上使能MLD Snooping查詢器,使二層設備能夠在數據鏈路層建立並維護IPv6組播轉發表項,從而在數據鏈路層正常轉發IPv6組播數據。
表1-15 使能MLD Snooping查詢器
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入VLAN視圖 |
vlan vlan-id |
- |
使能MLD Snooping查詢器 |
mld-snooping querier |
必選 缺省情況下,MLD Snooping查詢器處於關閉狀態 |
盡管MLD Snooping查詢器並不參與MLD查詢器的選舉,但在運行了MLD的IPv6組播網絡中,配置MLD Snooping查詢器不但沒有實際的意義,反而可能會由於其發送的MLD普遍組查詢報文的源IPv6地址較小而影響MLD查詢器的選舉。
可以根據網絡的實際情況來修改發送MLD普遍組查詢報文的時間間隔。
在收到MLD查詢報文(包括普遍組查詢和特定組查詢)後,主機會為其所加入的每個IPv6組播組都啟動一個定時器,定時器的值在0到最大響應時間(該時間值由主機從所收到的MLD查詢報文的最大響應時間字段獲得)中隨機選定,當定時器的值減為0時,主機就會向該定時器對應的IPv6組播組發送MLD成員關係報告報文。
合理配置MLD查詢的最大響應時間,既可以使主機對MLD查詢報文做出快速響應,又可以減少由於定時器同時超時,造成大量主機同時發送報告報文而引起的網絡擁塞:
· 對於MLD普遍組查詢報文來說,通過配置MLD普遍組查詢的最大響應時間來填充其最大響應時間字段;
· 對於MLD特定組查詢報文來說,所配置的發送MLD特定組查詢報文的時間間隔將被填充到其最大響應時間字段。也就是說,MLD特定組查詢的最大響應時間從數值上與發送MLD特定組查詢報文的時間間隔相同。
表1-16 全局配置MLD查詢和響應
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入MLD-Snooping視圖 |
mld-snooping |
- |
配置MLD普遍組查詢的最大響應時間 |
max-response-time interval |
可選 缺省情況下,MLD普遍組查詢的最大響應時間為10秒 |
配置發送MLD特定組查詢報文的時間間隔 |
last-listener-query-interval interval |
可選 缺省情況下,發送MLD特定組查詢報文的時間間隔為1秒 |
表1-17 在VLAN內配置MLD查詢和響應
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入VLAN視圖 |
vlan vlan-id |
- |
配置發送MLD普遍組查詢報文的時間間隔 |
mld-snooping query-interval interval |
可選 缺省情況下,發送MLD普遍組查詢報文的時間間隔為125秒 |
配置MLD普遍組查詢的最大響應時間 |
mld-snooping max-response-time interval |
可選 缺省情況下,MLD普遍組查詢的最大響應時間為10秒 |
配置發送MLD特定組查詢報文的時間間隔 |
mld-snooping last-listener-query-interval interval |
可選 缺省情況下,發送MLD特定組查詢報文的時間間隔為1秒 |
應確保發送MLD普遍組查詢報文的時間間隔大於MLD普遍組查詢的最大響應時間,否則有可能造成對IPv6組播組成員的誤刪。
可以通過此項配置改變MLD查詢報文的源IPv6地址。
表1-18 配置MLD查詢報文源IPv6地址
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入VLAN視圖 |
vlan vlan-id |
- |
配置MLD普遍組查詢報文源IPv6地址 |
mld-snooping general-query source-ip { ipv6-address | current-interface } |
可選 缺省情況下,MLD普遍組查詢報文的源IPv6地址為FE80::02FF:FFFF:FE00:0001 |
配置MLD特定組查詢報文源IPv6地址 |
mld-snooping special-query source-ip { ipv6-address | current-interface } |
可選 缺省情況下,MLD特定組查詢報文的源IPv6地址為FE80::02FF:FFFF:FE00:0001 |
MLD查詢報文源IPv6地址的改變可能會影響網段內MLD查詢器的選舉。
在配置MLD Snooping Proxying之前,需完成以下任務:
· 在VLAN內使能MLD Snooping
在配置MLD Snooping Proxying之前,需準備以下數據:
· 代理發送MLD報告報文的源IPv6地址
· 代理發送MLD離開報文的源IPv6地址
當在有組播需求的VLAN內使能了MLD Snooping代理功能後,該設備就成為該VLAN內的MLD Snooping代理設備。
表1-19 使能MLD Snooping Proxying
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入VLAN視圖 |
vlan vlan-id |
- |
在VLAN內使能MLD Snooping代理功能 |
mld-snooping proxying enable |
必選 缺省情況下,VLAN內的MLD Snooping代理功能處於關閉狀態 |
通過本配置可以改變代理發送的MLD報告報文和離開報文的源IPv6地址。
表1-20 配置代理發送MLD報文的源IPv6地址
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入VLAN視圖 |
vlan vlan-id |
- |
配置代理發送MLD報告報文的源IPv6地址 |
mld-snooping report source-ip { ipv6-address | current-interface } |
必選 缺省情況下,代理發送MLD報告報文的源IPv6地址為FE80::02FF:FFFF:FE00:0001 |
配置代理發送MLD離開報文的源IPv6地址 |
mld-snooping done source-ip { ipv6-address | current-interface } |
缺省情況下,代理發送MLD離開報文的源IPv6地址為FE80::02FF:FFFF:FE00:0001 |
在配置MLD Snooping策略之前,需完成以下任務:
· 在VLAN內使能MLD Snooping
在配置MLD Snooping策略之前,需準備以下數據:
· IPv6組播組過濾的IPv6 ACL規則
· 允許端口通過的IPv6組播組最大數量
· MLD報文的802.1p優先級
在使能了MLD Snooping的交換機上,通過配置IPv6組播組過濾器,可以限製用戶對組播節目的點播。
在實際應用中,當用戶點播某個組播節目時,主機會發起一個MLD成員關係報告報文,該報文到達交換機後,進行ACL檢查:如果該接收端口可以加入這個IPv6組播組,則將其列入到MLD Snooping轉發表中;否則交換機就丟棄該報文。這樣,未通過ACL檢查的IPv6組播數據就不會送到該端口,從而達到控製用戶點播組播節目的目的。
表1-21 全局配置IPv6組播組過濾器
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入MLD-Snooping視圖 |
mld-snooping |
- |
配置IPv6組播組過濾器 |
group-policy acl6-number [ vlan vlan-list ] |
必選 缺省情況下,沒有配置全局IPv6組播組過濾器,即各VLAN內主機可以加入任意合法的IPv6組播組 |
表1-22 在端口上配置IPv6組播組過濾器
操作 |
命令 |
說明 |
|
進入係統視圖 |
system-view |
- |
|
進入相應視圖 |
進入以太網或二層聚合接口視圖 |
interface interface-type interface-number |
二者必選其一 |
進入端口組視圖 |
port-group manual port-group-name |
||
配置IPv6組播組過濾器 |
mld-snooping group-policy acl6-number [ vlan vlan-list ] |
必選 缺省情況下,端口上沒有配置IPv6組播組過濾器,即該端口下的主機可以加入任意合法的IPv6組播組 |
通過配置IPv6組播數據報文源端口過濾功能,可以允許或禁止端口作為組播源端口:
· 使能了該功能後,端口下不能連接組播源,因為該端口將過濾掉所有的IPv6組播數據報文(但允許IPv6組播協議報文通過),隻能連接IPv6組播數據接收者;
· 關閉了該功能後,端口下既可以連接組播源,也可以連接IPv6組播數據接收者。
表1-23 全局配置IPv6組播數據報文源端口過濾
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入MLD-Snooping視圖 |
mld-snooping |
- |
使能IPv6組播數據報文源端口過濾功能 |
source-deny port interface-list |
必選 缺省情況下,IPv6組播數據報文源端口過濾功能處於關閉狀態 |
表1-24 在端口上配置IPv6組播數據報文源端口過濾
操作 |
命令 |
說明 |
|
進入係統視圖 |
system-view |
- |
|
進入相應視圖 |
進入二層以太網端口視圖 |
interface interface-type interface-number |
二者必選其一 |
進入端口組視圖 |
port-group manual port-group-name |
||
使能IPv6組播數據報文源端口過濾功能 |
mld-snooping source-deny |
必選 缺省情況下,IPv6組播數據報文源端口過濾功能處於關閉狀態 |
未知IPv6組播數據報文是指在MLD Snooping轉發表中不存在對應轉發表項的那些IPv6組播數據報文,當交換機收到發往未知組播組的IPv6報文時,IPv6數據報文會在VLAN內廣播,這樣會占用大量的網絡帶寬,影響轉發效率。
此時用戶可以在交換機上啟動丟棄未知IPv6組播數據報文功能,當交換機收到未知IPv6組播數據報文時,隻向其路由器端口轉發,不在VLAN內廣播。如果交換機沒有路由器端口,IPv6數據報文會被丟棄,不再轉發。
表1-25 在VLAN內配置丟棄未知IPv6組播數據報文
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入VLAN視圖 |
vlan vlan-id |
- |
使能丟棄未知IPv6組播數據報文功能 |
mld-snooping drop-unknown |
必選 缺省情況下,丟棄未知IPv6組播數據報文的功能處於關閉狀態,即對未知IPv6組播數據報文進行廣播 |
當二層設備收到來自某IPv6組播組成員的MLD成員關係報告報文時,會將該報文轉發給與其直連的三層設備。這樣,當二層設備上存在屬於某IPv6組播組的多個成員時,與其直連的三層設備會收到這些成員發送的相同MLD成員關係報告報文。
當使能了MLD成員關係報告報文抑製功能後,在一個查詢間隔內二層設備隻會把收到的某IPv6組播組內的第一個MLD成員關係報告報文轉發給三層設備,而不繼續向三層設備轉發來自同一組播組的其它MLD成員關係報告報文,這樣可以減少網絡中的報文數量。
表1-26 配置MLD成員關係報告報文抑製
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入MLD-Snooping視圖 |
mld-snooping |
- |
使能MLD成員關係報告報文抑製功能 |
report-aggregation |
可選 缺省情況下,MLD成員關係報告報文抑製功能處於使能狀態 |
在MLD Snooping代理設備上,不論是否使能了MLD成員關係報告報文抑製功能,隻要存在某IPv6組播組對應的轉發表項,就會將從下遊收到的針對該組的報告報文都抑製掉。
通過配置允許端口加入的IPv6組播組的最大數量,可以限製用戶點播組播節目的數量,從而控製了端口上的數據流量。
表1-27 配置端口加入的IPv6組播組最大數量
操作 |
命令 |
說明 |
|
進入係統視圖 |
system-view |
- |
|
進入相應視圖 |
進入以太網或二層聚合接口視圖 |
interface interface-type interface-number |
二者必選其一 |
進入端口組視圖 |
port-group manual port-group-name |
||
配置允許端口加入的IPv6組播組最大數量 |
mld-snooping group-limit limit [ vlan vlan-list ] |
可選 缺省情況下,允許端口加入的IPv6組播組最大數量為200 |
在配置允許端口加入的IPv6組播組最大數量時,如果當前端口上的IPv6組播組數量已超過配置值,係統將把該端口相關的所有轉發表項從MLD Snooping轉發表中刪除,該端口下的主機都需要重新加入IPv6組播組,直至該端口上的IPv6組播組數量達到限製值為止。其中,如果該端口已配置為靜態成員端口,係統會將靜態成員端口的配置重新生效一次;如果在該端口上配置了模擬主機加入,係統在收到模擬主機發來的報告報文之後才會重新建立相應的轉發表項。
由於某些特殊的原因,當前交換機或端口上通過的IPv6組播組數目有可能會超過交換機或該端口的限定;另外,在某些特定的應用中,交換機上新加入的IPv6組播組需要自動替換已存在的IPv6組播組(一個典型的應用就是“頻道切換”,即用戶通過加入一個新的IPv6組播組就能完成離開原IPv6組播組並切換到新IPv6組播組的動作)。
針對以上情況,可以在交換機或者某些端口上使能IPv6組播組替換功能。當交換機或端口上加入的IPv6組播組數量已達到限定值時:
· 若使能了IPv6組播組替換功能,則新加入的IPv6組播組會自動替代已存在的IPv6組播組,替代規則是替代IPv6地址最小的IPv6組播組;
· 若沒有使能IPv6組播組替換功能,則自動丟棄新的MLD成員關係報告報文。
表1-28 全局配置IPv6組播組替換
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入MLD-Snooping視圖 |
mld-snooping |
- |
使能IPv6組播組替換功能 |
overflow-replace [ vlan vlan-list ] |
必選 缺省情況下,IPv6組播組替換功能處於關閉狀態 |
表1-29 在端口上配置IPv6組播組替換
操作 |
命令 |
說明 |
|
進入係統視圖 |
system-view |
- |
|
進入相應視圖 |
進入以太網或二層聚合接口視圖 |
interface interface-type interface-number |
二者必選其一 |
進入端口組視圖 |
port-group manual port-group-name |
||
使能IPv6組播組替換功能 |
mld-snooping overflow-replace [ vlan vlan-list ] |
必選 缺省情況下,IPv6組播組替換功能處於關閉狀態 |
在使能IPv6組播組替換功能之前,必須首先配置端口通過的IPv6組播組的最大數量(具體配置過程請參見“1.7.6 配置端口加入的IPv6組播組最大數量”),否則IPv6組播組替換功能將不能生效。
可以通過本配置來改變MLD報文的802.1p優先級。當交換機的出端口發生擁塞時,交換機通過識別報文的802.1p優先級,優先發送優先級較高的報文。
表1-30 全局配置MLD報文的802.1p優先級
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入MLD-Snooping視圖 |
mld-snooping |
- |
配置MLD報文的802.1p優先級 |
dot1p-priority priority-number |
必選 缺省情況下,MLD報文的802.1p優先級為0 |
表1-31 在VLAN內配置MLD報文的802.1p優先級
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入VLAN視圖 |
vlan vlan-id |
- |
配置MLD報文的802.1p優先級 |
mld-snooping dot1p-priority priority-number |
必選 缺省情況下,MLD報文的802.1p優先級為0 |
在完成上述配置後,在任意視圖下執行display命令可以顯示配置後MLD Snooping的運行情況,通過查看顯示信息驗證配置的效果。
在用戶視圖下執行reset命令可以清除IPv6組播組信息。
表1-32 MLD Snooping顯示和維護
配置 |
命令 |
|
查看MLD Snooping組播組的信息 |
display mld-snooping group [ vlan vlan-id ] [ slot slot-number ] [ verbose ] [ | { begin | exclude | include } regular-expression ] |
|
查看MLD Snooping監聽到的MLD報文的統計信息 |
display mld-snooping statistics [ | { begin | exclude | include } regular-expression ] |
|
查看IPv6靜態組播MAC地址表信息 |
display mac-address [ mac-address [ vlan vlan-id ] | [ multicast ] [ vlan vlan-id ] [ count ] ] [ | { begin | exclude | include } regular-expression ] |
|
清除動態加入的MLD Snooping組記錄 |
reset mld-snooping group { ipv6-group-address | all } [ vlan vlan-id ] |
|
清除MLD Snooping監聽到的所有MLD報文的統計信息 |
reset mld-snooping statistics |
|
· reset mld-snooping group命令隻對使能了MLD Snooping的VLAN有效,而對VLAN接口上使能了MLD的VLAN無效。
· reset mld-snooping group隻對動態加入的MLD Snooping組有效,對靜態加入的MLD Snooping組無效。
· 有關display mac-address multicast命令的詳細介紹,請參見“IP組播命令參考”中的“IGMP Snooping配置命令”。
· 如圖1-4所示,Router A通過GigabitEthernet1/0/2接口連接IPv6組播源(Source),通過GigabitEthernet1/0/1接口連接Switch A;
· Router A上運行MLDv1,Switch A上運行版本1的MLD Snooping,並由Router A充當MLD查詢器;
· 通過配置,使連接在Switch A上的接收者(Receiver)Host A和Host B隻能接收發往IPv6組播組FF1E::101的IPv6組播數據;
· 通過配置,使Host A和Host B即使由於某種意外而臨時中斷接收IPv6組播數據時,發往IPv6組播組FF1E::101的IPv6組播數據也能夠不間斷地通過Switch A的接口GigabitEthernet1/0/3和GigabitEthernet1/0/4轉發出去。
圖1-4 IPv6組策略及模擬主機加入配置組網圖
使能各設備的IPv6轉發功能,並按照圖1-4配置各接口的IPv6地址和前綴長度,具體配置過程略。
(2) 配置Router A
# 使能IPv6組播路由,在各接口上使能IPv6 PIM-DM,並在接口GigabitEthernet1/0/1上使能MLD。
<RouterA> system-view
[RouterA] multicast ipv6 routing-enable
[RouterA] interface gigabitethernet 1/0/1
[RouterA-GigabitEthernet1/0/1] mld enable
[RouterA-GigabitEthernet1/0/1] pim ipv6 dm
[RouterA-GigabitEthernet1/0/1] quit
[RouterA] interface gigabitethernet 1/0/2
[RouterA-GigabitEthernet1/0/2] pim ipv6 dm
[RouterA-GigabitEthernet1/0/2] quit
(3) 配置Switch A
# 全局使能MLD Snooping。
<SwitchA> system-view
[SwitchA] mld-snooping
[SwitchA-mld-snooping] quit
# 創建VLAN 100,把端口GigabitEthernet1/0/1到GigabitEthernet1/0/4添加到該VLAN中;在該VLAN內使能MLD Snooping,並使能丟棄未知IPv6組播數據報文功能。
[SwitchA] vlan 100
[SwitchA-vlan100] port gigabitethernet 1/0/1 to gigabitethernet 1/0/4
[SwitchA-vlan100] mld-snooping enable
[SwitchA-vlan100] mld-snooping drop-unknown
[SwitchA-vlan100] quit
# 配置IPv6組播組過濾器,以限定VLAN 100內的主機隻能加入IPv6組播組FF1E::101。
[SwitchA] acl ipv6 number 2001
[SwitchA-acl6-basic-2001] rule permit source ff1e::101 128
[SwitchA-acl6-basic-2001] quit
[SwitchA] mld-snooping
[SwitchA–mld-snooping] group-policy 2001 vlan 100
[SwitchA–mld-snooping] quit
# 在GigabitEthernet1/0/3和GigabitEthernet1/0/4上分別配置模擬主機加入IPv6組播組FF1E::101。
[SwitchA] interface gigabitethernet 1/0/3
[SwitchA-GigabitEthernet1/0/3] mld-snooping host-join ff1e::101 vlan 100
[SwitchA-GigabitEthernet1/0/3] quit
[SwitchA] interface gigabitethernet 1/0/4
[SwitchA-GigabitEthernet1/0/4] mld-snooping host-join ff1e::101 vlan 100
[SwitchA-GigabitEthernet1/0/4] quit
(4) 檢驗配置效果
# 查看Switch A上VLAN 100內MLD Snooping組播組的詳細信息。
[SwitchA] display mld-snooping group vlan 100 verbose
Total 1 IP Group(s).
Total 1 IP Source(s).
Total 1 MAC Group(s).
Port flags: D-Dynamic port, S-Static port, C-Copy port
Subvlan flags: R-Real VLAN, C-Copy VLAN
Vlan(id):100.
Total 1 IP Group(s).
Total 1 IP Source(s).
Total 1 MAC Group(s).
Router port(s):total 1 port(s).
GE1/0/1 (D) ( 00:01:30 )
IP group(s):the following ip group(s) match to one mac group.
IP group address:FF1E::101
(::, FF1E::101):
Attribute: Host Port
Host port(s):total 2 port(s).
GE1/0/3 (D) ( 00:03:23 )
GE1/0/4 (D) ( 00:04:10 )
MAC group(s):
MAC group address:3333-0000-0101
Host port(s):total 2 port(s).
GE1/0/3
GE1/0/4
由此可見,Switch A上的端口GigabitEthernet1/0/3和GigabitEthernet1/0/4已經加入了IPv6組播組FF1E::101。
· 如圖1-5所示,Router A通過GigabitEthernet1/0/2接口連接IPv6組播源(Source),通過GigabitEthernet1/0/1接口連接Switch A;
· Router A上運行MLDv1,Switch A、Switch B和Switch C上運行版本1的MLD Snooping,並由Router A充當MLD查詢器;
· Host A和Host C均為IPv6組播組FF1E::101的固定接收者(Receiver),通過將Switch C上的端口GigabitEthernet1/0/3和GigabitEthernet1/0/5配置為IPv6組播組FF1E::101的靜態成員端口,可以增強IPv6組播數據在傳輸過程中的可靠性;
· 假設由於受STP等鏈路層協議的影響,為了避免出現環路,Switch A—Switch C的轉發路徑在正常情況下是阻斷的,IPv6組播數據隻能通過Switch A—Switch B—Switch C的路徑傳遞給連接在Switch C上的接收者;
· 要求通過將Switch A上連接Switch C的端口GigabitEthernet1/0/3配置為靜態路由器端口,從而保證當Switch A—Switch B—Switch C的路徑出現阻斷時,IPv6組播數據可以幾乎不間斷地通過Switch A—Switch C的新路徑傳遞給接收者。
如果沒有配置靜態路由器端口,那麼當Switch A—Switch B—Switch C的路徑出現阻斷時,至少需要等待一個MLD查詢和響應周期完成後,IPv6組播數據才能通過Switch A—Switch C的新路徑傳遞給接收者,IPv6組播數據的傳輸在這個過程中將中斷。
有關STP(Spanning Tree Protocol,生成樹協議)的詳細介紹,請參見“二層技術-以太網交換配置指導”中的“MSTP配置”。
(1) 使能IPv6轉發功能,並配置IPv6地址
使能各設備的IPv6轉發功能,並按照圖1-5配置各接口的IPv6地址和前綴長度,具體配置過程略。
(2) 配置Router A
# 使能IPv6組播路由,在各接口上使能IPv6 PIM-DM,並在接口GigabitEthernet1/0/1上使能MLD。
<RouterA> system-view
[RouterA] multicast ipv6 routing-enable
[RouterA] interface gigabitethernet 1/0/1
[RouterA-GigabitEthernet1/0/1] mld enable
[RouterA-GigabitEthernet1/0/1] pim ipv6 dm
[RouterA-GigabitEthernet1/0/1] quit
[RouterA] interface gigabitethernet 1/0/2
[RouterA-GigabitEthernet1/0/2] pim ipv6 dm
[RouterA-GigabitEthernet1/0/2] quit
(3) 配置Switch A
# 全局使能MLD Snooping。
<SwitchA> system-view
[SwitchA] mld-snooping
[SwitchA-mld-snooping] quit
# 創建VLAN 100,把端口GigabitEthernet1/0/1到GigabitEthernet1/0/3添加到該VLAN中,並在該VLAN內使能MLD Snooping。
[SwitchA] vlan 100
[SwitchA-vlan100] port gigabitethernet 1/0/1 to gigabitethernet 1/0/3
[SwitchA-vlan100] mld-snooping enable
[SwitchA-vlan100] quit
# 把GigabitEthernet1/0/3配置為靜態路由器端口。
[SwitchA] interface gigabitethernet 1/0/3
[SwitchA-GigabitEthernet1/0/3] mld-snooping static-router-port vlan 100
[SwitchA-GigabitEthernet1/0/3] quit
(4) 配置Switch B
# 全局使能MLD Snooping。
<SwitchB> system-view
[SwitchB] mld-snooping
[SwitchB-mld-snooping] quit
# 創建VLAN 100,把端口GigabitEthernet1/0/1和GigabitEthernet1/0/2添加到該VLAN中,並在該VLAN內使能MLD Snooping。
[SwitchB] vlan 100
[SwitchB-vlan100] port gigabitethernet 1/0/1 gigabitethernet 1/0/2
[SwitchB-vlan100] mld-snooping enable
[SwitchB-vlan100] quit
(5) 配置Switch C
# 全局使能MLD Snooping。
<SwitchC> system-view
[SwitchC] mld-snooping
[SwitchC-mld-snooping] quit
# 創建VLAN 100,把端口GigabitEthernet1/0/1到GigabitEthernet1/0/5添加到該VLAN中,並在該VLAN內使能MLD Snooping。
[SwitchC] vlan 100
[SwitchC-vlan100] port gigabitethernet 1/0/1 to gigabitethernet 1/0/5
[SwitchC-vlan100] mld-snooping enable
[SwitchC-vlan100] quit
# 分別在端口GigabitEthernet1/0/3和GigabitEthernet1/0/5上配置靜態加入IPv6組播組FF1E::101。
[SwitchC] interface Gigabitethernet 1/0/3
[SwitchC-GigabitEthernet1/0/3] mld-snooping static-group ff1e::101 vlan 100
[SwitchC-GigabitEthernet1/0/3] quit
[SwitchC] interface Gigabitethernet 1/0/5
[SwitchC-GigabitEthernet1/0/5] mld-snooping static-group ff1e::101 vlan 100
[SwitchC-GigabitEthernet1/0/5] quit
(6) 檢驗配置效果
# 查看Switch A上VLAN 100內MLD Snooping組播組的詳細信息。
[SwitchA] display mld-snooping group vlan 100 verbose
Total 1 IP Group(s).
Total 1 IP Source(s).
Total 1 MAC Group(s).
Port flags: D-Dynamic port, S-Static port, C-Copy port
Subvlan flags: R-Real VLAN, C-Copy VLAN
Vlan(id):100.
Total 1 IP Group(s).
Total 1 IP Source(s).
Total 1 MAC Group(s).
Router port(s):total 2 port(s).
GE1/0/1 (D) ( 00:01:30 )
GE1/0/3 (S)
IP group(s):the following ip group(s) match to one mac group.
IP group address:FF1E::101
(::, FF1E::101):
Attribute: Host Port
Host port(s):total 1 port(s).
GE1/0/2 (D) ( 00:03:23 )
MAC group(s):
MAC group address:3333-0000-0101
Host port(s):total 1 port(s).
GE1/0/2
由此可見,Switch A上的端口GigabitEthernet1/0/3已經成為了靜態路由器端口。
# 查看Switch C上VLAN 100內MLD Snooping組播組的詳細信息。
[SwitchC] display mld-snooping group vlan 100 verbose
Total 1 IP Group(s).
Total 1 IP Source(s).
Total 1 MAC Group(s).
Port flags: D-Dynamic port, S-Static port, C-Copy port
Subvlan flags: R-Real VLAN, C-Copy VLAN
Vlan(id):100.
Total 1 IP Group(s).
Total 1 IP Source(s).
Total 1 MAC Group(s).
Router port(s):total 1 port(s).
GE1/0/2 (D) ( 00:01:23 )
IP group(s):the following ip group(s) match to one mac group.
IP group address:FF1E::101
(::, FF1E::101):
Attribute: Host Port
Host port(s):total 2 port(s).
GE1/0/3 (S)
GE1/0/5 (S)
MAC group(s):
MAC group address:3333-0000-0101
Host port(s):total 2 port(s).
GE1/0/3
GE1/0/5
由此可見,Switch C上的端口GigabitEthernet1/0/3和GigabitEthernet1/0/5已經成為了IPv6組播組FF1E::101的靜態成員端口。
· 如圖1-6所示,在一個沒有三層設備的純二層網絡環境中,IPv6組播源Source 1和Source 2分別向IPv6組播組FF1E::101和FF1E::102發送IPv6組播數據,Host A和Host C是IPv6組播組FF1E::101的接收者(Receiver),Host B和Host D則是IPv6組播組FF1E::102的接收者;
· 所有接收者均使用MLDv1,所有交換機上都運行版本1的MLD Snooping,並選擇距IPv6組播源較近的Switch A來充當MLD Snooping查詢器;
· 為了防止交換機在沒有二層IPv6組播轉發表項時將IPv6組播數據在VLAN內廣播,要求在所有交換機上都使能丟棄未知IPv6組播數據報文的功能。
圖1-6 MLD Snooping查詢器配置組網圖
(1) 配置Switch A
# 使能IPv6轉發功能,並全局使能MLD Snooping。
<SwitchA> system-view
[SwitchA] ipv6
[SwitchA] mld-snooping
[SwitchA-mld-snooping] quit
# 創建VLAN 100,並把端口GigabitEthernet1/0/1到GigabitEthernet1/0/3添加到該VLAN中。
[SwitchA] vlan 100
[SwitchA-vlan100] port gigabitethernet 1/0/1 to gigabitethernet 1/0/3
# 在VLAN 100內使能MLD Snooping,並使能丟棄未知IPv6組播數據報文功能。
[SwitchA-vlan100] mld-snooping enable
[SwitchA-vlan100] mld-snooping drop-unknown
# 在VLAN 100內使能MLD Snooping查詢器。
[SwitchA-vlan100] mld-snooping querier
[SwitchA-vlan100] quit
(2) 配置Switch B
# 使能IPv6轉發功能,並全局使能MLD Snooping。
<SwitchB> system-view
[SwitchB] ipv6
[SwitchB] mld-snooping
[SwitchB-mld-snooping] quit
# 創建VLAN 100,並把端口GigabitEthernet1/0/1到GigabitEthernet1/0/4添加到該VLAN中。
[SwitchB] vlan 100
[SwitchB-vlan100] port gigabitethernet 1/0/1 to gigabitethernet 1/0/4
# 在VLAN 100內使能MLD Snooping,並使能丟棄未知IPv6組播數據報文功能。
[SwitchB-vlan100] mld-snooping enable
[SwitchB-vlan100] mld-snooping drop-unknown
[SwitchB-vlan100] quit
Switch C和Switch D的配置與Switch B相似,配置過程略。
(3) 檢驗配置效果
當MLD Snooping查詢器開始工作之後,除查詢器以外的所有交換機都能收到MLD普遍組查詢報文。通過使用display mld-snooping statistics命令可以查看MLD報文的統計信息,例如:
# 查看Switch B上收到的MLD報文的統計信息。
[SwitchB] display mld-snooping statistics
Received MLD general queries:3.
Received MLDv1 specific queries:0.
Received MLDv1 reports:12.
Received MLD dones:0.
Sent MLDv1 specific queries:0.
Received MLDv2 reports:0.
Received MLDv2 reports with right and wrong records:0.
Received MLDv2 specific queries:0.
Received MLDv2 specific sg queries:0.
Sent MLDv2 specific queries:0.
Sent MLDv2 specific sg queries:0.
Received error MLD messages:0.
· 如圖1-7所示,Router A通過GigabitEthernet1/0/2接口連接IPv6組播源(Source),通過GigabitEthernet1/0/1接口連接Switch A;
· Router A上運行MLDv1,Switch A上運行版本1的MLD Snooping,並由Router A充當MLD查詢器;
· 通過配置,使Switch A能夠代理下遊主機向Router A發送的MLD報告報文和離開報文,以及響應Router A發來的MLD查詢報文並向下遊主機轉發。
圖1-7 MLD Snooping Proxying配置組網圖
(1) 配置IPv6地址
使能各設備的IPv6轉發功能,並按照圖1-7配置各接口的IPv6地址和前綴長度,具體配置過程略。
(2) 配置Router A
# 使能IPv6組播路由,在各接口上使能IPv6 PIM-DM,並在接口GigabitEthernet1/0/1上使能MLD。
<RouterA> system-view
[RouterA] multicast ipv6 routing-enable
[RouterA] interface gigabitethernet 1/0/1
[RouterA-GigabitEthernet1/0/1] mld enable
[RouterA-GigabitEthernet1/0/1] pim ipv6 dm
[RouterA-GigabitEthernet1/0/1] quit
[RouterA] interface gigabitethernet 1/0/2
[RouterA-GigabitEthernet1/0/2] pim ipv6 dm
[RouterA-GigabitEthernet1/0/2] quit
(3) 配置Switch A
# 全局使能MLD Snooping。
<SwitchA> system-view
[SwitchA] mld-snooping
[SwitchA-mld-snooping] quit
# 創建VLAN 100,把端口GigabitEthernet1/0/1到GigabitEthernet1/0/4添加到該VLAN中;在該VLAN內使能MLD Snooping,並使能MLD Snooping Proxying。
[SwitchA] vlan 100
[SwitchA-vlan100] port gigabitethernet 1/0/1 to gigabitethernet 1/0/4
[SwitchA-vlan100] mld-snooping enable
[SwitchA-vlan100] mld-snooping proxying enable
[SwitchA-vlan100] quit
(4) 檢驗配置效果
當配置完成後,Host A和Host B分別發送組地址為FF1E::101的MLD加入報文,Switch A收到該報文後通過其路由器端口GigabitEthernet1/0/1向Router A也發送該組的加入報文。通過使用display mld-snooping group和display mld group命令可以分別查看MLD Snooping組播組和MLD組播組的信息,例如:
# 查看Switch A上MLD Snooping組播組的信息。
[SwitchA] display mld-snooping group
Total 1 IP Group(s).
Total 1 IP Source(s).
Total 1 MAC Group(s).
Port flags: D-Dynamic port, S-Static port, C-Copy port
Subvlan flags: R-Real VLAN, C-Copy VLAN
Vlan(id):100.
Total 1 IP Group(s).
Total 1 IP Source(s).
Total 1 MAC Group(s).
Router port(s):total 1 port(s).
GE1/0/1 (D)
IP group(s):the following ip group(s) match to one mac group.
IP group address:FF1E::101
(::, FF1E::101):
Host port(s):total 2 port(s).
GE1/0/3 (D)
GE1/0/4 (D)
MAC group(s):
MAC group address:3333-0000-0101
Host port(s):total 2 port(s).
GE1/0/3
GE1/0/4
# 查看Router A上MLD組播組的信息。
[RouterA] display mld group
Total 1 MLD Group(s).
Interface group report information
GigabitEthernet1/0/1(2001::1):
Total 1 MLD Group reported
Group Address: FF1E::101
Last Reporter: FE80::2FF:FFFF:FE00:1
Uptime: 00:00:03
Expires: 00:04:17
當Host A離開IPv6組播組FF1E::101時,向Switch A發送該組的MLD離開報文,但由於Host B仍未離開該組,因此Switch A並不會刪除該組,也不會向Router A發送該組的離開報文,隻是在該組對應轉發表項的成員端口列表中將端口GigabitEthernet1/0/3刪除。通過使用display mld-snooping group命令可以查看MLD Snooping組播組的信息,例如:
# 查看Switch A上MLD Snooping組播組的信息。
[SwitchA] display mld-snooping group
Total 1 IP Group(s).
Total 1 IP Source(s).
Total 1 MAC Group(s).
Port flags: D-Dynamic port, S-Static port, C-Copy port
Subvlan flags: R-Real VLAN, C-Copy VLAN
Vlan(id):100.
Total 1 IP Group(s).
Total 1 IP Source(s).
Total 1 MAC Group(s).
Router port(s):total 1 port(s).
GE1/0/1 (D)
IP group(s):the following ip group(s) match to one mac group.
IP group address:FF1E::101
(::, FF1E::101):
Host port(s):total 1 port(s).
GE1/0/4 (D)
MAC group(s):
MAC group address:3333-0000-0101
Host port(s):total 1 port(s).
GE1/0/4
交換機不能實現MLD snooping二層組播功能。
MLD Snooping沒有使能。
(1) 使用display current-configuration命令查看MLD Snooping的運行狀態。
(2) 如果是沒有使能MLD Snooping,則需先在係統視圖下使用mld-snooping命令全局使能MLD Snooping,然後在VLAN視圖下使用mld-snooping enable命令使能VLAN內的MLD Snooping。
(3) 如果隻是沒有在相應VLAN下使能MLD Snooping,則隻需在VLAN視圖下使用mld-snooping enable命令使能VLAN內的MLD Snooping。
配置了IPv6組播組策略,隻允許主機加入某些特定的IPv6組播組,但主機仍然可以收到發往其它IPv6組播組的IPv6組播數據。
· IPv6 ACL規則配置不正確;
· IPv6組播組策略應用不正確;
· 沒有使能丟棄未知IPv6組播數據報文的功能,使得屬於過濾策略之外的IPv6組播數據報文(即未知IPv6組播數據報文)被廣播。
(1) 使用display acl ipv6命令查看所配置的IPv6 ACL規則,檢查其是否與所要實現的IPv6組播組過濾策略相符合。
(2) 在MLD-Snooping視圖或相應的接口視圖下使用display this命令查看是否應用了正確的IPv6組播組策略。如果沒有,則使用group-policy或mld-snooping group-policy命令應用正確的IPv6組播組策略。
(3) 使用display current-configuration命令查看是否已使能丟棄未知IPv6組播數據報文的功能。如果沒有使能,則使用mld-snooping drop-unknown命令使能丟棄未知IPv6組播數據報文功能。
不同款型規格的資料略有差異, 詳細信息請向具體銷售和400谘詢。H3C保留在沒有任何通知或提示的情況下對資料內容進行修改的權利!