第145篇:IGMP Snooping——交换机如何感知组播

关键词

IGMP Snooping、组播监听、组播表、VLAN 内组播、组播泛洪抑制


一、没有 IGMP Snooping 的问题

1.1 组播的泛洪问题

当交换机不感知组播时,组播流量会被当作广播处理:

没有 IGMP Snooping 的交换机:

组播源 ──── 交换机 ──── 所有端口(泛洪所有组播流量)
                          │
                     ┌────┴────┐
                     │         │
                   主机 A    主机 B
                 (想接收)   (不想接收)

问题:主机 B 不需要的组播流量也发给了它,浪费带宽

1.2 IGMP Snooping 的作用

IGMP Snooping 让交换机监听 IGMP 报文,建立组播转发表,只将组播流量转发给需要的端口。

有 IGMP Snooping 的交换机:

组播源 ──── 交换机(建立了组播表)───► 主机 A
                          │           (想接收)
                          │
                         主机 B
                       (不转发,不浪费带宽)

二、IGMP Snooping 的工作原理

2.1 建立组播表

交换机监听 IGMP Report 和 IGMP Leave,动态更新组播转发表:

1. 主机 A 发 IGMP Report(加入 224.1.1.1)
2. 交换机记录:224.1.1.1 → 端口 1(主机 A)
3. 主机 C 发 IGMP Report(加入 224.1.1.1)
4. 交换机更新:224.1.1.1 → 端口 1、端口 3

5. 主机 A 发 IGMP Leave(离开 224.1.1.1)
6. 交换机响应查询,确认组成员变化
7. 更新表:224.1.1.1 → 端口 3(仅主机 C)

2.2 组播转发表

display igmp-snooping group
-----------------------------------------------
VLAN 10: Total 2 entries
  Group           Member ports     Router ports
  224.1.1.1       GE0/0/1, GE0/0/3  GE0/0/24
  224.1.2.1       GE0/0/5           GE0/0/24
字段 说明
Group 组播组地址
Member ports 有组成员的主机端口
Router ports 连接上游组播路由器的端口

三、Router Port 的作用

3.1 为什么需要 Router Port

组播转发表中的 Router Port 用于将 IGMP Report 转发给上游路由器:

           组播源
              │
         路由器 (IGMP 查询器)
              │
        ┌─────┴─────┐
        │ 交换机     │
        │ GE0/0/24 ← Router Port(连接路由器)
        │ GE0/0/1  ← Member Port(主机 A)
        │ GE0/0/2  ← Member Port(主机 B)
        └───────────┘

Router Port 的确定: - 收到 IGMP Query 的端口 → 自动成为 Router Port - 手动配置的静态 Router Port

3.2 静态 Router Port 配置

# 手动指定 Router Port(如果自动检测失败)
interface GigabitEthernet0/0/24
 igmp-snooping static-router-port vlan 10

四、IGMP Snooping 配置

4.1 基本配置

# ===== 全局启用 IGMP Snooping =====
igmp-snooping enable

# ===== 在 VLAN 中启用 =====
vlan 10
 igmp-snooping enable
 igmp-snooping version 2          # IGMP 版本

# ===== 查看 IGMP Snooping 状态 =====
display igmp-snooping configuration
-----------------------------------------------
IGMP Snooping: Enable
VLAN 10: Enable
  Version: 2
  Query Interval: 60s
  Robustness Variable: 2

4.2 IGMP Snooping 代理

让交换机代理 IGMP 查询:

# 交换机作为 IGMP 查询器(如果没有路由器)
vlan 10
 igmp-snooping querier enable
 igmp-snooping general-query source-ip 192.168.10.1

4.3 静态组播组

# 静态指定组播成员
interface GigabitEthernet0/0/1
 igmp-snooping static-group 224.1.1.1 vlan 10

五、IGMP Snooping 的优化

5.1 快速离开

# 启用快速离开(收到 Leave 立即删除,不需要查询)
interface GigabitEthernet0/0/1
 igmp-snooping fast-leave vlan 10

适用场景:每个端口只有一个主机时。

5.2 组播 VLAN 复制

# 跨 VLAN 组播复制
vlan 10
 igmp-snooping mrouter-learn-pim
 multicast replication-vlan 100

六、排错

# 查看组播转发表
display igmp-snooping group vlan 10

# 查看 IGMP 报文统计
display igmp-snooping statistics

# 查看 IGMP Snooping 配置
display igmp-snooping configuration
问题 原因 解决
组播不通 IGMP Snooping 未启用 igmp-snooping enable
单端口组播 端口不是 Member 检查 IGMP Report 是否到交换机
跨 VLAN 不通 没有组播 VLAN 复制 配置 replication-vlan

七、总结

知识点 核心要点
IGMP Snooping 交换机监听 IGMP 报文,建立组播表
组播表 Group → Member ports + Router ports
Router Port 连接上游路由器的端口
快速离开 收到 Leave 立即删除,无需查询
配置位置 VLAN 级别启用

八、思考

  1. 为什么没有 IGMP Snooping 时组播流量会被泛洪?
  2. IGMP Snooping 的组播表包含哪些信息?
  3. Router Port 是如何确定的?
  4. IGMP Snooping 快速离开有什么好处?有什么限制?
  5. 如果 IGMP Snooping 未启用,收到组播流量的交换机会怎么处理?

下篇预告:第146篇《PIM-DM 与 PIM-SM 组播路由协议》——讲解组播路由协议如何在不同路由器之间建立组播转发路径。