十六、IGMP&PIM-SM 组播
- IGMP
- 实验拓扑
- 实验需求及解法
- 1. 配置各设备IP地址
- 2. R1启用组播功能,并在g0/0/0和g0/0/1上开启pim dm
- 3. R1的g0/0/1开启igmp协议
- PIM-SM
- 实验拓扑
- 实验需求及解法
- 1.配置各设备IP地址。
- 2.运行IGP
- 3.R1/2/3/4运行PIM-SM
IGMP
实验拓扑
实验需求及解法
- 本实验模拟不同组成员使用IGMP加入组播组的网络环境。
1. 配置各设备IP地址
R1:
interface GigabitEthernet0/0/0
ip address 192.168.1.254 255.255.255.0
interface GigabitEthernet0/0/1
ip address 192.168.2.254 255.255.255.0
2. R1启用组播功能,并在g0/0/0和g0/0/1上开启pim dm
R1:
multicast routing-enable
pim
interface GigabitEthernet0/0/0
pim dm
interface GigabitEthernet0/0/1
pim dm
3. R1的g0/0/1开启igmp协议
interface GigabitEthernet0/0/1
igmp enable
- 3.1 使用igmp version1,配置PC1,使用igmpv1加入组224.1.1.1
R1:
interface GigabitEthernet0/0/1
igmp version 1
-
3.1.1 R1查看组成员信息:dis igmp group
-
3.1.2 使用MSC播放视频,PC1在组播中启动VLC。
-
3.1.3 PC1上离开组播组,再次观察R1的组成员信息。
-
IGMPv1没有离开组消息,所以加组信息超时之前都会持续转发组播。
-
3.2 使用igmp version2,配置PC2,使用igmpv2加入组224.1.1.1
R1:
interface GigabitEthernet0/0/1
igmp version 2
-
3.2.1 R1查看组成员信息:dis igmp group
-
3.2.2 使用MSC播放视频,PC2在组播中启动VLC。
-
3.2.3 PC2上离开组播组,再次观察R1的组成员信息。
-
IGMPv2有离开组消息,当PC2离开后,R1会立刻发送特定组查询,没有任何PC回复此查
询,则认为该组没有成员,停止转发组播。 -
3.3 使用igmp version3,配置PC3,使用igmpv3加入组224.1.1.1,组播源192.168.1.1
R1:
interface GigabitEthernet0/0/1
igmp version 3
-
3.3.1 R1查看组成员信息:dis igmp group
-
IGMPv3可以指定源地址。
-
3.3.2 使用MSC播放视频,PC3在组播中启动VLC。
-
3.3.3 PC3上离开组播组,再次观察R1的组成员信息。
-
IGMPv3离开特定源和特定组后,也会发送离开消息。
PIM-SM
实验拓扑
实验需求及解法
- 本实验模拟简单组播的网络环境,完成以下需求:
1.配置各设备IP地址。
- 其中R3配置Loopback0:3.3.3.3/32
R1:
interface GigabitEthernet0/0/0
ip address 10.0.1.254 255.255.255.0
#
interface GigabitEthernet0/0/1
ip address 12.1.1.1 255.255.255.0
#
R2:
interface GigabitEthernet0/0/0
ip address 12.1.1.2 255.255.255.0
#
interface GigabitEthernet0/0/1
ip address 23.1.1.2 255.255.255.0
#
interface GigabitEthernet0/0/2
ip address 24.1.1.2 255.255.255.0
#
R3:
interface GigabitEthernet0/0/0
ip address 23.1.1.3 255.255.255.0
#
interface GigabitEthernet0/0/1
ip address 34.1.1.3 255.255.255.0
#
interface LoopBack0
ip address 3.3.3.3 255.255.255.255
#
R4:
interface GigabitEthernet0/0/0
ip address 34.1.1.4 255.255.255.0
#
interface GigabitEthernet0/0/1
ip address 24.1.1.4 255.255.255.0
#
interface GigabitEthernet0/0/2
ip address 20.0.1.254 255.255.255.0
2.运行IGP
- 2.1 R1/2/3/4运行OSPF,进程1。
- 2.2 RID手动设置如下:
- R1:1.1.1.1
- R2:2.2.2.2
- R3:3.3.3.3
- R4:4.4.4.4
- 2.3 使用network命令宣告,通配符0.0.0.0
- 2.4 确认所有设备可以访问3.3.3.3。
R1:
ospf 1 router-id 1.1.1.1
area 0.0.0.0
network 10.0.1.254 0.0.0.0
network 12.1.1.1 0.0.0.0
#
R2:
ospf 1 router-id 2.2.2.2
area 0.0.0.0
network 12.1.1.2 0.0.0.0
network 23.1.1.2 0.0.0.0
network 24.1.1.2 0.0.0.0
#
R3:
ospf 1 router-id 3.3.3.3
area 0.0.0.0
network 3.3.3.3 0.0.0.0
network 23.1.1.3 0.0.0.0
network 34.1.1.3 0.0.0.0
#
R4:
ospf 1 router-id 4.4.4.4
area 0.0.0.0
network 20.0.1.254 0.0.0.0
network 24.1.1.4 0.0.0.0
network 34.1.1.4 0.0.0.0
- 其他设备自行测试。
3.R1/2/3/4运行PIM-SM
- 3.1 开启组播路由功能。
- 3.2 所有接口开启PIM-SM。
- 3.3 静态设置RP为3.3.3.3
R1/2/3/4
multicast routing-enable
pim
static-rp 3.3.3.3
#
R1:
interface GigabitEthernet0/0/0
pim sm
#
interface GigabitEthernet0/0/1
pim sm
#
R2:
interface GigabitEthernet0/0/0
pim sm
#
interface GigabitEthernet0/0/1
pim sm
#
interface GigabitEthernet0/0/2
pim sm
#
R3:
interface GigabitEthernet0/0/0
pim sm
#
interface GigabitEthernet0/0/1
pim sm
#
R4:
interface GigabitEthernet0/0/0
pim sm
#
interface GigabitEthernet0/0/1
pim sm
#
interface GigabitEthernet0/0/2
pim sm
- 3.4 R4上关闭switchover功能。
R4:
pim
spt-switch-threshold infinity
- #关闭自动切换SPT的功能,默认开启。
- 本实验提前关闭该功能主要是为了方便查看各设备组播路由表,研究RPT和SPT建立过程。
- 3.5 PC1加入组播组224.1.1.1,使用IGMPv2。
R4:
interface GigabitEthernet0/0/2
igmp enable
- 查看各路由器的组播路由表。描述RPT建立过程。
[R4]dis igmp group
[R4]dis pim routing-table
- R4上的RP为3.3.3.3,根据单播路由表,找到RPF接口G0/0/0,作为组播流量上游接口。
- 另外,收到IGMP加组消息的接口G0/0/2作为下游接口。即:将来会从G0/0/0接口收到组播,然后从G0/0/2转发出去。这就是(*,G)组播路由表。
[R3]dis pim routing-table
-
R3的G0/0/1接口会收到来自R4的(*,G)Join消息,则把G0/0/1口作为组播流量的下游接口。
-
由于暂时没有组播源,所有没有上游接口。此时从RP到接收者的RPT建立完成。
-
另外,R1和R2此时没有任何组播路由表项,请自行查看。
-
3.6 使用组播源发送组播报文,组地址:224.1.1.1
-
3.7 查看各路由器的组播路由表。描述SPT建立过程。
-
确认组播流量的路径为组播源-R1-R2-R3-R4-PC1。
[R3]dis pim routing-table
- 组播源发送组播流量后,R1会将第一个组播报文封装为注册报文,单播发送给RP,是在RP上出现了(S,G)组播路由表。根据源地址10.1.1.1,找到RPF接口G0/0/0,于是RP将G0/0/0作为组播流量上游接口,而下游接口直接从(*,G)表中学习即可。然后RP会向着组播源10.1.1.1的方向发送(S,G)Join消息。
[R2]dis pim routing-table
- R2从G0/0/1接口收到RP的(S,G)Join消息,于是将G0/0/1作为下游接口。同时,根据源地址10.1.1.1,找到RPF接口G0/0/0,于是将G0/0/0作为组播流量的上游接口。并且,继续向着组播源10.1.1.1的方向发送(S,G)Join消息。
[R1]dis pim routing-table
- R1从G0/0/1接口收到R2的(S,G)Join消息,于是将G0/0/1作为下游接口。同时,R1作为组播源的网关路由器直接收到组播报文,没有上游设备。
- 到此,从RP到组播源的SPT建立完成。
[R4]dis pim routing-table
- 此时组播流量已经转发到R4,所以R4也获得了(S,G)组播路由表。由于R4关闭了switchover功能,所以依旧根据RP地址3.3.3.3,把RPF接口G0/0/0作为上游接口。
- 3.8 R4上恢复默认的switchover功能
R4:
pim
undo spt-switch-threshold
- 再次查看各路由器的组播路由表。
- 确认当前组播流量的路径为组播源-R1-R2-R4-PC1。
[R4]dis pim routing-table
- R4上开启switchover功能后,虽然RP依旧是3.3.3.3,但是会根据组播源10.1.1.1查找RPF接口为G0/0/1,此时会将G0/0/1作为上游接口。首先会向RP发送剪枝消息,让RP停止转发组播报文,另外会向组播源方向发送(S,G)Join消息。
[R3]dis pim routing-table
- 此时R3的下游接口被剪枝,不会再转发组播报文。
[R2]dis pim routing-table
- 由于收到R4的(S,G)Join消息,所以R2的下游接口变为了G0/0/2。
- 至此,组播流量切换至最佳路径。
本篇实验拓扑及配置步骤参考资料来自思博教育