第146篇:PIM-DM 与 PIM-SM 组播路由协议

关键词

PIM、PIM-DM、PIM-SM、组播路由、RPF、组播分发树、(*,G)、(S,G)


一、为什么需要组播路由协议?

IGMP 解决了主机和路由器之间的组播组管理,但路由器之间如何转发组播流量?这就需要 PIM(Protocol Independent Multicast)

组播源                   组播路由器                   组成员
(S=10.1.1.1)              (R1,R2,R3)                (H1,H2)
    │                         │                        │
    │   PIM 建立分发树        │   IGMP                 │
    │────────────────────────►│───────────────────────►│
    │                         │                        │

PIM 的核心机制:RPF(Reverse Path Forwarding)


二、RPF(逆向路径转发)

2.1 RPF 原理

RPF 是组播转发的核心:路由器收到组播报文时,检查报文源地址——如果报文从源的最优路径到达,转发;否则丢弃

组播源 ──── 路径 A(最优)────► 路由器 R1
            路径 B(非最优)────► 路由器 R1
                  ↑
                 R1:从路径 A 收到 → RPF 检查通过 → 转发
                 R1:从路径 B 收到 → RPF 检查失败 → 丢弃

2.2 RPF 检查

# RPF 检查逻辑:
# 源地址 = 10.1.1.1
# 检查单播路由表到 10.1.1.1 的出接口
# 如果报文从该接口到达 → RPF 通过
# 否则 → RPF 失败

三、PIM-DM(密集模式)

3.1 原理

PIM-DM 假设组成员密集分布,使用推(Push)模式——源发送流量时,全网广播扩散,没有成员的分支再剪枝。

源发送数据
    │
    ▼
R1 向所有 PIM 邻居转发
    │
    ├──► R2 有成员 → 继续转发
    │
    └──► R3 无成员 → 发 Prune 剪枝
                      R1 停止向 R3 转发

3.2 特点

特性 说明
适用场景 组成员密集(如公司内部视频广播)
建树方式 先扩散再剪枝
维护 定期刷新(30s)
扩展性 差(全局扩散)
配置 简单

3.3 配置

# PIM-DM 配置(所有路由器)
multicast routing-enable

interface GigabitEthernet0/0/1
 pim dm                          # 启用 PIM-DM

四、PIM-SM(稀疏模式)

4.1 原理

PIM-SM 假设组成员稀疏分布,使用拉(Pull)模式——组成员通过 RP(汇聚点)加入组播树。

                      RP(汇聚点)
                      │
                Join  │  Join
                 ▲    │    ▲
                 │    │    │
               R1 ───┘─── R2
                │          │
              IGMP       IGMP
              Report     Report
                │          │
               H1         H2
           (加入组)    (加入组)

1. H1 发 IGMP Report → R1 知道了组请求
2. R1 向 RP 发 PIM Join
3. RP 收到 Join → 建立共享树(*,G)
4. 源发送数据到 RP → RP 转发给 R1 → H1

4.2 共享树与源树

树类型 表示 路径 适用
共享树(RPT) (*, G) 所有组都经过 RP 初始阶段
源树(SPT) (S, G) 直接从源到成员 优化路径
共享树 (*, 224.1.1.1):所有数据都走 RP
            RP
           / \
          R1 R2

源树 (10.1.1.1, 224.1.1.1):数据直接从源到成员
          源 ────► R1
          ────► R2

4.3 PIM-SM 配置

# ===== 所有路由器 =====
multicast routing-enable

# ===== 各接口启用 PIM-SM =====
interface GigabitEthernet0/0/1
 pim sm

# ===== RP 配置(方式一:静态)=====
pim
 static-rp 10.254.1.1                    # RP 地址

# 或在 RP 路由器上:
interface LoopBack0
 ip address 10.254.1.1 255.255.255.255
 pim sm

五、PIM-DM vs PIM-SM

对比项 PIM-DM PIM-SM
模型 推(Push) 拉(Pull)
组成员假设 密集 稀疏
建树 扩散+剪枝 通过 RP 加入
RP 需求 不需要 需要 RP
扩展性 差(适合小网络) 好(适合大网络)
配置 简单 较复杂
适用 局域网 广域网

六、总结

知识点 核心要点
PIM 协议无关组播路由协议
RPF 从源最优路径来的才转发
PIM-DM 推模式,先扩散再剪枝
PIM-SM 拉模式,通过 RP 加入
RPT/Source Tree 共享树(*,G) vs 源树(S,G)

七、思考

  1. RPF 检查的原理是什么?为什么组播需要 RPF?
  2. PIM-DM 和 PIM-SM 的核心区别是什么?
  3. PIM-SM 中 RP 的作用是什么?
  4. 共享树 (*, G) 和源树 (S, G) 有什么区别?
  5. 什么场景适合用 PIM-DM?什么场景适合用 PIM-SM?

下篇预告:第147篇《RP(汇集点)的选举与配置》——详解 PIM-SM 中 RP 的选举机制,包括静态 RP、BSR 和 Auto-RP。