IGMP窥探如何工作
IGMP消息类型包括:查询,报告(加入)和离开组。IGMP Snooping启用了第2层设备的执行方式不同,具体取决于消息类型。
询问
从Querier发送的消息(多播路由器或交换机),要求从属于多播组的每个主机发出响应。如果不存在支持IGMP的多播路由器,则开关必须假设此功能才能从网络上的主机中获取组成员资格信息。
IGMP Querier会定期将IGMP一般查询发送到本地子网上的所有主机和路由器,以检查是否存在多播组成员。收到IGMP一般查询后,侦听开关将查询转发到VLAN中的所有端口,除了接收端口。
报告(加入)
主机发送给Querier的一条消息表明主机希望成为或是报告消息中指示的给定组的成员。
主机出于以下目的将IGMP报告发送给IGMP Querier:
- 如果主机是多播组成员,则响应查询。
- 适用于多播组成员资格。
从主机收到IGMP报告后,Snooping Switch通过VLAN中的所有路由器端口将报告转发。它还查找转发表以进行匹配条目,如下所示:
- 如果找不到匹配,则侦探开关将以接收端口作为传出接口创建一个转发条目。它还启动了小组成员资格到期计时器,供港口跟踪在多播路由器决定网络上不再有组成员之前必须通过的时间。
- 如果找到匹配项但匹配的转发条目不包含接收端口,则侦探开关将接收端口添加到传出接口列表中。它还启动了该端口的小组成员资格到期计时器。
- 如果找到匹配项并且匹配的转发条目包含接收端口,则侦听开关将重新启动该端口的组成员到期计时器。
离开组
主机发送给Querier的一条消息表明,主机已停止成为特定多播组的成员。
IGMPV1接收器主机在离开多播组时不会发送任何休假消息。侦探开关无法立即更新连接到接收器主机的端口的状态。侦探开关不会从关联的转发条目中的传出接口列表中删除端口,直到组成员计时器到期为止。
IGMPV2或IGMPV3主机在离开多播组时会发送IGMP离开消息。收到休假消息后,开关将IGMP留言向VLAN中的所有路由器端口。然后,IGMP Querier将IGMP组特定的查询发送给多播组,以确定该组是否已连接到接收端口的活动接收器。
在接收IGMP组特定查询后,开关将查询通过VLAN组的所有路由器端口和成员端口转发。然后,它等待直接连接的主机的响应IGMP报告消息。如果端口在组成员计时器到期时未收到IGMP报告消息,则侦听开关将从多播组的转发条目中删除端口。