什麼是IGMP?如何測試IGMP
IGMP概述
IGMP(Internet Group Management Protocol)作為因特網組管理協議,是TCP/IP 協議族中負責IP 組播成員管理的協議,它用來在IP 主機和與其直接相鄰的組播路由器之間建立、維護組播組成員關係。
IP 主機通過發送IGMP 報文宣布加入某組播組;本地組播路由器通過周期性的發送IGMP 報文輪詢本地網絡上的主機,確定本地組播組成員信息。
到 目前為止,IGMP 有三個版本:IGMPv1 版本(由RFC1112 定義)、IGMPv2 版本(由RFC2236 定義)和IGMPv3(由RFC3376 定義)版本。所有IGMP 版本都支持ASM(Any-Source Multicast)模型。IGMPv3 可以直接應用於SSM(Source-Specific Multicast)模型,而IGMPv1 和IGMPv2 則需要SSM-Mapping 技術的支持。
IGMP原理簡介
IGMP 協議是IP 組播在末端網絡上使用的主機對路由器的信令機製,分為兩個功能部分:主機側和路由器側。IGMP 工作機製如下所述:
1. 接收者主機向所在的共享網絡報告組成員關係。
2. 處於同一網段的所有使能了IGMP 功能的組播路由器選舉出一台作為查詢器,查詢器周期性地向該共享網段發送組成員查詢消息。
3. 接收者主機接收到該查詢消息後進行響應以報告組成員關係。
4. 網段中的組播路由器依據接收到的響應來刷新組成員的存在信息。如果超時無響應,組播路由器就認為網段中沒有該組播組的成員,從而取消相應的組播數據轉發。
5. 所有參與組播傳輸的接收者主機必須應用IGMP 協議。主機可以在任意時間、任意位置、成員總數不受限製地加入或退出組播組。
6. 支持組播的路由器不需要也不可能保存所有主機的成員關係,它隻是通過IGMP協議了解每個接口連接的網段上是否存在某個組播組的接收者,即組成員。而各主機隻需要保存自己加入了哪些組播組。
IGMPv1工作機製
IGMPv1 協議主要基於查詢和響應機製完成組播組管理。在多路由器共享網段上,由三層路由協議選舉出唯一的組播信息轉發者(Assert Winner 或DR),並作為IGMPv1 的查詢器,負責該網段的組成員關係查詢。網絡上IGMPv1 消息交互如圖9-1 所示。
主機加入組播組的基本過程如下:
1. IGMP 查詢器(RouterB)周期性地向共享網段內所有主機以組播方式(目的地址為組播地址)發送普遍組Query 查詢消息。該報文的目的地址為224.0.0.1,表示該網段上的所有主機和路由器。
2. 網段內所有主機都接收到該普遍組查詢消息。如果主機(如HostB 和HostC)希望加入某組播組G1,則以組播方式發送Report 報告。該報文的目的地址為224.0.0.1,報文中攜帶組播組G1 的地址信息。
3. 網段中所有主機和路由器都接收到該Report 報告,並獲知組播組G1 地址信息,此時網段中其它也希望加入該組播組G1 的主機將不再發送針對相同組播組的Report 報告。同時,網段中預備加入另一組播組G2 的主機發送針對組播組G2 的Report 報告以響應普遍組查詢消息。
4. 經過查詢和響應過程後,IGMP 路由器了解到本網段內存在組播組G1 對應的組播組成員,則由組播路由協議生成(*,G1)組播轉發項並以此作為組播數據的轉發依據。之後,組播路由協議將發起上遊路由更新以維護組播轉發樹。
5. 組播源發出的組播數據經過組播路由到達IGMP 路由器,如果IGMP 路由器上存在(*,G1)組播轉發項,則轉發該組播數據到此共享網段,G1 組播組成員主機接收該數據。
6. IGMPv1 中沒有專門定義離開組播組的消息。當主機離開某組播組後,將不再發送以此組播組地址為目的地址的Report 報告。當網段中不再存在該組播組成員後,IGMP 路由器將不能收到任何針對此組播組的Report 報告,則IGMP 路由器刪除該組播組對應的轉發項。
IGMPv2改進功能
IGMPv2 對IGMPv1 所做的改進主要有以下幾個方麵:
查詢器選舉機製
IGMPv1 中,當某共享網段上存在多個組播路由器時,查詢器的選擇由組播路由協議決定。
IGMPv2 中使用獨立的查詢器選舉機製,規定該網段上IP 地址最小的組播路由器為查詢器。
離開組機製
在IGMPv1 中,主機悄然離開組播組,不會向任何組播路由器發出任何通知。這時組播路由器隻能依靠普遍組查詢消息響應超時來獲知組播組成員的離開。
在IGMPv2 中,當某主機決定離開組播組G1 時,它會向該網段以組播方式發送IGMP Leave 報文。該報文的目的地址為224.0.0.2,表示該網段上的所有路由器,報文中攜帶組播組G1 的地址。
隨後,為了明確網段中是否還包含組播組G1 的其它成員主機,查詢器會向網絡中發送指定次數的特定組查詢消息。
對指定組的查詢
在IGMPv1 中,由組播路由器發起的普遍組查詢麵向該網段下的所有組播組。
在IGMPv2 中,增加了針對特定組的查詢。IGMP 查詢器在收到主機發送的離開組播組G1 的Leave 報文時,將向該網段中發送針對G1 的查詢報文。該報文的目的地址為組播組G1 的地址,隻有屬於該組播組的主機才會進行響應,從而發送攜帶組播組G1 地址信息的Report 報告。IGMPv2 和IGMPv1 版本的響應消息(即Report 報告)和查詢消息具有相同的報文結構,報文中僅攜帶組地址信息。
特定組查詢報文也稱為最後成員查詢報文。IGMP 查詢器在收到主機發送的IGMPLeave 報文後,發送指定組查詢報文的次數由健壯係數來確定。
最大響應時間
IGMPv2 中設置了最大響應時間,以限製查詢器等待主機響應組查詢報文(即發送report 報文)的最長時間。
IGMPv3改進功能
IGMPv3 在繼承IGMPv2 的基礎上進一步增強了主機的控製能力,支持指定源/組功能:主機在加入某組播組G 的同時,能夠明確的要求接收或不接收某特定組播源S 發出的組播信息。
* 當主機要求從某些指定源接收組播報文時,其IGMP Report 報告中的Filter-Mode字段將被設置為Include 模式,並在該報告中指定組播源地址Sources。鑒於描述方便,其IGMP Report 報告可以被標記為Include Sources(S1,S2,……)。
* 如果主機拒絕接收某些指定源的組播報文,則Filter-Mode 字段將被設置為Exclude 模式,並指定組播源地址Sources,表示從除指定源外的所有源地址接收組播報文。其IGMP Report 報告可以被標記為Exclude Sources(S1,S2,……)。
例如,網絡中存在S1 和S2 兩個組播源,均向組播組G 發送組播報文,User 僅希望接收從組播源S1 發往組播組G 的信息,典型組網如圖9-2 所示。
如 果主機和路由器之間應用IGMPv1 或IGMPv2,User 加入到某組播組G 後,將接收到來自組播源S1 和S2 的組播信息。如果采用IGMPv3,主機User 可以要求加入指定源S1 對應的組播組G,或退出指定源S2 對應的組播組G,從而僅有來自S1 的組播信息才能傳遞到User。
攜帶源地址的查詢消息
IGMPv3 支持指定源/組查詢。IGMPv3 報文中包含組播源地址字段和多種控製字段(如查詢器的健壯係數、查詢間隔等)。進行普遍組查詢時,不攜帶組地址,也不攜帶源地址;進行指定組查詢時,攜帶 組地址,不攜帶源地址;進行指定源/組查詢時,攜帶組地址,還攜帶1 個或多個源地址信息。
包含多個組記錄的響應消息
IGMPv3 的響應消息(即Report 報告)的目的IP 地址為224.0.0.22,該報文攜帶1個或多個組記錄,在每個組記錄中,包含組播組地址、數目不等的源地址信息。組記錄可以分為多種類型,如:
* 當前狀態記錄
報告了接口的當前接收狀態,分為Include 和Exclude 兩種狀態類型。Include 表示包含指定源地址列表,Exclude 表示不包含指定源地址列表。
* 過濾模式改變記錄
報告接口接收狀態從Include 狀態切換到Exclude 狀態,或從Exclude 狀態切換到Include 狀態。
* 源地址列表改變記錄
報告新源地址加入,或刪除某源地址。
SSM Mapping簡介
SSM 映射是SSM 特性的擴展功能,通過在路由器上配置SSM 靜態映射信息,為配置了IGMPv1 或IGMPv2 的主機提供支持SSM 的功能服務。
如圖9-3 所示,對於網絡拓撲中的主機,主機HostA、HostB 不支持IGMPv3,僅僅會向RouterA 發送IGMPv1 或v2 報告消息。這時,為主機HostA、HostB 提供特定源/組的組播報文轉發服務,有兩種解決方案:
* 升級主機上的IGMP 版本為v3 以支持SSM。
* 不改變主機上的IGMP 版本,在查詢器RouterA 上使能SSM Mapping,並靜態配置特定組播源/組的SSM Mapping 策略。
配置了IGMPv3 的查詢器,當接收到來自主機的IGMPv1 或v2 的Report 消息時,首先檢查Report 消息中攜帶的組地址G,然後根據檢查結果進行如下處理:
* 如果G 不在SSM 組地址範圍內,按照原有IGMPV1/V2 正常流程處理。
* 如果G 在SSM 組地址範圍內,但查詢器沒有SSM Mapping 的相關配置,則丟棄該報告消息(*,G)。
* 如果G 在SSM 組地址範圍內,且查詢器配置了SSM Mapping 的匹配策略,則依照映射策略將收到的IGMP V1/V2 報文轉換成一個或者多個Include Sources(S,G)項,之後就可以像收到了IGMPv3 報文一樣處理,從而實現SSM 的功能。
多實例的IGMP
由於IGMP 根據接口來收集組成員關係,VPN 實例的IGMP 根據接口所屬實例來處理協議報文的收發,當路由器從網絡上收到IGMP 報文時,需要區分該報文所屬的實例類型,並在該實例範圍內對其進行處理。當需要和其它組播協議交互信息時,隻會通知本VPN 實例內的其它組播協議。
如何利用福祿克Onetouch AT測試IGMP呢?
地址鏈接:http://www.faxytech.com/archives/igmp-onetouch.html
同類文章排行
- 網絡維護和故障診斷培訓(CNMT)
- 福祿克Fluke 115C和Fluke 117C萬用表維修案例
- 深入了解8芯MPO解決方案
- Fluke CableIQ電纜鑒定測試儀(CIQ-100,CIQ-KIT)的 USB 驅動程序(WIN7、WIN8、WIN10)
- 為什麼福祿克需要校準?
- 福祿克FLUKE CFP2-100-Q/CFP2-100-M/CFP2-100-S 產品介紹
- 福祿克FLUKE CFP2-100-Q/CFP2-100-M/CFP2-100-S 操作說明 用戶手冊
- 福祿克DSX2-8000/DSX2-5000使用說明-附加功能
- 福祿克DSX2-8000/DSX2-5000使用說明-查看與保存結果
- 福祿克DSX2-8000/DSX2-5000使用說明-測試設置與操作