组播分发(Multicast Distribution)
组播(Multicast)是一种网络传输方式,它允许数据从一个或多个源发送到多个目标,而不会为每个接收者单独创建数据流,从而提高带宽效率。
组播主要用于视频会议、IPTV、在线直播等应用。
组播分发的关键概念
- 组播地址:使用
224.0.0.0 - 239.255.255.255
之间的 IP 地址。 - 组播树:
- 源树(Source Tree):基于源 IP 构建的分发树,也叫 Shortest Path Tree (SPT),以
(S, G)
表示,S
是源 IP,G
是组播组地址。 - 共享树(Shared Tree):所有流量先送到一个 Rendezvous Point (RP),再从 RP 分发出去,以
(*, G)
方式表示。
- 源树(Source Tree):基于源 IP 构建的分发树,也叫 Shortest Path Tree (SPT),以
- 组播路由协议:
- 互联网协议(IGMP,MLD)用于终端设备加入/退出组播组。
- 组播路由协议(PIM,DVMRP,MOSPF)用于在路由器之间传播组播流量。
PIM(Protocol Independent Multicast)
PIM 是目前主流的组播路由协议,它可以在 任意类型的路由协议(如 OSPF、EIGRP、BGP)上运行,而不会依赖底层的单播路由协议。PIM 有两个主要模式:
-
PIM Dense Mode(PIM-DM,密集模式)
- 适用于高密度组播环境(如局域网)。
- 使用 “泛洪-修剪” 机制,所有路由器初始时都接收流量,不需要的路由器通过
Prune
消息移除流量。 - 不适用于大规模互联网环境。
-
PIM Sparse Mode(PIM-SM,稀疏模式)
- 适用于低密度组播环境(如广域网)。
- 需要 RP(Rendezvous Point,汇聚点) 作为中转节点,组播流量通过 RP 分发。
- 组播接收者发送
Join
消息,明确请求组播流量,避免了泛洪问题。 - 是互联网中最常见的组播模式。
PIM 和 IGMP 的关系
IGMP(Internet Group Management Protocol) 主要用于 主机(终端)与路由器 之间的通信,帮助终端加入或离开组播组。
而 PIM 是路由器之间的组播协议,用于在路由器之间传播组播流量。二者的关系如下:
- IGMP(主机 ↔ 路由器):终端发送 IGMP 报文(如
IGMP Join
),告诉路由器希望接收某个组播流量。 - PIM(路由器 ↔ 路由器):路由器根据 IGMP 信息,通过 PIM 在网络中建立组播路由,并向上游请求组播数据。
常见 IGMP 版本:
- IGMPv1:最早的版本,设备只能加入组播组,不能主动离开,需要等待超时。
- IGMPv2:支持
Leave Group
消息,使终端可以主动退出组播组。 - IGMPv3:支持 源特定组播(SSM),允许接收者指定特定的组播源。
协议 | 作用 | 适用范围 |
---|---|---|
IGMP | 终端设备加入/退出组播组 | 终端 ↔ 路由器 |
PIM | 组播路由分发 | 路由器 ↔ 路由器 |
PIM-DM | 适用于高密度局域网,使用泛洪修剪机制 | LAN |
PIM-SM | 适用于低密度广域网,需要 RP 进行流量管理 | WAN |
在实际应用中,PIM-SM 是最常见的组播协议,结合 IGMPv3 可以实现高效的组播流量管理。
PIM 和 IGMP 的配置
1. 启用组播功能
首先,需要在全局模式下开启 IP 组播路由:
[Huawei] multicast routing-enable
说明:在华为设备上,组播路由功能默认是关闭的,需要手动开启。
2. 配置 PIM(协议无关组播)
2.1. 在接口上启用 PIM-SM(稀疏模式)
进入需要启用 PIM 的接口:
[Huawei] interface GigabitEthernet 0/1
[Huawei-GigabitEthernet0/1] pim sm
[Huawei-GigabitEthernet0/1] quit
说明:
pim sm
:启用 PIM 稀疏模式(Sparse Mode)。- 所有连接组播路由的接口都需要启用 PIM。
3. 配置 RP(Rendezvous Point,汇聚点)
3.1. 手动配置 RP
在 RP 路由器上,指定 RP 的 IP 地址:
[Huawei] pim rp-address 192.168.1.1
在 其他路由器上,手动指定 RP:
[Huawei] pim rp-address 192.168.1.1
3.2. 配置 BSR(Bootstrap Router)
如果希望 动态选举 RP,可以在 BSR 设备上启用:
[Huawei] pim bsr-candidate 192.168.1.1
[Huawei] pim rp-candidate 192.168.1.1
4. 配置 IGMP(终端加入组播组)
4.1. 在终端接口上启用 IGMP
[Huawei] interface GigabitEthernet 0/2
[Huawei-GigabitEthernet0/2] igmp enable
[Huawei-GigabitEthernet0/2] quit
说明:
igmp enable
:启用 IGMP 协议,使接口能够处理组播请求。
4.2. 指定 IGMP 版本
如果需要使用 IGMPv3:
[Huawei] interface GigabitEthernet 0/2
[Huawei-GigabitEthernet0/2] igmp version 3
[Huawei-GigabitEthernet0/2] quit
4.3. 配置组播组成员
如果终端设备不支持 IGMP,可以手动让接口加入一个组播组:
[Huawei] interface GigabitEthernet 0/2
[Huawei-GigabitEthernet0/2] igmp static-group 239.1.1.1
[Huawei-GigabitEthernet0/2] quit
说明:
igmp static-group
:手动加入组播组(通常用于测试)。
5. 验证配置
5.1. 查看 PIM 邻居
[Huawei] display pim neighbor
5.2. 查看组播路由表
[Huawei] display pim routing-table
5.3. 查看 RP 配置
[Huawei] display pim rp-set
5.4. 查看 IGMP 组成员
[Huawei] display igmp group
总结
步骤 | Cisco 命令 | 华为命令 |
---|---|---|
启用组播路由 | ip multicast-routing | multicast routing-enable |
启用 PIM-SM | ip pim sparse-mode | pim sm |
配置 RP | ip pim rp-address 192.168.1.1 | pim rp-address 192.168.1.1 |
配置 BSR(可选) | ip pim bsr-candidate | pim bsr-candidate |
启用 IGMP | ip igmp version 3 | igmp enable 、igmp version 3 |
查看 PIM 邻居 | show ip pim neighbor | display pim neighbor |
查看组播路由 | show ip mroute | display pim routing-table |
查看 IGMP 组 | show ip igmp group | display igmp group |
华为和 Cisco 的配置思路类似,主要区别在于:
- 命令风格不同:Cisco 使用
ip
,而华为直接使用pim
或igmp
相关命令。 - 组播路由默认关闭:华为需要
multicast routing-enable
。 - 组播 RP 选举:华为支持 BSR 自动选举,可以手动配置 RP,也可以动态选举 RP。