第144篇:组播基础——IGMP 与组播地址

关键词

组播、IGMP、组播地址、单播、广播、D 类地址、组播 MAC


一、为什么需要组播?

1.1 三种通信方式

方式 描述 场景 带宽消耗
单播 一对一 HTTP/Telnet/SSH 流量 × N 用户
广播 一对所有 ARP/DHCP Discover 所有主机都被中断
组播 一对多(仅发送给感兴趣的人) IPTV/视频会议 流量 × 1(交换机复制)

1.2 组播的核心优势

IPTV 场景:1000 人看同一个频道

单播:源发送 1000 份 → 出口带宽 1000 倍 → 不可行
广播:源发送 1 份 → 全网泛洪 → 所有人都收到(不想要的人也收到)
组播:源发送 1 份 → 交换机只复制给想看电视的人 → 高效

二、组播 IP 地址

2.1 IPv4 组播地址范围

地址范围 类型 说明
224.0.0.0 - 224.0.0.255 本地链路(Well-known) 路由协议(224.0.0.5 OSPF / 224.0.0.9 RIP)
224.0.1.0 - 238.255.255.255 全球范围(GLOP) 应用程序组播
239.0.0.0 - 239.255.255.255 本地管理(Administratively Scoped) 企业内部使用

2.2 常用的组播地址

IP 地址 用途
224.0.0.1 所有主机
224.0.0.2 所有路由器
224.0.0.5 OSPF 所有路由器
224.0.0.6 OSPF DR/BDR
224.0.0.9 RIPv2 路由器
224.0.0.10 IGRP 路由器
224.0.0.13 PIM 路由器
224.0.0.18 VRRP

三、组播 MAC 地址

3.1 MAC 地址映射

组播 IP → 组播 MAC 的映射规则:

IP 组播地址:224.0.1.1 (E0 00 01 01)
     │
     │  取 IP 地址后 23 位 (0000000 00000001 00000001)
     │
     ▼
MAC 地址前 24 位:01-00-5E
MAC 地址后 23 位:IP 后 23 位
MAC 地址:01-00-5E-00-01-01

注意:组播 MAC 地址以 01-00-5E 开头,这是 IEEE 分配给组播的 OUI。

3.2 映射冲突

32 个 IP 组播地址映射到同一个 MAC 地址(MAC 地址只有 23 位,IP 有 28 位):

224.1.1.1   → 01-00-5E-01-01-01
225.1.1.1   → 01-00-5E-01-01-01  (冲突!)
226.1.1.1   → 01-00-5E-01-01-01  (冲突!)

解决方案:交换机依靠 IGMP Snooping 来精确过滤,而不仅仅依赖 MAC 地址。


四、IGMP 协议

4.1 IGMP 的作用

IGMP(Internet Group Management Protocol)是主机和路由器之间的协议,用于: - 主机报告想加入哪个组播组 - 路由器查询哪些主机在哪些组

4.2 IGMP 版本

版本 RFC 特点
IGMPv1 RFC 1112 基本,查询+报告
IGMPv2 RFC 2236 离开组消息(Leave Group)
IGMPv3 RFC 3376 源过滤(SSM 支持)

4.3 IGMPv2 工作流程

        路由器                主机 A              主机 B
          │                    │                  │
          │  General Query  ──►│─────────────────►│(查询所有组)
          │◄───────────────────│                  │
          │  Report (224.1.1.1)│                  │(A 加入组播组)
          │                    │                  │
          │                    │                  │
          │  Group-Specific Query                  │
          │───────────────────►│                  │
          │◄───────────────────│                  │
          │  Report (224.1.1.1)│                  │(还有主机在组中)
          │                    │                  │
          │                    │           A 离开组
          │◄──────────────────────────────────────│
          │                    │  Leave(224.1.1.1)│(A 发送离开)
          │                    │                  │
          │  Group-Specific Query                  │
          │──────────────────────────────────────►│(查询是否还有成员)
          │                    │                  │
          │◄──────────────────────────────────────│
          │                    │                  │ B 没有回复
          │  超时后删除组       │                  │(组中无成员)

4.4 IGMP 查询器

在一个广播域中,需要选出一个查询器(Querier)来发送查询报文:

# 查看 IGMP 查询器
display igmp interface Vlanif10
-----------------------------------------------
Vlanif10 (192.168.1.1)
  IGMP version: 2
  Querier: 192.168.1.1         ← 此路由器是查询器
  Query interval: 125s
  Max response time: 10s
  Group: 224.1.1.1
    Last reporter: 192.168.1.100
    Up time: 0d 01:30:00

五、组播配置

5.1 启用 IGMP

# 在 VLANIF 上启用 IGMP
interface Vlanif10
 igmp enable
 igmp version 3           # IGMPv3 支持 SSM
 igmp query-interval 125  # 查询间隔

# 静态加入组播组(模拟主机加入)
interface Vlanif10
 igmp static-group 224.1.1.1

5.2 查看组播成员

# 查看 IGMP 组信息
display igmp group
-----------------------------------------------
Vlanif10 (192.168.1.1):
  Group 224.1.1.1
    Uptime: 00:01:30
    Expires: 00:04:10
    Last reporter: 192.168.1.100

六、总结

知识点 核心要点
组播地址 224.0.0.0 - 239.255.255.255(D 类)
组播 MAC 01-00-5E-xx-xx-xx
IGMP 主机和路由器之间的组播组管理
IGMPv2 查询+报告+离开
IGMPv3 支持源过滤(SSM)
查询器 广播域中负责发送查询的路由器

七、思考

  1. 组播和广播有什么本质区别?
  2. 组播 IP 地址 224.0.0.5 和 239.0.0.1 分别属于什么范围?
  3. 组播 MAC 地址的前 24 位是什么?
  4. IGMPv2 和 IGMPv3 的主要区别是什么?
  5. IGMP 查询器的作用是什么?

下篇预告:第145篇《IGMP Snooping——交换机如何感知组播》——讲解交换机如何监听 IGMP 报文,实现组播流量的精准转发。