全國(guó)服務(wù)熱線0755-83999818
當(dāng)前位置:首頁(yè) ? 技術(shù)支持 » 什么是IGMP?如何測(cè)試IGMP

什么是IGMP?如何測(cè)試IGMP

文章出處:深圳市連訊達(dá)電子技術(shù)開發(fā)有限公司 人氣:-發(fā)表時(shí)間:2015-07-20 15:31:00

IGMP概述
IGMP(Internet Group Management Protocol)作為因特網(wǎng)組管理協(xié)議,是TCP/IP 協(xié)議族中負(fù)責(zé)IP 組播成員管理的協(xié)議,它用來在IP 主機(jī)和與其直接相鄰的組播路由器之間建立、維護(hù)組播組成員關(guān)系。
IP 主機(jī)通過發(fā)送IGMP 報(bào)文宣布加入某組播組;本地組播路由器通過周期性的發(fā)送IGMP 報(bào)文輪詢本地網(wǎng)絡(luò)上的主機(jī),確定本地組播組成員信息。
到 目前為止,IGMP 有三個(gè)版本:IGMPv1 版本(由RFC1112 定義)、IGMPv2 版本(由RFC2236 定義)和IGMPv3(由RFC3376 定義)版本。所有IGMP 版本都支持ASM(Any-Source Multicast)模型。IGMPv3 可以直接應(yīng)用于SSM(Source-Specific Multicast)模型,而IGMPv1 和IGMPv2 則需要SSM-Mapping 技術(shù)的支持。

IGMP原理簡(jiǎn)介
IGMP 協(xié)議是IP 組播在末端網(wǎng)絡(luò)上使用的主機(jī)對(duì)路由器的信令機(jī)制,分為兩個(gè)功能部分:主機(jī)側(cè)和路由器側(cè)。IGMP 工作機(jī)制如下所述:
1. 接收者主機(jī)向所在的共享網(wǎng)絡(luò)報(bào)告組成員關(guān)系。
2. 處于同一網(wǎng)段的所有使能了IGMP 功能的組播路由器選舉出一臺(tái)作為查詢器,查詢器周期性地向該共享網(wǎng)段發(fā)送組成員查詢消息。
3. 接收者主機(jī)接收到該查詢消息后進(jìn)行響應(yīng)以報(bào)告組成員關(guān)系。
4. 網(wǎng)段中的組播路由器依據(jù)接收到的響應(yīng)來刷新組成員的存在信息。如果超時(shí)無響應(yīng),組播路由器就認(rèn)為網(wǎng)段中沒有該組播組的成員,從而取消相應(yīng)的組播數(shù)據(jù)轉(zhuǎn)發(fā)。
5. 所有參與組播傳輸?shù)慕邮照咧鳈C(jī)必須應(yīng)用IGMP 協(xié)議。主機(jī)可以在任意時(shí)間、任意位置、成員總數(shù)不受限制地加入或退出組播組。
6. 支持組播的路由器不需要也不可能保存所有主機(jī)的成員關(guān)系,它只是通過IGMP協(xié)議了解每個(gè)接口連接的網(wǎng)段上是否存在某個(gè)組播組的接收者,即組成員。而各主機(jī)只需要保存自己加入了哪些組播組。


IGMPv1工作機(jī)制
IGMPv1 協(xié)議主要基于查詢和響應(yīng)機(jī)制完成組播組管理。在多路由器共享網(wǎng)段上,由三層路由協(xié)議選舉出唯一的組播信息轉(zhuǎn)發(fā)者(Assert Winner 或DR),并作為IGMPv1 的查詢器,負(fù)責(zé)該網(wǎng)段的組成員關(guān)系查詢。網(wǎng)絡(luò)上IGMPv1 消息交互如圖9-1 所示。

主機(jī)加入組播組的基本過程如下:
1. IGMP 查詢器(RouterB)周期性地向共享網(wǎng)段內(nèi)所有主機(jī)以組播方式(目的地址為組播地址)發(fā)送普遍組Query 查詢消息。該報(bào)文的目的地址為224.0.0.1,表示該網(wǎng)段上的所有主機(jī)和路由器。
2. 網(wǎng)段內(nèi)所有主機(jī)都接收到該普遍組查詢消息。如果主機(jī)(如HostB 和HostC)希望加入某組播組G1,則以組播方式發(fā)送Report 報(bào)告。該報(bào)文的目的地址為224.0.0.1,報(bào)文中攜帶組播組G1 的地址信息。
3. 網(wǎng)段中所有主機(jī)和路由器都接收到該Report 報(bào)告,并獲知組播組G1 地址信息,此時(shí)網(wǎng)段中其它也希望加入該組播組G1 的主機(jī)將不再發(fā)送針對(duì)相同組播組的Report 報(bào)告。同時(shí),網(wǎng)段中預(yù)備加入另一組播組G2 的主機(jī)發(fā)送針對(duì)組播組G2 的Report 報(bào)告以響應(yīng)普遍組查詢消息。
4. 經(jīng)過查詢和響應(yīng)過程后,IGMP 路由器了解到本網(wǎng)段內(nèi)存在組播組G1 對(duì)應(yīng)的組播組成員,則由組播路由協(xié)議生成(*,G1)組播轉(zhuǎn)發(fā)項(xiàng)并以此作為組播數(shù)據(jù)的轉(zhuǎn)發(fā)依據(jù)。之后,組播路由協(xié)議將發(fā)起上游路由更新以維護(hù)組播轉(zhuǎn)發(fā)樹。
5. 組播源發(fā)出的組播數(shù)據(jù)經(jīng)過組播路由到達(dá)IGMP 路由器,如果IGMP 路由器上存在(*,G1)組播轉(zhuǎn)發(fā)項(xiàng),則轉(zhuǎn)發(fā)該組播數(shù)據(jù)到此共享網(wǎng)段,G1 組播組成員主機(jī)接收該數(shù)據(jù)。
6. IGMPv1 中沒有專門定義離開組播組的消息。當(dāng)主機(jī)離開某組播組后,將不再發(fā)送以此組播組地址為目的地址的Report 報(bào)告。當(dāng)網(wǎng)段中不再存在該組播組成員后,IGMP 路由器將不能收到任何針對(duì)此組播組的Report 報(bào)告,則IGMP 路由器刪除該組播組對(duì)應(yīng)的轉(zhuǎn)發(fā)項(xiàng)。

IGMPv2改進(jìn)功能

IGMPv2 對(duì)IGMPv1 所做的改進(jìn)主要有以下幾個(gè)方面:
查詢器選舉機(jī)制
IGMPv1 中,當(dāng)某共享網(wǎng)段上存在多個(gè)組播路由器時(shí),查詢器的選擇由組播路由協(xié)議決定。
IGMPv2 中使用獨(dú)立的查詢器選舉機(jī)制,規(guī)定該網(wǎng)段上IP 地址最小的組播路由器為查詢器。

離開組機(jī)制
在IGMPv1 中,主機(jī)悄然離開組播組,不會(huì)向任何組播路由器發(fā)出任何通知。這時(shí)組播路由器只能依靠普遍組查詢消息響應(yīng)超時(shí)來獲知組播組成員的離開。
在IGMPv2 中,當(dāng)某主機(jī)決定離開組播組G1 時(shí),它會(huì)向該網(wǎng)段以組播方式發(fā)送IGMP Leave 報(bào)文。該報(bào)文的目的地址為224.0.0.2,表示該網(wǎng)段上的所有路由器,報(bào)文中攜帶組播組G1 的地址。
隨后,為了明確網(wǎng)段中是否還包含組播組G1 的其它成員主機(jī),查詢器會(huì)向網(wǎng)絡(luò)中發(fā)送指定次數(shù)的特定組查詢消息。

對(duì)指定組的查詢
在IGMPv1 中,由組播路由器發(fā)起的普遍組查詢面向該網(wǎng)段下的所有組播組。
在IGMPv2 中,增加了針對(duì)特定組的查詢。IGMP 查詢器在收到主機(jī)發(fā)送的離開組播組G1 的Leave 報(bào)文時(shí),將向該網(wǎng)段中發(fā)送針對(duì)G1 的查詢報(bào)文。該報(bào)文的目的地址為組播組G1 的地址,只有屬于該組播組的主機(jī)才會(huì)進(jìn)行響應(yīng),從而發(fā)送攜帶組播組G1 地址信息的Report 報(bào)告。IGMPv2 和IGMPv1 版本的響應(yīng)消息(即Report 報(bào)告)和查詢消息具有相同的報(bào)文結(jié)構(gòu),報(bào)文中僅攜帶組地址信息。
特定組查詢報(bào)文也稱為最后成員查詢報(bào)文。IGMP 查詢器在收到主機(jī)發(fā)送的IGMPLeave 報(bào)文后,發(fā)送指定組查詢報(bào)文的次數(shù)由健壯系數(shù)來確定。

最大響應(yīng)時(shí)間
IGMPv2 中設(shè)置了最大響應(yīng)時(shí)間,以限制查詢器等待主機(jī)響應(yīng)組查詢報(bào)文(即發(fā)送report 報(bào)文)的最長(zhǎng)時(shí)間。




IGMPv3改進(jìn)功能

IGMPv3 在繼承IGMPv2 的基礎(chǔ)上進(jìn)一步增強(qiáng)了主機(jī)的控制能力,支持指定源/組功能:主機(jī)在加入某組播組G 的同時(shí),能夠明確的要求接收或不接收某特定組播源S 發(fā)出的組播信息。
* 當(dāng)主機(jī)要求從某些指定源接收組播報(bào)文時(shí),其IGMP Report 報(bào)告中的Filter-Mode字段將被設(shè)置為Include 模式,并在該報(bào)告中指定組播源地址Sources。鑒于描述方便,其IGMP Report 報(bào)告可以被標(biāo)記為Include Sources(S1,S2,……)。
* 如果主機(jī)拒絕接收某些指定源的組播報(bào)文,則Filter-Mode 字段將被設(shè)置為Exclude 模式,并指定組播源地址Sources,表示從除指定源外的所有源地址接收組播報(bào)文。其IGMP Report 報(bào)告可以被標(biāo)記為Exclude Sources(S1,S2,……)。
例如,網(wǎng)絡(luò)中存在S1 和S2 兩個(gè)組播源,均向組播組G 發(fā)送組播報(bào)文,User 僅希望接收從組播源S1 發(fā)往組播組G 的信息,典型組網(wǎng)如圖9-2 所示。
 
如 果主機(jī)和路由器之間應(yīng)用IGMPv1 或IGMPv2,User 加入到某組播組G 后,將接收到來自組播源S1 和S2 的組播信息。如果采用IGMPv3,主機(jī)User 可以要求加入指定源S1 對(duì)應(yīng)的組播組G,或退出指定源S2 對(duì)應(yīng)的組播組G,從而僅有來自S1 的組播信息才能傳遞到User。

攜帶源地址的查詢消息
IGMPv3 支持指定源/組查詢。IGMPv3 報(bào)文中包含組播源地址字段和多種控制字段(如查詢器的健壯系數(shù)、查詢間隔等)。進(jìn)行普遍組查詢時(shí),不攜帶組地址,也不攜帶源地址;進(jìn)行指定組查詢時(shí),攜帶 組地址,不攜帶源地址;進(jìn)行指定源/組查詢時(shí),攜帶組地址,還攜帶1 個(gè)或多個(gè)源地址信息。

包含多個(gè)組記錄的響應(yīng)消息
IGMPv3 的響應(yīng)消息(即Report 報(bào)告)的目的IP 地址為224.0.0.22,該報(bào)文攜帶1個(gè)或多個(gè)組記錄,在每個(gè)組記錄中,包含組播組地址、數(shù)目不等的源地址信息。組記錄可以分為多種類型,如:
* 當(dāng)前狀態(tài)記錄
報(bào)告了接口的當(dāng)前接收狀態(tài),分為Include 和Exclude 兩種狀態(tài)類型。Include 表示包含指定源地址列表,Exclude 表示不包含指定源地址列表。
* 過濾模式改變記錄
報(bào)告接口接收狀態(tài)從Include 狀態(tài)切換到Exclude 狀態(tài),或從Exclude 狀態(tài)切換到Include 狀態(tài)。
* 源地址列表改變記錄
報(bào)告新源地址加入,或刪除某源地址。



SSM Mapping簡(jiǎn)介
SSM 映射是SSM 特性的擴(kuò)展功能,通過在路由器上配置SSM 靜態(tài)映射信息,為配置了IGMPv1 或IGMPv2 的主機(jī)提供支持SSM 的功能服務(wù)。
 
如圖9-3 所示,對(duì)于網(wǎng)絡(luò)拓?fù)渲械闹鳈C(jī),主機(jī)HostA、HostB 不支持IGMPv3,僅僅會(huì)向RouterA 發(fā)送IGMPv1 或v2 報(bào)告消息。這時(shí),為主機(jī)HostA、HostB 提供特定源/組的組播報(bào)文轉(zhuǎn)發(fā)服務(wù),有兩種解決方案:
* 升級(jí)主機(jī)上的IGMP 版本為v3 以支持SSM。
* 不改變主機(jī)上的IGMP 版本,在查詢器RouterA 上使能SSM Mapping,并靜態(tài)配置特定組播源/組的SSM Mapping 策略。
配置了IGMPv3 的查詢器,當(dāng)接收到來自主機(jī)的IGMPv1 或v2 的Report 消息時(shí),首先檢查Report 消息中攜帶的組地址G,然后根據(jù)檢查結(jié)果進(jìn)行如下處理:
* 如果G 不在SSM 組地址范圍內(nèi),按照原有IGMPV1/V2 正常流程處理。
* 如果G 在SSM 組地址范圍內(nèi),但查詢器沒有SSM Mapping 的相關(guān)配置,則丟棄該報(bào)告消息(*,G)。
* 如果G 在SSM 組地址范圍內(nèi),且查詢器配置了SSM Mapping 的匹配策略,則依照映射策略將收到的IGMP V1/V2 報(bào)文轉(zhuǎn)換成一個(gè)或者多個(gè)Include Sources(S,G)項(xiàng),之后就可以像收到了IGMPv3 報(bào)文一樣處理,從而實(shí)現(xiàn)SSM 的功能。


多實(shí)例的IGMP
由于IGMP 根據(jù)接口來收集組成員關(guān)系,VPN 實(shí)例的IGMP 根據(jù)接口所屬實(shí)例來處理協(xié)議報(bào)文的收發(fā),當(dāng)路由器從網(wǎng)絡(luò)上收到IGMP 報(bào)文時(shí),需要區(qū)分該報(bào)文所屬的實(shí)例類型,并在該實(shí)例范圍內(nèi)對(duì)其進(jìn)行處理。當(dāng)需要和其它組播協(xié)議交互信息時(shí),只會(huì)通知本VPN 實(shí)例內(nèi)的其它組播協(xié)議。



如何利用福祿克Onetouch AT測(cè)試IGMP呢?

地址鏈接:http://www.faxytech.com/archives/igmp-onetouch.html


此文關(guān)鍵字:IGMP測(cè)試,fluke,福祿克,Onetouch AT