播IGMP Snooping配置
1、打開IGMP Snooping功能
使能全局IGMP Snooping功能,是進行其他IGMP Snooping配置的前提。VLAN下使能IGMP Snooping功能,是VLAN下其他IGMP Snooping配置生效的前提。
缺省情況下,交換機的全局IGMP Snooping功能未使能。
1.1、優化接口板上組播報文的復制能力。
[Huawei]assign multicast-resource-mode optimize
如果當前的組播報文需求超過8192份,使能IGMP Snooping功能之前,需要首先運行此命令優化接口板上組播報文的復制能力。
1.2、使能全局IGMP Snooping功能。
[Huawei]igmp-snooping enable
1.3、配置VLAN中組播數據是按IP地址還是MAC地址轉發。缺省按IP地址轉發。
[Huawei-vlan2]l2-multicast forwarding-mode ?
ip IP mode
mac MAC mode
配置VLAN中組播數據轉發模式需要在沒有使能該VLAN的IGMP Snooping功能時進行。配置完成后需要使能VLAN內IGMP Snooping功能才會生效。
通過此命令將VLAN內組播數據轉發模式配置為按MAC模式轉發后,該VLAN不能再被配置為組播VLAN。
如果當前設備按MAC模式轉發組播數據,在網絡中規劃組播IP地址時,請避免選擇為協議預留的組播IP地址映射成相同組播MAC地址的組播IP地址。否則,可能造成使用保留組地址發送協議報文的協議無法正常運行。
比如:OSPF協議使用224.0.0.5發送協議報文,映射后的組播MAC地址為01-00-5E-00-00-05。如果當前組播數據按MAC模式轉發,并且使用的組播IP地址是225.0.0.5,就會造成OSPF協議不能正常運行。
如果當前VLAN對應的VLANIF接口綁定了VPN實例,但未使能IGMP或PIM,只能配置該VLAN按MAC模式轉發組播數據。
如果仍希望該VLAN按IP模式轉發,可通過組播VLAN方式,將該VLAN設置為用戶VLAN,其他VLAN配置為組播VLAN,使得組播數據通過組播VLAN引流到用戶VLAN。
1.4、配置組播數據不向路由器端口轉發
[Huawei-vlan2]l2-multicast router-port-discard
配置組播數據不向路由器端口轉發需要在沒有使能該VLAN的IGMP Snooping功能時進行。配置完成后需要使能IGMP Snooping功能才會生效。
1.5、使能VLAN的IGMP Snooping功能
[Huawei-vlan2]igmp-snooping enable
或
[Huawei]igmp-snooping enable vlan 2
或
[Huawei]igmp-snooping enable vlan 2 to 5
GMP Snooping功能不能和N:1(N大于1) VLAN Mapping功能配合使用。
2、設置IGMP Snooping版本
IGMP協議用于組成員關系管理,運行于三層組播設備和成員主機之間的網段,有v1、v2、v3三個版本。在二層設備上配置IGMP Snooping版本,設備可以處理相應版本的IGMP報文。
一般二層設備上配置和三層組播設備一致的版本。如果三層組播設備沒有啟用IGMP,則在二層設備上配置和成員主機相同或高于成員主機的版本。
同一VLAN內必須運行同一個版本的IGMP協議。如果VLAN內存在支持不同版本的主機,需要配置IGMP Snooping版本,使設備可以處理所有主機的報文。
[Huawei-vlan2]igmp-snooping version ?
INTEGER<1-3> Value of version
缺省情況下,設備可以處理IGMPv1和IGMPv2的報文,但無法處理IGMPv3的報文。當VLAN內的轉發模式為基于MAC地址轉發時,無法配置IGMPv3版本。
3、設置IGMP Snooping靜態路由器端口
路由器端口一般是二層設備上朝向上游三層組播設備(組播路由器或三層交換機)的接口。VLAN內使能IGMP Snooping功能后,加入該VLAN的接口會從組播協議報文中學習表項。當一個接口接收到IGMP Query報文或PIM Hello報文時,二層設備會標識該接口為動態路由器端口。
路由器端口主要有兩個功能:接收上游的組播數據;指導IGMP Report/Leave報文轉發。當VLAN內收到IGMP Report/Leave報文后,僅會向該VLAN內的路由器端口轉發。
動態路由器端口會定時老化,當動態路由器端口在其老化時間超時前沒有收到IGMP Query或者PIM Hello報文,設備將把該接口從路由器端口列表中刪除。
如果希望某接口長期穩定的轉發IGMP Report/Leave報文到上游IGMP查詢器,可配置該接口為靜態路由器端口。
在環網中配置了IGMP Snooping功能時,如果需要將某設備的下行口配置為靜態路由器端口,則需要將環網中所有設備的下行口都配置為靜態路由器端口,否則在二層網絡拓撲發生變化時會導致組播流量不能正常轉發。
建議不要將設備的下行口配置為靜態路由器端口。
3.1、禁止動態學習路由器端口。
[Huawei-vlan2]undo igmp-snooping router-learning
或
[Huawei-GigabitEthernet0/0/1] undo igmp-snooping router-learning vlan { { vlan-id1 [ to vlan-id2 ] } &<1-10> | all }
3.2、配置接口為靜態路由器端口。
[Huawei-GigabitEthernet0/0/1]igmp-snooping static-router-port vlan ?
INTEGER<1-4094> VLAN ID
4、設置IGMP Snooping靜態成員端口
成員端口一般是設備上朝向接收者主機的接口,表示該接口下有組播組成員,可以通過組播協議動態學習或靜態配置。
VLAN內使能IGMP Snooping功能后,加入該VLAN的接口會從組播協議報文中學習表項。當一個接口收到IGMP Report報文時,設備會標識該接口為動態成員端口。
動態成員端口會定時老化。
如果接口所連接的主機需要固定接收發往某組播組或組播源組的數據,可以配置該接口靜態加入該組播組或組播源組,成為靜態成員端口。
靜態成員端口不會老化。
4.1、禁止動態學習組播成員端口。
[Huawei-GigabitEthernet0/0/1] undo igmp-snooping learning vlan { { vlan-id1 [ to vlan-id2 ] } &<1-10> | all }
4.2、配置接口靜態加入組播組,接口成為靜態成員端口
[Huawei-GigabitEthernet0/0/1]l2-multicast static-group ?
group-address Specify group address
source-address Specify source address
[Huawei-GigabitEthernet0/0/1]l2-multicast static-group group-address ?
X.X.X.X Group address
[Huawei-GigabitEthernet0/0/1]l2-multicast static-group group-address 239.1.1.1 ?
vlan Specify parameters for VLAN
[Huawei-GigabitEthernet0/0/1]l2-multicast static-group group-address 239.1.1.1 vlan ?
INTEGER<1-4094> VLAN ID
[Huawei-GigabitEthernet0/0/1]l2-multicast static-group group-address 239.1.1.1 vlan 5 ?
INTEGER<1-4094> VLAN ID
to Range link symbol
<cr>
[Huawei-GigabitEthernet0/0/1]l2-multicast static-group group-address 239.1.1.1 vlan 5 to 7 ?
INTEGER<1-4094> VLAN ID
<cr>
5、配置IGMP Snooping查詢器
通過使能IGMP Snooping,二層設備就可以通過偵聽IGMP查詢器與用戶主機間的IGMP協議報文,動態建立二層組播轉發表項,實現二層組播。
但是當出現下面的情況時,即使二層設備運行了IGMP Snooping,也會由于偵聽不到IGMP協議報文,而無法正常動態建立二層組播轉發表項:
上游三層組播設備在接口上未運行IGMP協議,而是配置了靜態組播組。
組播源和用戶主機同屬于一個二層網絡,不需要三層組播設備。
此時,可通過在二層組播設備上配置IGMP Snooping查詢器,代替三層組播設備向用戶主機發送IGMP Query報文,從而解決此問題。
在配置參數時,要確保“IGMP查詢報文最大響應時間”<“IGMP普遍組查詢報文發送間隔”。
5.1、使能IGMP Snooping查詢器功能。
[Huawei-vlan2]igmp-snooping querier enable
如果與VLAN對應的三層VLANIF接口使能了三層組播功能(例如IGMP、PIM),則不能在該VLAN內使能IGMP Snooping查詢器功能。
使能IGMP Snooping查詢器功能后,交換機會定時以廣播的方式向VLAN內所有接口(包括路由器端口)發送IGMP Query報文,如果組播網絡中已經存在IGMP查詢器,可能會引起IGMP查詢器重新選舉。
此時,建議不配置此功能;如果一定要配置IGMP Snooping查詢器功能,請確保交換機的IP地址比上游IGMP查詢器的IP地址大。
在同一VLAN內,IGMP Snooping查詢器功能和IGMP Snooping Proxy功能不能同時配置。
如果設備上配置了組播VLAN復制功能,則不能在用戶VLAN上使能IGMP Snooping查詢器功能。
5.2、普遍組查詢報文的發送間隔
[Huawei-vlan2]igmp-snooping query-interval ?
INTEGER<1-65535> Value of query timer(in seconds)
5.3、IGMP健壯系數
[Huawei-vlan2]igmp-snooping robust-count ?
INTEGER<2-5> Value of robustness count
5.4、IGMP查詢報文的最大響應時間
[Huawei-vlan2]igmp-snooping max-response-time ?
INTEGER<1-25> Value of maximum response time(in seconds)
5.5、特定組查詢報文的發送間隔
[Huawei-vlan2]igmp-snooping lastmember-queryinterval ?
INTEGER<1-5> Value of last member query interval(in seconds)
5.6、配置IGMP普遍組查詢報文的源IP地址。
[Huawei]igmp-snooping send-query source-address ?
X.X.X.X Source address
缺省情況下,IGMP Snooping查詢器發送普遍組查詢報文時源IP地址為192.168.0.1。當該地址已被網絡中的其他設備占用時,可使用本命令配置為其他地址。
6、配置IGMP Report和Leave報文抑制
IGMP協議通過周期性的查詢和響應來維護組成員關系。在此過程中,如果多個成員加入了相同的組播組,會不斷上送相同的Report報文給IGMP路由器。同時,當IGMPv2或IGMPv3的主機在離開某個組播組時,也會重復發送Leave報文。
為了節約帶寬,可以在二層設備上配置Report和Leave報文抑制功能。
當配置了對Report和Leave報文抑制后,針對每一個組播組,交換機會在第一次有成員加入需要建立組播表項,以及響應IGMP查詢報文時,向上游轉發一份Report報文;在最后一個組成員離開需要刪除組播表項時,向上游轉發一份Leave報文。
[Huawei-vlan2]igmp-snooping report-supress
配置此功能需注意以下幾點:
在某VLAN下配置了報文抑制功能后,不能在與之對應的三層VLANIF接口使能三層組播功能(例如IGMP、PIM)。
在同一VLAN內,Report和Leave報文抑制功能和IGMP Snooping Proxy不能同時配置。
如果設備上配置了組播VLAN復制功能,則不能在用戶VLAN上配置Report和Leave報文抑制功能。
設備未使能報文抑制功能時,對重復的IGMPv1或IGMPv2成員關系報告報文也會進行抑制,默認的抑制時間為10秒,此時間可通過igmp-snooping suppress-time suppress-time命令來配置。如果將suppress-time設為0,表示對所有的成員關系報文都立即轉發。
7、配置IGMP Router-Alert選項
出于兼容性考慮,缺省情況下交換機不對Router-Alert選項進行檢查,當收到IGMP報文時,不管其IP報頭中是否攜帶Router-Alert選項,設備都會將其送給上層協議進行處理。
為了提高系統性能、減少不必要的開支,同時出于協議安全性的考慮,可以配置對Router-Alert選項進行檢查,當收到的IGMP報文中沒有攜帶Router-Alert選項時,就丟棄該報文。
缺省情況下,交換機在發送的IGMP報文中攜帶Router-Alert選項。
7.1、設備對接收的IGMP報文進行Router-Alert檢查
[Huawei-vlan2]igmp-snooping require-router-alert
7.2、設備發送的IGMP報文中攜帶Router-Alert選項。
[Huawei-vlan2]igmp-snooping send-router-alert
、IGMP協議簡介
IGMP是Internet Group Management Protocol的簡稱,又被稱為互聯網組管理協議,是TCP/IP協議族中負責IPv4組播成員管理的協議。
IGMP用來在接收者主機和與其直接相鄰的組播路由器之間建立和維護組播組成員關系。
IGMP通過在接收者主機和組播路由器之間交互IGMP報文實現組成員管理功能,IGMP報文封裝在IP報文中。
IP組播通信的特點是報文從一個源發出,被轉發到一組特定的接收者。但在組播通信模型中,發送者不關注接收者的位置信息,只是將數據發送到約定的目的組播地址。要使組播報文最終能夠到達接收者,需要某種機制使連接接收者網段的組播路由器能夠了解到該網段存在哪些組播接收者,同時保證接收者可以加入相應的組播組中。
IGMP就是用來在接收者主機和與其所在網段直接相鄰的組播路由器之間建立、維護組播組成員關系的協議。
圖1 IGMP在組播網絡中的部署位置
IGMP在組播網絡中的部署位置如上圖1所示。
1、IGMP版本簡介
到目前為止,IGMP有三個版本:IGMPv1版本(由RFC 1112定義)、IGMPv2版本(由RFC 2236定義)、IGMPv3版本(由RFC 3376定義)。
IGMPv1中定義了基本的組成員查詢和報告過程,IGMPv2在此基礎上添加了查詢器選舉和組成員離開的機制,IGMPv3中增加的主要功能是成員可以指定接收或指定不接收某些組播源的報文。
三個版本在演進過程中對協議報文的處理是向前兼容的,因此盡管各個版本的協議報文格式不同,但是運行IGMP高版本的路由器可以識別低版本的IGMP報文。
所有IGMP版本都支持ASM(Any-Source Multicast)模型。IGMPv3可以直接應用于SSM(Source-Specific Multicast)模型,而IGMPv1和IGMPv2則需要IGMP SSM Mapping技術的支持才可以應用于SSM模型。
IGMP三個版本的比較如下表1所示。
2、IGMPv1工作原理
2.1、IGMPv1報文介紹
IGMPv1包括兩種類型的報文:
普遍組查詢報文(General Query):
查詢器向共享網絡上所有主機和路由器發送的查詢報文,用于了解哪些組播組存在成員。
成員報告報文(Report):
主機向查詢器發送的報告報文,用于申請加入某個組播組或者應答查詢報文。
IGMPv1報文的格式如下圖1所示,其中各個字段的說明見下表1。
圖1 IGMPv1報文格式
2.2、IGMPv1工作機制
IGMPv1協議主要基于查詢和響應機制完成組播組管理。
當一個網段內有多個組播路由器時,由于它們都可以接收到主機發送的成員報告報文,因此只需要選取其中一臺組播路由器發送查詢報文就足夠了,該組播路由器稱為IGMP查詢器(Querier)。
在IGMPv1中,由組播路由協議PIM選舉出唯一的組播信息轉發者(Assert Winner或DR)作為IGMPv1的查詢器,負責該網段的組成員關系查詢。
IGMPv1的工作機制可以分為普遍組查詢和響應機制、新組成員加入機制和組成員離開機制三個方面。
圖2 組播網絡示意圖
下面以上圖2所示組網為例,介紹IGMPv1的工作機制。
如上圖2所示,組播網絡中RouterA和RouterB連接主機網段,RouterA為IGMP查詢器,在主機網段上有HostA、HostB、HostC三個接收者。HostA和HostB想要接收發往組播組G1的數據,HostC想要接收發往組播組G2的數據。
2.2.1、IGMPv1普遍組查詢和響應機制
通過普遍組查詢和響應,IGMP查詢器可以了解到該網段內哪些組播組存在成員。
圖3 IGMP查詢和響應示意圖
如上圖3所示,普遍組查詢和響應過程如下:
IGMP查詢器發送目的地址為224.0.0.1(表示同一網段內所有主機和路由器)的普遍組查詢報文;收到該查詢報文的組成員啟動定時器。
普遍組查詢報文是周期性發送的,發送周期可以通過命令配置,缺省情況下每隔60秒發送一次。HostA和HostB是組播組G1的成員,則在本地啟動定時器Timer-G1。缺省情況下,定時器的范圍為0~10秒之間的隨機值。
第一個定時器超時的組成員發送針對該組的報告報文。
假設HostA上的Timer-G1首先超時,HostA向該網段發送目的地址為G1的報告報文。也想加入組G1的HostB收到此報告報文,則停止定時器Timer-G1,不再發送針對G1的報告報文。這樣報告報文被抑制,可以減少網段上的流量。
IGMP查詢器接收到HostA的報告報文后,了解到本網段內存在組播組G1的成員,則由組播路由協議生成(*,G1)組播轉發表項,“*”代表任意組播源。網絡中一旦有組播組G1的數據到達路由器,將向該網段轉發。
2.2.2、IGMPv1新組成員加入機制
圖4 新組成員加入示意圖
如上圖4所示,主機HostC加入組播組G2的過程如下:
主機HostC不等待普遍組查詢報文的到來,主動發送針對G2的報告報文以聲明加入。
IGMP查詢器接收到HostC的報告報文后,了解到本網段內出現了組播組G2的成員,則生成組播轉發項(*,G2)。網絡中一旦有G2的數據到達路由器,將向該網段轉發。
2.2.3、IGMPv1組成員離開機制
IGMPv1沒有專門定義離開組的報文。主機離開組播組后,便不會再對普遍組查詢報文做出回應。如上圖2所示。
假設HostA想要退出組播組G1
HostA收到IGMP查詢器發送的普遍組查詢報文時,不再發送針對G1的報告報文。由于網段內還存在G1組成員HostB,HostB會向IGMP查詢器發送針對G1的報告報文,因此IGMP查詢器感知不到HostA的離開。
假設HostC想要退出組播組G2
HostC收到IGMP查詢器發送的普遍組查詢報文時,不再發送針對G2的報告報文。由于網段內不存在組G2的其他成員,IGMP查詢器不會收到G2組成員的報告報文,則在一定時間(缺省值為130秒)后,刪除G2所對應的組播轉發表項。
3、IGMPv2與IGMPv1相比的變化
IGMPv2的工作機制與IGMPv1基本相同,最大的不同之處在于IGMPv2增加了離開組機制。
主機離開組播組時,會主動發送成員離開報文通知IGMP查詢器;IGMP查詢器收到成員離開報文后,會連續發送特定組查詢報文,詢問該組播組是否還存在組成員。
如果在一段時間內沒有收到成員主機發送的報告報文,IGMP查詢器將不再維護該組的組成員關系。
IGMPv2可以使IGMP查詢器及時了解到網段內哪些組播組已不存在成員,從而及時更新組成員關系,減少網絡中冗余的組播流量。
1、IGMPv2報文介紹
與IGMPv1相比,IGMPv2的變化如下:
除了普遍組查詢報文和成員報告報文之外,IGMPv2新增了兩種報文:
1.1、成員離開報文(Leave):
成員離開組播組時主動向查詢器發送的報文,用于宣告自己離開了某個組播組。
1.2、特定組查詢報文(Group-Specific Query):
查詢器向共享網段內指定組播組發送的查詢報文,用于查詢該組播組是否存在成員。
IGMPv2對普遍組查詢報文格式也做了改進,添加了最大響應時間(Max Response Time)字段。此字段取值可以通過命令配置,用于控制成員對于查詢報文的響應速度。
IGMPv2報文的格式如下圖1所示,其中各個字段的說明見下表1。
圖1 IGMPv2報文格式
2、IGMPv2工作機制
在工作機制上,與IGMPv1相比,IGMPv2增加了查詢器選舉和離開組機制。
圖2 組播網絡示意圖
下面以上圖2所示組網為例,介紹IGMPv2的工作機制。
如上圖2所示,組播網絡中RouterA和RouterB連接主機網段,在主機網段上有HostA、HostB、HostC三個接收者。假設HostA和HostB想要接收發往組播組G1的數據,HostC想要接收發往組播組G2的數據。
查詢器選舉機制、離開組機制的過程如下。
2.1 、IGMPv2查詢器選舉機制
IGMPv2使用獨立的查詢器選舉機制,當共享網段上存在多個組播路由器時,IP地址最小的路由器成為查詢器。
圖3 查詢器選舉示意圖
如上圖3所示,在IGMPv2中,查詢器的選舉過程如下:
最初,所有運行IGMPv2的組播路由器(RouterA和RouterB)都認為自己是查詢器,向本網段內的所有主機和組播路由器發送普遍組查詢報文。
RouterA和RouterB在收到對方發送的普遍組查詢報文后,將報文的源IP地址與自己的接口地址作比較。通過比較,IP地址最小的組播路由器將成為查詢器,其他組播路由器成為非查詢器(Non-Querier)。
如上圖3所示,RouterA的接口地址小于RouterB,則RouterA當選為查詢器,RouterB為非查詢器。
此后,將由IGMP查詢器(RouterA)向本網段內的所有主機和其他組播路由器發送普遍組查詢報文,而非查詢器(RouterB)則不再發送普遍組查詢報文。
非查詢器(RouterB)上都會啟動一個定時器(即其他查詢器存在時間定時器Other Querier Present Timer)。在該定時器超時前,如果收到了來自查詢器的查詢報文,則重置該定時器;否則,就認為原查詢器失效,并發起新的查詢器選舉過程。
2.2、IGMPv2離開組機制
圖4 離開組示意圖
如上圖4所示,在IGMPv2中,主機HostA離開組播組G1的過程如下:
HostA向本地網段內的所有組播路由器(目的地址為224.0.0.2)發送針對組G1的離開報文。
查詢器收到離開報文,會發送針對組G1的特定組查詢報文。發送間隔和發送次數可以通過命令配置,缺省情況下每隔1秒發送一次,共發送兩次。同時查詢器啟動組成員關系定時器(Timer-Membership=發送間隔x發送次數)。
該網段內還存在組G1的其他成員(如上圖4所示的HostB),這些成員(HostB)在收到查詢器發送的特定組查詢報文后,會立即發送針對組G1的報告報文。查詢器收到針對組G1的報告報文后將繼續維護該組成員關系。
如果該網段內不存在組G1的其他成員,查詢器將不會收到針對組G1的報告報文。在Timer-Membership超時后,查詢器將刪除(*,G1)對應的IGMP組表項。當有組G1的組播數據到達查詢器時,查詢器將不會向下游轉發。
礎理論:
IGMP是因特網組管理協議,是用來管理組播接收者的, 運行在最后一跳路由器和接收者之間,只要有接收者存在的地方,都需要運行IGMP協議,
IGMP報文:
實驗環境:
實驗步驟:
1,配置IP地址
2,在R1 -2-3 上開啟組播功能和PIM , 使用PIM DM 模式,需要使用PIM的DR作為查詢器
3,在R 2 和R3 連接成員接口開啟IGMPv1
4,PC加入組播組,驗證R1 -23 的IGMP表項
5,驗證:通過命令查看查詢器
配置:
1,根據拓撲配置IP地址,三臺路由器都運行OSPF 1 , 所有接口宣告進area 0
信源和接收者都加組224.1.1.1, 所有接口啟用PIM DM 模式, R2-3連接接收者的接口啟用IGMPv1
----------------------------------------------------------------------------------------------------------------
IGMPv1
R1 :接口配置IP地址并啟用PIM DM 模式
interface GigabitEthernet0/0/0
ip address 10.1.1.254 255.255.255.0
pim dm
#
interface GigabitEthernet0/0/1
ip address 192.168.1.254 255.255.255.0
pim dm
#
interface GigabitEthernet0/0/2
ip address 192.168.2.254 255.255.255.0
pim dm
interface LoopBack0
ip address 1.1.1.1 255.255.255.255
ospf 1 router-id 1.1.1.1 -------------OSPF 部分全部宣告進OSPF 1 area 0
0 area 0.0.0.0
network 1.1.1.1 0.0.0.0
network 10.1.1.254 0.0.0.0
network 192.168.1.254 0.0.0.0
network 192.168.2.254 0.0.0.0
-----------------------------------------------------------------------
R2:和R3 配置相同, 只有IP地址部分配置不一樣,
interface GigabitEthernet0/0/0
ip address 192.168.1.1 255.255.255.0
pim dm----------接口啟用PIM DM 模式
#
interface GigabitEthernet0/0/1
ip address 192.168.3.253 255.255.255.0
vrrp vrid 1 virtual-ip 192.168.3.252---------配置vrrp
pim dm
igmp enable-----啟用IGMP
igmp version 1---啟用版本1
#
interface GigabitEthernet0/0/2
#
interface LoopBack0
ip address 2.2.2.2 255.255.255.255
#
ospf 1 router-id 2.2.2.2 ---啟用OSPF
area 0.0.0.0
network 2.2.2.2 0.0.0.0
network 192.168.1.1 0.0.0.0
network 192.168.3.253 0.0.0.0
----------------------------------------------------------
R3:
interface GigabitEthernet0/0/0
ip address 192.168.2.1 255.255.255.0
pim dm
#
interface GigabitEthernet0/0/1
ip address 192.168.3.254 255.255.255.0
vrrp vrid 1 virtual-ip 192.168.3.252
pim dm
igmp enable
igmp version 1
#
interface GigabitEthernet0/0/2
ospf 1 router-id 3.3.3.3
area 0.0.0.0
network 192.168.2.1 0.0.0.0
network 192.168.3.254 0.0.0.0
---------------------------------------------------------------
信源部分配置:
接收者部分配置, 接收者配置都是一樣的,
------------------------------------------------------------------------
當我們在信源點擊運行后,, 在接收者點擊啟用VLC后, 信源的視頻就開始播放了,接收者也開始播放視頻了,實驗完成
--------------------------------------------------------------------------
查看IGMP 接口信息, 查看查詢者
[R2]display igmp interface GigabitEthernet 0/0/1
Interface information of VPN-Instance: public net
GigabitEthernet0/0/1(192.168.3.253): -----------接口地址
IGMP is enabled--------接口已經啟用IGMP
Current IGMP version is 1 目前使用版本1
IGMP state: up
IGMP group policy: none
IGMP limit: -
Value of query interval for IGMP (negotiated): -
Value of query interval for IGMP (configured): 60 s--IGMP 查詢60S一次
Value of other querier timeout for IGMP: 0 s
Value of maximum query response time for IGMP: -
Querier for IGMP: 192.168.3.254 -------查詢者選舉, 比IP地址, 比大, R3是查詢者
Total 1 IGMP Group reported-----收到的加組信息中, 只有一個組
---------------------------------------------------------------------------
[R2]display igmp group
Interface group report information of VPN-Instance: public net
GigabitEthernet0/0/1(192.168.3.253):
Total 1 IGMP Group reported
Group Address Last Reporter Uptime Expires
224.1.1.1 192.168.3.6 00:37:49 00:01:48
可以看到目前我們運行的是IGMP v1 , 也有last reporter,是PC6, 是使用PC6 的IP地址來標識的
----------------------------------------------------------------------------------------
查看PIM 路由表項
[R2]display pim routing-table
VPN-Instance: public net
Total 1 (*, G) entry; 1 (S, G) entry
(*, 224.1.1.1)
Protocol: pim-dm, Flag: WC
UpTime: 00:31:57
Upstream interface: NULL
Upstream neighbor: NULL
RPF prime neighbor: NULL
Downstream interface(s) information:
Total number of downstreams: 1
1: GigabitEthernet0/0/1
Protocol: igmp, UpTime: 00:31:57, Expires: never
(10.1.1.1, 224.1.1.1)-----------當前有一股數據流, 源是10.1.1.1, 組播組是224.1.1.1
Protocol: pim-dm, Flag: ACT ------運行的協議是PIM, 模式是DM, flag是ACT
UpTime: 00:00:14
Upstream interface: GigabitEthernet0/0/0
Upstream neighbor: 192.168.1.254----上游接口, 是連接上游的R1 的接口
RPF prime neighbor: 192.168.1.254----RPF 接口,
Downstream interface(s) information: None
---------------------------------------------------------------------
抓包查看流量信息
-------------------------------------------------------------------------------------------
查看PIM 鄰居
[R2]display pim neighbor
VPN-Instance: public net
Total Number of Neighbors=2
Neighbor Interface Uptime Expires Dr-Priority BFD-Session
192.168.1.254 GE0/0/0 01:34:48 00:01:27 1 N
192.168.3.254 GE0/0/1 01:34:10 00:01:35 1
修改pim DR優先級, 目前R3 是查詢者, 我們修改R2 為查詢者,
接口DR優先級默認是1 , 我們修改R2 G0/0/1 接口PIM DR優先級為2
[R2-GigabitEthernet0/0/1]pim hello-option dr-priority 2
可以看到修改R2 的接口DR優先級之后, IGMP查詢者修改為了R2, 之前是R3 的,
這里驗證了IGMPv1 是使用PIM 的DR 作為查詢者的,PIM DR優先級一致的情況下, 比較PIM路由器接口IP地址,比大, IP地址大的選舉為為DR, 作為查詢者,, 如果優先級不一致, 優先級比較DR優先級, 默認值是1 ,比大,
---------------------------------------------------------------------------------------------
IGMPv2
接下來我們把IGMP 版本切換為版本2, 所有啟用IGMP的地方都切換為版本2
[R3]interface GigabitEthernet 0/0/1
[R3-GigabitEthernet0/0/1]igmp version 2
通過抓包, 我們抓到了一個查詢和3個應答,
可以看到查詢的源地址是查詢者, 目的地址2層地址是組播MAC, 3層地址是要加入的這個組
離組報文源地址是接收者地址, 目的地址是離開的這個組播組地址
--------------------------------------------------------------------------------
現在我們驗證查詢者選舉情況
我們把PIM DR 優先級改回默認值1, 發現 R2 是查詢者,這里是比IP地址, 比小,
為了證明IGMPv2 不是使用PIM DR 做查詢器, 我們把R3的PIM DR優先級改大
[R3-GigabitEthernet0/0/1]pim hello-option dr-priority 2
可以看到R3 PIM DR優先級是2,比R2 PIM DR優先級默認值1還大,如果是使用PIM DR做查詢者,那么,查詢者就應該是R3, 但是R2 是查詢者, 說明這里IGMPv2 不是使用PIM DR做查詢者,是使用IGMP自己的選舉機制, 選舉查詢者, 這里是比較IP地址, 比小,驗證完畢。
-------------------------------------------------------------------------------------------
IGMP snooping
由于交換機是2層設備, 不能學習組播的arp表項, 也不能識別3層報頭, 所以, 數據轉發只能泛洪,對設備的轉發資源和帶寬比較浪費, 為了解決這個問題, 開發了IGMP snooping
這個技術是應用在交換機上的,
[SW1]multicast routing-enable 啟用組播路由功能
[SW1]igmp-snooping enable 啟用igmp-snoop ing
[SW1-vlan1]igmp-snooping enable 在vlan內啟用
查看這個vlan內的路由器接口
查看關于IGMP-snoop ing的接口信息
今天的分享就到這里了!