IGMP-Snooping相关学习
IGMP-Snooping相關學習
定義
IGMP Snooping (Internet Group Management Protocol Snooping)是一種IPv4二層組播協議,通過偵聽三層組播設備和用戶主機之間發送的組播協議報文來維護組播報文的出接口信息,從而管理和控制組播數據報文在數據鏈路層的轉發。
目的
在很多情況下,組播報文要不可避免地經過一些二層交換設備,尤其是在局域網環境里。如圖1所示,在組播用戶和三層組播設備Router之間,組播報文要經過二層交換機Switch。
當Router將組播報文轉發至Switch以后,Switch負責將組播報文轉發給組播用戶。由于組播報文的目的地址為組播組地址,在二層設備上是學習不到這一類MAC表項的,因此組播報文就會在所有接口進行廣播,和它在同一廣播域內的組播成員和非組播成員都能收到組播報文。這樣不但浪費了網絡帶寬,而且影響了網絡信息安全。
IGMP Snooping有效地解決了這個問題。配置IGMP Snooping后,二層組播設備可以偵聽和分析組播用戶和上游路由器之間的IGMP報文,根據這些信息建立二層組播轉發表項,控制組播數據報文轉發。這樣就防止了組播數據在二層網絡中的廣播。
基本原理
IGMP Snooping是二層組播的基本功能,可以實現組播數據在數據鏈路層的轉發和控制。當主機和上游三層設備之間傳遞的IGMP協議報文通過二層組播設備時,IGMP Snooping分析報文攜帶的信息,根據這些信息建立和維護二層組播轉發表,從而指導組播數據在數據鏈路層按需轉發。
如圖1所示,當組播數據從三層組播設備Router轉發下來以后,處于接入邊緣的二層組播設備Switch負責將組播數據轉發給用戶主機,使用戶收看所點播的節目。當Switch沒有運行IGMP Snooping時,組播數據在二層被廣播;當Switch運行了IGMP Snooping后,組播數據不會在二層廣播,而是會被Switch發送給指定的接收者。
使能IGMP Snooping功能后,Switch會偵聽主機和上游三層設備之間交互的IGMP報文,通過分析報文中攜帶的信息(報文類型、組播組地址、接收報文的接口等),建立和維護二層組播轉發表,從而指導組播數據在數據鏈路層按需轉發。
基本概念
如圖2所示,三層設備Router從組播源接收數據并向下游轉發,在二層組播設備SwitchA和SwitchB上分別運行IGMP Snooping,HostA、HostB和HostC為接收者主機(即組播組成員)。
結合圖2,介紹IGMP Snooping中相關端口的概念。
路由器端口和成員端口,是二層組播轉發表項中的一個重要信息:出接口。其中路由器端口相當于上游接口,成員端口相當于下游接口。通過協議報文學習到的端口,對應的為動態表項;而手工配置的端口,對應的為靜態表項。
工作機制
二層組播設備運行了IGMP Snooping后,收到不同的IGMP協議報文會進行不同的處理,并在此過程中建立起二層組播轉發表項.
此外,當二層組播設備收到PIM Hello報文時,向VLAN內除接收接口外的其他所有接口轉發,并對接收接口做如下處理:
1).如果路由器端口列表中已包含該動態路由器端口,則重置老化定時器。
2).如果路由器端口列表中尚未包含該接口,則將其添加進去,并啟動老化定時器。
IGMP Snooping Over VXLAN
1.背景信息
在VXLAN網絡中,VTEP在收到組播流量后,缺省情況下是通過在BD內廣播的方式發送給接收者。這種方式既增加了網絡的流量負荷,又使很多未點播相應節目的接收者收到了不需要的組播流量,造成了帶寬浪費。為了解決上述問題,可以在VXLAN網絡中部署二層組播特性,即IGMP Snooping Over VXLAN,實現組播流量在VXLAN網絡中按需轉發。
2.實現流程
如圖1所示,組播源和組播接收者分別連接在VXLAN網絡中不同的VTEP上。其中,在VTEP1和VTEP2之間、VTEP1和VTEP3之間、VTEP2和VTEP3之間建立VXLAN隧道。利用IGMP Snooping Over VXLAN可以實現組播流量在BD內的精確轉發,保證組播數據在VXLAN隧道和用戶側接口都能按需復制,有效地節省VXLAN網絡的帶寬占用。
IGMP Snooping Over VXLAN的實現過程如下:
a.在控制層面,需建立二層組播轉發表項,二層組播轉發表項由BD名稱、組播組地址、路由器端口、動態組播組成員端口構成。
在VTEP1、VTEP2和VTEP3上創建二層廣播域即BD(Bridge Domain)。
1.將VTEP1配置為查詢器,VTEP1節點分別向VTEP2、VTEP3發送IGMP Query報文。
2.VTEP2和VTEP3通過VXLAN隧道接收到IGMP Query報文后,向BD內的接收者轉發該報文,并將VXLAN隧道側接口設置為路由器端口。
3.接收者收到IGMP Query報文后,如果該接收者點播了相應的節目,則回應IGMP Report報文。因此,只有連接VTEP2的接收者回應IGMP Report報文。
4.VTEP2收到IGMP Report報文后,從報文中解析出接收者要加入的組播組地址,并將接收接口設置為動態組播組成員端口(即轉發組播數據的出接口),然后將IGMP Report報文發送給VTEP1。
5.VTEP1通過VXLAN隧道接收到IGMP Report報文后,從報文中解析出接收者要加入的組播組地址,并將VXLAN隧道端口設置為動態組播組成員端口。
b.在轉發層面,當組播流經過VTEP1、VTEP2時,兩者根據二層組播轉發表項進行組播數據轉發。當組播流量進入VXLAN隧道后,封裝后的數據在Underlay網絡采用頭端復制的方式進行轉發。
3.部署思路
1).在各VTEP節點上創建BD,VTEP節點與組播源或組播接收者之間通過BD內的接口進行組播數據的轉發。
2).在各VTEP節點的BD內配置IGMP Snooping功能,VTEP節點通過偵聽IGMP報文,建立起二層組播轉發表項,并根據該表項實現組播數據在數據鏈路層的按需轉發。
3).在VTEP1節點的BD內使能查詢器功能,使VTEP1節點承擔起查詢器的角色。
總結
以上是生活随笔為你收集整理的IGMP-Snooping相关学习的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 利用phpstudy(小皮面板)配置本地
- 下一篇: Android Accessibilit