【IP 组播】PIM-SM

目录

原理概述

实验目的

实验内容

实验拓扑

1.基本配置

2.配置IGP

3.配置PIM-SM

4.用户端DR与组播源端DR

5.从RPT切换到SPT

6.配置PIM-Silent接口


原理概述

PIM-SM 是一种基于Group-Shared Tree 的组播路由协议,与 PIM-DM 不同,它适合于组播组成员分布广泛而稀疏的大型网络。 Group-Shared Tree 分为两种:一种被称为Steiner Tree ,另一种被称为 Rendezvous Point Tree (简称 RPT ), PIM-SM 采用的组播树是 RPT。

RPT 是一棵以汇聚点 RP ( Rendezvous Point )路由器为根,以直连有组成员的路由器为叶子的组播树。 RP 是一个组播供求信息的汇聚中心,它需要处理组播源端 DR ( Designated Router )发送的组播注册消息及用户端 DR 发送的组播加入消息。

RP 是 PIM-SM 网络中的一台至关重要的路由器,网络中的所有 PIM 路由器都必须知道谁是 RP 。当网络中出现活跃的组播源(组播源向某组播组发送第一个组播数据)时,组播源端 DR 会将此组播数据封装在注册消息中并以单播形式发往 RP , RP 收到此消息后会立即创建相应的( S , G )组播路由表项。当网络中出现活跃的组播用户(用户主机通过 IGMP 加入某组播组 G )时,用户端 DR 会向 RP 发送加入组播组 G 的消息,在该消息去往 RP 的路径上的每台路由器都创建(*, G )表项,由此便生成了一棵以 RP 为根的 RPT 。当网络中有活跃的组播用户时,组播报文先被封装在单播报文中从组播源发往 RP ,然后 RP 再将组播报文沿 RPT 转发给组播用户。若网络中没有活跃的组播用户时,组播数据到达 RP 后就停止了,不会再向下转发。

显然, RPT 并非是一棵 SPT ( Shortest Path Tree ),经由 RP 的转发路径可能不是从组播源到组播用户之间的最短路径。为了提高组播转发效率, PIM-SM 在实际部署时,通常都会允许从 RPT 切换到 SPT 。

PIM 路由器会通过 PIM-Hello 消息来发现 PIM 邻居、协调各项协议参数、维护邻居关系。 PIM-Hello 消息的目的 IP 地址是组播地址:224.0.0.13(表示同一网段中的所有 PIM 路由器),源地址为发送接口的 IP 地址, TTL 值为1。另外, PIM-Hello 的一个重要作用就是用来选举 DR 。在 PIM-SM 中, DR 分为两种:组播源网段中的 DR 称为组播源端 DR ,它负责向 RP 发送组播注册消息;组成员网段中的 DR 称为用户端 DR ,它负责向 RP 发送组播加入消息。

实验目的

理解PIM-SM的应用场景

掌握PIM-SM的基本配置

理解PIM-SM中RPT到SPT的切换

理解组播源端DR和用户端DR的作用

实验内容

实验拓扑如下图所示。本实验模拟了一个公司网络场景,包含了6台路由器,3台交换机、一台组播服务器Source-1和两台终端电脑。所有路由器都运行OSPF,并且都位于区域0。管理员需要在网络中部署PIM-SM,从而实现以组播的方式向员工播放培训视频。

实验拓扑

1.基本配置

根据拓扑图进行相应的基本配置,并使用ping命令检测R1与R2之间的连通性。

其余直连网段的连通性测试过程在此省略。

配置组播服务器Source-1的组播IP地址为224.1.1.1,组播MAC地址为01-00-5E-01-01-01,如图所示

配置Source-1

2.配置IGP

在每台路由器上配置OSPF协议。

r1ospf 1
r1-ospf-1area 0
r1-ospf-1-area-0.0.0.0network 10.0.1.0 0.0.0.255
r1-ospf-1-area-0.0.0.0network 50.0.14.0 0.0.0.255
r1-ospf-1-area-0.0.0.0network 172.16.1.0 0.0.0.255

r2ospf 1
r2-ospf-1area 0
r2-ospf-1-area-0.0.0.0network 10.0.1.0 0.0.0.255
r2-ospf-1-area-0.0.0.0network 172.16.1.0 0.0.0.255

r3ospf 1
r3-ospf-1area 0
r3-ospf-1-area-0.0.0.0network 10.0.3.3 0.0.0.0
r3-ospf-1-area-0.0.0.0network 10.0.1.0 0.0.0.255
r3-ospf-1-area-0.0.0.0network 20.0.35.0 0.0.0.255
r3-ospf-1-area-0.0.0.0network 30.0.36.0 0.0.0.255
r3-ospf-1-area-0.0.0.0network 40.0.34.0 0.0.0.255

r4ospf 1
r4-ospf-1area 0
r4-ospf-1-area-0.0.0.0network 40.0.34.0 0.0.0.255
r4-ospf-1-area-0.0.0.0network 40.0.2.0 0.0.0.255
r4-ospf-1-area-0.0.0.0network 50.0.14.0 0.0.0.255

r5ospf 1
r5-ospf-1area 0
r5-ospf-1-area-0.0.0.0network 20.0.35.0 0.0.0.255
r5-ospf-1-area-0.0.0.0network 30.0.2.0 0.0.0.255

R6ospf 1
R6-ospf-1area 0
R6-ospf-1-area-0.0.0.0network 30.0.2.0 0.0.0.255
R6-ospf-1-area-0.0.0.0network 30.0.36.0 0.0.0.255

配置完成后,查看R1的路由表。

可以看到,R1已经获得了所有网段的路由信息。至此,网络已经通过了OSPF实现了互通。

3.配置PIM-SM

在所有路由器上开启组播功能,并在每台路由器的每个接口下配置命令pim sm,除此之外,还需要在R5和R6的G0/0/0接口以及R4的G0/0/1接口下使能IGMP。

r1multicast routing-enable
r1int g0/0/0
r1-GigabitEthernet0/0/0pim sm
r1-GigabitEthernet0/0/0int g0/0/1
r1-GigabitEthernet0/0/1pim sm
r1-GigabitEthernet0/0/1int g0/0/2
r1-GigabitEthernet0/0/2pim sm

r2multicast routing-enable
r2int g0/0/0
r2-GigabitEthernet0/0/0pim sm
r2-GigabitEthernet0/0/0int g0/0/1
r2-GigabitEthernet0/0/1pim sm

r3multicast routing-enable
r3int g0/0/0
r3-GigabitEthernet0/0/0pim sm
r3-GigabitEthernet0/0/0int g0/0/1
r3-GigabitEthernet0/0/1pim sm
r3-GigabitEthernet0/0/1int g0/0/2
r3-GigabitEthernet0/0/2pim sm
r3-GigabitEthernet0/0/2int g4/0/0
r3-GigabitEthernet4/0/0pim sm

r4multicast routing-enable
r4int g0/0/0
r4-GigabitEthernet0/0/0pim sm
r4-GigabitEthernet0/0/0int g0/0/1
r4-GigabitEthernet0/0/1pim sm
r4-GigabitEthernet0/0/1igmp enable
r4-GigabitEthernet0/0/1int g0/0/2
r4-GigabitEthernet0/0/2pim sm

r5multicast routing-enable
r5int g0/0/0
r5-GigabitEthernet0/0/0pim sm
r5-GigabitEthernet0/0/0igmp enable
r5-GigabitEthernet0/0/0int g0/0/1
r5-GigabitEthernet0/0/1pim sm

R6multicast routing-enable
R6int g0/0/0
R6-GigabitEthernet0/0/0pim sm
R6-GigabitEthernet0/0/0igmp enable
R6-GigabitEthernet0/0/0int g0/0/2
R6-GigabitEthernet0/0/2pim sm

选择R3为RP节点,并在每台路由器上手工配置R3为静态RP。

r1pim
r1-pimstatic-rp 10.0.3.3

r2pim
r2-pimstatic-rp 10.0.3.3

r3pim
r3-pimstatic-rp 10.0.3.3

r4pim
r4-pimstatic-rp 10.0.3.3

r5pim
r5-pimstatic-rp 10.0.3.3

R6pim
R6-pimstatic-rp 10.0.3.3

配置完成后,查看R3的PIM邻居信息。

可以看到,R3与所有相邻的路由器都已成功建立了PIM邻居关系。

4.用户端DR与组播源端DR

本网络中,PC-2,R5、R6处于同一网段。如果PC-2希望加入组播组,则PIM-SM需要在R5和R6之间选举出一台用户端DR来发送组播加入消息,从而避免RP接收到重复的加入消息。选举DR时,首先比较DR优先级(缺省情况下优先级的值为1),若优先级一样则比较接口IP地址的大小,IP地址较大者将成为DR。

在R5、R6上查看DR信息。

可以看到,R6(30.0.2.254)现在是PC-2所在网段的DR。在PC-2上使用IGMP加入组播组224.1.1.1,在R3的G0/0/1和G0/0/2接口查看报文情况。如下图所示,可以看到,R3仅仅从G0/0/2接口收到了来自DR路由器R6的组播加入消息,而G0/0/1接口没有收到任何组播加入消息。

R3的G0/0/2接口报文情况

在R3上查看PIM路由表

可以看到,R3在收到加入消息后,其组播路由表中生成了(*,G)的组播路由条目,下游接口为G0/0/2,形成了从RP(R3)到R6的一棵RPT。

另一方面,组播源Source-1,R1,R2处于同一网段,PIM-SM需要在R1和R2之间选举出组播源端DR来向RP发送注册消息。在R1,R2上查看DR信息。

可以看到,IP地址较大的R2(172.16.1.20)目前是组播源端DR。接下来,我们可以通过修改优先级的方法来强制让R1成为组播源端DR。

r1int g0/0/0
r1-GigabitEthernet0/0/0pim hello-option dr-priority 2

配置完成后,在R1上查看DR信息。

可以看到,R1现在已经成为了组播源端DR。在Source-1上使用组播地址224.1.1.1发送组播报文,在RP路由器R3的G4/0/0接口查看接收到的注册消息,如下图所示。

蓝色的报文是Source-1发送的组播报文

DR路由器R1向RP路由器R3发送的组播注册消息

5.从RPT切换到SPT

对本网络而言,从RPT到SPT的切换过程可简单示意如下:最后一跳组播路由器R4收到来自上游路由器R3转发的组播数据包后,会查看自己的单播路由表,发现去往组播源172.16.1.1的最短路径的下一跳不是上游路由器R3,而是路由器R1,因此,R4会发起由RPT到SPT的切换。

在PC-1上使用IGMP加入组播组224.1.1.1,在R4上查看组播路由表。

可以看到,R4上生成了(*,224.1.1.1)的组播路由,上游接口是连接到RP路由器的G0/0/0接口。

在组播源发送组播地址为224.1.1.1的组播报文,当PC-1接收到组播报文后,在R4上查看组播路由表。

可以看到,R4在接收到组播数据后生成了(172.16.1.1,224.1.1.1)的组播路由,且上游接口切换到了 GE 0/0/2。切换过程中,R4会向R1发送组播加入消息,要求从R1接收组播数据,同时R4也会向R3发送剪枝消息,使R3停止向自己转发组播数据。

缺省情况下, PIM-SM 路由器会在收到第一个组播数据包后立即进行从 RPT 到 SPT 的切换。如果不希望发生切换,则可使用配置命令来禁止切换。另外,也可以设定切换阈值,实现有条件的切换。在用户端 DR 上配置了切换阈值后,只有当组播报文的速率超过阈值时,用户端 DR 才会发起切换。下面给出禁止切换的示例。

r4pim
r4-pimspt-switch-threshold infinity
<r4>display pim routing-table

VPN-Instance: public net

Total 1 (*, G) entry; 1 (S, G) entry

(*, 224.1.1.1)

RP: 10.0.3.3

Protocol: pim-sm, Flag: WC

UpTime: 00:10:43

Upstream interface: GigabitEthernet0/0/0

Upstream neighbor: 40.0.34.3

RPF prime neighbor: 40.0.34.3

Downstream interface(s) information:

Total number of downstreams: 1

1: GigabitEthernet0/0/1

Protocol: igmp, UpTime: 00:10:43, Expires: -

(172.16.1.1, 224.1.1.1)

RP: 10.0.3.3

Protocol: pim-sm, Flag: ACT

UpTime: 00:05:35

Upstream interface: GigabitEthernet0/0/0
Upstream neighbor: 40.0.34.3
RPF prime neighbor: 40.0.34.3

Downstream interface(s) information:

Total number of downstreams: 1

1: GigabitEthernet0/0/1

Protocol: pim-sm, UpTime: 00:05:35, Expires: -

可以看到,当配置禁止切换后,R4生成的(172.16.1.1,224.1.1.1)的组播路由的上游接口没有发生切换。

6.配置PIM-Silent接口

通常情况下,路由器直连用户主机的接口上是需要配置PIM的,但是这样的配置同时也存在着安全隐患:当恶意主机发送大量PIM-Hello报文时,有可能导致路由器瘫痪。为了避免上述情况的发生,可以在路由器直连用户主机的接口上配置PIM Slient,禁止该接口和转发任何PIM协议报文,同时,此接口上的组播转发功能及IGMP功能都不受影响。

配置R4的G0/0/1接口为PIM-Slient接口。

r4int g0/0/1
r4-GigabitEthernet0/0/1pim silent

配置完成后,查看R4的PIM接口详细信息,并在R4的G0/0/1接口查看数据包的发送

R4的G0/0/1接口的报文情况

可以看到,R4的G0/0/1接口的Slient功能已经使能,此接口不再发送PIM-Hello报文。

相关推荐
思茂信息7 分钟前
CST 辐射边界反射过高优化方法
网络·emc·emi·cst·仿真软件·电磁仿真
奥莱维22 分钟前
经济型酒店智能客控轻量化方案
大数据·网络·人工智能
电商API_180079052471 小时前
导购比价小程序场景|京东联盟商品详情对接方案|多规格图文拉取技术实操
网络·小程序·网络爬虫
拾光Ծ1 小时前
【Linux网络】网络通信实战:UDP & TCP Socket编程实现Echo Server
linux·网络·网络协议·tcp/ip·udp·线程池
派葛穆1 小时前
s7-200smart-tcp/ip通讯
网络协议·tcp/ip
灯澜忆梦3 小时前
GO_网络编程---网络协议
网络·网络协议·golang
EasyGBS4 小时前
政务视频资源汇聚:国标GB28181视频平台EasyGBS在“一网统管”中的定位和落地路径
网络·音视频·政务
星恒讯工业路由器14 小时前
5G FWA技术演进与趋势
网络·5g·信息与通信·4g·5g fwa·3gpp规范·fwa趋势
星夜夏空9917 小时前
网络编程(1)
服务器·网络
上海云盾-小余17 小时前
中小站点防护避坑:低价高防服务存在的各类安全短板剖析
网络·爬虫·安全·ddos