IPv4 组播地址范围是 224.0.0.0/4,映射到二层的 MAC 组播地址固定以 01:00:5E 开头。问题出在这里:二层交换机靠 MAC 地址表转发,而 MAC 组播地址从不作为"源地址"出现,交换机学不到它挂在哪几个端口上。于是默认行为只剩一种——在同一个 VLAN 内泛洪,把组播帧复制到除入端口以外的所有端口。
这个默认行为在没有组播的办公网里不会暴露,因为组播流量本来就少。监控网正好相反:视频流是典型的一对多、多对多组播。一个 VLAN 里若有 32 路 4 Mbps 的摄像头主码流,总组播量 128 Mbps,泛洪意味着这 128 Mbps 会灌向每一个端口。接入交换机的上行口承受一遍,每个摄像头端口也要承受一遍。
后果分两种。千兆端口 128 Mbps 还扛得住,但很多 PoE 摄像头端口是百兆的——128 Mbps 是百兆端口的 1.28 倍,直接过载,现象是摄像头频繁掉线重连、NVR 录到一半断流。另一种是累加:200 路 4 Mbps 就是 800 Mbps,千兆上行口占用 80%,再叠加单播与广播,网络余量归零。

IGMP Snooping 的做法很朴素:交换机解析经过自己的 IGMP 报文(版本 1 见 RFC 1112,版本 2 见 RFC 2236,版本 3 见 RFC 3376),把"哪个端口请求了哪个组地址"记进一张组播转发表。此后该组的组播帧只向表里记录的端口转发,其他端口一概不收。
主机侧的行为不需要改:NVR 本来就要发 IGMP Membership Report 才能收到组播,Snooping 只是把这个过程记录下来。交换机自己不参与 IGMP 协议协商——它是旁观者,不是成员,这也是"点名 Snooping 而非 Proxy"的原因。
三个版本的差异直接决定组表能不能及时收敛,选型时别只看"支持 IGMP"这一句:
| 版本 | 标准 | 组模型能力 | 在监控网里的意义 |
|---|---|---|---|
| IGMPv1 | RFC 1112 | 只能加入,无显式离开 | 退组只能靠超时,组表老化慢,已不建议使用 |
| IGMPv2 | RFC 2236 | 支持 Leave 报文,组超时 260 秒 | 兼容性最好,绝大多数 NVR 与摄像头默认走它 |
| IGMPv3 | RFC 3376 | 支持指定源(SSM)订阅 | 可精确订阅"某摄像头→某组",交换机需同步支持 |
一个容易忽略的细节是未知组播的处理。表里没有对应条目的组播帧叫什么、怎么处理,各家实现不同:有的仍然泛洪,有的直接丢弃。RFC 4541 给出的建议是丢弃或限速。对监控网来说,开启"未知组播丢弃"能挡住误配置与扫描流量,代价是组播源刚上线、Report 还没到的那几十毫秒内会有丢包——录像里表现为每段视频开头一帧的轻微异常。
组播转发表不是永久有效的静态表。它的老化靠 IGMP 查询维持:交换机(或上游的三层设备)周期性地发送 General Query,主机收到后回 Report 续期。按 RFC 2236 的推荐值,查询间隔 125 秒、最大响应时间 10 秒、健壮系数 2,算出来的组超时(Group Membership Interval)是:
2 × 125 + 10 = 260 秒
也就是说,如果 VLAN 内没有任何设备发查询,组条目最多 260 秒后就被老化删除。紧接着 NVR 的下一份 Report 又把它建回来。周期约 4 分多钟一次,每次有几十秒到一分钟的窗口期,组播不知道该发去哪,只能在 VLAN 内泛洪或者被丢弃。用户侧看到的就是每隔几分钟画面卡一下,或者带宽使用率规律性抖动。
这是"开了 Snooping 还卡"最典型的原因。解法是把 VLAN 内某一台设备指定为 Querier:
若上游是三层设备(如三层工业交换机)并已开启组播路由(PIM-SM/SM 或 DM),由它作为 Querier 最自然;
若整个监控网是纯二层的(很常见),那就挑一台交换机显式开启 Snooping Querier 功能,让它承担查询者角色;
有多个候选时,源 IP 小的一方胜出——手工把要当 Querier 的设备地址设成最小的即可,别让选举随机。
场景:120 路 1080p 摄像头,H.265 主码流 4 Mbps;6 台 NVR,每台订阅 20 路;接入层 5 台 24 口千兆 PoE 交换机,每台通过 1 个千兆光口上联核心;整个监控网在同一个 VLAN 内(未做 VLAN 划分)。
第一步,算总组播量。 120 × 4 Mbps = 480 Mbps。
第二步,算不开 Snooping 时的后果。 每台接入交换机把 480 Mbps 泛洪到本地 24 个端口,其中相当一部分是百兆 PoE 口。480 Mbps ÷ 100 Mbps = 4.8 倍过载,超过端口线速的流量直接被丢,摄像头侧表现为丢包与重连。上行千兆口则要承载 480 Mbps 的组播加单播,占用 48%,已无余量应对峰值。
第三步,算开了 Snooping 后的流量。 组播只发给订阅过的端口。假设 6 台 NVR 均匀分布在 3 台接入交换机上,每台接入机带 2 台 NVR,每台 NVR 订阅 20 路:单台接入机上行需要承载 2 × 20 × 4 Mbps = 160 Mbps,占千兆上行口的 16%。摄像头端口完全不订阅组播,收到 0 Mbps,端口余量全部留给自身的编码上传(4 Mbps/路)。
第四步,算核心侧。 3 台带 NVR 的接入交换机上联流量合计 480 Mbps,核心侧若有 10G 上联,占用 4.8%;若只有千兆上联,占用 48%,需要做链路聚合或按区域划分为多个 VLAN 分流。
第五步,算 Querier 的时间账。 不配 Querier 时组超时 260 秒,约每 4.3 分钟出现一次条目闪烁;每台 NVR 在闪烁窗口内按 20 路 × 4 Mbps 估算,若这段时间组播被丢弃,录像是 20 路同时出现几十秒黑屏。按 8 小时班次算,一天大约出现 111 次闪烁窗口。这个数字说明 Querier 不是可选项。

下面这段是通用语法的示意片段,说明配置项与先后关系,不代表任何厂商的真实命令行。
; 步骤 1:全局开启 IGMP Snooping,并指定版本 igmp-snooping enable igmp-snooping version 2 ; 步骤 2:在监控网所属 VLAN 内启用(逐 VLAN 生效) vlan 100 igmp-snooping enable ; 步骤 3:纯二层网络里指定 Querier(有上游三层设备时可省) vlan 100 igmp-snooping querier enable ; 步骤 4:把上联口设为路由器端口,组播上报走这里 interface GigabitEthernet0/0/24 igmp-snooping router-port ; 步骤 5:未知组播丢弃,防止未订阅的组播泛洪 vlan 100 igmp-snooping unknown-multicast discard
顺序上有一条硬要求:Querier 必须在同一 VLAN 内开启,且 VLAN 内不要出现两个以上 Querier 抢占选举,否则查询报文会重复、组表震荡。批量开局时把这段配置做成模板下发,比逐台敲命令可靠。
| 现象 | 根因 | 处理 |
|---|---|---|
| 每隔几分钟花屏几秒 | VLAN 内无 Querier,组条目 260 秒老化 | 开启 Snooping Querier,或由上游三层设备发查询 |
| 开了 Snooping 后画面更糟 | 对承载组播的端口启用了组播风暴抑制 | 组播端口不设 multicast 抑制,只限 broadcast/unknown-unicast |
| 跨网段看不了实时画面 | 三层设备未开组播路由,或 VLAN 间没配 IGMP | 三层设备启用 PIM-SM,接口启用 IGMP |
| 单台 NVR 只能看部分通道 | 组播地址复用,或 NVR 未发对应组的 Report | 核对 NVR 订阅列表与组地址规划,避免一组被多源共用 |
| 新增一批摄像头后全网卡 | 上行带宽不够,且未做链路聚合 | 按算例第四步核算,上联改 10G 或做聚合 |
| 广播风暴时监控一起挂 | Snooping 只处理组播,广播仍泛洪 | 单独配广播风暴抑制,阈值按实际业务取 |
第三条最容易被忽略:IGMP Snooping 只在二层生效。核心是三层设备、NVR 与摄像头不在同一网段时,光开 Snooping 没用,三层设备必须跑组播路由协议(PIM-SM 或 PIM-DM),并在面向监控网段的接口上启用 IGMP。缺了这一步,组播请求到了三层就断了。
第二条则是个反直觉的边界:风暴抑制的目标是异常流量,而监控网的组播是正常业务流量。给承载组播的端口设置组播抑制阈值,等于给正常视频流上了一道闸门,一旦多路视频叠加超过阈值就开始丢包,表现为画面规律性花屏。正确做法是把抑制门槛留给广播与未知单播,组播交给 Snooping 的表来控制。
是否划 VLAN:摄像头与办公终端必须分 VLAN。同 VLAN 下办公的广播也会干扰视频流,且组播表条目会互相影响。
谁做 Querier:纯二层监控网手工指定一台;有核心三层机就让核心做。
上联口带宽:按"本机 NVR 订阅路数 × 码率"核算,留 50% 余量。
未知组播处理:选"丢弃",避免误配置流量全网泛洪。
风暴抑制取舍:只限广播与未知单播,组播端口不动速率限制。
跨网段组播:三层设备开 PIM,接口开 IGMP,两侧都要配。
锐应科技的网管型工业 PoE 交换机(8 口千兆 + 4 个 SFP 上联)具备 IGMP Snooping(含 Querier)与端口风暴抑制配置能力,适合摄像头与 NVR 同网段部署的监控网做组播隔离,端口与供电规格见 工业交换机方案页;如果监控网要跨区域,用 PON 接入方案 里的 OLT 做上行也支持 PON 侧的 IGMP 组播复制。
Snooping 是"偷听":交换机只听主机发的 Report,自己不发任何 IGMP 报文,转发表老化依赖外部 Querier。Proxy 是"代答":交换机自己在用户侧扮演查询者、在上级侧扮演主机,能独立维持组表。监控网规模在几十台设备以内,Snooping 加手工 Querier 就够了;规模大到有几百个组、且没有三层设备时,Proxy 更省事。
两种可能。一种是给组播端口设了组播风暴抑制,正常视频流被当成异常流量限掉;另一种是 Snooping 转发表出错,比如组播源接在路由器端口上被误判,导致组播只发给一个端口、其他订阅者收不到。排查方法是先看组播转发表里每个组地址对应的端口列表对不对,再看端口上有没有生效的组播限速。
建议按"一路一址"分配:120 路摄像头用 120 个不同的组地址,别让多路视频共用同一个组。共用组会让所有订阅者都被迫接收该组的全部流量,等于把 Snooping 的隔离效果抹掉。地址段建议从 239.0.0.0/8 里选(管理范围组播,不会被公网路由),避开 224.0.0.0/24 这些保留段——那段地址是协议控制报文在用。
建议划,但不必一机一 VLAN。按用途划两到三个就够:摄像头 VLAN、NVR VLAN、管理 VLAN。摄像头发出的编码流是单播上传到 NVR 或组播分发,两种情况下的广播域越小越稳。管理 VLAN 单独划出来的直接收益是:设备管理流量不会和视频流抢带宽,远程排查时不会被视频流量干扰。
1080p 单路主码流 4 Mbps,百兆口单路够用;但摄像头端口上除了主码流,还可能同时跑子码流(给手机预览)、ONVIF 信令、时间同步,叠加后通常仍在 10 Mbps 以内。所以端口速率不是瓶颈,瓶颈在于"未开 Snooping 时被泛洪进来的全量组播"。这也解释了为什么开了 Snooping 之后,原本频繁掉线的百兆口摄像头会突然变稳。
监控网开 IGMP Snooping 不是可选项,是基本要求——不开的话,每一路视频流都会复制到 VLAN 内的所有端口,百兆 PoE 口直接过载。开了之后要盯三个点:Querier 有没有选上(否则 260 秒老化周期会周期断流)、上联带宽按订阅量算过没有(120 路 4 Mbps 就是 480 Mbps)、组播端口有没有被风暴抑制误伤。锐应科技在 关于锐应 页面列出了工业交换机与 PON 产品线的完整资料,监控网选型时可直接对照端口、PoE 功率与组播功能的规格表。