组播实验-IGMP、IGMP Snooping及PIM-DM协议

设备连接方式如图所示,4台路由器运行OSPF,均创建Loopback0,IP地址为10.0.x.x/32,x为设备编号。

4台路由器构成一个组播网络,R1作为第一跳路由器连接组播源239.0.0.12,R4作为最后一跳路由器连接组播组239.0.0.12的接收者,为了能够让组播源的流量顺利被R4上的组播组成员接收,在每台路由器上均部署PIM-DM,并在R4的GE0/0/1接口上激活IGMPv2。

同时为了优化交换机S2上的组播流量转发行为,在S2上部署IGMP Snooping并手动指定其路由器接口、成员接口。

参考链接:http://e.huawei.com

实验任务:

①设备基础IP地址配置。

②配置R1、R2、R3、R4之间的OSPF,在互联接口、LoopbackO接口上激活OSPF。开启路由器的组播路由功能,部署PIM-DM,在相应接口上开启PIM-DM

③在R1上模拟组播源发送组播数据,观察各个路由器的PIM路由表。

④修改R3的GE0/0/1接口OSPF Cost值,影响断言机制选举结果,之后再次查看R2、R3的PIM路由表。

⑤在S2上配置IGMP Snooping,手动配置路由器端口、成员端口。

任务步骤:

①互联接口、环回口IP地址配置

设备命名

AR1:

<Huawei>system-view

Huaweisysname AR1

R2、R3相同操作,不再重复。

配置R1 GE0/0/0接口、GE0/0/1接口、LoopBack0接口IP地址

AR1interface GigabitEthernet 0/0/0

AR1-GigabitEthernet0/0/0ip address 10.0.12.1 24

AR1-GigabitEthernet0/0/0interface GigabitEthernet 0/0/1

AR1-GigabitEthernet0/0/1ip address 10.0.13.1 24

AR1-GigabitEthernet0/0/1interface LoopBack 0

AR1-LoopBack0ip ad 10.0.1.1 32

配置R2 GE0/0/0接口、GE0/0/1接口、LoopBack0接口IP地址

AR2interface GigabitEthernet 0/0/0

AR2-GigabitEthernet0/0/0ip address 10.0.12.2 24

AR2-GigabitEthernet0/0/0interface GigabitEthernet 0/0/1

AR2-GigabitEthernet0/0/1ip address 10.0.234.2 24

AR2-GigabitEthernet0/0/1interface LoopBack 0

AR2-LoopBack0ip address 10.0.2.2 32

配置R3 GE0/0/1接口、GE0/0/2接口、LoopBack0接口IP地址

AR3interface GigabitEthernet 0/0/1

AR3-GigabitEthernet0/0/1ip address 10.0.13.3 24

AR3-GigabitEthernet0/0/1interface GigabitEthernet 0/0/2

AR3-GigabitEthernet0/0/2ip address 10.0.234.3 24

AR3-GigabitEthernet0/0/2interface LoopBack 0

AR3-LoopBack0ip address 10.0.3.3 32

配置R4 GE0/0/0接口、GE0/0/1接口、LoopBack0接口IP地址

AR4interface GigabitEthernet 0/0/0

AR4-GigabitEthernet0/0/0ip address 10.0.234.4 24

AR4-GigabitEthernet0/0/0interface GigabitEthernet 0/0/1

AR4-GigabitEthernet0/0/1ip address 192.168.1.1 24

AR4-GigabitEthernet0/0/1interface LoopBack 0

AR4-LoopBack0ip address 10.0.4.4 32

在R1、R4上检查IP地址连通性

②配置OSPF

使用Loopback0接口地址作为Router lD,在互联接口、Loopback0接口上激活OSPF。

配置R1

AR1ospf router-id 10.0.1.1

AR1-ospf-1area 0

AR1-ospf-1-area-0.0.0.0network 10.0.1.1 0.0.0.0

AR1-ospf-1-area-0.0.0.0network 10.0.12.1 0.0.0.0

AR1-ospf-1-area-0.0.0.0network 10.0.13.1 0.0.0.0

配置R2

AR2ospf router-id 10.0.2.2

AR2-ospf-1area 0

AR2-ospf-1-area-0.0.0.0network 10.0.2.2 0.0.0.0

AR2-ospf-1-area-0.0.0.0network 10.0.12.2 0.0.0.0

AR2-ospf-1-area-0.0.0.0network 10.0.234.2 0.0.0.0

配置R3

AR3ospf router-id 10.0.3.3

AR3-ospf-1area 0

AR3-ospf-1-area-0.0.0.0network 10.0.3.3 0.0.0.0

AR3-ospf-1-area-0.0.0.0network 10.0.13.3 0.0.0.0

AR3-ospf-1-area-0.0.0.0network 10.0.234.3 0.0.0.0

配置R4

AR4ospf router-id 10.0.4.4

AR4-ospf-1area 0

AR4-ospf-1-area-0.0.0.0network 10.0.4.4 0.0.0.0

AR4-ospf-1-area-0.0.0.0network 10.0.234.4 0.0.0.0

AR4-ospf-1-area-0.0.0.0network 192.168.1.1 0.0.0.0

在R1、R4上检查OSPF邻居状态

路由器之间的OSPF邻居已经全部正常建立。

在R4上查看OSPF路由表

R4上已经学习到全网的OSPF路由。

③部署PIM-DM

在所有路由器上开启组播路由功能,在需要运行PIM-DM的接口下开启组播路由协议。

开启组播路由功能

AR1multicast routing-enable

AR2multicast routing-enable

AR3multicast routing-enable

AR4multicast routing-enable

在R1相应接口上开启PIM-DM

AR1interface GigabitEthernet 0/0/0

AR1-GigabitEthernet0/0/0pim dm

AR1-GigabitEthernet0/0/0interface GigabitEthernet 0/0/1

AR1-GigabitEthernet0/0/1pim dm

在R2相应接口上开启PIM-DM

AR2interface GigabitEthernet 0/0/0

AR2-GigabitEthernet0/0/0pim dm

AR2-GigabitEthernet0/0/0interface GigabitEthernet 0/0/1

AR2-GigabitEthernet0/0/1pim dm

在R3相应接口上开启PIM-DM

AR3interface GigabitEthernet 0/0/1

AR3-GigabitEthernet0/0/1pim dm

AR3-GigabitEthernet0/0/1interface GigabitEthernet 0/0/2

AR3-GigabitEthernet0/0/2pim dm

在R4相应接口上开启PIM-DM

AR4interface GigabitEthernet 0/0/0

AR4-GigabitEthernet0/0/0pim dm

AR4-GigabitEthernet0/0/0interface GigabitEthernet 0/0/1

AR4-GigabitEthernet0/0/1pim dm

在R1、R4上检查PIM邻居关系

R1与R2、R1R3、R4与R2及R3之间已经成功形成PIM邻居关系。

在R4的GE0/0/1接口上开启IGMP,并配置静态组播组模拟组播接收者

AR4interface GigabitEthernet 0/0/1

AR4-GigabitEthernet0/0/1igmp enable

AR4-GigabitEthernet0/0/1igmp static-group 239.0.0.12

在R4上查看IGMP接口信息

默认IGMP版本为V2,R4为IGMP查询者。

④观察PIM路由表

在R1上以Loopback0接口为源地址,向239.0.0.12发送ICMP数据包,模拟组播源,之后在4台路由器上查看PIM路由表。

R1上模拟组播源,发送组播流量

AR1ping -a 10.0.1.1 -c 10 239.0.0.12

使用该命令实际上设备并不会对外发送组播流量,而是会触发PIM-DM的State-Refresh报文。

PIM-DM State-Refresh报文内容

State-Refresh 报文中会携带组播源地址(10.0.1.1),组播组地址(239.0.0.12),下游设备收到后会创建(S,G)表项,并继续向下游发送State-Refresh报文。

在设备上查看State-Refresh报文发送情况

当已发送(sent)个数不为0时,再去查看下游的(S,G)表项,否则将无法看到内容。PIM-SM并无State-Refresh报文,因此无法使用该方式触发生成组播路由表。

之后查看4台路由器的PIM路由表

R1上(S,G)表项的入接口为Loopback0,因为组播源为设备直连,所以PRF邻居为NULL。下游接口为GE0/0/1,R1将组播流量转发给R3。

R2上并无下游接口。

R3的下游接口为GE0/0/2。

R2、R3的下游接口与R4的上游接口在同一个网段,此时触发断言机制,R2、R3通过各自的GE0/0/1接口和GE0/0/2接口发送断言报文进行选举,R2、R3到达组播源的单播路由拥有相同的路由优先级、单播路由开销值,但是R3的GE0/0/2接口拥有更大的IP地址(10.0.234.3,大于10.0.234.2),因此R3在断言选举中胜出,继续向R4转发组播流量,而R2不再从自己的GE0/0/1接口转发组播流量,这是R2的PIM路由表中没有下游接口的原因。

R4的上游邻居为R3,自身为最后一跳路由器。

⑤修改IGP cost值,影响断言选举结果

在R3上修改GE0/0/1接口的OSPF cost值,使得R3到达组播源地址的单播路由拥有更大的开销值,从而在断言选举中失败,让R2变为断言选举胜出者。

在R2、R3上查看前往组播源地址10.0.1.1的路由开销值

R2、R3前往10.0.1.1的路由开销值都为1。

修改R3上 GE0/0/1接口的OSPF cost

AR3interface GigabitEthernet 0/0/1

AR3-GigabitEthernet0/0/1ospf cost 2

此时R3前往10.0.1.1的路由开销值为2。

为了更好地观察现象,修改R2、R3的GE0/0/1接口和GE0/0/2接口Assert状态的超时时间为10s

AR2interface GigabitEthernet 0/0/1

AR2-GigabitEthernet0/0/1pim holdtime assert 10

AR3interface GigabitEthernet 0/0/2

AR3-GigabitEthernet0/0/2pim holdtime assert 10

在R1上开启debugging pim join-prune receive,观察剪枝过程

<AR1>terminal debugging

<AR1>terminal monitor

<AR1>debugging pim join-prune receive

在R1上重新触发组播流量

AR1ping -a 10.0.1.1 -c 10 239.0.0.12

重新查看R2、R3的PIM路由表

此时R3上没有下游接口,R2为断言选举胜出者。

观察R1上的debug输出

Oct 7 2025 11:54:01.389.1-08:00 AR1 PIM/7/JP:(public net): PIM ver 2 JP receiving 10.0.13.3 -> 224.0.0.13 on GigabitEthernet0/0/1 (P013156)

Oct 7 2025 11:54:01.389.2-08:00 AR1 PIM/7/JP:(public net): Upstream 10.0.13.1, Groups 1, Holdtime 180 (P013160)

Oct 7 2025 11:54:01.389.3-08:00 AR1 PIM/7/JP:(public net): Group: 239.0.0.12/32 --- 0 join 1 prune (P013169)

Oct 7 2025 11:54:01.389.4-08:00 AR1 PIM/7/JP:(public net): Prune: 10.0.1.1/32 (P013179)

Oct 7 2025 11:54:02.739.1-08:00 AR1 PIM/7/JP:(public net): PIM ver 2 JP receiving 10.0.12.2 -> 224.0.0.13 on GigabitEthernet0/0/0 (P013091)

Oct 7 2025 11:54:02.739.2-08:00 AR1 PIM/7/JP:(public net): Upstream 10.0.12.1, Groups 1, Holdtime 0 (P013097)

Oct 7 2025 11:54:02.739.3-08:00 AR1 PIM/7/JP:(public net): Group: 239.0.0.12/32 --- 1 join 0 prune (P013107)

Oct 7 2025 11:54:02.739.4-08:00 AR1 PIM/7/JP:(public net): Join: 10.0.1.1/32 (P013117)

在debug 中可以看到来自R3的prune报文,group为239.0.0.12,组播源为10.0.1.1。

⑥配置ooIGMP Snping

为了优化交换机S2对组播流量的转发行为,在S2上开启IGMP Snooping,并手动配置路由器端口、成员端口。

在全局、VLAN1中开启IGMP Snooping

SW2igmp-snooping enable

SW2vlan 1

SW2-vlan1igmp-snooping enable

SW2-vlan1quit

手动配置GE0/0/1为路由器端口

SW2interface GigabitEthernet 0/0/1

SW2-GigabitEthernet0/0/1igmp-snooping static-router-port vlan 1

手动配置GE0/0/10为组播组239.0.0.12的成员端口

SW2interface GigabitEthernet 0/0/10

SW2-GigabitEthernet0/0/10l2-multicast static-group group-address 239.0.0.12 vlan 1

SW2-GigabitEthernet0/0/10quit

查看S2的二层组播转发表

GE0/0/1为路由器端口,GE0/0/10为成员端口,注意该命令查看的结果需要存在Up状态的成员接口,需要在GE0/0/10上连接设备,使接口为Up状态。

思考:

PIM的DM模式应用在大规模网络上,有哪些劣势?

PIM-DM只适用于组播接受者较为密集的小型网络中,它采用粗犷的方式将组播流量先扩散到全网,不需要组播流量的分支通过协议报文将自己从SPT上剪除,这在接收者较为分散的大型网络中会导致大量的不必要组播流量、频繁地组播协议报文的交互,对链路带宽、设备资源造成不必要的浪费。

配置参考:

AR1

sysname AR1

interface GigabitEthernet0/0/0

ip address 10.0.12.1 255.255.255.0

pim dm

interface GigabitEthernet0/0/1

ip address 10.0.13.1 255.255.255.0

pim dm

interface LoopBack0

ip address 10.0.1.1 255.255.255.255

ospf 1 router-id 10.0.1.1

area 0.0.0.0

network 10.0.1.1 0.0.0.0

network 10.0.12.1 0.0.0.0

network 10.0.13.1 0.0.0.0

AR2

sysname AR2

interface GigabitEthernet0/0/0

ip address 10.0.12.2 255.255.255.0

pim dm

interface GigabitEthernet0/0/1

ip address 10.0.234.2 255.255.255.0

pim holdtime assert 10

pim dm

interface LoopBack0

ip address 10.0.2.2 255.255.255.255

ospf 1 router-id 10.0.2.2

area 0.0.0.0

network 10.0.2.2 0.0.0.0

network 10.0.12.2 0.0.0.0

network 10.0.234.2 0.0.0.0

AR3

sysname AR3

interface GigabitEthernet0/0/1

ip address 10.0.13.3 255.255.255.0

pim dm

ospf cost 2

interface GigabitEthernet0/0/2

ip address 10.0.234.3 255.255.255.0

pim holdtime assert 10

pim dm

interface LoopBack0

ip address 10.0.3.3 255.255.255.255

ospf 1 router-id 10.0.3.3

area 0.0.0.0

network 10.0.3.3 0.0.0.0

network 10.0.13.3 0.0.0.0

network 10.0.234.3 0.0.0.0

AR4

sysname AR4

interface GigabitEthernet0/0/0

ip address 10.0.234.4 255.255.255.0

pim dm

interface GigabitEthernet0/0/1

ip address 192.168.1.1 255.255.255.0

pim dm

igmp enable

igmp static-group 239.0.0.12

interface LoopBack0

ip address 10.0.4.4 255.255.255.255

ospf 1 router-id 10.0.4.4

area 0.0.0.0

network 10.0.4.4 0.0.0.0

network 10.0.234.4 0.0.0.0

network 192.168.1.1 0.0.0.0

SW2

sysname SW2

igmp-snooping enable

vlan 1

igmp-snooping enable

interface GigabitEthernet0/0/1

igmp-snooping static-router-port vlan 1

interface GigabitEthernet0/0/10

l2-multicast static-group group-address 239.0.0.12 vlan 1

相关推荐
用户25301719962727 分钟前
第6篇:从技术到产品 — Ghost Proxifier 的设计哲学
网络协议
用户2530171996271 小时前
第3篇:注入的艺术 — Ghost Proxifier 核心架构拆解
网络协议
SelectDB1 天前
Litefuse 开源并推出单进程轻量模式,25 秒就能跑起来的 Agent 可观测与评估平台
运维·后端·自动化运维
王二端茶倒水1 天前
商业 WiFi 不是免费上网,而是门店数字化的入口
网络协议
XIAOHEZIcode2 天前
Linux系统鼠标偏移常见原因以及修复方案
linux·运维·游戏
用户0328472220703 天前
如何搭建本地yum源(上)
运维
大树886 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠6 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质6 天前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
Inhand陈工6 天前
基于台达PLC与映翰通IG502的智慧水产养殖精准投喂与远程运维解决方案
运维·人工智能·物联网·阿里云·信息与通信