news 2026/6/9 23:14:47

什么是IGMP Snooping

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
什么是IGMP Snooping

文章目录

    • 为什么需要IGMP Snooping
    • IGMP Snooping应用场景有哪些
    • IGMP Snooping是如何工作的



IGMP Snooping (Internet Group Management Protocol Snooping)是一种IPv4二层组播协议,通过侦听三层组播设备和用户主机之间发送的组播协议报文来维护组播报文的出接口信息,从而管理和控制组播数据报文在数据链路层的转发。


为什么需要IGMP Snooping

在很多情况下,组播报文要不可避免地经过一些二层交换设备,尤其是在局域网环境里。如下图所示,在组播用户和三层组播设备Router之间,组播报文要经过二层交换机Switch。

IGMP Snooping组网图

当Router将组播报文转发至Switch以后,Switch负责将组播报文转发给组播用户。由于组播报文的目的地址为组播组地址,在二层设备上是学习不到这一类MAC表项的,因此组播报文就会在所有接口进行广播,和它在同一广播域内的组播成员和非组播成员都能收到组播报文。这样不但浪费了网络带宽,而且影响了网络信息安全。

IGMP Snooping有效地解决了这个问题。配置IGMP Snooping后,二层组播设备可以侦听和分析组播用户和上游路由器之间的IGMP报文,根据这些信息建立二层组播转发表项,控制组播数据报文转发。这样就防止了组播数据在二层网络中的广播。

IGMP Snooping应用场景有哪些

组网描述

如下图所示,PIM网络中有多个组播源(如Source1和Source2)向局域网提供组播视频服务,局域网中部分用户(如HostA和HostC)希望通过组播方式接收视频数据。为了避免组播数据在局域网中广播而引起的网络带宽浪费和无法预知的网络信息安全问题,可以在二层组播设备上部署IGMP Snooping,实现组播数据在二层网络中的精确转发。

IGMP Snooping应用组网图

部署特性

可以在上图所示组网中部署以下特性来实现组播数据在网络中的精确转发。

  • 在三层组播设备Router上部署PIM和IGMP,将组播数据引流到用户网段。
  • 在二层组播设备Switch上部署IGMP Snooping,使得Switch可以建立和维护二层组播转发表,指导组播数据只转发给有组播数据需求的用户。
  • Switch上部署IGMP Snooping后,还可以部署IGMP Snooping Proxy,减轻大量IGMP报文交互给Router带来的处理压力。
  • 当成员主机只能运行IGMPv1/IGMPv2又想使用SSM服务时(即想指定接收哪些组播源的组播数据),可以在Switch上部署IGMP Snooping SSM Mapping,为这部分用户提供SSM服务。二层SSM Mapping功能需要与IGMP查询器的三层SSM Mapping功能配合使用(配置相应的映射规则),才能实现组播数据的正常转发。

IGMP Snooping是如何工作的

IGMP Snooping是二层组播的基本功能,可以实现组播数据在数据链路层的转发和控制。当主机和上游三层设备之间传递的IGMP协议报文通过二层组播设备时,IGMP Snooping分析报文携带的信息,根据这些信息建立和维护二层组播转发表,从而指导组播数据在数据链路层按需转发。

如下图所示,当组播数据从三层组播设备Router转发下来以后,处于接入边缘的二层组播设备Switch负责将组播数据转发给用户主机,使用户收看所点播的节目。当Switch没有运行IGMP Snooping时,组播数据在二层被广播;当Switch运行了IGMP Snooping后,组播数据不会在二层广播,而是会被Switch发送给指定的接收者。

使能IGMP Snooping功能后,Switch会侦听主机和上游三层设备之间交互的IGMP报文,通过分析报文中携带的信息(报文类型、组播组地址、接收报文的接口等),建立和维护二层组播转发表,从而指导组播数据在数据链路层按需转发。

二层组播设备运行IGMP Snooping前后对比

IGMP Snooping中的端口角色

如下图所示,三层设备Router从组播源接收数据并向下游转发,在二层组播设备SwitchA和SwitchB上分别运行IGMP Snooping,HostA、HostB和HostC为接收者主机(即组播组成员)。

IGMP Snooping相关端口

表1-1 IGMP Snooping中的端口角色


路由器端口和成员端口,是二层组播转发表项中的一个重要信息:出接口。其中路由器端口相当于上游接口,成员端口相当于下游接口。通过协议报文学习到的端口,对应的为动态表项;而手工配置的端口,对应的为静态表项。

除了出接口外,每条表项还包括组播组地址和VLAN编号。

  • 组播组地址,可以为组播IP地址,也可以为组播IP地址映射后的组播MAC地址。按照IP地址转发的模式可以避免MAC地址转发模式中的地址重复问题。
  • VLAN编号,指定了二层广播域范围。如果使用了组播VLAN功能,入VLAN编号为组播VLAN的编号,出VLAN编号为主机所在的用户VLAN编号。否则入VLAN编号和出VLAN编号均为主机所在VLAN的编号。

IGMP Snooping工作机制

二层组播设备运行了IGMP Snooping后,收到不同的IGMP协议报文会进行不同的处理,并在此过程中建立起二层组播转发表项。

表1-2 IGMP Snooping对不同报文的处理方式

此外,当二层组播设备收到PIM Hello报文时,向VLAN内除接收接口外的其他所有接口转发,并对接收接口做如下处理:

  • 如果路由器端口列表中已包含该动态路由器端口,则重置老化定时器。
  • 如果路由器端口列表中尚未包含该接口,则将其添加进去,并启动老化定时器。

如果配置了静态路由器端口,二层组播设备收到IGMP报告和离开报文也会向静态路由器端口转发。如果配置了静态成员端口,则转发表项中会添加该接口为出接口。

当二层组播设备上建立了二层组播转发表项以后,二层组播设备接收到组播数据报文时,依据报文所属VLAN和报文的目的地址(即组播组地址)查找转发表项是否存在对应的“出接口信息”。如果存在,则将报文发送到相应的组播组成员端口和路由器端口;如果不存在,则丢弃该报文或将报文在VLAN内广播。


版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/9 22:24:21

多语言扩展可能:Sonic未来是否会支持英语及其他语种?

Sonic多语言扩展潜力解析:从技术原理看英语及其他语种支持的可能性 在虚拟内容生产需求爆发的今天,如何快速、低成本地生成“会说话”的数字人视频,已成为短视频平台、在线教育机构乃至跨境电商团队共同关注的技术焦点。传统方案依赖专业动捕…

作者头像 李华
网站建设 2026/6/9 21:14:04

互联网大厂Java面试:从基础到应用的全面考察

互联网大厂Java面试:从基础到应用的全面考察 场景描述 在某互联网大厂的面试室里,求职者“超好吃”正准备接受他的Java开发岗位面试。面试官是一位经验丰富的技术专家,他将对超好吃的Java技术栈知识进行考察。 第一轮提问:Java核心…

作者头像 李华
网站建设 2026/6/9 22:32:08

大数据领域Zookeeper的集群资源分配优化

大数据领域Zookeeper的集群资源分配优化 关键词:大数据、Zookeeper、集群资源分配、优化策略、性能提升 摘要:本文聚焦于大数据领域中Zookeeper的集群资源分配优化问题。首先介绍了Zookeeper在大数据生态中的重要性及资源分配优化的背景意义,详细阐述了Zookeeper的核心概念与…

作者头像 李华
网站建设 2026/6/6 12:07:18

Docker容器化部署VoxCPM-1.5-TTS最佳实践

Docker容器化部署VoxCPM-1.5-TTS最佳实践 在语音合成技术飞速演进的今天,高质量、个性化的TTS(文本转语音)系统正从实验室走向千行百业。无论是智能客服中的自然对话播报,还是虚拟主播的声音克隆与实时驱动,用户对“像…

作者头像 李华
网站建设 2026/6/9 18:02:42

Arch Linux + Niri + Xwayland 故障排查与修复指南

本文档详细记录了在 Arch Linux 系统下,使用 Niri(Wayland 合成器)时遇到的 Xwayland 应用程序(如微信)无法启动及光标过大问题的完整排查与修复过程。 1. 问题描述 现象 A:X11 应用无法启动 症状&#xff…

作者头像 李华
网站建设 2026/6/9 21:08:13

LLVM是什么?

LLVM是什么? 本文将从核心概念、组成部分、工作流程、优势和应用等多个层面来介绍LLVM。 核心定义:LLVM 不是一个单一的“东西” 首先,一个最常见的误解需要澄清:LLVM 不是一个传统的“编译器”(如 GCC)。它…

作者头像 李华