【數通面試私房菜之組播專題】第四期: IGMP Snooping

二層中組播數據轉發的問題

組播數據在二層被泛洪,造成:

Ø 網絡資源浪費。
Ø 存在安全隱患。

主機加入組播組需要向上遊設備發送IGMP成員報告,這樣上游設備纔可以將組播報文發送給主機。由於IGMP報文是封裝在IP報文內,屬於三層協議報文,而二層設備不處理報文的三層信息,所以主機加組的過程二層設備並不知道,而且通過對數據鏈路層數據幀的源MAC地址的學習也學不到組播MAC地址(數據幀的源MAC地址不會是組播MAC地址)。

這樣當二層設備在接收到一個目的MAC地址爲組播MAC地址的數據幀時,在MAC地址表中就不會找到對應的表項。那麼這時候,它就會採用廣播方式發送組播報文,這樣一來不但對網絡資源造成的極大浪費而且影響網絡安全。

IGMP Snooping機制的提出,解決了二層組播泛洪問題。


IGMP Snooping工作原理

Ø IGMP Snooping可以實現組播數據幀在數據鏈路層的轉發和控制。
Ø 使能IGMP Snooping功能後,二層設備會偵聽主機和路由器之間交互的IGMP報文。通過分析報文中攜帶的信息(報文類型、組播組地址、接收報文的接口等),建立和維護二層組播轉發表,從而指導組播數據幀在數據鏈路層按需轉發。

IGMP Snooping建立和維護二層組播轉發表的過程:

1) RTA作爲查詢器,週期性的發送普遍組查詢,該報文被擴散到交換機的所有端口,包括與交換機CPU相連的內部接口0。交換機CPU收到查詢報文後,判斷1號接口爲連接路由器的接口。

2) Client B希望加入組播組224.1.2.3,因此以組播方式發送一個IGMP成員報告報文,報告中具有目的MAC地址0x0100.5e01.0203。最初轉發表上沒有這個組播MAC地址的表項,所以該報告被擴散到交換機的所有接口,包括與交換機CPU相連的內部接口0;當CPU收到Client B的IGMP報告時,CPU利用IGMP報告中的信息建立了一個轉發表項,此表項包括Client B的接口號,連接路由器的接口號和連接交換機內部CPU的接口號。

3) 形成此轉發表項的結果是使後面任何目的地址爲0x0100.5e01.0203的組播幀都被控制在端口0、1和3,而且不向交換機其他端口擴散。

Client C加入組224.1.2.3並主動發一個IGMP報告,交換機CPU收到此報告,它在轉發表項上爲MAC地址0x0100.5e01.0203增加一個端口(端口4)。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章