區域網設計/IGMP 嗅探
外觀
< 區域網設計
橋接以不同的方式轉發幀,具體取決於目標 MAC 地址的型別
- 單播 幀:由於過濾資料庫,它們僅在通往單個目標的埠上傳送;
- 廣播 幀:它們始終以泛洪方式在所有埠上傳送,因為目標是網路中的所有主機;
- 組播 幀:它們始終以泛洪方式在所有埠上傳送,即使目標只是網路中的部分主機。
如果橋接知道連線到其埠的哪些多播組站屬於,則橋接可以將傳送到特定多播組的幀僅轉發到連線到該多播組註冊的主機的埠,以減少泛洪傳送的流量。
GMRP 允許一個站與其多播組的成員資格通知橋接。
但是,GMRP 幾乎沒有使用,因為利用現有的、常用的技術(即 IGMP)優先於新增新的網路協議。
IGMP 允許一個站與其多播組的成員資格通知 IP 網路上的路由器
- 主機成員資格查詢 訊息:路由器向所有主機發送一個 IGMP 訊息,詢問他們是否對註冊到某個多播組感興趣;
- 主機成員資格報告 訊息:主機發送一個 IGMP 訊息,接受對多播組的註冊請求。
除了路由器之外,主機成員資格報告訊息還會到達 LAN 上的所有其他站→所有對多播組感興趣的其他站,同時知道 LAN 上至少有一個站已註冊到該組,可以避免傳送主機成員資格報告訊息給路由器,因為與該多播組相關的流量會退出路由器介面並傳播到整個 LAN。
每個 IGMP 訊息都有
- 目標 IP 地址:它是被查詢或報告的多播組的 IP 地址,始終以 '1110' 位開頭;
- 目標 MAC 地址:它派生自多播 IP 地址
| 24 | 25 | 48 |
| 01:00:5E | 0 | 來自多播 IP 地址的最後 23 位 |
'224.0.0.x' 樣式的多播 IP 地址是無需 IGMP 的“眾所周知”地址(例如,網路層路由協議傳送的多播資料包)。
IGMP 嗅探 功能允許橋接透過觀察透過橋接本身的 IGMP 訊息來了解連線到其埠的哪些多播組站註冊到。
- 主機成員資格查詢訊息:橋接記錄它來自的埠作為通往路由器的埠,並以泛洪方式將其傳送到所有其他埠;
- 主機成員資格報告訊息:橋接記錄它來自的埠作為通往感興趣站點的埠,並僅將其傳送到通往路由器的埠(即主機成員資格查詢來自的埠)。
橋接不會將其傳送到其他埠,因為否則主機在接收時會停用傳送主機成員資格報告訊息,從而阻止橋接瞭解哪些主機對該多播組感興趣; - 以組播發送的幀:橋接分析其目標 MAC 地址以識別其多播組[1]
- 如果是“眾所周知”的多播地址,則以泛洪方式將其轉發到所有其他埠;
- 如果是動態多播地址,則僅將其傳送到連線到已註冊到該多播組的站點的埠。
- 缺點
IGMP 嗅探違反了 OSI 模型:橋接需要識別資料鏈路層幀是否封裝了 IP 資料包,IP 資料包又封裝了 IGMP 訊息→橋接不再獨立於網路層工作:不支援 IPv6 協議的橋接可能會丟棄多播資料包,因為它們無法識別它們。
- ↑ 實際上,單個多播 MAC 地址對應於 25 個 IP 地址 = 25 個多播組。