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

Huawei\]sysname AR1 R2、R3相同操作,不再重复。 # 配置R1 GE0/0/0接口、GE0/0/1接口、LoopBack0接口IP地址 \[AR1\]interface GigabitEthernet 0/0/0 \[AR1-GigabitEthernet0/0/0\]ip address 10.0.12.1 24 \[AR1-GigabitEthernet0/0/0\]interface GigabitEthernet 0/0/1 \[AR1-GigabitEthernet0/0/1\]ip address 10.0.13.1 24 \[AR1-GigabitEthernet0/0/1\]interface LoopBack 0 \[AR1-LoopBack0\]ip ad 10.0.1.1 32 # 配置R2 GE0/0/0接口、GE0/0/1接口、LoopBack0接口IP地址 \[AR2\]interface GigabitEthernet 0/0/0 \[AR2-GigabitEthernet0/0/0\]ip address 10.0.12.2 24 \[AR2-GigabitEthernet0/0/0\]interface GigabitEthernet 0/0/1 \[AR2-GigabitEthernet0/0/1\]ip address 10.0.234.2 24 \[AR2-GigabitEthernet0/0/1\]interface LoopBack 0 \[AR2-LoopBack0\]ip address 10.0.2.2 32 # 配置R3 GE0/0/1接口、GE0/0/2接口、LoopBack0接口IP地址 \[AR3\]interface GigabitEthernet 0/0/1 \[AR3-GigabitEthernet0/0/1\]ip address 10.0.13.3 24 \[AR3-GigabitEthernet0/0/1\]interface GigabitEthernet 0/0/2 \[AR3-GigabitEthernet0/0/2\]ip address 10.0.234.3 24 \[AR3-GigabitEthernet0/0/2\]interface LoopBack 0 \[AR3-LoopBack0\]ip address 10.0.3.3 32 # 配置R4 GE0/0/0接口、GE0/0/1接口、LoopBack0接口IP地址 \[AR4\]interface GigabitEthernet 0/0/0 \[AR4-GigabitEthernet0/0/0\]ip address 10.0.234.4 24 \[AR4-GigabitEthernet0/0/0\]interface GigabitEthernet 0/0/1 \[AR4-GigabitEthernet0/0/1\]ip address 192.168.1.1 24 \[AR4-GigabitEthernet0/0/1\]interface LoopBack 0 \[AR4-LoopBack0\]ip address 10.0.4.4 32 # 在R1、R4上检查IP地址连通性 ![](https://i-blog.csdnimg.cn/direct/cfefb306b1b449ea9483687eeb4f3efd.png) ![](https://i-blog.csdnimg.cn/direct/09924e77fef744a18f4851a9ba87268d.png) ## **②配置OSPF** 使用Loopback0接口地址作为Router lD,在互联接口、Loopback0接口上激活OSPF。 # 配置R1 \[AR1\]ospf router-id 10.0.1.1 \[AR1-ospf-1\]area 0 \[AR1-ospf-1-area-0.0.0.0\]network 10.0.1.1 0.0.0.0 \[AR1-ospf-1-area-0.0.0.0\]network 10.0.12.1 0.0.0.0 \[AR1-ospf-1-area-0.0.0.0\]network 10.0.13.1 0.0.0.0 # 配置R2 \[AR2\]ospf router-id 10.0.2.2 \[AR2-ospf-1\]area 0 \[AR2-ospf-1-area-0.0.0.0\]network 10.0.2.2 0.0.0.0 \[AR2-ospf-1-area-0.0.0.0\]network 10.0.12.2 0.0.0.0 \[AR2-ospf-1-area-0.0.0.0\]network 10.0.234.2 0.0.0.0 # 配置R3 \[AR3\]ospf router-id 10.0.3.3 \[AR3-ospf-1\]area 0 \[AR3-ospf-1-area-0.0.0.0\]network 10.0.3.3 0.0.0.0 \[AR3-ospf-1-area-0.0.0.0\]network 10.0.13.3 0.0.0.0 \[AR3-ospf-1-area-0.0.0.0\]network 10.0.234.3 0.0.0.0 # 配置R4 \[AR4\]ospf router-id 10.0.4.4 \[AR4-ospf-1\]area 0 \[AR4-ospf-1-area-0.0.0.0\]network 10.0.4.4 0.0.0.0 \[AR4-ospf-1-area-0.0.0.0\]network 10.0.234.4 0.0.0.0 \[AR4-ospf-1-area-0.0.0.0\]network 192.168.1.1 0.0.0.0 # 在R1、R4上检查OSPF邻居状态 ![](https://i-blog.csdnimg.cn/direct/50429fa0cce34c9a966f2db628e749ba.png) ![](https://i-blog.csdnimg.cn/direct/eeabafaaaf434f05bac78ba2ab399310.png) 路由器之间的OSPF邻居已经全部正常建立。 # 在R4上查看OSPF路由表 ![](https://i-blog.csdnimg.cn/direct/baf67b80b6444af8b9794434ba1b1e07.png) R4上已经学习到全网的OSPF路由。 ## **③部署PIM-DM** 在所有路由器上开启组播路由功能,在需要运行PIM-DM的接口下开启组播路由协议。 # 开启组播路由功能 \[AR1\]multicast routing-enable \[AR2\]multicast routing-enable \[AR3\]multicast routing-enable \[AR4\]multicast routing-enable # 在R1相应接口上开启PIM-DM \[AR1\]interface GigabitEthernet 0/0/0 \[AR1-GigabitEthernet0/0/0\]pim dm \[AR1-GigabitEthernet0/0/0\]interface GigabitEthernet 0/0/1 \[AR1-GigabitEthernet0/0/1\]pim dm # 在R2相应接口上开启PIM-DM \[AR2\]interface GigabitEthernet 0/0/0 \[AR2-GigabitEthernet0/0/0\]pim dm \[AR2-GigabitEthernet0/0/0\]interface GigabitEthernet 0/0/1 \[AR2-GigabitEthernet0/0/1\]pim dm # 在R3相应接口上开启PIM-DM \[AR3\]interface GigabitEthernet 0/0/1 \[AR3-GigabitEthernet0/0/1\]pim dm \[AR3-GigabitEthernet0/0/1\]interface GigabitEthernet 0/0/2 \[AR3-GigabitEthernet0/0/2\]pim dm # 在R4相应接口上开启PIM-DM \[AR4\]interface GigabitEthernet 0/0/0 \[AR4-GigabitEthernet0/0/0\]pim dm \[AR4-GigabitEthernet0/0/0\]interface GigabitEthernet 0/0/1 \[AR4-GigabitEthernet0/0/1\]pim dm # 在R1、R4上检查PIM邻居关系 ![](https://i-blog.csdnimg.cn/direct/18f6797f595d4180b7dafb2f61adbbd4.png) ![](https://i-blog.csdnimg.cn/direct/bf872525309947ddbe9dd11b96f97a8a.png) R1与R2、R1R3、R4与R2及R3之间已经成功形成PIM邻居关系。 # 在R4的GE0/0/1接口上开启IGMP,并配置静态组播组模拟组播接收者 \[AR4\]interface GigabitEthernet 0/0/1 \[AR4-GigabitEthernet0/0/1\]igmp enable \[AR4-GigabitEthernet0/0/1\]igmp static-group 239.0.0.12 # 在R4上查看IGMP接口信息 ![](https://i-blog.csdnimg.cn/direct/47e0257c60764e25bd9217d7735fa541.png) 默认IGMP版本为V2,R4为IGMP查询者。 ## **④观察PIM路由表** 在R1上以Loopback0接口为源地址,向239.0.0.12发送ICMP数据包,模拟组播源,之后在4台路由器上查看PIM路由表。 # R1上模拟组播源,发送组播流量 \[AR1\]ping -a 10.0.1.1 -c 10 239.0.0.12 使用该命令实际上设备并不会对外发送组播流量,而是会触发PIM-DM的State-Refresh报文。 # PIM-DM State-Refresh报文内容 ![](https://i-blog.csdnimg.cn/direct/e9032b552d914ffb9827f4cbc279d719.png) State-Refresh 报文中会携带组播源地址(10.0.1.1),组播组地址(239.0.0.12),下游设备收到后会创建(S,G)表项,并继续向下游发送State-Refresh报文。 # 在设备上查看State-Refresh报文发送情况 ![](https://i-blog.csdnimg.cn/direct/dcbe7ce403bb43ba9dc8edd04757ec68.png) 当已发送(sent)个数不为0时,再去查看下游的(S,G)表项,否则将无法看到内容。PIM-SM并无State-Refresh报文,因此无法使用该方式触发生成组播路由表。 # 之后查看4台路由器的PIM路由表 ![](https://i-blog.csdnimg.cn/direct/77f1d07b14a341d6834f7876523c96ba.png) R1上(S,G)表项的入接口为Loopback0,因为组播源为设备直连,所以PRF邻居为NULL。下游接口为GE0/0/1,R1将组播流量转发给R3。 ![](https://i-blog.csdnimg.cn/direct/58f848aa61234877b593d333e5d61a08.png) R2上并无下游接口。 ![](https://i-blog.csdnimg.cn/direct/b7337757188c4869867072e1bec7923c.png) 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路由表中没有下游接口的原因。 ![](https://i-blog.csdnimg.cn/direct/f146b6d420c246599ab7f120766f6b89.png) R4的上游邻居为R3,自身为最后一跳路由器。 ## **⑤修改IGP cost值,影响断言选举结果** 在R3上修改GE0/0/1接口的OSPF cost值,使得R3到达组播源地址的单播路由拥有更大的开销值,从而在断言选举中失败,让R2变为断言选举胜出者。 # 在R2、R3上查看前往组播源地址10.0.1.1的路由开销值 ![](https://i-blog.csdnimg.cn/direct/4fcd074811714403a3e2dbb5d8af738b.png) ![](https://i-blog.csdnimg.cn/direct/8dda731be19c465684f250770286b83a.png) R2、R3前往10.0.1.1的路由开销值都为1。 # 修改R3上 GE0/0/1接口的OSPF cost \[AR3\]interface GigabitEthernet 0/0/1 \[AR3-GigabitEthernet0/0/1\]ospf cost 2 ![](https://i-blog.csdnimg.cn/direct/9b8b6765fb2a420ca737e367030f0f78.png) 此时R3前往10.0.1.1的路由开销值为2。 # 为了更好地观察现象,修改R2、R3的GE0/0/1接口和GE0/0/2接口Assert状态的超时时间为10s \[AR2\]interface GigabitEthernet 0/0/1 \[AR2-GigabitEthernet0/0/1\]pim holdtime assert 10 \[AR3\]interface GigabitEthernet 0/0/2 \[AR3-GigabitEthernet0/0/2\]pim holdtime assert 10 # 在R1上开启**debugging pim join-prune receive**,观察剪枝过程 \terminal debugging \terminal monitor \debugging pim join-prune receive # 在R1上重新触发组播流量 \[AR1\]ping -a 10.0.1.1 -c 10 239.0.0.12 # 重新查看R2、R3的PIM路由表 ![](https://i-blog.csdnimg.cn/direct/3236a5b8441b41d086fb079aaff6156d.png) ![](https://i-blog.csdnimg.cn/direct/37251f8c9c6345b7992657e290bfd556.png) 此时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 \[SW2\]igmp-snooping enable \[SW2\]vlan 1 \[SW2-vlan1\]igmp-snooping enable \[SW2-vlan1\]quit # 手动配置GE0/0/1为路由器端口 \[SW2\]interface GigabitEthernet 0/0/1 \[SW2-GigabitEthernet0/0/1\]igmp-snooping static-router-port vlan 1 # 手动配置GE0/0/10为组播组239.0.0.12的成员端口 \[SW2\]interface GigabitEthernet 0/0/10 \[SW2-GigabitEthernet0/0/10\]l2-multicast static-group group-address 239.0.0.12 vlan 1 \[SW2-GigabitEthernet0/0/10\]quit # 查看S2的二层组播转发表 ![](https://i-blog.csdnimg.cn/direct/9ffd1f100c0242ba92ecf389bf9d8c86.png) 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 > > #

相关推荐
小伟5533 小时前
Keepalived 高可用实战(Ubuntu 24.04)
运维
运维闲章印时光3 小时前
网络断网、环路、IP 冲突?VRRP+MSTP+DHCP 联动方案一次性解决
运维·服务器·开发语言·网络·php
国科安芯3 小时前
ASP3605电源芯片的性能优化与改进思路
网络·单片机·嵌入式硬件·安全·性能优化
ARTHUR-SYS3 小时前
基于Kali linux 安装pyenv及简单使用方法及碰到的问题
linux·运维·chrome
苹果醋34 小时前
数据结构其一 线性表
java·运维·spring boot·mysql·nginx
liulilittle4 小时前
OPENPPP2 静态隧道链路迁移平滑(UDP/IP)
开发语言·网络·c++·网络协议·tcp/ip·udp·通信
Arlene4 小时前
IP 协议的相关特性
服务器·网络·tcp/ip
IvanCodes4 小时前
十六、Linux网络基础理论 - OSI模型、TCP/IP协议与IP地址详解
linux·网络·tcp/ip
CIb0la4 小时前
微软宣布 Windows 11 v25H2 GA
运维·安全·生活