IGMP基礎
IGMP消息封裝在IP報文中,IGMP消息封裝在IP報文中,且TTL字段值爲1,表示IGMP消息只在本地網段傳播。網絡
IGMP版本:
一、 IGMPv1 版本(由 RFC 1112 定義)
二、 IGMPv2 版本(由 RFC 2236 定義)
三、 IGMPv3 版本(由 RFC 3376 定義)app
IGMPv1報文類型:
一、 廣泛組查詢報文(General Query):查詢器向共享網絡上全部主機和路由器發送的查詢報文,用於瞭解哪些組播組存在成員。
二、 成員報告報文(Report):主機向組播路由器發送的報告消息,用於申請加入某個組播組或者應答查詢報文。ide
IGMPv1查詢器選舉:
當一個網段內有多個組播路由器時,須要選舉出一個 IGMP 查詢器,由查詢器發送查詢報文,負責該網段的組成員關係查詢。
在 IGMPv1 中,由組播路由協議 PIM 選舉出惟一的組播信息轉發者(Assert Winner 或 DR)做爲 IGMPv1 的查詢器。
PIM選擇DR規則:
一、 DR優先級較高者獲勝(網段中全部PIM路由器都支持DR優先級)。
二、 若是DR優先級相同或該網段存在至少一臺PIM路由器不支持在Hello報文中攜帶DR優先級,則IP地址較大者獲勝。優化
IGMPv1查詢和響應過程:
一、查詢器每隔60s向網絡中發起查詢,目的地址爲224.0.0.1(全部設備),組播地址爲0.0.0.0,因此也叫廣泛組查詢。
二、組成員收到信息後啓動定時器(0-10s)。
三、最早定時器超時的組成員迴應報告報文(目的地址爲加入的組播地址,組地址字段爲加入的組播地址)。
四、其餘組成員偵聽到此報告報文後就中止計時器,抑制報告報文的發送,這樣可讓查詢器只收到一份報告報文,減小網段上的流量。
五、查詢器收到報告報文後,瞭解本網段上的組成員,並由組播路由協議生成(*,G)表項,一旦有G的目的地址到達路由器,就向該網段轉發。blog
IGMPv1新成員加入過程:
一、新成員偵聽到網段中有沒有想要加入組的數據報文。
二、如有,就不作任何動做,開始接受組播數據;若沒有,就發送一個以目的地址和組地址字段爲要加入組的組播地址的report報文,請求加入該組。
三、路由器收到report請求報文後,瞭解到本網段出現了新的組成員,因此生成(*,G)表項,當G的組播流量到達時,就向該網段轉發。接口
IGMPv1組成員離開:
一、IGMPv1爲默默的離開,沒有定義組成員離開的報文。
二、當離開的組成員收到路由器發來的查詢報文時,就不會作出響應。
三、若是路由器在查詢時間超時(130s)後收不到任何查詢報文的響應信息,就認爲該網段上沒有該組的組成員,刪除對應組的組播轉發表項。ci
IGMPv2報文類型:
一、 廣泛組查詢報文;(與IGMPv1同樣)
二、 成員報告報文;(與IGMPv1同樣)
三、 特定組查詢報文(Group-Specific Query):查詢器向共享網段內指定組播組發送的查詢報文,用於查詢該組播組是否存在成員。
四、 成員離開報文(Leave):成員離開組播組時主動向路由器發送的報文,用於宣告本身離開了某個組播組。路由
IGMPv2查詢器選舉:
比較收到報文的源地址和本身接口地址大小,IP地址小的路由器成爲查詢器。it
最大響應計時器:
一、廣泛組查詢最大響應計時器爲0-10s。
二、特定組查詢最大響應計時器爲0-1s。class
IGMPv2組成員關係查詢和響應過程:
分爲兩種:
一、常規查詢與響應是和IGMPv1是同樣的。
二、指定組查詢,查詢特定組是否還有組成員,目的地址和組地址字段爲特定組地址,指定組查詢不是像IGMPv1同樣是週期發送的,只有當最後一個響應者離開的時候發送。
指定組查詢響應:由於特定組查詢2次後(默認爲2s)收不到響應信息就會刪除組播轉發表項,因此特定組查詢的響應計時器爲0-1s。
能夠向下兼容IGMPv1的成員關係報告。
IGMPv2新成員加入組過程(與IGMPv1類似):
一、新成員偵聽到網段中有沒有想要加入組的數據報文。
二、如有,就不作任何動做,開始接受組播數據;若沒有,就發送一個或者多個(IGMPv2的優化)以目的地址和組地址字段爲要加入組的組播地址的report報文,請求加入該組。
三、路由器收到report請求報文後,瞭解到本網段出現了新的組成員,因此生成(*,G)表項,當G的組播流量到達時,就向該網段轉發。
IGMPv2組成員離開過程:
一、當最後一個響應者的組成員要離開組的時候發送以目的地址爲224.0.0.2,組播地址字段爲離開組的組播地址的離開信息。
二、查詢器收到離開信息以後,就會觸發特定組的查詢,在發送2次(每次1s)特定組的查詢仍然沒有收到迴應消息時,就刪除組播轉發表項;若是收到迴應消息,則代表網段裏還有該組的組成員,不刪除表項。
IGMP SSM Mapping:經過在路由器上靜態配置 SSM 地址的映射規則,將 IGMPv1 和 IGMPv2 報告報文中的(*, G) 信息轉化爲對應的(S, G)信息,以提供 SSM 組播服務。缺省狀況下, SSM 組地址範圍爲 232.0.0.0~232.255.255.255。