组播实验-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

相关推荐
不吃土豆的马铃薯6 分钟前
Socket 网络编程实战教程
linux·服务器·开发语言·网络·c++·算法
Agent手记11 分钟前
医药代表拜访计划能否通过AI自动生成优化?2026Agent自动化实战解析
运维·人工智能·ai·自动化
爱莉希雅&&&26 分钟前
Zabbix监控初步搭建
linux·运维·数据库·mysql·zabbix
林熙蕾LXL29 分钟前
传输层-UDP介绍
网络·网络协议·udp
JackSparrow41433 分钟前
使用Ansible批量管理+更新产品环境服务器配置
运维·服务器·ci/cd·kubernetes·自动化·ansible·sre
大明者省1 小时前
windows server2019服务器部署图文版
运维·服务器
Plastic garden1 小时前
Docker(2)网络模式
运维·docker·容器
IronMurphy1 小时前
AI Agent 学习day5 MCP 协议入门与实践
网络·人工智能·学习
AugustRed1 小时前
MacOS 运维常用命令大全(超全速查表)
运维·macos
呉師傅2 小时前
联想ideapad 310-15ABR拔掉充电器使用电池工作花屏问题的解决方法【维修个例】
运维·服务器·网络·智能手机·电脑