MLD snooping

MLD Snooping是Multicast Listener Discovery Snooping(組播偵聽者發現協定窺探)的簡稱。它是運行在二層設備上的IPv6組播約束機制,用於管理和控制IPv6組播組。

基本介紹

  • 中文名組播偵聽者發現協定窺探
  • 外文名:Multicast Listener Discovery Snooping
  • 簡稱:MLD snooping
  • 用於:管理和控制IPv6組播組
協定簡介,基本概念,工作機制,

協定簡介

MLD Snooping原理
運行MLD Snooping的二層設備通過對收到的MLD報文進行分析,為連線埠和MAC組播地址建立起映射關係,並根據這樣的映射關係轉發IPv6組播數據。
二層設備運行MLD Snooping前後的對比二層設備運行MLD Snooping前後的對比
如圖 1所示,當二層設備沒有運行MLD Snooping時,IPv6組播數據報文在二層被廣播;當二層設備運行了MLD Snooping後,已知IPv6組播組的組播數據報文不會在二層被廣播,而在二層被組播給指定的接收者。
MLD Snooping通過二層組播將信息只轉發給有需要的接收者,可以帶來以下好處:
l 減少了二層網路中的廣播報文,節約了網路頻寬
l 增強了IPv6組播信息的安全性;
l 為實現對每台主機的單獨計費帶來了方便。

基本概念

1. MLD Snooping相關連線埠如圖 2所示,Router A連線組播源,在Switch A和Switch B上分別運行MLD Snooping,Host A和Host C為接收者主機(即IPv6組播組成員)。
l 路由器連線埠(Router Port):交換機上朝向三層組播設備(DR或MLD查詢器)一側的連線埠,如Switch A和Switch B各自的Ethernet1/1連線埠。交換機將本設備上的所有路由器連線埠都記錄在路由器連線埠列表中。
l 成員連線埠(Member Port):又稱IPv6組播組成員連線埠,表示交換機上朝向IPv6組播組成員一側的連線埠,如Switch A的Ethernet1/2和Ethernet1/3連線埠,以及Switch B的Ethernet1/2連線埠。交換機將本設備上的所有成員連線埠都記錄在MLD Snooping轉發表中。
l 本文中提到的路由器連線埠都是指交換機上朝向組播路由器的連線埠,而不是指路由器上的連線埠。
l 如不特別指明,本文中提到的路由器/成員連線埠均包括動態和靜態連線埠。
l 在運行了MLD Snooping的交換機上,所有收到源地址不為0::0的MLD普遍組查詢報文或IPv6 PIM Hello報文的連線埠都將被視為動態路由器連線埠。
2. MLD Snooping動態連線埠老化定時器表 1 MLD Snooping動態連線埠老化定時器
定時器
說明
逾時前應收到的報文
逾時後交換機的動作
動態路由器連線埠老化定時器
交換機為其每個動態路由器連線埠都啟動一個定時器,其逾時時間就是動態路由器連線埠老化時間
源地址不為0::0的MLD普遍組查詢報文或IPv6 PIM Hello報文
將該連線埠從路由器連線埠列表中刪除
動態成員連線埠老化定時器
當一個連線埠動態加入某IPv6組播組時,交換機為該連線埠啟動一個定時器,其逾時時間就是動態成員連線埠老化時間
MLD成員關係報告報文
將該連線埠從MLD Snooping轉發表中刪除
MLD Snooping連線埠老化機制只針對動態連線埠,靜態連線埠永不老化。

工作機制

運行了MLD Snooping的交換機對不同MLD動作的具體處理方式如下:
本節中所描述的增刪連線埠動作均只針對動態連線埠,靜態連線埠只能通過相應的配置進行增刪。
1. 普遍組查詢MLD查詢器定期向本地網段內的所有主機與路由器(FF02::1)傳送MLD普遍組查詢報文,以查詢該網段有哪些IPv6組播組的成員。
在收到MLD普遍組查詢報文時,交換機將其通過VLAN內除接收連線埠以外的其它所有連線埠轉發出去,並對該報文的接收連線埠做如下處理:
l 如果在路由器連線埠列表中已包含該動態路由器連線埠,則重置其老化定時器。
l 如果在路由器連線埠列表中尚未包含該動態路由器連線埠,則將其添加到路由器連線埠列表中,並啟動其老化定時器。
2. 報告成員關係以下情況,主機會向MLD查詢器傳送MLD成員關係報告報文:
l 當IPv6組播組的成員主機收到MLD查詢報文後,會回復MLD成員關係報告報文。
l 如果主機要加入某個IPv6組播組,它會主動向MLD查詢器傳送MLD成員關係報告報文以聲明加入該IPv6組播組。
在收到MLD成員關係報告報文時,交換機將其通過VLAN內的所有路由器連線埠轉發出去,從該報文中解析出主機要加入的IPv6組播組地址,並對該報文的接收連線埠做如下處理:
l 如果不存在該IPv6組播組所對應的轉發表項,則創建轉發表項,將該連線埠作為動態成員連線埠添加到出連線埠列表中,並啟動其老化定時器;
l 如果已存在該IPv6組播組所對應的轉發表項,但其出連線埠列表中不包含該連線埠,則將該連線埠作為動態成員連線埠添加到出連線埠列表中,並啟動其老化定時器;
l 如果已存在該IPv6組播組所對應的轉發表項,且其出連線埠列表中已包含該動態成員連線埠,則重置其老化定時器。
交換機不會將MLD成員關係報告報文通過非路由器連線埠轉發出去,因為根據主機上的MLD成員關係報告抑制機制,如果非路由器連線埠下還有該IPv6組播組的成員主機,則這些主機在收到該報告報文後便抑制了自身的報告,從而使交換機無法獲知這些連線埠下還有該IPv6組播組的成員主機。
3. 離開組播組當主機離開IPv6組播組時,會通過傳送MLD離開組報文,以通知組播路由器自己離開了某個IPv6組播組。當交換機從某動態成員連線埠上收到MLD離開組報文時,首先判斷要離開的IPv6組播組所對應的轉發表項是否存在,以及該IPv6組播組所對應轉發表項的出連線埠列表中是否包含該接收連線埠:
l 如果不存在該IPv6組播組對應的轉發表項,或者該IPv6組播組對應轉發表項的出連線埠列表中不包含該連線埠,交換機不會向任何連線埠轉發該報文,而將其直接丟棄;
l 如果存在該IPv6組播組對應的轉發表項,且該IPv6組播組對應轉發表項的出連線埠列表中包含該連線埠,交換機會將該報文通過VLAN內的所有路由器連線埠轉發出去。同時,由於並不知道該接收連線埠下是否還有該IPv6組播組的其它成員,所以交換機不會立刻把該連線埠從該IPv6組播組所對應轉發表項的出連線埠列表中刪除,而是重置其老化定時器。
當MLD查詢器收到MLD離開組報文後,從中解析出主機要離開的IPv6組播組的地址,並通過接收連線埠向該IPv6組播組傳送MLD特定組查詢報文。交換機在收到MLD特定組查詢報文後,將其通過VLAN內的所有路由器連線埠和該IPv6組播組的所有成員連線埠轉發出去。對於MLD離開組報文的接收連線埠(假定為動態成員連線埠),交換機在其老化時間內:
l 如果從該連線埠收到了主機回響該特定組查詢的MLD成員關係報告報文,則表示該連線埠下還有該IPv6組播組的成員,於是重置其老化定時器;
l 如果沒有從該連線埠收到主機回響該特定組查詢的MLD成員關係報告報文,則表示該連線埠下已沒有該IPv6組播組的成員,則在其老化時間逾時後,將其從該IPv6組播組所對應轉發表項的出連線埠列表中刪除。
MLD Snooping Proxying
通過在邊緣設備上配置MLD Snooping Proxying(MLD Snooping代理)功能,可以減少其上游設備收到的MLD報告報文和離開報文的數量,有效提高其上游設備的整體性能。配置了MLD Snooping Proxying功能的設備(稱為MLD Snooping代理設備),在其上游設備看來,相當於一台主機;而在其下游主機看來,則相當於一台查詢器。
儘管在其上游設備看來,MLD Snooping代理設備相當於一台主機,但主機上的MLD成員關係報告抑制機制在MLD Snooping代理設備上並不會生效。
作為MLD Snooping代理設備的Switch A,對其上游設備Router A來說是一台主機,代理下游主機向Router A傳送報告報文和離開報文;而對其下游的主機來說則是一台查詢器,代理Router A向下游主機傳送普遍組查詢報文和特定組查詢報文,維護組成員關係。
MLD Snooping代理設備對MLD報文的處理方式如表 2所示。
表 2 MLD Snooping代理設備對MLD報文的處理方式
MLD報文類型
處理方式
普遍組查詢報文
收到普遍組查詢報文後,向本VLAN內除接收連線埠以外的所有連線埠轉發;同時根據本地維護的組成員關係生成報告報文,並向所有路由器連線埠傳送
特定組查詢報文
收到針對某IPv6組播組的特定組查詢報文時,若該組對應的轉發表項中還有成員連線埠,則向所有路由器連線埠回復該組的報告報文
報告報文
從某連線埠收到某IPv6組播組的報告報文時,若已存在該組對應的轉發表項,且其出連線埠列表中已包含該動態成員連線埠,則重置其老化定時器;若已存在該組對應的轉發表項,但其出連線埠列表中不包含該連線埠,則將該連線埠作為動態成員連線埠添加到出連線埠列表中,並啟動其老化定時器;若尚不存在該組對應的轉發表項,則創建轉發表項,將該連線埠作為動態成員連線埠添加到出連線埠列表中,並啟動其老化定時器,然後向所有路由器連線埠傳送該組的報告報文
離開報文
從某連線埠收到某IPv6組播組的離開報文後,向該連線埠傳送針對該組的特定組查詢報文。只有當刪除某IPv6組播組對應轉發表項中的最後一個成員連線埠時,才會向所有路由器連線埠傳送該組的離開報文
交換機對IPv6組播協定報文的特殊處理規則
支持MLD Snooping功能的交換機使能了三層IPv6組播路由後,在不同的情況下對各種IPv6組播協定報文的處理有所差異。具體規則如下:
(1) 如果交換機上只使能了MLD,或同時使能了MLD和IPv6 PIM,進行常規處理。
(2) 如果交換機上只使能了IPv6 PIM:
l 對於MLD報文,將其當作未知報文在VLAN內進行廣播;
l 對於IPv6 PIM Hello報文,則會為其維護相應的動態路由器連線埠。
(3) 在交換機上關閉MLD時:
l 如果未使能IPv6 PIM,則刪除所有動態成員連線埠和動態路由器連線埠;
l 如果已使能IPv6 PIM,則刪除動態成員連線埠,只保留動態路由器連線埠。
(4) 在交換機上關閉IPv6 PIM時:
l 如果未使能MLD,則刪除動態路由器連線埠;
l 如果已使能MLD,則保留所有動態成員連線埠和動態路由器連線埠。

相關詞條

熱門詞條

聯絡我們