开源路由器Vyos配置组播-PIM
前言
VyOS 系统支持 PIM-SM (协议无关组播-稀疏模式) 以及 IGMP v2 和 v3,使用FRR实现大部分功能。
安装和基本使用:https://songxwn.com/Vyos/?highlight=vyos
参考文档:https://docs.vyos.io/en/1.4/configuration/protocols/pim.html
PIM-SM应用
在下图所示的大型网络中部署组播业务。该网络中已经部署了完备的IGP,且任意网段路由可达。网络中的组成员分布相对比较稀疏,要求网络中的用户主机能够按需接收视频点播信息,并在一定程度上节约网络的带宽。

HostA、HostB和HostC为网络中的信息接收者,通过组播方式接收视频点播信息,整个PIM域采用PIM-SM方式。RouterA与组播源S1相连,RouterC与组播源S2相连;RouterB连接HostA,RouterE和RouterG连接HostB和HostC。
网络部署如下:
在所有路由器接口上启用PIM-SM协议。
网络中的组播源分布比较密集,则可以选择与组播源比较近的核心设备作为C-RP。将RouterC和RouterD的接口配置为C-BSR和C-RP,动态竞选出为PIM-SM网络服务的BSR和RP。
RP部署方式的选择:
中小型网络:建议选择静态RP方式,对设备要求低,也比较稳定。
如果网络中只有一个组播源,建议选择直连组播源的设备作为静态RP,这样可以省略源端DR向RP注册的过程。
采用静态RP方式要确保域内所有路由器(包括RP本身)的RP信息以及服务的组播组范围全网一致。
大型网络:可以采用动态RP方式,可靠性高,可维护性强。
如果网络中存在多个组播源,且分布密集,建议选择与组播源比较近的核心设备作为C-RP;如果网络中存在多个用户,且分布密集,建议选择与用户比较近的核心设备作为C-RP。
RouterB与HostA之间,RouterE、RouterG与HostB、HostC之间均运行IGMP协议。
为路由器接口配置IGMP协议时,请确保接口参数配置的一致性,即遵循如下原则:连接在同一网段的所有路由器必须运行相同的IGMP版本(推荐使用IGMPv2),且各接口参数(如查询定时器、组成员关系保持时间等)必须相同。如果IGMP版本或各参数不相同,会导致不同路由器上IGMP组成员关系不一致。
部署完上述网络后,HostA、HostB和HostC根据需要向RP发送Join消息,组播源的信息能够到达接收者。
Vyos 静态RP配置示例

Router1 - 接收
1 | set interfaces ethernet eth2 address '172.16.0.2/24' |
Router3 - 中转
1 | set interfaces dummy dum0 address '172.16.255.1/24' |
Router2 - 发送
1 | set interfaces ethernet eth1 address '10.0.0.1/24' |
配置说明
🧩 第一步:接口地址配置
1 | set interfaces ethernet eth2 address '172.16.0.2/24' |
- eth2 接口配置为 172.16.0.2/24:这是你的内部网络或与其他路由器连接的接口。
- eth1 接口配置为 100.64.0.1/24:可能是连接到组播源或接收者的网络。
🧭 第二步:OSPF 路由协议配置
1 | set protocols ospf area 0 network '172.16.0.0/24' |
- 启用 OSPF 区域 0,并将两个网段加入 OSPF。
- 这样做的目的是让路由器之间可以自动学习彼此的路由信息,确保组播路径可达。
📡 第三步:IGMP 配置
1 | set protocols igmp interface eth1 |
- 在 eth1 接口启用 IGMP(Internet Group Management Protocol)。
- IGMP 用于主机向路由器报告自己想接收哪些组播流。
- 如果 eth1 接的是组播接收者(比如 PC 或服务器),这是必须的。
📦 第四步:PIM 配置(协议无关组播)
1 | set protocols pim interface eth1 |
- 在 eth1 和 eth2 接口启用 PIM(Protocol Independent Multicast)。
- PIM 是组播路由协议,用于在路由器之间建立组播转发路径。
- 默认使用 PIM-SM(Sparse Mode),适合大多数场景。
🎯 第五步:配置 RP(Rendezvous Point)
1 | set protocols pim rp address 172.16.255.1 group '224.0.0.0/4' |
- 设置组播的 RP 地址为
172.16.255.1,适用于所有 IPv4 组播地址段。 - 所有组播源会先向 RP 注册,接收者也会通过 RP 获取组播流。
- RP 可以是网络中的某个稳定路由器。
用 show pim neighbors 或 show igmp groups 来查看组播状态