板块6 · 组播 IGMP / MLD Snooping 与 IPTV
板块6 · 组播 IGMP / MLD Snooping 与 IPTV
目标与定位:本板块承接 VLAN、STP、聚合等二层基础,进入“单份流量、按需复制”的组播承载领域,覆盖 IGMP/MLD Snooping、静态组播组、组播过滤、IPTV 频道与 CAC 准入控制。它是 ZCIE 核心考点:ZCIA 只需知道组播能节省带宽;ZCIP 要会开启 Snooping、配置静态组和过滤;ZCIE 必须能从“黑屏/卡顿/换台慢”反推二层表项、路由端口、协议时序和业务策略。所有配置以现场设备型号、软件版本和实际帮助信息为准。
6_1 组播基础与地址体系
本节要解决什么问题:先理解组播存在的理由与地址体系,尤其是「32 个组播 IP 共用一个 MAC」这个排障根源。
6_1_1 单播、广播、组播的本质差异
组播不是“广播升级版”,而是在发送端与每一台接收端之间建立按需分发树。 单播面向一个明确目的 IP,广播面向网段内所有节点,组播面向“已加入某个组”的接收者。因而单播容易形成服务器与链路的多份复制,广播无法区分是否需要且通常不能跨三层;组播在每一跳路由器上依据组成员状态决定复制,只有在需要的分支上才复制流量。
单播:Server ── N 份流 ──► Host A / B / C / D ...
问题:同一内容随接收者线性放大,服务器和接入链路压力大。
广播:Server ── 1 份流 ──► 网段内全部主机(需要/不需要都收到)
问题:浪费终端 CPU,无法针对业务精确控制,跨网段受限。
组播:Server ── 1 份流 ──► R ── 有成员的分支继续转发
优势:每条链路原则上仅保留一份;末端交换机再按成员端口复制。
【ZCIA】 判断题常把“组播一定能跨全网”“广播一定比组播省带宽”设为干扰项。正确思路是:组播能否正常工作,既取决于三层组播路由,也取决于二层 Snooping;接入交换机若无法识别组成员,组播在 VLAN 内就会退化成广播式泛洪。
6_1_2 为什么 IPTV 是组播的最佳教学场景
IPTV 直播的流量特征把组播优点与缺陷同时放大。 直播频道不区分观众数量,都以固定码率持续发送;若同时在线人数大、频道多,采用单播会让流媒体源和汇聚链路重复承载,采用广播则把视频推给不观看的主机。组播让同一频道只在有成员的分支保留一份流,所以直播是“最值得组播化”的业务;反过来,点播、回看、认证、EPG 等个性化交互往往仍是单播。
| 业务类型 | 流量模型 | 推荐承载 | 工程关注点 |
|---|---|---|---|
| 直播 | 同一内容、多人并发、长期稳定 | 组播 | 频道规划、Snooping、CAC、QoS |
| 点播/回看 | 用户个性化、起停频繁 | 单播为主 | 并发容量、会话状态、组播回流 |
| 预览 | 短时、可控次数 | 单播或受控组播 | 预览次数、时长、间隔策略 |
| 系统控制 | 请求/响应、小报文 | 单播 | DNS、认证、EPG 与机顶盒管理 |
6_1_3 IPv4 组播地址分类与选型边界
业务组地址必须避开协议保留区间,再按网络边界选择 SSM 或 ASM。 IPv4 组播地址属于 D 类地址,范围为 224.0.0.0 ~ 239.255.255.255。其中 224.0.0.0/24 是本地链路协议保留区间,不能用于一般业务;232.0.0.0/8 是 SSM(Source-Specific Multicast),接收者必须同时指定源和组;239.0.0.0/8 是管理域地址,适合私网/IPTV 等可自主规划的场景;其余公网组播地址则用于跨域公网组播。
| 地址区间 | 分类 | 使用场景 | 规划提示 |
|---|---|---|---|
224.0.0.0 ~ 224.0.0.255 |
本地协议保留 | OSPF、PIM、IGMP、ALL-ROUTERS 等 | 禁止作为用户频道组地址 |
224.0.1.0 ~ 238.255.255.255 |
公网组播 | 公网 ASM 业务 | 运营商间协调,非私网首选 |
232.0.0.0 ~ 232.255.255.255 |
SSM | 指定源组播 | 接收端需支持 (S,G) |
239.0.0.0 ~ 239.255.255.255 |
管理域/私网 | IPTV、园区组播 | 与频道编号、VLAN、源地址共同登记 |
224.0.0.0/4 整体 |
IPv4 D 类 | 所有 IPv4 组播 | 不能配置为单播主机地址 |
【ZCIE】 地址规划要把“组地址、源地址、VLAN、出端口”视为一张表,而不是只记录频道名。以下规则来自本板块必须保留的静态组播组约束:
- 合法地址范围为
224.x.x.x ~ 239.x.x.x; - 不允许使用
224.0.0.x保留地址; - 组地址所在 VLAN 必须已经被 Snooping 监听;
- 设备最多支持 64 个静态组播组。
6_1_4 组播 MAC 映射与 32:1 歧义
组播 MAC 只解决二层封装问题,不能替代 IP 层组成员判断。 IPv4 组播 MAC 固定前缀为 01-00-5E,其后 23 位取自组播 IP 地址的低 23 位。由于 IPv4 组播地址有 28 位可变信息,而 MAC 只承载低 23 位,任意 5 位差异被丢弃,因此理论上 2^5 = 32 个 IPv4 组地址会映射到同一组播 MAC。
组播 IP:239.1.1.1
低 23 位:0000001.00000001.00000001
组播 MAC :01-00-5E-01-01-01
共享同一 MAC 的其他例子:
224.1.1.1 / 225.1.1.1 / ... / 239.1.1.1
(仅低 23 位相同即可能碰撞)
32:1 不是“一定会错”,但要求设备做三层精确过滤。 在接入交换机上,同一 VLAN 内若不同业务恰好映射至同一组播 MAC,仅靠目的 MAC 无法区分。IPTV 通常按频道组地址精确加入、静态组精确指定、过滤规则精确匹配,可把歧义影响降到最低。排障时如果看到“不相关主机收到某个频道的第一层报文”,就要检查是否有同 MAC 碰撞,而不能只凭 MAC 表判断“表项正确”。
6_1_5 为什么交换机必须运行 IGMP Snooping
组播 MAC 永不作为源 MAC,导致传统自学习机制失效;不监听就只能泛洪。 交换机学习 MAC 表的逻辑是观察“源 MAC—入端口”,而组播帧中目的 MAC 是组播地址,转发面无法从数据平面自然形成“哪个端口需要该组”的稳定映射。若没有 IGMP Snooping,交换机通常会在对应 VLAN 内对所有端口泛洪。
无 Snooping 的 IPTV 接入交换机:
port10(上行)收到 239.1.1.1 @ 8Mbps
│
├── port1 8Mbps(可能有机顶盒)
├── port2 8Mbps(可能无成员)
├── port3 8Mbps
├── ...
└── port24 8Mbps
24 口接入交换机:24 × 8Mbps = 192Mbps 无效副本
若再叠加多个频道、级联交换机,带宽和端口缓存会被同时吞噬。
开启 Snooping 后,交换机从被动泛洪转为主动维护成员端口列表。 它监听主机 IGMP Report/Leave,以及组播路由器 Query,建立 (VLAN, Group) → 成员端口 和 (VLAN) → 路由端口 两张表。只有收到 Report 的端口才进入转发列表;收到 Leave 且满足离开条件时删除端口。由此可见,“Snooping enable”只是前提,VLAN 监听、路由端口、成员表、过滤策略必须一起检查。
6_2 IGMP 协议与交互时序
本节要解决什么问题:IGMP 是主机与路由器之间的语言,交换机只是「偷听」。本节讲清三个版本差异、交互时序与关键定时器。
6_2_1 IGMP 三版本对比
版本差异决定了能否支持源过滤、快速离开和 SSM 组网。 IGMPv1 只有 Report,离开靠超时;v2 引入 Leave 和特定组查询,适合传统 ASM;v3 支持 (S,G) 源过滤,是 SSM 的基础。现网不必追求“版本越高越好”,而要让机顶盒、接入交换机、组播路由器在同一版本策略下兼容。
| 项目 | IGMPv1 | IGMPv2 | IGMPv3 |
|---|---|---|---|
| 加入方式 | Membership Report | Membership Report | Report,可携带源列表 |
| 离开方式 | 静默等待超时 | Leave + 特定组查询 | Leave,可源过滤 |
| 查询器 | 依赖组播路由协议 | 本地选举查询器 | 本地选举查询器 |
| SSM | 不直接支持 | 不直接支持 | 支持 |
| 适用定位 | 老旧网络 | 传统 ASM/IPTV | 源指定、精细化控制 |
| 现场提示 | 不新建 | 常见兼容模式 | 新网优先,需端到端支持 |
【ZCIP】 若接入交换机开启快速离开,版本与协议行为要联动理解:v2/v3 才存在明确 Leave;v1 主机离开后必须等待成员超时,会表现为“换台慢、旧频道残留”。因此新工程应优先确认机顶盒和网关的 IGMP 版本,不能只调交换机定时器。
6_2_2 IGMP 查询、加入与离开的完整时序
Snooping 的价值就在于“看懂 Query/Report/Leave”,而不是盲目转发 IGMP 报文。 查询器周期性发送 General Query;主机收到后按响应时间随机延时发送 Report;交换机记录成员端口,并通常把 Report 向路由端口转发。离开时,v2/v3 主机发送 Leave,查询器/交换机发送特定组查询,若无其他成员响应则删除该组端口。
时间轴 ──────────────────────────────────────────────────────────►
Host(STB) Switch(Snooping) Router/Querier
│ │ │
│ │◄── General Query ────────│ query_interval
│◄── General Query ─────│ │
│ │ │
│── Report(239.1.1.1) ──►│── Report(仅向 Router) ──►│
│ │ │
│ │ 学习:VLAN100, G=239.1.1.1│
│ │ host=port8 │
│ │◄── 组播流 (S,239.1.1.1) ──│
│◄── 组播流(port8) ────│ │
│ │ │
│── Leave(239.1.1.1) ──►│── Leave ──►(按协议) │
│ │◄── Group-Specific Query ──│
│── Report(若仍有成员)─►│ │
│ │ 无响应则删除 port8 │
“交换机是否把 Report 往上行转发”是判断 Snooping 行为是否正确的重要细节。 若 Report 被丢弃,三层网络不知道下游成员,组播流可能停止;若所有成员 Leave 后还继续保留,会浪费带宽。排障时要同时观察下行口 IGMP 与上行口 IGMP,不能只看本机有没有生成表项。
6_2_3 关键定时器与取值约束
定时器不能脱离业务规模机械复制;本板块保留其取值范围,现场仍须以设备实际为准。 下表列出命令、缺省值与范围。response_interval 和 lastmember_query 取值范围均为 10–250,其中默认分别为 10 和 1;不同版本可能采用不同时间单位或显示粒度,修改后应逐台核对 show igmp snooping。
| 定时器 | 缺省/常见值 | 取值范围 | 命令(体系A) | 工程含义 |
|---|---|---|---|---|
| Query Interval | 60s | 10–2147483647 | set igmp snooping query_interval |
查询器周期发送 General Query |
| Response Interval | 10 | 10–250 | set igmp snooping response_interval |
主机响应 General Query 的最大时延 |
| Last Member Query | 1s | 10–250 | set igmp snooping lastmember_query |
收到 Leave 后确认最后成员 |
| Host Timeout | 260s | 命令取值范围 100–2147483647 | set igmp snooping timeout <值> host |
成员表项老化 |
| Router Timeout | 260s | 命令取值范围 100–2147483647 | set igmp snooping timeout <值> router |
路由端口老化 |
【踩坑】 “响应慢、换台慢、表项残留”往往不是同一个参数。response 影响加入延迟上限;last member 影响离开确认;host/router timeout 影响表项在没有协议报文时的保留。酒店场景若为了换台快而把 last member 调得很小,必须配合 fastleave 与端口共享模型评估,不能只追求数值最低。
6_3 IGMP Snooping 配置全解
本节要解决什么问题:本节把 IGMP Snooping 的命令分成四组:基本功能、静态组播组、静态路由端口、组播过滤,逐条说明约束。
6_3_1 基本功能配置
Snooping 的完整开启链条是“全局使能 → VLAN 监听 → 路由端口/查询策略 → 验证”。 全局功能缺省关闭,因此配置遗漏任何一步都可能导致组播仍按未知组播泛洪或丢弃。体系A命令如下:
! 1. 使能/关闭 IGMP Snooping(缺省关闭)
set igmp snooping enable
set igmp snooping disable
! 2. 添加/删除监听 VLAN
set igmp snooping add vlan 100,200
set igmp snooping delete vlan 100,200
! 3. 按 VLAN 使能/关闭 Query
set igmp snooping query vlan 100 enable
set igmp snooping query vlan 100 disable
! 4. 快速离开
set igmp snooping fastleave enable
set igmp snooping fastleave disable
! 5. 跨 VLAN Snooping
set igmp snooping crossvlan enable
set igmp snooping crossvlan disable
| 序号 | 功能 | 原始命令 |
|---|---|---|
| 1 | 全局使能/关闭 | set igmp snooping {enable|disable} |
| 2 | 添加监听 VLAN | set igmp snooping add vlan [vlanlist] |
| 3 | 删除监听 VLAN | set igmp snooping delete vlan [vlanlist] |
| 4 | 按 VLAN 使能/关闭 Query | set igmp snooping query vlan [vlanlist] {enable|disable} |
| 5 | 快速离开 | set igmp snooping fastleave {enable|disable} |
| 6 | 跨 VLAN | set igmp snooping crossvlan {enable|disable} |
四条关键说明必须成为配置评审项:
- 最多同时监听 256 个 VLAN;规划大二层或大量业务 VLAN 时,应先清点监听数量,避免后期扩展受限。
- 关闭 Snooping 时,组播流按
set port multicast的策略决定转发或丢弃;不能假定“关掉就安全”,也不能假定“关掉就不通”。 - 开启 Query 但无三层 IP/MAC 配置时,设备使用
223.255.255.255与交换机 MAC 作为源。该行为用于代理查询,前提是网络允许该地址角色,且不影响其他查询器。 - 快速离开开启后,收到 Leave 直接删除端口,不再发送特定组查询。这能加快换台和资源回收,但在端口多用户共享时会造成“抢断”,详见 6_3_6。
现场怎么用/配错什么现象/怎么验:
- 现场用法:接入交换机先
add vlan,再检查 router/host;汇聚设备通常只做 Snooping,不轻易兼任查询器。 - 配错现象:只
enable但未add vlan,对应业务 VLAN 仍无表项;或在 Trunk 口忘记放行 VLAN,成员 Report 无法到达。 - 验证命令:
show igmp snooping、show igmp snooping vlan <id>、show igmp snooping vlan <id> router。
6_3_2 静态组播组配置
静态组用于“频道常驻、端口预先加入”,可规避首份 Report 延迟或特定终端不主动加入的问题。 它适合酒店、医院、营业厅等频道固定、对换台体验敏感的接入场景。原始命令包含基于 VLAN、VLAN+端口、VLAN+Trunk 的添加与删除:
! 基于 VLAN 的静态组(记录组地址,成员由动态协议补充)
set igmp snooping vlan 200 add group 239.10.1.1
set igmp snooping vlan 200 delete group 239.10.1.1
! 基于 VLAN + 端口
set igmp snooping vlan 200 add group 239.10.1.1 port 1-24
set igmp snooping vlan 200 delete group 239.10.1.1 port 1-24
! 基于 VLAN + Trunk
set igmp snooping vlan 200 add group 239.10.1.1 trunk 1
set igmp snooping vlan 200 delete group 239.10.1.1 trunk 1
| 功能 | 命令 |
|---|---|
| 添加基于 VLAN 的静态组播组 | set igmp snooping vlan [vlanname] add group [a.b.c.d] |
| 删除基于 VLAN 的静态组播组 | set igmp snooping vlan [vlanname] delete group [a.b.c.d] |
| 添加基于 VLAN+端口的静态组播组 | set igmp snooping vlan [1-4094] add group [a.b.c.d] port [portlist] |
| 添加基于 VLAN+Trunk 的静态组播组 | set igmp snooping vlan [1-4094] add group [a.b.c.d] trunk [trunklist] |
| 删除端口/Trunk 静态组 | set igmp snooping vlan [1-4094] delete group [a.b.c.d] port/trunk [...] |
静态组约束是硬性门槛,不能通过“重试”绕过:
| 约束项 | 规则 |
|---|---|
| 地址范围 | 224.x.x.x ~ 239.x.x.x |
| 保留地址 | 不允许 224.0.0.x |
| VLAN 前提 | 组所在 VLAN 必须已被 Snooping 监听 |
| 规格上限 | 最多 64 个静态组播组 |
| 版本/型号差异 | 参数写法、对象范围以 ? 与现场版本为准 |
现场怎么用: 酒店每房间一个接入端口,且业务明确允许常驻频道时,可在接入 VLAN 上对公共频道配置 port 1-24;若仅某些楼层、某些汇聚 Trunk 需要,则精确到端口或 Trunk。切忌把全部频道静态下发到全部端口,否则失去组播按需复制的意义。
配错现象: 输入 224.0.0.x 会触碰保留地址约束;VLAN 未监听时,静态组即使提交也可能无法按预期生成表项;超过 64 组时需拆分 VLAN、采用动态加入或重新规划频道。
6_3_3 静态路由端口 smr、组数限制与定时器
smr 解决的是“查询器不可见或协议学习失败时,组播源方向如何确定”的问题。 smr 即 Static Multicast Router。若交换机本应学习到路由端口却收不到 Query,或上游设备不发送可识别查询,组播流可能进不来;此时将上行口/汇聚口配置为静态路由端口,可保证 Snooping 向该口转发 Report 并建立上行转发关系。
! 静态组播路由端口
set igmp snooping vlan 100 add smr port 10
set igmp snooping vlan 100 add smr trunk 1
set igmp snooping vlan 100 delete smr port 10
! 每 VLAN 组播组数限制
set igmp snooping add maxnum 8 vlan 200-203
set igmp snooping delete maxnum vlan 200-203
! 超时与查询
set igmp snooping timeout 260 host
set igmp snooping timeout 260 router
set igmp snooping query_interval 60
set igmp snooping response_interval 100
set igmp snooping lastmember_query 20
| 功能 | 命令 |
|---|---|
| 添加静态路由端口 | set igmp snooping vlan [1-4094] add smr port [portlists] |
| 添加静态路由 Trunk | set igmp snooping vlan [1-4094] add smr trunk [trunklists] |
| 删除 smr | set igmp snooping vlan [1-4094] delete smr port/trunk [...] |
| 每 VLAN 组播组数限制 | set igmp snooping add maxnum [1-256] vlan [vlanlists] |
| 清除组数限制 | set igmp snooping delete maxnum vlan [vlanlists] |
| 成员/路由器超时 | set igmp snooping timeout [100-2147483647] {host|router} |
| 查询周期 | set igmp snooping query_interval [10-2147483647] |
| 查询响应周期 | set igmp snooping response_interval [10-250] |
| 最后成员查询周期 | set igmp snooping lastmember_query [10-250] |
maxnum 是接入安全边界,不是“业务总量上限”的全部。 酒店每房间多频道并发时,限制每 VLAN 最大组数可抑制异常终端拉取大量组、配置错误放大、非法扫描等风险。但设置过小会在活动频道高峰期触发加入失败;设置过大又削弱保护作用。应先统计“每端口最大频道数 × 并发切换余量”,再设置 maxnum。
6_3_4 组播过滤配置
过滤用于授权与故障隔离,但规则一旦写反就会把正常频道一起拦掉。 设备提供 groupip 和 sourceip 两类过滤,功能缺省关闭。groupip 适合“只允许白名单频道”,sourceip 适合“只允许合法组播源”;二者可组合,但必须先在测试环境确认命中顺序和缺省动作。
! 使能/关闭组播过滤(缺省关闭)
set igmp filter enable
set igmp filter disable
! 按组地址过滤
set igmp filter add groupip 239.10.1.1 vlan 200
set igmp filter delete groupip 239.10.1.1 vlan 200
! 按组播源过滤
set igmp filter add sourceip 10.20.30.40 vlan 200
set igmp filter delete sourceip 10.20.30.40 vlan 200
| 功能 | 命令 |
|---|---|
| 使能/关闭组播过滤 | set igmp filter {enable|disable} |
| 添加组地址过滤 | set igmp filter add groupip [a.b.c.d] vlan [vlanlists] |
| 删除组地址过滤 | set igmp filter delete groupip [a.b.c.d] vlan [vlanlists] |
| 添加源地址过滤 | set igmp filter add sourceip [a.b.c.d] vlan [vlanlists] |
| 删除源地址过滤 | set igmp filter delete sourceip [a.b.c.d] vlan [vlanlists] |
现场怎么用: 酒店只授权 8 个频道时,先建立完整白名单,再观察是否有“默认拒绝”效果;若设备策略是“配置过滤后仅放行匹配项”,则遗漏一个合法频道会造成局部黑屏。sourceip 过滤更适合组播源地址固定、且网络中有非法源风险的场景。
配错现象: 白名单漏写频道,用户换台到未授权组后黑屏;sourceip 误写成单播网关或错误编码源,导致整个频道不可用;过滤 enable 后忘记逐 VLAN 验证。处理顺序应为:先 show igmp filter vlan X 对照需求,再抓包确认报文 (S,G),最后调整规则。
6_3_5 显示与诊断命令
诊断命令必须把“全局开关、VLAN 状态、host、router、过滤”连成证据链。 下面全部保留原始显示命令;show 输出格式随型号/版本变化,因此不伪造完整回显,只定义预期关键字段和异常判据。
show igmp snooping
show igmp snooping vlan [[vlanname] [host|router]]
show igmp filter
show igmp filter vlan [1-4094]
| 命令 | 预期结果/关键字段 | 不符时排查方向 |
|---|---|---|
show igmp snooping |
Global 状态 enable;监听 VLAN 列表含目标 VLAN;query/fastleave 符合设计 | 若 disable,检查是否未开启或被脚本关闭;核对 256 VLAN 上限 |
show igmp snooping vlan X host |
有目标组地址,成员端口与实际 STB 口一致 | 无表项:STB 未 Report/VLAN 不通/Trunk 漏放;端口错误:检查 PVID、静态组 |
show igmp snooping vlan X router |
存在动态或静态路由端口,且指向组播源方向 | 为空:配 add smr port;错误口:检查上行链路、Query 来源 |
show igmp filter |
enable 状态与规则数符合设计 | 未 enable 时规则不生效;enable 但白名单不全会导致黑屏 |
show igmp filter vlan X |
目标 VLAN 的规则、组/IP 精确匹配 | 规则跨 VLAN 错配、地址掩码/写法差异、冲突规则 |
show port X statistics |
入方向与出方向组播字节数随业务增长,无异常 discard | 出方向为 0:Snooping/过滤/路由端口问题;入高、出低:泛洪被抑制或表项缺失 |
6_3_6 快速离开的正确打开方式与共享端口副作用
fastleave 是“单人单口、频繁换台”的优化,不是所有接入场景的默认最佳实践。 开启后,交换机收到 Leave 不再发特定组查询,直接删除端口。单用户机顶盒直连接入口时,可加快旧频道停止和带宽回收;但若同一端口下挂小型交换机、多个机顶盒或共享 VLAN,第一个用户 Leave 就可能把同一组的其他接收者一起切断。
风险示意:
Switch port8 ──── 小交换机 ──── STB-A(看 239.1.1.1)
└──── STB-B(也看 239.1.1.1)
STB-A 发送 Leave(239.1.1.1)
fastleave enable:
port8 的 (VLAN, G) 表项立即删除
→ STB-B 也失去 239.1.1.1,画面中断。
fastleave disable(标准行为):
交换机向 port8 发特定组查询
STB-B 仍有成员,Report 回应,表项保留。
【案例故事】 我第一次在宿舍楼接入层无脑开启 fastleave,是因为测试房间换台“秒切”,被称赞了一波。上线当晚投诉是“两个人同看一个频道,先换台的把后换台的踢掉”。我回实验室复现:两台 STB 经同一个下挂小交换器接入 port8,抓包看到 STB-A 的 Leave,交换机立刻删 port8,而 host 表已经没有 239.1.1.1。现场处理不是简单关掉 fastleave,而是先把共享端口识别出来:用户自接小交换机的端口关闭 fastleave,独享 STB 端口才保留。后来我们把“端口下是否允许多终端”写进业务登记表,问题再没复发。
6_4 IGMP Snooping 工程配置实例
本节要解决什么问题:两个实例覆盖基础 IPTV 接入与酒店场景(静态组 + 组数限制 + 过滤),可直接改成开局脚本。
6_4_1 IPTV 接入基础配置
最小可用方案的核心是“VLAN、监听、路由端口、成员表”四者闭合。 以下完整保留原始拓扑和脚本。port10 为组播源/路由方向,port1/3/5 为机顶盒,VLAN 200 承载 IPTV。
拓扑:
组播源/路由 ── port10 ──┐
│
STB1 ── port1 ───────────┼── Switch(VLAN 200)
STB2 ── port3 ───────────┤
STB3 ── port5 ───────────┘
需求:STB 加入 239.1.1.1 / 239.1.1.2,交换机仅向加入端口转发。
! ---------- 1. 基础 VLAN ----------
zte(cfg)#set vlan 200 enable
zte(cfg)#create vlan 200 name IPTV
zte(cfg)#set vlan 200 add port 1,3,5,10 untag
zte(cfg)#set port 1,3,5,10 pvid 200
! ---------- 2. 开启 IGMP Snooping 并监听 VLAN ----------
zte(cfg)#set igmp snooping enable
zte(cfg)#set igmp snooping add vlan 200
! ---------- 3.(可选)指定静态路由端口 ----------
zte(cfg)#set igmp snooping vlan 200 add smr port 10
! ---------- 4.(可选)快速离开,频道切换更快 ----------
zte(cfg)#set igmp snooping fastleave enable
! ---------- 5. 验证 ----------
zte#show igmp snooping
zte#show igmp snooping vlan 200
zte#show igmp snooping vlan 200 host
zte#show igmp snooping vlan 200 router
现场怎么用: 若上游确实发送 Query 且 port10 能学习到路由端口,第 3 步可选;若 show ... router 为空,不要犹豫,直接补静态 smr。若 port1/3/5 是 Trunk 下联其他接入层,须将静态组或 host 表学习关系放在真正终端所在的交换机,不能只在核心配置 Snooping 就期待终端口精确转发。
配错现象: 忘记 set port ... pvid 200,机顶盒报文进入错误 VLAN,host 表不生成;port10 未加入 VLAN 200,组播流进不来;同一口多用户却开启 fastleave,出现同组抢断。
6_4_2 酒店 IPTV:静态组 + 组数限制 + 过滤
酒店场景的本质是把“可用频道、用户权限、接入容量”做成可审计的白名单。 原始需求为 100 个房间,仅允许 8 个指定频道,禁止其他组播源,每个 VLAN 最多 8 个组。脚本完整保留如下:
! ---------- 基础监听 ----------
zte(cfg)#set igmp snooping enable
zte(cfg)#set igmp snooping add vlan 200-203
! ---------- 组数限制:每 VLAN 最多 8 个组 ----------
zte(cfg)#set igmp snooping add maxnum 8 vlan 200-203
! ---------- 静态组播组(保证频道常驻,切台快) ----------
zte(cfg)#set igmp snooping vlan 200 add group 239.10.1.1 port 1-24
zte(cfg)#set igmp snooping vlan 200 add group 239.10.1.2 port 1-24
! ---------- 组播过滤:只放行合法频道,禁止其他 ----------
zte(cfg)#set igmp filter enable
zte(cfg)#set igmp filter add groupip 239.10.1.1 vlan 200
zte(cfg)#set igmp filter add groupip 239.10.1.2 vlan 200
! 若需按源过滤(禁止非法组播源):
zte(cfg)#set igmp filter add sourceip 10.20.30.40 vlan 200
! ---------- 定时器调优 ----------
zte(cfg)#set igmp snooping query_interval 60
zte(cfg)#set igmp snooping response_interval 100
zte(cfg)#set igmp snooping lastmember_query 20
zte(cfg)#set igmp snooping timeout 260 host
zte(cfg)#set igmp snooping timeout 260 router
! ---------- 验证 ----------
zte#show igmp filter
zte#show igmp filter vlan 200
配置逻辑解读: maxnum 8 与“允许 8 个频道”并不自动等价,它限制的是每 VLAN 同时存在的组播组数量;如果动态加入、预览、回看都会创建组,应预留余量。静态组把公共频道常驻到指定端口,减少首包等待;groupip 过滤确保非白名单组被策略处理。若现场为每楼层一个 VLAN,则每个 VLAN 的白名单、maxnum、端口范围都应分别登记,不能只看全局。
6_4_3 跨 VLAN 组播与上线验证
跨 VLAN 仅在确有“成员 VLAN 与组播源 VLAN 分离”的需求时启用。 原始命令只有一条:
set igmp snooping crossvlan enable
其用途是用户处于一个 VLAN、组播源/组播 VLAN 处于另一个 VLAN 时,允许 Snooping 表项跨 VLAN 关联,常见于组播 VLAN 集中下发。由于它改变了标准二层隔离与 Snooping 行为,不能把它当作通用优化开关。上线前必须至少验证:成员能否加入、源 VLAN 流量是否进入成员 VLAN、非成员是否仍被隔离、Trunk 是否形成环路或重复复制。
6_4_4 【案例故事】晚高峰全网泛洪的“缺省关闭”事故
这起事故说明:组播故障的第一怀疑对象永远是全局 Snooping 状态和 VLAN 监听列表。 某酒店晚高峰集中打开直播,监控显示接入交换机所有下联口都有数百 Mbps 的未知组播;部分房间黑屏,部分网页也慢。我先看 show igmp snooping,结果 Global 是 disable——前一轮配置模板把 set igmp snooping enable 写在条件脚本中,因版本差异未提交成功。
排查记录(精简):
zte#show igmp snooping
Global Status : disable ← 根因:组播在 VLAN 内泛洪
zte#show port 10 statistics
RX multicast bytes : 快速增长
zte#show port 1 statistics
TX multicast bytes : 与 RX 接近 ← 所有端口被复制
处理:
zte(cfg)#set igmp snooping enable
zte(cfg)#set igmp snooping add vlan 200
zte(cfg)#set igmp snooping vlan 200 add smr port 10
zte(cfg)#set igmp filter enable
zte(cfg)#set igmp filter add groupip 239.10.1.1 vlan 200
zte(cfg)#set igmp filter add groupip 239.10.1.2 vlan 200
zte(cfg)#set igmp filter add groupip 239.10.1.3 vlan 200
zte(cfg)#set igmp filter add groupip 239.10.1.4 vlan 200
zte(cfg)#set igmp filter add groupip 239.10.1.5 vlan 200
zte(cfg)#set igmp filter add groupip 239.10.1.6 vlan 200
zte(cfg)#set igmp filter add groupip 239.10.1.7 vlan 200
zte(cfg)#set igmp filter add groupip 239.10.1.8 vlan 200
! ---------- 每 VLAN 组数限制与业务校验 ----------
zte(cfg)#set igmp snooping add maxnum 8 vlan 200-203
zte#show igmp snooping vlan 200
zte#show igmp filter vlan 200
验证:
zte#show igmp snooping vlan 200 host
Group 239.10.1.1 → port 1,3,5(仅真实成员)
zte#show port 1 statistics
TX multicast bytes 与观看房间数成正比,不再全端口均分。
做完后我保留了一条规定:变更窗口结束前,必须把 show igmp snooping、host、router 三屏输出纳入验收,而不能只 show running 看命令存在。因为命令“配置过”不等于协议状态“真正生效”。
6_5 MLD Snooping 与 IPv6 组播
本节要解决什么问题:IPv6 组播用 MLD 替代 IGMP,配置思路高度相似。本节用映射的方式讲,学起来更快。
6_5_1 IPv6 组播的协议映射关系
MLD Snooping 是 IGMP Snooping 在 IPv6 的协议映射,不是一套独立转发哲学。 二层设备仍通过监听 MLD 报文来建立组—端口关系;MLDv1 对应 IGMPv2 的基础成员管理,MLDv2 对应 IGMPv3 的源过滤能力。IPv6 没有广播,因此“组播替代广播”的角色比 IPv4 更基础;但这也意味着 NDP、请求节点组播等协议组必须正确保留,不能拿业务过滤规则一概阻断。
| IPv4 | IPv6 | 说明 |
|---|---|---|
| IGMPv2 | MLDv1 | 基本成员管理 |
| IGMPv3 | MLDv2 | 支持 SSM、源过滤 |
| IGMP Snooping | MLD Snooping | 二层监听与精确转发 |
6_5_2 IPv6 地址与配置示例
IPv6 业务规划同样要区分协议保留地址和业务地址。 ff02::1 表示链路本地所有节点,ff02::2 为所有路由器,ff02::1:ffxx:xxxx 用于 NDP 请求节点组播;业务地址应依据网络设计选择,示例采用 ff1e::/16 常见业务区间。
! IPv6 组播场景:用户加入 ff1e::11 / ff1e::22
zte(cfg)#set vlan 200 enable
zte(cfg)#set vlan 200 add port 1,3,5,10 untag
zte(cfg)#set port 1,3,5,10 pvid 200
zte(cfg)#set mld snooping enable
zte(cfg)#set mld snooping add vlan 200
zte#show mld snooping
| IPv6 地址/前缀 | 含义 |
|---|---|
ff02::1 |
链路本地所有节点 |
ff02::2 |
链路本地所有路由器 |
ff02::1:ffxx:xxxx |
请求节点组播,NDP 使用 |
ff1e::/16 |
示例业务组播区间 |
【体系B】 若实际产品命令为 ZXR10(config)# 风格,请勿机械套用 set 语句;应进入对应二层/组播配置模式,用 ? 确认 mld snooping 对象与参数。扩展原则是:IGMP 的“全局开关—VLAN 监听—成员端口—路由端口—过滤—诊断”六步,在 MLD 中逐项对应一遍,不能只配全局 enable。
6_6 IPTV 业务与 CAC 准入控制
本节要解决什么问题:IPTV 是组播最有含金量的落地场景。本节讲清频道、mvlan 与 CAC 准入的关系。
6_6_1 IPTV 系统组成与流量方向
IPTV 不是单一“直播组播”,而是由内容源、编码转码、组播分发、承载网、终端和认证系统共同组成。 直播通常采用组播降低骨干压力;点播/回看/EPG 通常依赖单播;认证与授权决定用户能否建立会话。CAC(Call/Channel Admission Control)负责预览次数、预览时间、间隔和频道权限,是业务层准入控制的关键。
┌──────────┐ ┌──────────┐ ┌──────────────┐ ┌──────────┐
│ 节目源/ │──►│ 编码器/ │──►│ 组播源/流媒体 │──►│ 承载网 │
│ 卫星接收 │ │ 转码 │ │ 服务器 │ │ (交换机) │
└──────────┘ └──────────┘ └──────────────┘ └─────┬────┘
│ 组播流 239.x.x.x
┌─────────────────────────┼─────────────┐
│ │ │
┌─────▼─────┐ ┌─────▼─────┐ ┌────▼─────┐
│ 机顶盒 STB │ │ 机顶盒 STB │ │ IPTV │
│ (客厅) │ │ (卧室) │ │ 认证服务器│
└───────────┘ └───────────┘ └──────────┘
【ZCIE】 用户报障时,必须先分清“组播承载不通”还是“业务准入拒绝”。前者表现为持续黑屏、无组播流、表项缺失;后者可能是 CAC 拒绝预览、超过次数、未订购、认证失败。只看 STB 屏幕无法区分,必须查看 IPTV 用户、频道、CAC 统计。
6_6_2 NAS 模式与全局 IPTV 控制
IPTV/CAC 命令在 NAS 配置模式下执行,和二层 Snooping 的全局模式不同。 进入方式:
zte(cfg)#config nas
zte(cfg-nas)#iptv control enable
zte(cfg-nas)#iptv control log-time <值>
zte(cfg-nas)#iptv control prvcount <count>
zte(cfg-nas)#iptv control prvinterval <值>
zte(cfg-nas)#iptv control prvtime <值>
zte(cfg-nas)#iptv control prvcount reset-period <值>
| 命令 | 含义 |
|---|---|
config nas |
进入 NAS 配置模式 |
iptv control enable |
使能 IPTV 控制功能 |
iptv control log-time |
用户最小观看时间 |
iptv control prvcount |
全局最大预览次数 |
iptv control prvinterval |
全局最小预览间隔 |
iptv control prvtime |
全局最大预览时间 |
iptv control prvcount reset-period |
复位预览次数周期 |
现场怎么用: prvcount、prvtime、prvinterval、right 组合定义预览权益。全局参数先提供默认值,CAC 规则再对特定频道/用户组做精细化覆盖。修改前需要确认“次数、时间单位、复位周期”在所用软件版本中的含义,不能以别的厂商经验替代。
6_6_3 频道配置
频道对象把业务名称、组播 VLAN 与编号关联起来,是 CAC 和诊断的索引。 原始命令如下:
zte(cfg-nas)#create iptv channel 1-8
zte(cfg-nas)#iptv channel 1 name CCTV-1
zte(cfg-nas)#iptv channel 1 mvlan 200
| 功能 | 命令 |
|---|---|
| 创建 IPTV 频道 | create iptv channel [channellist] |
| 设置频道名称 | iptv channel [channellist] name |
| 设置频道所属组播 VLAN | iptv channel [channellist] mvlan |
| 删除频道 | clear iptv channel [channellist] |
配置检查要点: 频道编号应与业务工单一致;mvlan 必须与承载网 Snooping VLAN、组播源 VLAN 一致;一个频道若使用多个组地址(主备、多语种等),台账必须全部记录。删除频道前先检查在线用户和 CAC 关联,避免误删造成批量掉线。
6_6_4 CAC 规则、预览参数与准入流程
CAC 的准入逻辑是“先看全局权益,再看规则覆盖,最后对照频道权限”。 规则明确:CAC 参数缺省值继承全局 iptv control 设置。规则可定义预览次数、预览时间、最小间隔和 right(对频道的权限)。下表完整保留命令:
| 功能 | 命令 |
|---|---|
| 创建 CAC 规则 | create iptv cac-rule [rule id] |
| 设置规则名称 | iptv cac-rule [rulelist] name |
| 规则最大预览次数 | iptv cac-rule [rulelist] prvcount |
| 规则最大预览时间 | iptv cac-rule [rulelist] prvtime |
| 规则最小预览间隔 | iptv cac-rule [rulelist] prvinterval |
| 规则对频道的权限 | iptv cac-rule [rulelist] right |
| 删除 CAC 规则 | clear iptv cac-rule [rulelist] |
CAC 准入流程:
用户请求频道
│
├─ 身份认证/会话是否存在?
│ 否 → 拒绝,检查认证与 client 状态
│
├─ 匹配 CAC 规则(按用户/频道/业务策略)
│ ├─ prvcount:当前周期内预览次数是否耗尽
│ ├─ prvinterval:距上次预览是否过短
│ ├─ prvtime:本次预览是否超时
│ └─ right:是否拥有该频道权限
│
├─ 通过 → 允许加入,建立 client/session
└─ 拒绝 → 返回业务提示,不建立组播会话
原始设计举例(保留其参数与结构,具体时间单位依版本确认):
! 规则1:免费预览,允许 3 次,每次 5 分钟,间隔不少于 30 分钟
create iptv cac-rule 1
iptv cac-rule 1 name FreePreview
iptv cac-rule 1 prvcount 3
iptv cac-rule 1 prvtime 300
iptv cac-rule 1 prvinterval 1800
iptv cac-rule 1 right <频道列表>
! 规则2:付费高清,仅订购用户可看,无预览
create iptv cac-rule 2
iptv cac-rule 2 name PaidHD
iptv cac-rule 2 prvcount 0
现场怎么用: 规则 2 中 prvcount 0 的语义必须由现场版本确认——既有实现将其作为“无预览”的表达,验收时应同时测试未订购用户、订购用户、预览边界三种账号。若规则与频道 mvlan、承载组地址不一致,即使 CAC 放行,组播也可能到不了终端;若承载正常但 CAC 拒绝,终端则表现为业务层不可看。因此“承载可达 + 业务授权”是两条独立验收线。
6_6_5 IPTV 维护、诊断与风险控制
IPTV 运维命令的核心是“全局控制—频道—CAC—在线用户”四层对应关系。 以下完整保留原始命令:
show iptv control
show iptv channel
show iptv channel [id|name]
show iptv cac-rule
show iptv cac-rule [id|name]
show iptv client
clear iptv client
| 命令 | 使用目的 |
|---|---|
show iptv control |
检查全局 enable、预览参数、复位周期 |
show iptv channel |
检查频道编号、名称、mvlan |
show iptv channel [id/name] |
检查单频道统计与关联状态 |
show iptv cac-rule |
检查全部规则与参数 |
show iptv cac-rule [id/name] |
检查规则命中/统计,定位拒绝原因 |
show iptv client |
检查在线 IPTV 用户与会话 |
clear iptv client |
删除在线用户(高风险) |
【踩坑】 clear iptv client 会踢掉在线用户,业务高峰期严禁执行;只在排障或测试窗口、取得变更授权后使用。正常恢复应优先采用“单用户下线、会话超时、规则调整”,而不是批量清除。
6_7 组播排障与案例
本节要解决什么问题:组播故障的现象高度相似(卡顿、黑屏、收不到流),但根因差别很大。本节给出分层决策与典型判据。
6_7_1 排障决策树
排障顺序必须从二层可观察状态开始,再上升到三层组播和业务层。 用户只看到“黑屏/卡顿”,但根因可能在 Snooping 全局开关、VLAN 监听、host/router 表项、过滤、组数限制、带宽或 CAC。以下决策树完整保留原始判据:
现象:IPTV 卡 / 黑屏 / 频道切换慢 / 部分用户看不到
│
├─① show igmp snooping Snooping 是否 enable?(缺省关闭!)
│ └─ 未开 → 泛洪,带宽被打满,全部用户卡
│
├─② show igmp snooping vlan <id> 目标 VLAN 是否被监听?
│ └─ 未加入 → 该 VLAN 泛洪
│
├─③ show igmp snooping vlan <id> host 成员表项是否存在?
│ └─ 无成员 → STB 未发 Report 或 Report 被丢弃
│ └─ 有成员但组不对 → 检查组地址、频道配置
│
├─④ show igmp snooping vlan <id> router 路由端口是否正确?
│ └─ 无路由端口 → 组播流进不来 → add smr port
│
├─⑤ 抓包看 IGMP STB 是否发 Report?交换机是否转发?
│
├─⑥ show igmp filter 是否被过滤规则拦掉?
│
├─⑦ 组数限制 show igmp snooping 看是否达 maxnum
│
└─⑧ 带宽与 QoS 端口统计是否丢包?组播是否被限速?
6_7_2 常见故障现象与判据
“三看”能把绝大多数二层问题定位到本机配置。 一看 host 表项,判断成员是否存在、组是否正确;二看 router 表项,判断组播源方向;三看端口入/出统计,判断流量有没有被真正转发。三看都正常仍异常,才上推到三层 PIM/组播路由、编码源或终端解码。
三看法的标准动作:
一看表项:show igmp snooping vlan <id> host
二看路由:show igmp snooping vlan <id> router
三看流量:show port <id> statistics(对比入/出)
结果判读:
三看都正常但仍卡 → 上联三层、PIM、源端或编码问题
三看之一异常 → 本机 Snooping/VLAN/过滤/端口问题
| 故障现象 | 可能根因 | 关键判据 | 处理动作 |
|---|---|---|---|
| 所有用户看 IPTV 都卡 | 未开 Snooping,组播泛洪 | show igmp snooping disable |
enable 并 add 目标 VLAN |
| 用户完全收不到流 | 无路由端口 | show ... vlan X router 为空 |
add smr port <上行口> |
| 换台慢超过 3 秒 | 无快速离开/定时器过长 | fastleave、lastmember 状态 | 评估 fastleave;调整 last member |
| 看完一次后要多次点选 | 成员老化过快 | timeout 设置与表项寿命 | 增大 host timeout,先评估业务 |
| 某些频道看不到 | 过滤误拦/静态组缺失 | show igmp filter、静态组 |
修正白名单或补静态组 |
| 画面马赛克/丢包 | 带宽不足/QoS 未保障 | 端口统计有 drop/overrun | 扩带宽、保障组播队列、检查环路 |
| 同端口其他用户掉频道 | fastleave + 共享端口 | host 表在 Leave 后立即消失 | 共享端口关闭 fastleave |
| CAC 用户被拒绝 | 预览次数/间隔/权限 | show iptv cac-rule、client |
检查规则覆盖、账号权益、周期复位 |
6_7_3 抓包定位标准动作
抓包的价值在于确认“协议报文是否真实发生”,而不是猜测配置意图。 在机顶盒端口配置镜像,同时观察入方向和出方向;先过滤 IGMP,确认 Report/Leave;再按具体组地址过滤,确认组播流是否抵达终端。
① 在机顶盒端口配置镜像(ingress + egress)
zte(cfg)#set mirror add dest-port 24 ingress
zte(cfg)#set mirror add source-port 8 ingress
zte(cfg)#set mirror add source-port 8 egress
② Wireshark 过滤:igmp
确认 Membership Report(Join)/ Leave 是否出现。
③ 机顶盒换台,观察:
· 是否发出 Leave(旧频道)+ Report(新频道)
没有 → STB/线路/接入控制问题
· 交换机是否把 Report 转发到上行口
没有 → Snooping/VLAN/上行口问题
④ 过滤 ip.dst == 239.x.x.x,确认组播流是否到终端口
· 流到达但 STB 不解码 → STB/编码问题
· 流未到达 → Snooping 表项/路由端口/过滤问题
【踩坑】 镜像端口可能影响转发性能,不能在满负载核心口长时间开启;抓包前确认目的端口空闲、镜像方向符合需求、保存策略合规。若无法镜像,先用 Snooping host/router 表和端口统计完成非侵入式判断。
6_8 笔记方法与验证清单
本节要解决什么问题:组播配置牵涉 VLAN、端口、组地址、路由端口多个维度,没有台账几乎无法维护。本节给出三类模板与验证清单。
6_8_1 【笔记方法】组播业务登记表
没有登记表就无法回答“这个组到底该从哪来、该往哪去”。 每次开通或变更都填写下表;设备型号、版本、配置备份路径也应关联记录。
# 组播业务登记表
| 业务名称 | VLAN | 组地址(G) | 源地址(S) | 成员端口 | 路由端口/smr | 静态组 | 过滤策略 | 变更单号 |
| CCTV-1 | 200 | 239.10.1.1 | 10.20.30.40 | port1,3,5 | port10/smr | 是 | groupip白名单 | CHG-001 |
| 预览频道 | 201 | 239.10.2.1 | 10.20.30.40 | 动态 | port10 | 否 | sourceip | CHG-002 |
校验要点:
- VLAN 是否已被 Snooping 监听:add vlan <id>
- 静态组是否避开 224.0.0.x,且不超过 64 个
- smr 是否指向真实组播源/上游
- 端口下是否多终端:决定是否开启 fastleave
- maxnum 是否覆盖实际并发组数量
6_8_2 【笔记方法】频道与 CAC 规则台账
频道台账要把业务名、mvlan、承载组地址和 CAC 规则连起来。 否则会出现“承载正常但业务拒绝”或“CAC 放行但流到不了终端”的扯皮。
# IPTV 频道与 CAC 台账
| 频道编号 | 名称 | mvlan | 组地址 | 源地址 | CAC规则 | prvcount | prvtime | prvinterval | right | 备注 |
| 1 | CCTV-1 | 200 | 239.10.1.1 | 10.20.30.40 | 1 | 3 | 300 | 1800 | ch1,ch2 | 免费预览 |
| 2 | HD-Sport | 200 | 239.10.1.2 | 10.20.30.40 | 2 | 0 | 0 | 0 | ch3 | 付费高清 |
复核清单:
- 全局 iptv control 是否已 enable
- CAC 参数单位与时间周期是否已用 show 确认
- 规则与频道 right 是否对应
- 在线用户/预览次数统计是否在预期范围
- clear iptv client 是否已被限制在生产窗口之外
6_8_3 【笔记方法】组播故障排查记录模板
故障记录要保存“判定证据链”,不能只写一句已恢复。 建议每次复盘至少包含现象、拓扑、协议状态、端口统计、抓包结论、根因、回退方案。
# 组播故障排查记录
【故障编号】MCAST-<日期>-<序号>
【现象】房间/端口/VLAN 的黑屏、卡顿、换台慢描述
【影响范围】单用户/楼层/全网;开始时间;恢复时间
【拓扑】设备—端口—STB;组播源—网关—接入交换机
【前置变更】最近配置、版本、VLAN、频道或 CAC 变更
【证据采集】
1. show igmp snooping:
2. show igmp snooping vlan X host:
3. show igmp snooping vlan X router:
4. show igmp filter / filter vlan X:
5. show port X statistics:
6. 抓包(IGMP 与组播流):
【假设与验证】先写可能根因,再写验证命令和结果
【根因】一句话说明
【处理】具体命令与生效时间
【回退】若出现副作用,如何恢复上一稳定配置
【沉淀】关联知识点(Snooping、smr、fastleave、CAC 等)
6_8_4 【验证】组播上线前必查清单
上线前必须把“配置存在”转换为“协议与流量均符合设计”。 以下清单覆盖原始诊断命令,并明确异常方向;每条应在变更窗口结束前签字确认。
| 验证命令 | 预期结果/关键字段 | 不符时排查方向 |
|---|---|---|
show igmp snooping |
Global enable;监听 VLAN 列表正确;query/fastleave 符合设计 | 未 enable、VLAN 超出 256 限制、配置未提交 |
show igmp snooping vlan X |
目标 VLAN 处于监听状态,host/router 子表可进入 | VLAN 未 add、Trunk 未放行、跨 VLAN 配置不匹配 |
show igmp snooping vlan X host |
目标组地址存在,成员端口与真实 STB 一致 | STB 未发 Report、PVID/VLAN 错、静态组范围错误 |
show igmp snooping vlan X router |
动态或静态路由端口指向组播源 | router 为空时补 smr;错误口检查上行 Query |
show igmp filter |
状态 enable(如设计);规则数正确 | 忘记 enable,或规则未绑定到目标 VLAN |
show igmp filter vlan X |
白名单组/IP、VLAN 精确匹配 | 漏白名单、sourceip 错误、规则冲突 |
show port <id> statistics |
组播入/出随观看状态变化;无异常 discard/overrun | 出向为 0 查表项;入高出低查泛洪或过滤;丢包查带宽/QoS |
show iptv control |
IPTV enable,全局预览参数符合设计 | NAS 未进入/未提交;参数单位与需求不一致 |
show iptv channel |
频道编号、名称、mvlan 与承载规划一致 | mvlan 与 Snooping VLAN 不匹配;频道对象缺失 |
show iptv cac-rule [id] |
规则参数、right 与账号权益一致 | 预览次数/间隔/权限错误;规则未覆盖目标频道 |
show iptv client |
在线用户、会话、频道符合预期 | 用户无法上线先查认证/CAC,再看承载表项 |
show running-config / 配置备份 |
变更前后 diff 明确,备份路径可追溯 | 命令虽敲入但未提交;缺少回退基线 |
6_9 考点速记与自检清单
本节要解决什么问题:最后是考点速记与自检清单。
6_9_1 考点速记
- 地址空间:IPv4 组播为
224.0.0.0 ~ 239.255.255.255;224.0.0.x为协议保留,不能作为业务组。 - MAC 映射:
01-00-5E+ IP 低 23 位;28 位可变对 23 位,导致 32:1 映射歧义,需三层精确匹配。 - Snooping 必要性:组播 MAC 不作源 MAC,无法自学习;不监听即可能在 VLAN 泛洪。
- 缺省状态:IGMP Snooping、组播过滤均缺省关闭;最多监听 256 个 VLAN。
- 关闭后的行为:关闭 Snooping 时,组播按
set port multicast决定转发或丢弃。 - 代理查询源:开启 Query 且无三层 IP/MAC 时,使用
223.255.255.255与交换机 MAC 作源。 - 快速离开:开启后收到 Leave 直接删除端口,不发特定组查询;共享端口慎用。
- 静态组约束:地址范围
224.x.x.x ~ 239.x.x.x;禁224.0.0.x;VLAN 必须已监听;最多 64 个。 - smr:Static Multicast Router,用于手工指定组播源/路由器方向。
- 组数限制:
maxnum [1-256],用于抑制每 VLAN 异常组数量。 - 过滤命令族:
set igmp filter {enable|disable};可按 groupip、sourceip、VLAN 过滤。 - 版本映射:MLDv1≈IGMPv2,MLDv2≈IGMPv3;MLD Snooping 配置逻辑与 IGMP 高度同构。
- IPTV/CAC:在
config nas下配置;CAC 缺省继承全局iptv control;clear iptv client高风险。 - 排障三看:看 host 表、看 router 表、看端口入/出统计;三者正常再查三层与源端。
浙公网安备 33010602011771号