一.基本概念
組播地址范圍
IP組播常見模式分為ASM(任意組播源)與SSM(指定組播源)模式
組播MAC地址與單播MAC地址
IPv4的組播MAC地址(48bit)前24位為0x01005e,第25位固定為0,剩余23位可任意使用
組播IPv4到MAC的映射
組播IP前4位默認1110,之后5位映射可丟棄,低23位映射為組播mac地址的低23位。導致32個IP地址映射為同一個組播mac地址
什么是IGMP
IGMP(Internet Group Management Protocol)因特網組管理協議,是TCP/IP協議族中負責IP組播成員管理的協議,用來在接收者和與其直接相鄰的組播路由器之間建立、維護組播組成員關系。
人工配置組播信息的缺陷
由於接收者需要聲明自己要接受哪個組的數據,路由器需了解哪些組播組存在的接收者。所有人工配置會導致實時性差、靈活性差、工作量大易出錯等問題。
二.IGMP
IGMP作用
運行於主機與組播路由器之間 主機側:通過IGMP協議向路由器通告組成員關系 路由器側:通過IGMP協議維護組成員關系
IGMPv1工作機制
1.查詢與響應
2.普遍組查詢(General Query) 詢問主機想加入哪個組(60s/次) 2)普遍組響應(Report)
告訴路由器要加入哪個網絡 當同一個組主機A監聽到同一組中的主機B已向路由器發送Report后,由於路由器只需知道有主機加入該組即可,所以主機A便不再發送Report,這種情況叫響應抑制機制。
3.成員加入(主動) 當路由器為發送General Query消息,且新接入主機要加入組時,新接入的主機D主動發送Report請求加入組播組
4.組成員離開---靜默離開(僅v1存在的特性)
當路由器查詢130s沒有收到主機A的響應,則路由器認為A主機已不存在G1組中,A主機靜默離開G1組,不發送離開Report
5.查詢器選舉(僅v1存在的特性) 由於自身沒有選舉機制,無法依據自身協議選舉,所以要通過其他中間協議(如PIM)進行選舉
6.地址結構 未使用默認時10s,不可該變對應靜默離開時間的計算,兩個路由器查詢時間加該時間,(60s×2)+10s=130s
IGMPv2工作機制(最常用)
1.查詢與響應(與v1一致)
2.成員加入(與v1一致)
3.組成員離開---主動離開 當主機B要離開G2組,主機B向路由器發送離開Report,路由器向G2組發送兩次特定組查詢,確認同組內是否還有其他主機,沒有收到Report則認為G2組中已沒有主機。
4.查詢器選舉 當路由器B與路由器A同時發送General Query,A、B路由器收到對方發送的查詢消息,則Router ID小的最優先
5.地址結構 這里最大響應時間為10s,可改變
IGMPv3工作機制
1.查詢與選舉(於v1一致)
2.成員加入(與v1一致)
3.成員離開(與v2一致)
4.查詢器選舉(與v2一致)
5.針對SSM模型新功能 SSM(Source Specific Multicast)指定源組播
新加入一個字段可以指定接受或者拒絕某些組播源發送的數據,IN表示接受
IGMP Snooping工作機制
1)Snooping機制出現原因 由於組播地址在非成員group被泛洪,也就是當路由器接入交換機時會導致交換機將組播地址泛洪給直連的所有主機(組播二層泛洪),造成網絡資源浪費,且存在安全隱患。
2)工作原理
第一步 路由器發送Query給主機B、C,交由CPU處理,通過交換機泛洪給了所有主機
第二部 主機A收到Query后不發Report,B、C正常通過交換機向CPU發Report,CPU將Report轉發給路由器 通過以上兩個步驟形成二層組播轉發表,記錄發送給同一個組播組MAC地址的端口號,當路由器再次向該group發送消息時,則會自動只向這個組播組MAC地址的端口發送消息