同一个 VLAN 内送组播,交换机只要做 IGMP Snooping:听客户端的 IGMP 报告(Report),把组播组和端口绑定,只往有成员的端口转发。没有 Snooping,组播帧就按广播处理,全网泛洪。
跨 VLAN 送组播会遇到三件事,必须分别解决:
没有 querier。IGMP 需要有人周期发查询(Query),客户端才会回应报告。二层交换机默认不发查询,如果没有三层设备或指定的 querier,Snooping 表项超时后组播就断了。工业网里最常见的一种是:上游路由器的组播功能没开,接入交换机的组播组表项全超时。
跨不了网段。Snooping 只在同一个广播域有效,VLAN 10 的客户端加入组播组,VLAN 20 的客户端不会因此收到流。跨网段需要三层组播路由,或者用 IGMP Proxy 在交换机上做代理。
上行被重复消耗。三层接口把同一路组播流推给多个 VLAN,每个 VLAN 各占一份上行带宽。VLAN 越多,浪费越大,这时需要组播 VLAN(MVR)。
三件事对应三种机制,选错就是"配置全绿、业务不通"。

| 版本 | 标准 | 加入/离开机制 | 对交换机的影响 |
|---|---|---|---|
| IGMPv1 | RFC 1112 | 只有 Report,离开靠超时 | 无 Leave 报文,成员退出要等超时,回收慢 |
| IGMPv2 | RFC 2236 | 增加 Leave,支持查询器选举 | 支持快速离开(Fast Leave),端口级回收及时 |
| IGMPv3 | RFC 3376 | 支持源过滤(SSM),报告带源列表 | 无报告抑制,报文量增大,对 CPU 要求高 |
版本不匹配是最常见的故障源。上游跑 v3、接入交换机只支持 v2,客户端按 v3 发报告,交换机可能识别不了源过滤字段,表现为"部分频道正常、部分频道收不到"。规划时把上下游版本统一,或者明确让三层设备做版本转换。
还有一个细节:v1/v2 有报告抑制机制(Report Suppression),同一网段只有一个客户端回应查询,交换机看到的成员数量少于实际数量。这意味着按"IGMP 报告数"估算带宽会偏低。v3 取消了抑制,表项更准确,但查询报文量更大。
IGMP Proxy 解决的是"交换机自己不会跑组播路由协议,但又要跨网段转发"的问题。
它的做法是:交换机在一个接口上扮演主机(Host),向三层设备发报告,请求加入组播组;在其他接口上扮演查询器(Querier),向客户端周期发查询,维护成员表。上游接口叫 router port(上行接口),下游接口叫 member port。
这样做的直接好处是省掉了 PIM-SM、PIM-DM 这类组播路由协议——在只有一条上行链路的工业网和园区接入网里,跑 PIM 属于杀鸡用牛刀,配置复杂、排障也难。IGMP Proxy 的上行只发报告、不发数据流;数据流由上游按报告推下来,交换机再按成员表复制到各端口。
代价有三条。第一,Proxy 只适用于单上行拓扑,多上行会形成两个 router port,需要额外规划归属。第二,它不处理组播源侧的选择,只按组加入,做不了严格意义上的 SSM。第三,查询器参战时要和上游设备的 querier 协调,双 querier 会造成成员表震荡。工程上通常把接入交换机的 Proxy 查询器优先级设低,避免和三层设备抢角色。
MVR 的思路是把组播流单独放到一个组播 VLAN 里传输,接入侧再按用户 VLAN 的成员关系复制。上游只需要推一份,节省的是上行带宽和三层设备的转发资源。
关键配置概念有两个:
组播 VLAN(Multicast VLAN):承载组播数据的专用 VLAN,只在交换机内部和上行链路使用。
接收 VLAN(Receiver VLAN):真实用户所在的 VLAN。交换机会把组播流从组播 VLAN 复制到接收 VLAN 的成员端口上。
复制发生在接入交换机,位置越靠近终端,节省的上行带宽越多。MVR 与 IGMP Snooping 是配合关系而不是替代关系:Snooping 决定"哪些端口要",MVR 决定"流从哪个 VLAN 进来"。
边界也要说清:MVR 只在接入侧生效,核心到接入这一段要保证组播 VLAN 的标签能透传,途经的 Trunk 口必须放通组播 VLAN;如果中间设备做了 QinQ 或标签剥离,组播会中断。另外一些实现把 MVR 限制在单层结构,跨多级交换机时需要逐级配置。
场景:园区监控,32 路 4K 摄像头,每路码流 25 Mbps(H.265 主码流,含音频与封装开销);3 个用户 VLAN:VLAN 10(安保中心,全看 32 路)、VLAN 20(车间,看 8 路)、VLAN 30(办公,看 4 路)。
第一步,算单路流量的上行需求。32 × 25 Mbps = 800 Mbps。千兆上行口在扣除以太网开销后可用约 940 Mbps,800 Mbps 占 85%,已经接近上限。
第二步,按"逐 VLAN 复制"算上行占用。三层设备把每一路流分别推到 VLAN 10、20、30,每个 VLAN 内部复制不占上行,但三层到接入的上行接口要同时承载三份:
VLAN 10:800 Mbps
VLAN 20:8 × 25 = 200 Mbps
VLAN 30:4 × 25 = 100 Mbps
合计 1.1 Gbps,超过千兆口的线速,必然丢包,表现就是所有画面一起卡。
第三步,改成组播 VLAN 后。上游只往组播 VLAN 1000 推一份 800 Mbps,接入交换机按各 VLAN 的成员表复制:
上行占用:800 Mbps(比原来少 300 Mbps,降幅 27%)
VLAN 10 出方向:800 Mbps(32 路全看,仍受端口带宽约束)
VLAN 20 出方向:200 Mbps
VLAN 30 出方向:100 Mbps
第四步,检查端口侧约束。VLAN 10 的安保中心终端如果接在千兆口上,800 Mbps 已经接近端口上限,实际解码端通常只同时显示 8~16 路,建议把 32 路录像交给 NVR,终端只看 16 路:16 × 25 = 400 Mbps,占千兆口 43%,留出足够余量。
第五步,确认组播组与查询器。按 IGMPv2(RFC 2236)的默认参数,查询器每 125 s 发一次通用查询,组超时通常设为 260 s;这意味着客户端离开后最长要等 260 s 表项才老化。要快速回收,需要开 Fast Leave(v2/v3 支持),端口收到 Leave 后立即删除成员关系。代价是在有多客户端共享链路的场景下,Fast Leave 可能误删——一个客户端离开就把整条链路的上游流量切了,所以只在"接单个客户端"的端口上开。

| 现象 | 可能原因 | 判定方法 |
|---|---|---|
| 全部频道收不到 | 上游组播功能未开或无 querier | 在接入交换机看有无组播组表项 |
| 部分 VLAN 收不到 | 组播 VLAN 未在 Trunk 口放通 | 查途经 Trunk 的允许 VLAN 列表 |
| 客户端离开后画面继续 | 未启 Fast Leave,等超时老化 | 看组表项老化时间是否为 260 s |
| 上行口流量接近线速、全组卡顿 | 未上 MVR,逐 VLAN 复制 | 对比上行口进出流量与流数 × 码流 |
| 每隔 4 分钟断一次 | 查询器缺失,表项超时 | 抓 IGMP Query 报文,确认是否有周期查询 |
| 组播帧出现在无关端口 | Snooping 未启用或泛洪回退 | 查端口成员表与未知组播处理策略 |
泛洪回退值得单独说:多数交换机在 Snooping 表项未建立时会把未知组播按广播处理,这段时间内会出现短时泛洪。工业网带宽富余时看不出问题,一旦接了几十路视频,泛洪窗口内就可能触发上行拥塞。可控的做法是给未知组播配丢弃策略,同时保证查询器工作正常,缩短表项空窗。
锐应科技的工业交换机在 VLAN、IGMP Snooping 与组播转发上提供与园区设备一致的配置口径,8+4 口机型的端口与上联能力可参考 工业交换机方案页;如果是"OLT + ONU + 交换机"的混合组网,组播在 PON 侧的映射方式见 PON 接入方案。
配置顺序建议固定为:先规划 VLAN 与组播 VLAN 编号,再开 Snooping 与查询器,然后配 Proxy 或 MVR,最后按端口开 Fast Leave。以下为通用语法示意(不同平台命令不同,以实际 CLI 为准):
; 示意:组播 VLAN + Snooping 的最小配置顺序 vlan 10,20,30,1000 igmp snooping enable igmp snooping vlan 10 querier enable igmp snooping vlan 1000 multicast-vlan mapper 10,20,30 interface gi0/1 switchport trunk allowed vlan 10,20,30,1000 interface gi0/5 igmp snooping fast-leave enable
| 参数 | 常见取值 | 调整方向 |
|---|---|---|
| 通用查询间隔 | 125 s(RFC 2236 默认) | 缩短可加快发现,代价是报文量上升 |
| 组超时(robustness 2) | 260 s | 与查询间隔按倍数关系联动 |
| 组播 VLAN 编号 | 避开业务与语音 VLAN | 统一规划,别用默认值 |
| Fast Leave | 单客户端接入端口开启 | 多客户端共享链路禁用 |
| 未知组播处理 | 丢弃 | 带宽紧张时必设 |
Snooping 的工作范围是单个广播域,只在收到报告的那个 VLAN 内建立表项。VLAN 10 的客户端加入组播组,VLAN 20 不会自动获得这份流量。跨 VLAN 需要 IGMP Proxy 或三层组播路由(PIM-SM 等)把组播流引到目标网段,Snooping 只负责在目标网段内按端口分发。
PIM 要跑在具备三层转发能力的设备上,还要配 RP、BSR、邻居关系,配置与排障成本都高。工业网多数是单上行树形拓扑,用 IGMP Proxy 就能覆盖"上游一份流、下游按需分发"的需求。只有多上行、多源、需要源过滤(SSM)的场景才值得上 PIM。
因为它增加了配置层级。要规划组播 VLAN 编号、保证沿途 Trunk 放通、逐级配置 MVR,排障时也比单 VLAN 结构多一层映射关系。只有在"同一路流要送多个 VLAN,且上行带宽紧张"时才划算;如果只有一个 VLAN 看视频,MVR 带来的收益接近零,反而增加维护成本。
可以,多数交换机支持在指定 VLAN 上启用查询器。要注意的是同一 VLAN 内只应有一个查询器,两台设备同时发查询会导致成员表震荡、报告报文翻倍。做法是把三层设备设为查询器,接入交换机不启用;没有三层设备的纯二层网络才让就近的交换机的查询器启用,并统一配置版本。
先查端口带宽而不是组播配置。单路 25 Mbps、32 路就是 800 Mbps,千兆口已经占了 85%,再加上容器封装和重传,很容易越过线速。先确认每台终端同时解码的路数是否超出端口能力,再看上行口流量曲线,最后才回头查组播表项与查询器状态。
跨 VLAN 送组播是三件事各管一段:Snooping 管同一个广播域内按需转发,Proxy 管跨网段加入,组播 VLAN 管上行只推一份。32 路 4K 流量的例子说明,不做 MVR 时上行的 1.1 Gbps 直接压垮千兆口,做了之后降到 800 Mbps。剩下的瓶颈会转移到终端端口和解码能力上,那是另一笔账。设备侧的完整信息可查 关于锐应。