第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) |
| 查询器 | 广播域中负责发送查询的路由器 |
七、思考
- 组播和广播有什么本质区别?
- 组播 IP 地址 224.0.0.5 和 239.0.0.1 分别属于什么范围?
- 组播 MAC 地址的前 24 位是什么?
- IGMPv2 和 IGMPv3 的主要区别是什么?
- IGMP 查询器的作用是什么?
下篇预告:第145篇《IGMP Snooping——交换机如何感知组播》——讲解交换机如何监听 IGMP 报文,实现组播流量的精准转发。