2024年4月27日发(作者:)

IGMP Snooping技术总结

IGMP Snooping简介

IGMP Snooping是Internet Group Management Protocol Snooping(互联网组管理协议窥探)的简称,它是运

行在二层设备(路由器与主机之间的交换机)上的组播约束机制,用于管理和控制组播组。

IGMP Snooping原理

运行IGMP Snooping的二层设备(交换机)通过对收到的IGMP报文进行分析,为端口和MAC组播地址建立起映射

关系,并根据这样的映射关系转发组播数据。

如图 1所示,当二层设备没有运行IGMP Snooping时,组播数据在二层被广播;当二层设备运行了IGMP Snooping

后,已知组播组的组播数据不会在二层被广播,而在二层被组播给指定的接收者。

图 1 二层设备运行IGMP Snooping前后的对比

传统以太网交换机处理组播数据包时只是简单地在每个端口上进行广播,这种方式使得组播包洪泛到并不支持组

播的网络,这样的网络比较多的时候则会造成带宽极大的浪费。而运行在交换机上的IGMP Snooping 协议 则能够很好

地解决这一问题,同时它也不需要主机和组播路由器支持额外的协议。 IGMP Snooping 协议监视网络上的IGMP 消

息,为每一个组播MAC地址建立一个VLAN。该VLAN端口所连接的网络中至少含有一个主机组成员或者含有组播路由

器。这些端口即为组播数据包应该转发的端口组,它们在一起组成组播VLAN 的端口集。

协议

将维护这个端口集。这

样,当转发组播数据包时,组播数据包只在它所在的组播VLAN 端口上转发而不会广播到不需要组播的端口,节省了带

宽。同时,该以太网交换机在保持对组播路由器透明的前提下,完成IGMP 代理的功能,过滤掉不必要的IGMP 消息,防

止了“IGMP 报告风暴”。

IGMP Snooping通过二层组播将信息只转发给有需要的接收者,可以带来以下好处:

减少了二层网络中的广播报文,节约了网络带宽;

增强了组播信息的安全性;

为实现对每台主机的单独计费带来了方便。

IGMP Snooping基本概念

1. IGMP Snooping相关端口

如图 2所示,Router A连接组播源,在Switch A和Switch B上分别运行IGMP Snooping,Host A和Host C为

接收者主机(即组播组成员)。

图 2 IGMP Snooping相关端口

结合图 2,介绍一下IGMP Snooping相关的端口概念:

路由器端口(Router Port):交换机上朝向三层组播设备(DR或IGMP查询器)一侧的端口,如Switch A

和Switch B各自的Ethernet1/1端口。交换机将本设备上的所有路由器端口都记录在路由器端口列表中。

成员端口(Member Port):又称组播组成员端口,表示交换机上朝向组播组成员一侧的端口,如Switch A

的Ethernet1/2和Ethernet1/3端口,以及Switch B的Ethernet1/2端口。交换机将本设备上的所有成员端口都

记录在IGMP Snooping转发表中。

本文中提到的路由器端口都是指交换机上朝向组播路由器的端口,而不是指路由器上的端口。

如不特别指明,本文中提到的路由器/成员端口均包括动态和静态端口。

在运行了IGMP Snooping的交换机上,所有收到源地址不为0.0.0.0的IGMP普遍组查询报文或PIM

Hello报文的端口都将被视为动态路由器端口。

2. IGMP Snooping动态端口老化定时器

表 1 IGMP Snooping动态端口老化定时器