03-IGMP配置
本章節下載: 03-IGMP配置 (457.68 KB)
IGMP(Internet Group Management Protocol,互聯網組管理協議)用於在三層設備和其直連網段中的用戶主機之間建立和維護組播組成員關係。
到目前為止,IGMP有三個版本:
· IGMPv1(由RFC 1112定義)
· IGMPv2(由RFC 2236定義)
· IGMPv3(由RFC 3376定義)
所有版本的IGMP都支持ASM(Any-Source Multicast,任意信源組播)模型;IGMPv3可以直接應用於SSM(Source-Specific Multicast,指定信源組播)模型,而IGMPv1和IGMPv2則需要在IGMP SSM Mapping技術的支持下才能應用於SSM模型。有關ASM和SSM模型的介紹,請參見“IP組播配置指導”中的“組播概述”。
IGMPv1主要基於查詢和響應機製來完成對組播組成員的管理。
當一個網段內有多台運行IGMP的設備時,由於它們都能從主機那裏收到IGMP成員關係報告報文(Membership Report Message),因此隻需其中一台設備發送IGMP查詢報文(Query Message)即可,該設備就稱為IGMP查詢器(Querier)。這就需要有一個查詢器的選舉機製來確定由哪台設備作為IGMP查詢器。
對於IGMPv1來說,由組播路由協議(如PIM)選舉出唯一的組播信息轉發者DR(Designated Router,指定路由器)作為IGMP查詢器。有關DR的介紹,請參見“IP組播配置指導”中的“PIM”。
圖1-1 IGMP查詢響應示意圖
如圖1-1所示,假設Host B與Host C想要收到發往組播組G1的組播數據,而Host A想要收到發往組播組G2的組播數據,那麼主機加入組播組以及IGMP查詢器(Device B)維護組播組成員關係的基本過程如下:
(1) 主機會主動向其要加入的組播組發送IGMP成員關係報告報文以聲明加入,而不必等待IGMP查詢器發來的IGMP查詢報文;
(2) IGMP查詢器周期性地以組播方式向本地網段內的所有主機與設備發送IGMP查詢報文(目的地址為224.0.0.1);
(3) 在收到該查詢報文後,關注G1的Host B與Host C其中之一(這取決於誰的延遲定時器先超時),譬如Host B會首先以組播方式向G1發送IGMP成員關係報告報文,以宣告其屬於G1。由於本地網段中的所有主機和設備都能收到Host B發往G1的報告報文,因此當Host C收到該報告報文後,將不再發送同樣針對G1的報告報文,因為IGMP設備(Device A和Device B)已知道本地網段中有對G1感興趣的主機了。這個機製稱為主機上的IGMP成員關係報告抑製機製,該機製有助於減少本地網段的信息流量;
(4) 與此同時,由於Host A關注的是G2,所以它仍將以組播方式向G2發送報告報文,以宣告其屬於G2;
(5) 經過以上的查詢和響應過程,IGMP設備了解到本地網段中有G1和G2的成員,於是由組播路由協議(如PIM)生成(*,G1)和(*,G2)組播轉發項作為組播數據的轉發依據,其中的“*”代表任意組播源;
(6) 當由組播源發往G1或G2的組播數據經過組播路由到達IGMP設備時,由於IGMP設備上存在(*,G1)和(*,G2)組播轉發項,於是將該組播數據轉發到本地網段,接收者主機便能收到該組播數據了。
IGMPv1沒有專門定義離開組播組的報文。當運行IGMPv1的主機離開某組播組時,將不會向該組播組發送報告報文。當一個網段中不再有該組播組的成員後,IGMP設備將不會收到任何發往該組播組的報告報文,於是在一段時間之後便刪除該組播組的記錄。
IGMPv2在兼容和繼承IGMPv1的基礎上,增加了查詢器選舉機製和離開組播組機製。
在IGMPv1中,當一個網段內有多台運行IGMP的設備時,由組播路由協議(如PIM)選舉的指定設備充當查詢器。在IGMPv2中增加了獨立的查詢器選舉機製,其選舉過程如下:
(1) 所有IGMPv2設備在初始時都認為自己是查詢器,並向本地網段內的所有主機和設備發送IGMP普遍組查詢(General Query)報文(目的地址為224.0.0.1);
(2) 本地網段中的其它IGMPv2設備在收到該報文後,將報文的源IP地址與自己的接口地址作比較。通過比較,IP地址最小的設備將成為查詢器,其它設備成為非查詢器(Non-Querier);
(3) 所有非查詢器上都會啟動一個定時器(即其它查詢器存在時間定時器Other Querier Present Timer)。在該定時器超時前,如果收到了來自查詢器的IGMP查詢報文,則重置該定時器;否則,就認為原查詢器失效,並發起新的查詢器選舉過程。
在IGMPv1中,主機離開組播組時不會向組播設備發出任何通知,導致組播設備隻能依靠組播組成員查詢的響應超時來獲知組播組成員的離開。而在IGMPv2中,當一個主機離開某組播組時:
(1) 該主機向本地網段內的所有組播設備(目的地址為224.0.0.2)發送離開組(Leave Group)報文;
(2) 當查詢器收到該報文後,向該主機所聲明要離開的那個組播組發送特定組查詢(Group-Specific Query)報文(目的地址字段和組地址字段均填充為所要查詢的組播組地址);
(3) 如果該網段內還有該組播組的其它成員,則這些成員在收到特定組查詢報文後,會在該報文中所設定的最大響應時間(Max Response Time)內發送成員關係報告報文;
(4) 如果在最大響應時間內收到了該組播組其它成員發送的成員關係報告報文,查詢器就會繼續維護該組播組的成員關係;否則,查詢器將認為該網段內已無該組播組的成員,於是不再維護這個組播組的成員關係。
IGMPv3在兼容和繼承IGMPv1和IGMPv2的基礎上,進一步增強了主機的控製能力,並增強了查詢和報告報文的功能。
IGMPv3增加了針對組播源的過濾模式(INCLUDE/EXCLUDE),使主機在加入某組播組G的同時,能夠明確要求接收或拒絕來自某特定組播源S的組播信息。當主機加入組播組時:
· 若要求隻接收來自指定組播源如S1、S2、……的組播信息,則其報告報文中可以標記為INCLUDE Sources(S1,S2,……);
· 若拒絕接收來自指定組播源如S1、S2、……的組播信息,則其報告報文中可以標記為EXCLUDE Sources(S1,S2,……)。
如圖1-2所示,網絡中存在Source 1(S1)和Source 2(S2)兩個組播源,均向組播組G發送組播報文。Host B僅對從Source 1發往G的信息感興趣,而對來自Source 2的信息沒有興趣。
如果主機與設備之間運行的是IGMPv1或IGMPv2,Host B加入組播組G時無法對組播源進行選擇,因此無論Host B是否需要,來自Source 1和Source 2的組播信息都將傳遞給Host B。
當主機與設備之間運行了IGMPv3之後,Host B就可以要求隻接收來自Source 1、發往G的組播信息(S1,G),或要求拒絕來自Source 2、發往G的組播信息(S2,G),這樣就隻有來自Source 1的組播信息才能傳遞給Host B了。
· 攜帶源地址的查詢報文
IGMPv3不僅支持IGMPv1的普遍組查詢和IGMPv2的特定組查詢,而且還增加了對特定源組查詢的支持:
¡ 普遍組查詢報文中,既不攜帶組地址,也不攜帶源地址;
¡ 特定組查詢報文中,攜帶組地址,但不攜帶源地址;
¡ 特定源組查詢報文中,既攜帶組地址,還攜帶一個或多個源地址。
· 包含多組記錄的報告報文
IGMPv3報告報文的目的地址為224.0.0.22,可以攜帶一個或多個組記錄。在每個組記錄中,包含有組播組地址和組播源地址列表。組記錄可以分為多種類型,如下:
¡ IS_IN:表示組播組與組播源列表之間的過濾模式為INCLUDE,即隻接收從指定組播源列表發往該組播組的組播數據。
¡ IS_EX:表示組播組與組播源列表之間的過濾模式為EXCLUDE,即隻接收從指定組播源列表之外的組播源發往該組播組的組播數據。
¡ TO_IN:表示組播組與組播源列表之間的過濾模式由EXCLUDE轉變為INCLUDE。
¡ TO_EX:表示組播組與組播源列表之間的過濾模式由INCLUDE轉變為EXCLUDE。
¡ ALLOW:表示在現有狀態的基礎上,還希望從某些組播源接收組播數據。如果當前的對應關係為INCLUDE,則向現有組播源列表中添加這些組播源;如果當前的對應關係為EXCLUDE,則從現有組播源列表中刪除這些組播源。
¡ BLOCK:表示在現有狀態的基礎上,不再希望從某些組播源接收組播數據。如果當前的對應關係為INCLUDE,則從現有組播源列表中刪除這些組播源;如果當前的對應關係為EXCLUDE,則向現有組播源列表中添加這些組播源。
IGMP SSM Mapping通過在設備上配置SSM靜態映射規則,從而為運行IGMPv1或IGMPv2的接收者主機提供對SSM模型的支持。
SSM模型要求在接收者主機所在的網段,設備能夠了解主機加入組播組時所指定的組播源。如果接收者主機上運行的是IGMPv3,則可以在IGMPv3的報告報文中直接指定組播源的地址;如果某些接收者主機隻能運行IGMPv1或IGMPv2,則在IGMPv1或IGMPv2的報告報文中無法指定組播源的地址。這種情況下需要通過在設備上配置IGMP SSM Mapping規則,將IGMPv1或IGMPv2報告報文中所包含的(*,G)信息映射為(G,INCLUDE,(S1,S2...))信息。
在如圖1-3所示的SSM網絡中,Host A、Host B和Host C上分別運行IGMPv1、IGMPv2和IGMPv3。在不允許將Host A和Host B升級為IGMPv3的情況下,若要為Host A和Host B也提供SSM組播服務,則需在Device A上配置IGMP SSM Mapping規則。
配置完成後,當Device A收到來自主機的IGMPv1或IGMPv2報告報文時,首先檢查該報文中所攜帶的組播組地址G,然後根據檢查結果的不同分別進行處理:
· 如果G不在SSM組地址範圍內,則提供ASM組播服務。
· 如果G在SSM組地址範圍內且Device A上沒有G對應的IGMP SSM Mapping規則,則無法提供SSM組播服務,丟棄該報文。
· 如果G在SSM組地址範圍內但Device A上有G對應的IGMP SSM Mapping規則,則依據規則將報告報文中所包含的(*,G)信息映射為(G,INCLUDE,(S1,S2...))信息,可以提供SSM組播服務。
· IGMP SSM Mapping不對IGMPv3的報告報文進行處理。
· 有關SSM組地址範圍的介紹,請參見“IP組播配置指導”中的“PIM”。
在如圖1-4所示的一些簡單網絡拓撲中,諸如Device B之類的邊緣設備上並不需要運行PIM等複雜的組播路由協議,可以通過在這些設備上配置IGMP代理功能,使其在上遊的IGMP查詢器和下遊的接收者主機之間充當代理者:
· 對於IGMP查詢器來說,IGMP代理設備的行為就像一台主機。
· 對於主機來說,IGMP代理設備的行為就像一台IGMP查詢器。
圖1-4 IGMP代理組網圖
為了便於理解,IGMP代理中定義了兩種類型的接口:
· 主機接口:麵向組播分發樹樹根方向的接口,執行IGMP協議的主機行為。由於此接口上需開啟IGMP代理功能,因此也稱為代理接口。
· 路由器接口:麵向組播分發樹樹葉方向的接口,執行IGMP協議的路由器行為。在此接口上需使能並配置IGMP。
IGMP代理設備上維護著一個組成員關係數據庫,記錄所有路由器接口維護的組成員關係。主機接口和路由器接口正是依據這個數據庫來執行相應的行為:
· 主機接口收到查詢報文後根據當前的組成員關係來響應報告報文,或者當組成員關係改變時發送報告報文或離開報文。
· 路由器接口參與下遊查詢器的選舉,發送查詢報文,並根據主機發來的報告報文維護組成員關係。
IGMP依據接口來維護組成員關係,各實例的IGMP根據接口所屬的實例來處理協議報文的收發。當設備收到IGMP報文時,需要區分該報文所屬的實例,並在該實例範圍內對其進行處理。當某實例內的IGMP需要和其它組播協議交互信息時,隻會通知本實例內的其它組播協議。
與IGMP相關的協議規範有:
· RFC 1112:Host Extensions for IP Multicasting
· RFC 2236:Internet Group Management Protocol, Version 2
· RFC 3376:Internet Group Management Protocol, Version 3
本特性的支持情況與設備型號有關,請以設備的實際情況為準。
係列 |
型號 |
說明 |
F50X0係列 |
F5010、F5020、F5020-GM、F5030、F5030-6GW、F5030-6GW-G、F5040、F5060、F5080、F5000-A、F5000-C、F5000-S、F5000-M |
支持 |
F5000-CN係列 |
F5000-CN30、F5000-CN60 |
支持 |
F5000-AI係列 |
F5000-AI-15、F5000-AI-20、F5000-AI-40 |
支持 |
F5000-V係列 |
F5000-V30 |
支持 |
F1000-AI係列 |
F1000-AI-03、F1000-AI-05、F1000-AI-10、F1000-AI-15、F1000-AI-20、F1000-AI-25、F1000-AI-30、F1000-AI-35、F1000-AI-50、F1000-AI-55、F1000-AI-60、F1000-AI-65、F1000-AI-70、F1000-AI-75、F1000-AI-80、F1000-AI-90 |
支持 |
F1000-L係列 |
F1003-L、F1005-L、F1010-L |
支持 |
F1003-L-C、F1003-L-S |
不支持 |
|
F10X0係列 |
F1005、F1005-GM、F1010、F1010-GM、F1020、F1020-GM、F1030、F1030-GM、F1050、F1060、F1070、F1070-GM、F1070-GM-L、F1080、F1090 |
支持 |
F1003-C、F1003-M、F1003-S |
不支持 |
|
F1000-V係列 |
F1000-V50、F1000-V60、F1000-V70、F1000-V90 |
支持 |
F1000-SASE係列 |
F1000-SASE100、F1000-SASE200 |
支持 |
F1000-AK係列 |
F1000-AK108、F1000-AK109、F1000-AK110、F1000-AK115、F1000-AK120、F1000-AK125、F1000-AK130、F1000-AK135、F1000-AK140、F1000-AK145、F1000-AK150、F1000-AK155、F1000-AK160、F1000-AK165、F1000-AK170、F1000-AK175、F1000-AK180、F1000-AK185、F1000-GM-AK370、F1000-GM-AK380、F1000-AK710、F1000-AK711、F1000-AK1010、F1000-AK1015、F1000-AK1020、F1000-AK1025、F1000-AK1030、F1000-AK1105、F1000-AK1110、F1000-AK1115、F1000-AK1120、F1000-AK1125、F1000-AK1130、F1000-AK1140、F1000-AK1150、F1000-AK1160、F1000-AK1170、F1000-AK1180、F1000-AK1205、F1000-AK1212、F1000-AK1215、F1000-AK1222、F1000-AK1232、F1000-AK1235、F1000-AK1242、F1000-AK1252、F1000-AK1262、F1000-AK1272、F1000-AK1305、F1000-AK1312、F1000-AK1315、F1000-AK1322、F1000-AK1332、F1000-AK1342、F1000-AK1352、F1000-AK1362、F1000-AK1414、F1000-AK1424、F1000-AK1434、F1000-AK1505、F1000-AK1514、F1000-AK1515、F1000-AK1524、F1000-AK1534、F1000-AK1614、F1000-AK9110、F1000-AK9150、F1000-AK9160、F1000-AK9180、F1000-AK9190、F1000-AK9210 |
支持 |
F1000-AK9109、F1000-AK9120 |
不支持 |
|
插卡 |
IM-NGFWX-IV、LSCM1FWDSD0、LSCM2FWDSD0、LSPM6FWD、LSPM6FWDB、LSQM1FWDSC0、LSQM2FWDSC0、LSU3FWCEA0、LSUM1FWCEAB0、LSUM1FWDEC0、LSWM1FWD0、LSX1FWCEA1、LSXM1FWDF1 |
支持 |
vFW係列 |
vFW1000、vFW2000、vFW-E-Cloud |
支持 |
IGMP配置任務如下:
(1) 使能IGMP
(2) (可選)配置IGMP基本功能
¡ 配置IGMP版本
¡ 配置靜態加入功能
¡ 配置組播組過濾器
(3) (可選)調整IGMP性能
(4) (可選)配置IGMP SSM Mapping
(5) (可選)配置IGMP代理
(6) (可選)開啟IGMP NSR功能
在配置IGMP之前,需配置任一單播路由協議,實現網絡層互通。
在需要建立和維護組播組成員關係的接口上使能IGMP。
(1) 進入係統視圖。
system-view
(2) 使能IP組播路由,並進入MRIB視圖。
multicast routing [ vpn-instance vpn-instance-name ]
缺省情況下,IP組播路由處於關閉狀態。
本命令的詳細介紹請參見“IP組播命令參考”中的“組播路由與轉發”。
(3) 退回係統視圖。
quit
(4) 進入接口視圖。
interface interface-type interface-number
(5) 使能IGMP。
igmp enable
缺省情況下,IGMP處於關閉狀態。
(1) 進入係統視圖。
system-view
(2) 進入接口視圖。
interface interface-type interface-number
(3) 配置IGMP的版本。
igmp version version-number
由於不同版本IGMP協議的報文結構與種類不同,因此需要為同一網段上的所有設備配置相同版本的IGMP,否則IGMP將不能正常運行。
缺省情況下,IGMP的版本為IGMPv2。
在配置了靜態加入組播組或組播源組後,接口將作為該組播組的虛擬組成員存在,從而可以接收發往該組的組播數據,以測試組播數據的轉發。
在配置了靜態加入功能後,接口並不會對IGMP查詢器發出的查詢報文進行響應;當配置靜態加入或取消靜態加入的配置時,接口也不會主動發送IGMP成員關係報告報文或IGMP離開組報文。也就是說,該接口並沒有真正成為該組播組的成員。
在運行PIM-SM的設備上配置靜態加入功能時,需要注意:
· 如果待配接口上同時使能了IGMP和PIM-SM,則該接口必須為PIM-SM的DR,否則該接口將不能加入組播組或組播源組。
· 如果待配接口上使能了IGMP但未使能PIM-SM,則該接口必須為IGMP查詢器,否則該接口也不能加入組播組或組播源組。
有關PIM-SM和DR的介紹,請參見“IP組播配置指導”中的“PIM”。
(1) 進入係統視圖。
system-view
(2) 進入接口視圖。
interface interface-type interface-number
(3) 配置靜態加入組播組或組播源組。
igmp static-group group-address [ source source-address ]
如果不希望接口所在網段上的主機加入某些組播組,可在該接口上配置ACL規則作為過濾器,接口將按照該規則對收到的IGMP成員關係報告報文進行過濾,隻為該規則所允許的組播組維護組成員關係。
由於組播組過濾器隻能過濾IGMP報文,因此無法對接口靜態加入組播組或組播源組進行限製。
(1) 進入係統視圖。
system-view
(2) 進入接口視圖。
interface interface-type interface-number
(3) 配置組播組過濾器。
igmp group-policy ipv4-acl-number [ version-number ]
· IGMP查詢器的健壯係數:IGMP查詢器的健壯係數是為了彌補可能發生的網絡丟包而設置的報文重傳次數,重傳次數越多,IGMP查詢器就越“健壯”,但是組播組超時所需的時間也就越長。
· IGMP查詢器啟動查詢間隔與次數:當IGMPv1/v2/v3查詢器啟動時,會以“IGMP查詢器啟動查詢間隔”為時間間隔發送“IGMP查詢器啟動查詢次數”次IGMP普遍組查詢報文,以快速判斷當前網絡中是否有組播組成員。
· IGMP普遍組查詢報文的發送間隔:當IGMPv1/v2/v3查詢器啟動後,會周期性地發送IGMP普遍組查詢報文,以判斷網絡中是否有組播組成員,這個發送間隔就是“IGMP普遍組查詢報文的發送間隔”,可以根據網絡的實際情況來調整此間隔。
· IGMP最後組成員查詢間隔與次數:當IGMPv2查詢器收到IGMP離開組報文後,會以“IGMP最後組成員查詢間隔”為時間間隔發送“IGMP最後組成員查詢次數”次IGMP特定組查詢報文;當IGMPv3查詢器收到改變組播組與組播源列表關係的IGMP報告報文後,也會以同樣的間隔和次數發送IGMP特定源組查詢報文。
· IGMP查詢報文的最大響應時間:在收到IGMP查詢報文(包括普遍組查詢、特定組查詢和特定源組查詢)後,主機會為其所加入的每個組播組都啟動一個延遲定時器,其值在0到最大響應時間(該時間值從IGMP查詢報文的最大響應時間字段獲得)中隨機選定,當定時器的值減為0時,主機就會向該定時器對應的組播組發送IGMP成員關係報告報文。合理配置IGMP查詢報文的最大響應時間,既可以使主機對IGMP查詢報文做出快速響應,又可以減少由於定時器同時超時,造成大量主機同時發送報告報文而引起的網絡擁塞:
¡ 對於IGMP普遍組查詢報文來說,通過配置IGMP普遍組查詢報文的最大響應時間來填充其最大響應時間字段;
¡ 對於IGMP特定組查詢報文和IGMP特定源組查詢報文來說,所配置的IGMP最後組成員查詢間隔將被填充到其最大響應時間字段。也就是說,IGMP特定組查詢和IGMP特定源組查詢的最大響應時間在數值上等於IGMP最後組成員查詢間隔。
· IGMP其它查詢器的存在時間:當同一網段上有多台IGMP設備時,由查詢器負責發送IGMP查詢報文。如果非查詢器在“IGMP其它查詢器存在時間”超時前未收到來自查詢器的IGMP查詢報文,就會認為原查詢器失效,從而觸發新的查詢器選舉過程;否則,非查詢器將重置“IGMP其它查詢器存在時間定時器”。
配置IGMP查詢和響應時,需要注意:
· 應確保IGMP其它查詢器的存在時間大於IGMP普遍組查詢報文的發送間隔,且同一網段所有IGMP設備上IGMP其它查詢器的存在時間應該相同,否則都有可能導致網絡內的IGMP查詢器反複變化。
· 應確保IGMP普遍組查詢報文的發送間隔大於IGMP普遍組查詢報文的最大響應時間,否則有可能造成對組播組成員的誤刪。
· 對IGMP普遍組查詢報文的最大響應時間、IGMP最後組成員查詢間隔、IGMP最後組成員查詢次數以及IGMP其它查詢器的存在時間所做的配置,隻有當設備運行在IGMPv2/v3時才有效。
· 用戶既可在IGMP視圖下對所有接口進行全局配置,也可在接口視圖下隻對當前接口進行配置,後者的配置優先級較高。
(1) 進入係統視圖。
system-view
(2) 進入IGMP視圖。
igmp [ vpn-instance vpn-instance-name ]
(3) 配置IGMP查詢器的健壯係數。
robust-count count
缺省情況下,IGMP查詢器的健壯係數為2。
(4) 配置IGMP查詢器的啟動查詢間隔。
startup-query-interval interval
缺省情況下,IGMP查詢器的啟動查詢間隔為IGMP普遍組查詢報文發送間隔的1/4。
(5) 配置IGMP查詢器的啟動查詢次數。
startup-query-count count
缺省情況下,IGMP查詢器的啟動查詢次數等於IGMP查詢器的健壯係數。
(6) 配置IGMP普遍組查詢報文的發送間隔。
query-interval interval
缺省情況下,IGMP普遍組查詢報文的發送間隔為125秒。
(7) 配置IGMP最後組成員查詢間隔。
last-member-query-interval interval
缺省情況下,IGMP最後組成員查詢間隔為1秒。
(8) 配置IGMP最後組成員查詢次數。
last-member-query-count count
缺省情況下,IGMP最後組成員查詢次數等於IGMP查詢器的健壯係數。
(9) 配置IGMP普遍組查詢報文的最大響應時間。
max-response-time time
缺省情況下,IGMP普遍組查詢報文的最大響應時間為10秒。
(10) 配置IGMP其它查詢器的存在時間。
other-querier-present-interval interval
缺省情況下,IGMP其它查詢器的存在時間=IGMP普遍組查詢報文的發送間隔×IGMP查詢器的健壯係數+IGMP普遍組查詢的最大響應時間÷2。
(1) 進入係統視圖。
system-view
(2) 進入接口視圖。
interface interface-type interface-number
(3) 配置IGMP查詢器的健壯係數。
igmp robust-count count
缺省情況下,IGMP查詢器的健壯係數為2。
(4) 配置IGMP查詢器的啟動查詢間隔。
igmp startup-query-interval interval
缺省情況下,IGMP查詢器的啟動查詢間隔為IGMP普遍組查詢報文發送間隔的1/4。
(5) 配置IGMP查詢器的啟動查詢次數。
igmp startup-query-count count
缺省情況下,IGMP查詢器的啟動查詢次數等於IGMP查詢器的健壯係數。
(6) 配置IGMP普遍組查詢報文的發送間隔。
igmp query-interval interval
缺省情況下,IGMP普遍組查詢報文的發送間隔為125秒。
(7) 配置IGMP最後組成員查詢間隔。
igmp last-member-query-interval interval
缺省情況下,IGMP最後組成員查詢間隔為1秒。
(8) 配置IGMP最後組成員查詢次數。
igmp last-member-query-count count
缺省情況下,IGMP最後組成員查詢次數等於IGMP查詢器的健壯係數。
(9) 配置IGMP普遍組查詢報文的最大響應時間。
igmp max-response-time time
缺省情況下,IGMP普遍組查詢報文的最大響應時間為10秒。
(10) 配置IGMP其它查詢器的存在時間。
igmp other-querier-present-interval interval
缺省情況下,IGMP其它查詢器的存在時間=IGMP普遍組查詢報文的發送間隔×IGMP查詢器的健壯係數+IGMP普遍組查詢的最大響應時間÷2。
在某些應用(如ADSL撥號上網)中,IGMP查詢器的一個端口唯一對應著一台接收者主機,當主機在多個組播組間頻繁切換(如進行電視選台)時,為了快速響應主機的離開組報文,可以在IGMP查詢器上開啟組播組成員快速離開功能。
在開啟了組播組成員快速離開功能之後,當IGMP查詢器收到來自主機的離開組報文時,不再發送IGMP特定組查詢報文或IGMP特定源組查詢報文,而是直接向上遊發送離開通告,這樣一方麵減小了響應延遲,另一方麵也節省了網絡帶寬。
隻有當設備運行在IGMPv2或IGMPv3時,本配置才有效。
(1) 進入係統視圖。
system-view
(2) 進入接口視圖。
interface interface-type interface-number
(3) 開啟組播組成員快速離開功能。
igmp fast-leave [ group-policy ipv4-acl-number ]
缺省情況下,組播組成員快速離開功能處於關閉狀態。
在SSM網絡中,由於各種可能的限製,某些接收者主機隻能運行IGMPv1或IGMPv2。為了向這些僅支持IGMPv1或IGMPv2的接收者主機提供SSM服務,可以在設備上配置IGMP SSM Mapping規則。
為防止本網段內運行IGMPv3的主機無法加入組播組,請在該網段麵向主機的接口上運行IGMPv3。
(1) 進入係統視圖。
system-view
(2) 進入IGMP視圖。
igmp [ vpn-instance vpn-instance-name ]
(3) 配置IGMP SSM Mapping規則。
ssm-mapping source-address ipv4-acl-number
在IGMP代理設備上,請先根據網絡拓撲確定其路由器接口和主機接口,然後在路由器接口上使能並配置IGMP。
請在IGMP代理設備的主機接口上開啟IGMP代理功能,且需要注意的是:
· 一個接口上如果同時開啟IGMP代理功能和IGMP協議,IGMP協議將不會生效。在已開啟IGMP代理功能的接口上配置其它IGMP命令時,隻有igmp version命令會生效。
· 如果在一台設備上同時開啟IGMP代理功能和組播路由協議(如PIM),組播路由協議將不會生效。而由於IGMPv1查詢器要由PIM選出的DR來充當,因此若IGMP代理設備的路由器接口運行IGMPv1,則該接口將無法成為DR,從而無法充當IGMP查詢器,此時為使該接口下的主機能夠接收組播數據,需在該接口上開啟非查詢器轉發功能。
(1) 進入係統視圖。
system-view
(2) 進入接口視圖。
interface interface-type interface-number
(3) 開啟IGMP代理功能。
igmp proxy enable
缺省情況下,IGMP代理功能處於關閉狀態。
組播數據通常隻被查詢器轉發,非查詢器不具備組播轉發能力,這樣可避免組播數據被重複轉發。但如果IGMP代理設備的路由器接口未能當選查詢器,應在該接口上開啟非查詢器轉發功能,否則下遊主機將無法收到組播數據。
在共享網段內存在多台IGMP代理設備的情況下,如果其中一台IGMP代理設備的路由器接口已當選為查詢器,不應再在其它IGMP代理設備的路由器接口上開啟非查詢器轉發功能,否則該網段將收到多份重複的組播數據。
(1) 進入係統視圖。
system-view
(2) 進入接口視圖。
interface interface-type interface-number
(3) 開啟非查詢器轉發功能。
igmp proxy forwarding
缺省情況下,非查詢器轉發功能處於關閉狀態。
當在IGMP代理設備的多個接口上開啟了IGMP代理功能時,隻有IP地址最大的接口會轉發組播流量,為了分擔單端口流量轉發的負擔,可以開啟IGMP代理的負載分擔功能,使開啟了IGMP代理功能的接口都參與組播流量的轉發。
(1) 進入係統視圖。
system-view
(2) 進入IGMP視圖。
igmp [ vpn-instance vpn-instance-name ]
(3) 開啟IGMP代理的負載分擔功能。
proxy multipath
缺省情況下,IGMP代理的負載分擔功能處於關閉狀態。
NSR(Nonstop Routing,不間斷路由)通過將IGMP的運行接口以及組播組等信息備份到備進程,從而避免了主備倒換對轉發業務的影響。
NSR特性不需要周邊設備的配合,設備自身可以將運行接口和組播組等信息進行恢複。
(1) 進入係統視圖。
system-view
(2) 開啟IGMP NSR功能。
igmp non-stop-routing
缺省情況下,IGMP NSR功能處於關閉狀態。
在完成上述配置後,在任意視圖下執行display命令可以顯示配置後IGMP的運行情況,通過查看顯示信息驗證配置的效果。
在用戶視圖下執行reset命令可以清除IGMP的統計信息。
執行reset igmp group命令可能導致接收者接收組播信息中斷。
表1-1 IGMP顯示和維護
操作 |
命令 |
顯示IGMP組播組的信息 |
display igmp [ vpn-instance vpn-instance-name ] group [ group-address | interface interface-type interface-number ] [ static | verbose ] |
顯示接口上IGMP配置和運行信息 |
display igmp [ vpn-instance vpn-instance-name ] interface [ interface-type interface-number ] [ proxy ] [ verbose ] |
顯示IGMP代理記錄的組播組信息 |
display igmp [ vpn-instance vpn-instance-name ] proxy group [ group-address | interface interface-type interface-number ] [ verbose ] |
顯示IGMP代理路由表的信息 |
display igmp [ vpn-instance vpn-instance-name ] proxy routing-table [ source-address [ mask { mask-length | mask } ] | group-address [ mask { mask-length | mask } ] ] * [ verbose ] |
顯示IGMP SSM Mapping規則 |
display igmp [ vpn-instance vpn-instance-name ] ssm-mapping group-address |
清除IGMP組的動態加入記錄 |
reset igmp [ vpn-instance vpn-instance-name ] group { all | interface interface-type interface-number { all | group-address [ mask { mask | mask-length } ] [ source-address [ mask { mask | mask-length } ] ] } } |
當某主機發送了加入組播組G的報文後,離該主機最近的設備上卻沒有組播組G的組成員信息。
· 組網、接口連線的正確與否以及接口的協議層是否up將直接影響組播組成員信息的生成;
· 在設備上必須使能IP組播路由,在連接主機的接口上必須使能IGMP;
· 如果路由器接口上運行的IGMP版本比主機的低,那麼設備將無法識別主機發來的較高版本的IGMP報告報文;
· 如果在接口上使用命令igmp group-policy對加入組播組G進行了限製後,該接口將不再接收未通過過濾的那些要求加入組播組G的報文。
(1) 檢查組網是否正確,接口間的連線是否正確,以及接口狀態是否正常,是否配置了正確的IP地址。通過命令display igmp interface查看接口信息。若無接口信息輸出,說明接口狀態異常,原因通常是接口上配置了shutdown命令,或者接口連線不正確,或者接口上沒有配置正確的IP地址。
(2) 檢查是否使能了組播路由。通過命令display current-configuration查看是否配置了命令multicast routing。若缺少該配置,則需要在係統視圖下執行命令multicast routing使能IP組播路由,同時也需要在相應接口上使能IGMP。
(3) 檢查接口上運行的IGMP版本。通過命令display igmp interface來檢查接口上運行的IGMP版本是否低於主機所使用的版本。
(4) 檢查接口上是否配置了ACL規則來限製主機加入組播組G。通過命令display current-configuration interface觀察是否配置了igmp group-policy命令。如果配置的ACL規則對加入組播組G進行了限製,則需要修改該ACL規則,允許接受組播組G的報告報文。
在同一網段的不同IGMP設備上,各自維護的組成員關係不一致。
· 運行IGMP的設備為每個接口維護多個參數,各參數之間相互影響,非常複雜。如果同一網段設備的IGMP接口參數配置不一致,必然導致組成員關係的混亂;
· 另外,IGMP目前有3個版本,版本不同的IGMP設備與主機之間雖然可以部分兼容,但是連接在同一網段的所有設備必須運行相同版本的IGMP。如果同一網段設備的IGMP版本不一致,也將導致IGMP組成員關係的混亂。
(1) 檢查IGMP配置。通過命令display current-configuration觀察接口上IGMP的配置信息。
(2) 在同一網段的所有設備上執行命令display igmp interface來檢查IGMP相關定時器的參數,確保配置一致。
(3) 通過命令display igmp interface來檢查各設備上運行的IGMP版本是否一致。
不同款型規格的資料略有差異, 詳細信息請向具體銷售和400谘詢。H3C保留在沒有任何通知或提示的情況下對資料內容進行修改的權利!