組播協議詳解

HL1329658發表於2024-03-15

1.組播基礎

(1)組播簡介

(2)組播的地址

(3)組播的MAC地址

(4)組播的MAC地址

(5)反向轉發路徑—RPF


2.IGMP

(1)簡介

(2)原理


3.IGMP版本

(1)IGMPV1

(2)IGMPV2

(3)IGMPV3


4.PIM-SM

(1)PIM-SM基礎

(2)PIM的工作機制


5.IGMP snooping

(1)基本概念:

(2)主要功能:

(3)角色

(4)協議流程:

(5 )IGMP snooping TCN 事件

(6 )IGMP Proxying

(7 )組播vlan


今天海翎光電的小編圍繞著組播、組播的MAC地址、IGMP原理、IGMPV1、IGMPV2、IGMPV3、PIM-SM工作機制展開為大家分享。


1.組播基礎
(1)組播簡介
組播技術是指單個傳送者對應多個接收者的一種網路通訊。透過項多個接收方傳送單資訊流的方式,可以減少具有多個接收方同時收聽或者檢視相同資源情況下的網路通訊流量。

(2)組播的地址
組播地址的範圍:D類地址,前四個bit總是1110.(225.0.0.0-239.0.0.0)
保留的組播地址:

224.0.0.1 子網中的所有系統

224.0.0.2 子網中所有的路由器

224.0.0.4 DVMRp路由器

224.0.0.5 所有OSPF路由器

224.0.0.6 OSPF指定路由器

224.0.0.9 Rip-2路由器

224.0.0.10 Eigrp路由器

224.0.0.13 PIm路由器

224.0.0.0-224.0.0.255(組地址),地址224.0.0.0保留不做分配,其他地址供路由協議使用。

224.0.1.0-224.0.1.255是公用組播地址,可以用於INternet;

224.0.2.0-238.255.255.255 為使用者可用的組播地址(臨時組地址),全網範圍有效。

239.0.0.0-239.255.255.255 為本地管理組播地址,僅僅在特定的本地範圍內有效


(3)組播的MAC地址
V4組播的MAC地址供48位
協議規定,V4組播MAC地址的高24位為0X01005E,第25位為0,低23位為IPv4組播地址的低23位,IPV4組播地址與MAC地址的對映關係如下圖所示。


(4)組播的MAC地址
一般來說,在一個組播網路中,其基本網路結構中使用的協議可以分為兩個部分。組播路由器與路由器之間部分執行 PIM。 組播路由器與組播接收者行 IGMP 協議。其中 PIM 又細分為,PIM-DM(協議無關組播的密集式) 。PIM-SM(協議無關組播稀疏模式)兩種模式。IGMP 則又有 V1/V2/V3。
PIM-DM適用於小型網路,它的特點是:假設網路中每個子網都存在至少一個對組播感興趣的接收站點。因此,組播資料包被擴散到(“推”)到網路中的所有店。DM使用的源樹(source tree),樹的根是組播心願,分支形成了透過網路達到接收站點的分佈樹,有緣書以最短的路徑關窗網路,因此它也被稱為SPT(最短路徑樹),中間的轉發裝置採用(S,G)的方法記錄表,S表示多播原地址,G表示多播組地址。
PIM-SM使用於大型網路,它的特點是:嘉定所有機器都不需要接收組播資料包,只有明確指定需要的才轉發,接收站點為接受到特定組的資料流,必須向該組對應的匯聚(RP)傳送加入訊息(“拉”),加入訊息所經過的路徑就變成了共享樹(shared tree)的分支。所有的多播源先將資訊傳送到RP,再有RP轉發到各個接收點的SP相當於樹根,到達R之後的多播資訊轉發時和源無關,故採用(,G)的方式記錄轉發表,表示萬用字元。

(5)反向轉發路徑—RPF
一臺路由器收到了一個組播組信源傳送的組播流量,當路由器收到了該組 播流量會提取其 3 層報頭源 IP 地址,並且在其單播路由表內查詢是否擁有去往信源所在網段的單播路由條目,如果沒有,則該路由器對於該組播組信源沒有RPF 介面,報文直接在接收介面被丟棄。如果該路由器路由表內擁有去往信源所在網段的單播路由,則檢視該路由對應的出站介面和接收該報文的介面是否為同一個介面,如果是,則轉發該報文,如果不是,則丟棄該報文。在負載均衡中,出介面 IP 地址越大,該介面越有可能成為 RPF 介面。


2.IGMP
(1)簡介
IGMP 協議的目的是實現主機和路由器之間組成員關係的建立與維護。IGMP 協議執行於主機和與主機直接相連的組播路由器之間,主機與本地路由器之間使用 IGMP 來進行組播組成員資訊的互動。

(2)原理
  • IGMPv1,由 RFC1112 定義,定義了基本的組成員查詢和報告過程;

  • IGMPv2,由 RFC2236 定義,在 IGMPv1 的基礎上新增了組成員快速離開的機制。

  • IGMPv3 ,由 RFC3376 定義,增加的主要功能是,成員可以指定接收或指定不接收某些組播源的報文。


主要作用:一方面接收端通知本地的路由器希望加入或者接收某個組播組的資訊,另一方面,傳送端週期性透過此協議區域網內某個已知組的成員是否處於活動狀態(組內是否存在接受者)。實現組播成員關係的收集與維護。
PS:當網段記憶體在多個組播路由器時,IGMP要透過選舉查詢者的方式維護組播表項。
查詢者的作用:週期性的傳送通用組查詢資訊進行成員關係查詢。主機傳送報告訊息進行相應,主機傳送報告訊息的時間具有隨機性。在V2版本中,主機檢測到同一網段其他成員傳送相同相應訊息後會抑制自己的響應報文。若有新裝置需要加組,需要主動傳送報告訊息,不需要等待查詢者的查詢訊息。當要離開組播組的時候,主機放鬆離開組訊息,收到離開訊息後,查詢者傳送特定的組查詢訊息來確定是否所有組成員都已經離開,對於作為組成員的路由器而言,其行為和普通的主機一樣,響應其他路由器查詢。
上述機制的作用是為了在組播路由器中建立一張表格,記錄存在活動成員的組播組,並針對相應的組播組建立相應的定時器,記錄該組播組的最後一個成員(無需記錄所有成員),當收到特定組播組的資料包文後,只向那些有G的成員藉口上轉發資料, 至於在路由器中如何轉發則由組播路由協議決定,此功能與IGMP無關。

3.IGMP版本
(1)IGMPV1
IGMP報文封裝在IP報文中,IP的協議號為2,IGMP報文均使用TTL為1進行傳遞,IP頭中包括了IP路由檢測選項。

版本號 version:1
型別 type:為 1 時是成員關係查詢報文,為 2 時是成員關係報告報文
未用 unused:傳送時設為 0,接收時忽略 校驗和 checksum:對 8 位元組的 IGMP 訊息補碼之和進行求 16 位補碼運算
組地址 group address:對成員關係查詢報文為 0;對成員關係報告報文等於所報告的組的 IP 組 播地址。
Type 欄位:成員關係查詢(0x11):路由器週期傳送(125s),檢視是否有組播成員,組地址為 0 成員關係報告(0x12),主機想加入某個組播組,組地址為某個組播地址。

主動 加入: 主機第一次加入某組播組時,可以在未被查詢的情況下,主動通告一個 IGMP 成員關係報告報文, 以及時加入組播組。
查詢響應過程:
  • 路由器向 224.0.0.1(網內所有主機)發查詢報文;

  • 接收到該報文的主機將自己加入的組播地址填入報告報文,向該組播地址多播;

  • 其他加入該組播組的主機收到該組播報文後,抑制自己報告報文的傳送;

  • 由此,IGMP 查詢者路由器只記錄本機某介面加入了哪些組播組,它無須記錄具體哪些主機加入了組播組。


相應抑制機制: 主機收到查詢報文後,並不立刻響應,而是延遲 0 到 10 秒的一個隨機時間後才響應。這樣,一方面可以避免響應風暴,另一方面又可以有機會收到別的主機通告的響應報文從而抑制本報文的傳送。
默默離開:IGMPv1 沒有專門的離開組播組報文。路由器在查詢間隔的 3 倍時間內仍未收到響應報文時,才將該組播組刪除。
在IGMPV1中,沒有提供選舉查詢路由器的機制,而是把這個任務留給了組播路由協議,不同的協議會使用不停的選舉機制,會造成在一個子網中出現多個查詢路由器,這是IGMPV1的缺點之一,由於 IGMPv1 沒有查詢路由器選舉機制,因此 PIM-DR 與 IGMP 查詢路由器的身份重疊,也就是說 IGMPv1 的查詢路由器選舉機制需依賴於 PIM 的 DR 選舉。

IGMPV1的缺點:
1、沒有查詢路由器的選舉機制,導致PIM-DR與IGMP查詢路由器的身份重疊,也就是說IGMPV1的查詢路由器選舉機制需依賴於PIM的DR選舉
2、缺乏顯式的離開方式,路由器在查詢間隔的三倍時間內認為收到相應報文,才將該組播組刪除。

(2)IGMPV2
IGMPv2中,增加了離開組的報文格式,當主機想要離開組播組是,不需要等待路由器發出查詢報文,他可以直接像路由器傳送成員關係報告報文,縮短離開時間延遲,明確了查詢路由器的選舉機制,除此之外,IGMPV2的工作原理與IGMPV1基本一致。

PS:

普通查詢時間:125s 組成員超時:260s

組成員超時時間 = 健壯性係數(2)*普通組查詢時間+最大響應時間(10s)=260s;

特定組查詢時間:1s 預設查詢次數:2

查詢器超時:255s 查詢器超時時間 = 健壯性係數(預設 2) * 普通組查詢時間 + 最大響應時間/2 =255s;

IGMPV2的報文格式:

0x11(成員關係查詢): IGMPv2 的查詢分為兩種型別:

(1) 通用查詢,組地址欄位置為全 0,對所有的組進行組成員查詢;

(2) 特定組查詢,針對特定組進行組成員查詢,組地址欄位置為特定組的地址。

0x12:IGMPv2 成員關係報告(為了向後相容 IGMPv1)。

0x16:IGMPv2 成員關係報告。

0x17:離開組報告


IGMPV2與V1的區別*:
(1)增加了特定組查詢,特定組查詢的目的是為了讓路由器知道一個特定組在子網內是否還有組 成員,以便判斷是否還需要轉發該組的資料包文;
(2)IGMPv2 的成員關係報告的型別程式碼不一樣。
當路由器接收到成員關係報告,它就會把該組加入到組播組成員列表中,並且為其設一個值為組成員生存週期(GMI)的定時器。收到該組的報告會導致對應定時器的重新整理。如果定時器超時,路由器則認為沒有本地組成員,它也不再需要在鄰接的網路上為該組轉發組播報文了。
IGMPv2的組成員加入與IGMPv1中相同,但是IGmpv2的離開過程與V1相比不同,主機離開組的時候,需要顯式的傳送離開報文給路由器(高調離開),基本過程:當網路中有想離開的主機的時候,他會傳送一個離開報文給子網上的所有路由器,(224.0.0.2),查詢路由器收到離開報文後,會立即傳送一個特定組查詢到子網上,如果子網上還有該組成員,則會傳送一個相應報文,若無回應,則刪除組播組,停止轉發該組的資料。
主動加入:當一個主機加入了一個組播組,則應該立即傳送一個或多個版本 2 的成員關係報告給組播組
  • 查詢與響應的過程:與 IGMPv1 相同,都存在抑制機制。增加了最大響應時間來指定延時值來規定所有主機的查詢響應延時的上限,此外最大響應時間在 IGMP 查詢器上配置,只應用在成員關係查詢資訊。
  • 主機向 224.0.0.2 傳送離開組訊息(報文中含有要離開的組地址)。路由器向這個組傳送特定組查詢。1 秒鐘內沒有收到該組的報告,傳送第二個特定組查詢。二個查詢資訊後未收到主機響應,組 224.1.1.1 超時,離開組。
查詢器選舉:
  • 所有IGMPv2 路由器在初始都認為自己是查詢器,並向本網段所有路由器(224.0.0.1)傳送 IGMPv2常規查詢報文。
  • 然後本網段所有 IGMPv2 路由器比較優先順序,越大越優先;若優先順序相同比較介面IP,越小越優先。
  • 非查詢路由器啟動一個計時器,收到查詢器的常規查詢報文就把計時器復位。如果計時器超時,就認為查詢路由器發生故障,開始重新選擇。
(3)IGMPV3
IGMPv3 的提出,主要是為了配合源特定組播的實現,即組播組成員可以指定接收或指定不接收某些組播源的報文。這樣主機就可以有選擇性接收來自某個特定組播源的資料包,而不是被動接收該組中所有組播源的資料包。IGMPv3 的這一特性,可以實現源特定組播 SSM 技術
IGMPV3在V1V2的基礎上提供了額外的源過濾組播功能(SFM),主機只根據組地址來決定加入某個組,並從任何一個源接收發給該組地址的報文。具有源過濾組播功能(SFM)的主機使用 IGMPv3 來表示主機所希望加入的組播組,同時還表示該主機所希望接收的組播源的地址。限制的方式主要是:包括列表(Inclusion List)或一個排除列表(Exclusion List)來表示對源地址的限制。

1>IGMPV3的報文型別
0x11:成員關係查詢報文;
(1) 普通查詢:用於獲知鄰接介面(即查詢所傳輸的網路中所相連的介面)的完整的多播接收狀態。組地址欄位和源數量(N)欄位都為 0。
(2) 指定組查詢:用於獲知鄰接介面中跟某一個 IP 地址相關的多播接收狀態。組地址欄位含有需 要查詢的那個組地址,源數量(N)欄位為 0。
(3) 指定組和源查詢:用於獲知鄰接介面是否需要接收來自指定的這些源發往指定組的多播資料包。組地址欄位含有要查詢的多播地址,源地址[i]欄位含有相關的源地址。
0x22:版本 3 成員關係報告報文;
0x12:版本 1 成員關係報告報文;
0x16:版本 2 成員關係報告報文;
0x17:版本 2 離開報文。

2>查詢報文格式:


Number of Sources 欄位:實際上受限於資料鏈路層的 MTU,例如在乙太網上,資料包最長為 1500 位元組,除去 IP 報頭的 24 位元組和 IGMP 報頭的 12 位元組,剩餘 1464 位元組,所以最多包含 366(1464/4) 個源地址。
3>Group Record 欄位格式:

Group Record 訊息的型別。
(1) MODE_IS_INCLUDE:接收源地址列表包含的源發往該組的組播資料;
(2) MODE_IS_EXCLUDE:不接收源地址列表包含的源發往該組的組播資料;
(3) CHANGE_TO_INCLUDE_MODE:過濾模式由 EXCLUDE 轉換到 INCLUDE,接收源地址列表包含 的新組播源發往該組播組的資料;
(4) CHANGE_TO_EXCLUDE_MODE:過濾模式由 INCLUDE 轉換到 EXCLUDE,拒絕源地址列表中新 組播源發往該組的組播資料;
(5) ALLOW_NEW_SOURCES:表示在現有的基礎上,需要接收源地址列表包含的源發往該組播組 的組播資料;
(6) BLOCK_OLD_SOURCES:表示在現有的基礎上,不再接收從源地址列表包含的源組播源發往 該組播組的組播資料。

成員報告訊息格式


查詢響應過程:
路由器週期性的傳送一般查詢來獲取本地網路的 IGMP 成員資訊。主機收到一般查詢之後,收集自己的組資訊,包括感興趣或不感興趣的源列表,填入當前狀態組記錄中,向路由器回覆 IGMP 版本 3 成員報告(發向所有 IGMPv3 路由器組 224.0.0.22)。
當主機一方的組資訊或者源資訊發生改變的時候(可能是過濾模式改變,或者是源列表改變),主機會把這些改變資訊填入到狀態改變組記錄中,然後主動向路由器傳送 IGMP 版本 3 的成員報告。當路由器收到了成員報告後,會重新整理本地的組和源的狀態;當路由器一方維護的組的過濾模式要從 EXCLUDE 變成 INCLUDE 前,會傳送指定組查詢,反映在 IGMPv2 上就是對於本地不再感興趣的組被刪除之前,會傳送指定組查詢;對於本地不再感興趣的源,則在刪除源之前要傳送指定源查詢。一般,只在收到了狀態改變的組記錄後才會傳送指定組或者指定源 查詢。對於當前狀態記錄,不會傳送指定組或者指定源查詢。
路由器上的 IGMP 狀態資訊
路由器上的每個介面每個組都有一個組狀態,組狀態由組地址、過濾模式(INCLUDE / EXCLUDE)、源列表、組定時器組成。


IGMPV3的主要改進

(1) 支援源特定組播 SSM;

(2) 向後相容 IGMPv1 和 IGMPv2;

(3) 主機可以定義要接收的組播源地址;

(4) 非查詢路由器可以與查詢路由器保持引數值同步;

(5) 最大響應時間從 255s 增加到 53min,適合於較大的網路;

(6) 輔助資料欄位為將來的應用預留了空間;

(7) 關係成員報告報文傳送給目的地址 224.0.0.22,可以幫助二層交換機更有效地實現 IGMP 監聽 (IGMPSnooping)功能;

(8) 報告報文中可以包含多個組記錄,可以有效地減少網路通訊量;

(9) 在 IGMPv3 中,取消了前面版本中的響應抑制功能


IGMPv1/v2/v3 比較

普遍組查詢報文中,既不攜帶組地址,也不攜帶源地址;

特定組查詢報文中,攜帶組地址,但不攜帶源地址;

特定源組查詢報文中,既攜帶組地址,還攜帶一個或多個源地址。


快速離開
在網路中的末梢網段只連線了一臺主機,主機頻繁的進行組播組的切換動作,為了減少離開延遲可以在裝置上配置組播組快速離開。
如果末梢網段中連線了多臺主機,不建議配置快速離開。這樣會導致一臺主機離開組播組後, 其他主機也都被迫離開組播組。

4.PIM-SM
(1)PIM-SM基礎
1>基本概念
PIM,協議無關組播,不依賴於某一特定單播路由協議,可利用各種單播路 由協議建立的單播路由表完成 RPF 檢查功能,而不是維護一個分離的組播路由表 實現組播轉發。由於 PIM 無需收發組播路由更新,所以與其它組播協議相比,PIM 開銷降低了許多。PIM 的設計出發點是在 Internet 範圍內同時支援 SPT 和 RPT, 並使兩者之間靈活轉換,因而集中了它們的優點提高了組播效率。 PIM 定義了兩種模式:密集模式(Dense-Mode)和稀疏模式(Sparse-Mode)。
PIM-DM 屬於密集模式協議,採用了“擴散/剪枝”機制。同時,假定頻寬不受限制,每個路由器下的終端都想接收組播資料包,PIM-DM 將組播資料包“推” 到網路中所有的路由器上。這樣,無需終端上進行任何操作,即可收到組播報文, 適用於網路規模較小,且終端大多需要組播報文的場景。
PIM-SM 屬於稀疏模式協議,與 PIM-DM 不同之處在於,其不會將組播報文主 動“推”向網路中的路由器,而是當某個路由器下的終端有接收某個特定組播組的報文需求時,採用“拉”的方式,將組播報文從源拉到目的地。這種方式相比 DM 而言更節約頻寬,同時能實現精準推送。適用範圍也較 DM 更廣,可以應用在大型網路中。
PIM-SM 協議處於 IP 協議的上層,透過原始 socket 和 IP 通訊。PIM-SM 在 IP 報文中的協議號為 103,組播地址為 224.0.0.13。
2>PIM的角色
BSR:自舉路由器,傳送 bootstrap 訊息,用於確認 RP 路由器並向全網通告。如果在組播網路中靜態指定了 RP,網路中也可以不用設定 BSR 路由器。
舉規則:優先順序【預設為 0】和 IP 地址比較,值越大越優先。如果沒 有比其優先的裝置,則其成為當選 BSR,反之則進入候選 BSR 狀態(C-BSR)。
RP:匯聚點,即共享樹 shared tree 的匯聚點,在組播共享樹中,會以該匯聚點 為根進行轉發,組播流量從源發出時,需要經過 RP,再轉向相應的接收者。 RP 可以分為動態和靜態兩種,靜態即全網配置某臺裝置為 RP。動態模式下,在網路中配置候選 RP(C-RP)。
選舉規則:當 BSR 選定後,C-RP 透過單播向 BSR 傳送 candidate-RP-advertisement 資訊。包含優先順序、地址、組播組資訊【優先順序預設 192,越小越優先】。
DR: 指定路由器,用於接入組播源和接收者,傳送註冊、join 報文等。DR 的選 舉:如果兩邊均有優先順序引數【預設為 1】,則先比較優先順序,再比較地址,如 不全有優先順序,則只比較 IP 地址,越大越優先。在組播網路中每個網段都會選舉 DR。
當兩臺開啟了 PIM-SM 協議的路由器接入到同一個 LAN 中時,均會向組播地 址224.0.0.13傳送組播hello報文,hello報文中會攜帶如DR優先順序、hold-time、 LAN Prune delay(剪枝延遲)、propagation delay(傳送延遲)、override interval (J/P 覆蓋時間)等,

hold time:鄰居保持時間,即在hold time時間範圍內沒有收到hello 訊息的話,則認為該鄰居失效,
DR:優先順序主要用於 DR 的選舉,預設為 1,數值 越大越優先,如 DR 優先順序數值相同,或一方不含有 DR 優先順序資訊,則比較介面 IP 地址,IP 地址大優先。

(2)PIM的工作機制
1>PIM鄰居建立完成,BSR,RP選舉完成,所有的路由器都瞭解RP的組資訊。
2>組播組成員所在的DR向RP發起接入,然後組播源所在的DR也會去Rp註冊,這樣接受者可以透過這一路徑收到組播源的組播報文。
3>RPT-SPR切換,尋找最優轉發路徑
4>剪枝切換的內容:

在上圖所示的組網環境中,R2 被設定為 RP,但透過拓撲圖示來看,顯然 R1 直接到 R3 的路徑要優於 R1—R2—R3 的路徑。因此會進行 RPT—SPT 剪枝切換。切換的動作由 R1 主動發起,其收到第一個組播報文後就會向 R3 發起顯式(S, G)加入,加入成功以後,R3 進行剪枝,將組播報文透過 R3-R1 的路徑直接傳送 到接收者,不再透過 R3-R2-R1 這條路徑。此時show ip pim mroute 或者debug ip pim event都可以觀察到切換過程:

PS:若網路中存在負載路由,單播會存在負載均衡的情況,但是組播不會;組播會選擇下一跳地址大的進行路由轉發
PIM-SSm在檢視錶項的時候,只會發現(S,G)表項,沒有(*,G)表項,因為SSm不進行剪枝切換
配置區別: ip pim ssm default/range:
default 引數代表 預設的 232.0.0.0/8 組播組,也可以使用 range+ACL 的方式重新自定義組播地址

5.IGMP snooping
(1)基本概念:
IGMP Snooping 是用來監聽主機與路由器之間的 IGMP 報文,裝置可以根據組 IGMP 報告報文、IGMP 離開報文而動態地建立、維護和刪除組播地址表,從而使得裝置接收到組播業務報文後依據各自的組播地 址表項進行轉發,減少風暴,提高頻寬利用率。
(2)主要功能:
偵聽 IGMP 報文動態地建立、維護和刪除組播地址表,按照組播地址表實現組播 業務報文在指定 成員埠轉發; 協助上游組播路由器正確維護 IGMP 成員關係表;在無三層組播裝置環境下實現 IGMP 查詢器的功能。
(3)角色
1>最大響應時間:IGMPv2 查詢者傳送的普通組查詢報文中含有最大響應時間欄位,組播接收者應 在最大響應時間間隔內傳送成員報告報文。如果組播接收者沒有在最大響應時間間隔內傳送成員 報告報文,裝置就認為該子網內沒有該組播組的接受者,立即刪除組播組資訊

2>組播組成員埠老化時間:當一個埠加入到組播組中的時候會同時啟動該埠的老化定時器。如果在此定時器超時的時候還沒有收到 IGMP 成員報告報文,則老化該組播成員埠。此定時器 預設為 260 秒,不能配置

3>路由器埠老化時間:路由器埠老化定時器設定的時間。如果在此定時器超時的時候還沒有收 到 IGMP 查詢報文(可以是通用查詢報文,也可以是特定組查詢報文),則老化此路由器埠。此定時器預設為 255 秒,即 4 分 15 秒,倒數計時方式;該引數可配置

4>組播成員埠(Member port):與組播組成員主機相連的埠。組播組成員指加入某個組播組的主機。可以是物理上相連,也可以是邏輯上相連。裝置接收到組播業務報文,將根據組播地址表 向對應組播成員埠轉發
5>路由器埠(Router port):收到 IGMP 組查詢報文或者組播路由協議報文的埠。可以是物理 上相連路由器,也可以是邏輯上相連路由器。當裝置收到 IGMP 成員報告或離開報文時,會將報文透過路由器埠轉發出去,這樣上聯路由器能正確維護 IGMP 成員關係表

(4)協議流程:
1、收到 IGMP 通用查詢報文時,如果是已有的路由器埠(即原來這個埠就和組播路由器相連), 則更新路由器埠老化定時器;如果是新路由器埠(即原來這個埠沒有和組播路由器相連), 則裝置把該埠學習為路由器埠,同時啟動對該路由器埠的老化定時器。無論何種情況, 裝置收到通用查詢報文後,均需向對應 VLAN 中 flood;
2、 收到 IGMP 特定組查詢報文時,裝置需學習新的路由器埠或更新路由器埠老化時間,然後 向被查詢的組播組成員埠轉發該特定組查詢報文;
3、 收到 IGMP 報告報文時,判斷該報文要加入的 IP 組播組對應的 MAC 組播組是否已經存在。如 果對應的 MAC 組播組不存在,則新建 MAC 組播組,將接收報告報文的埠加入該 MAC 組播 組中,並啟動該埠的老化定時器;如果該報文對應的 MAC 組播組已經存在,但是接收報告 報文的埠不在該 MAC 組播組中,則將接收報告報文的埠加入 MAC 組播組中並啟動該端 口的老化定時器;如果該報文對應的 MAC 組播組已存在,並且接收報告報文的埠也已經存 在於該 MAC 組播組,則僅更新接收報告報文的埠上的老化定時器。無論何種情況,裝置收 到 IGMP 報告報文後,都只向路由器埠轉發,如果路由器埠不存在,則只學習/更新組播組 表項,不轉發此報文;
4、 收到對某 IP 組播組的 Leave 報文,如果開啟了快速老化功能,則立即老化該組播成員埠;如果沒有開啟快速老化功能,則會啟動埠的響應查詢定時器,如果在該定時器超時的時候還沒 有收到該組播組的報告報文,則將該埠從相應 MAC 組播組中刪去。當成員埠被老化時, 如果 MAC 組播組沒有組播成員埠了,裝置應刪除該組播組表項。無論何種情況,裝置收到 Leave 報文後,都只向路由器埠轉發。
PS:
IGMP查詢器:在網路中如果沒有三層組播裝置,將無法實現 IGMP 查詢器的相關功能。為了解決這個問題,可以透過在二層組播裝置上配置 IGMP snooping 查詢器來實現 IGMP 查詢器的功能。使二層組播裝置能夠建立並維護組播轉發表項,從而正常轉發組播業務報文。
配置為查詢器後,必須指定裝置的一個地址為查詢器地址,否則由於預設源地址為 0.0.0.0 故無法發出 IGMP 組查詢報文
配置了 IP 地址的查詢器會參加 VLAN 內 IGMP 查詢者的選舉,當選查詢者負責維護 VLAN 內 IGMP 成員關係表

(5)IGMP snooping TCN 事件
當網路拓撲發生變化時,會產生 TCN 事件,生成樹根埠會主動傳送全域性 IGMP 離開報文(組地址:0.0.0.0)來請求 IGMP查詢者傳送普通組查詢報文,達到快速收斂目的;
使能 IGMP snooping TCN 事件快速收斂後,非生成樹根埠也能主動傳送全域性 IGMP 離開報文 (組地址:0.0.0.0),達到快速收斂目的。
(6)IGMP Proxying
當網路中有較多組播組的接收者,為了減少上游組播裝置收到的 IGMP 成員報告和離開報文的 數量,有效減小系統開銷,可以在裝置上配置 IGMP Proxying
IGMP Proxying 能夠代理下游接收者向上遊裝置傳送的 IGMP 成員報告報文和離開報文;也能 夠響應上游組播裝置傳送的 IGMP 組查詢報文,再向下游裝置傳送 IGMP 組查詢報文。
(7)組播vlan
傳統二層組播點播方式,當處於不同的 VLAN 的使用者點播時,每個 VLAN 會在本 VLAN 內復 制一份組播流。這種組播點播方式浪費了大量的頻寬
為了解決這個問題,可以透過配置組播 VLAN 的方式,使不同 VLAN 內的使用者共用一個組播 VLAN。組播 VLAN 功能開啟後,並且組播 VLAN 與使用者 VLAN 完全隔離,這樣不僅節約了 頻寬而且保證了安全性
組播 VLAN 有兩種:分別是 MVR(Multicast VLAN Registration,組播 VLAN 註冊)和 MVP (Multicast VLAN Plus,組播 VLAN 增強版)
1>MVR:
  • 當多個使用者埠屬於不同 VLAN 時,可以透過將這些埠新增到 MVR 組播 VLAN 內,實現不 同 VLAN 內的使用者共用一個組播 VLAN
  • MVR 組播 VLAN 成員埠只能接使用者,不能再串接裝置,從 VLAN 成員埠傳送出去組播報 文不能帶 VLAN Tag
  • 使用者埠配置為 hybrid 模式,同時屬於使用者 VLAN 和 MVR VLAN
2>MVP:
  • 使用者埠無需新增到組播 VLAN,只需將使用者 VLAN 設定為組播 VLAN 的子 VLAN;MVP 將 完成組播 VLAN 和子 VLAN 之間的組播報文複製
  • 子 VLAN 成員埠可接裝置,也可以直接接使用者。當接裝置時,子 VLAN 成員埠傳送組播 報文可以帶 VLAN Tag;當連線使用者時,子 VLAN 成員埠傳送組播報文不帶 VLAN Tag
  • 下游裝置無需關注 MVP 裝置的配置,正常配置即可

出現問題以及解決方法:
1.組播不通
1>.排查單播是否通
2>單播通的情況下,排查裝置配置是否正常,埠下是否使能PIM-Sm,接入裝置上是否使能iGMP,
PS:vlan下如果配置了未知二層組播丟棄以及組播流量上游轉發,l2-multicast drop-unknown ;multicast mrouter-forwarding,那麼所有的接入裝置上此vlan都必須配置,不然可能出現組播不通的情況。
2.組播到特定時間表項消失show ip igmp snooping groups,發現表項消失
1>查詢組播相應時間的表格
PS:如果網路結果中沒有組播路由,只是一個單純的二層組播,則需要配置組播查詢器功能,不然到了40分20S左右組播表項會消失,因為無人維護這個表項。
3.組播丟包
使用ACL的count動作組,在組播資料的路徑上,看看報文丟在哪裡

4.在不同廠商裝置對接的時候,組播的RP最好裝置成為環回口的地址,儘量避免設定成為組播vlan的地址








來自 “ ITPUB部落格 ” ,連結:https://blog.itpub.net/70012489/viewspace-3009057/,如需轉載,請註明出處,否則將追究法律責任。

相關文章