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

devtools/2025/3/19 3:10:18/

        4台路由器之间运行OSPF路由协议,均创建Loopback0,IP地址为10.0.x.x/32。4台路由器之间构成一个组播网络,AR1作为第一跳路由器连接组播源239.0.0.12,AR4作为最后一跳路由器连接组播组239.0.0.12的接收者,为了能够让组播源的流量顺利被AR4上的组播组成员接收,在每台路由器上部署PIM-DM,并在AR4的GE0/0/1接收上激活IGMPv2

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

实验任务

  1. 设备IP地址配置
  2. 配置AR1、AR2、AR3、AR4之间的OSPF,在互联接口、Loopback接口上激活OSPF
  3. 开启路由器的组播路由功能,部署PIM-DM,在相应接口上开启PIM-DM
  4. 在AR1上模拟组播源发送组播数据,观察各个路由器的PIM路由表
  5. 修改AR3的GE0/0/0接口OSPF Cost值,影响断言机制选举结果,之后再次查看AR2、AR3的PIM路由表
  6. 在S2上配置IGMP Snooping,手动配置路由器端口、成员端口

实验步骤

1、设备IP地址配置

# AR1配置
[AR1]interface GigabitEthernet 0/0/0
[AR1-GigabitEthernet0/0/0]ip address 10.0.13.1 24
[AR1-GigabitEthernet0/0/0]q
[AR1]interface GigabitEthernet 0/0/1
[AR1-GigabitEthernet0/0/1]ip address 10.0.12.1 24
[AR1-GigabitEthernet0/0/1]q
[AR1]interface LoopBack 0
[AR1-LoopBack0]ip address 10.0.1.1 32
[AR1-LoopBack0]q
[AR1]# AR2配置
[AR2]interface GigabitEthernet 0/0/0
[AR2-GigabitEthernet0/0/0]ip address 10.0.12.2 24
[AR2-GigabitEthernet0/0/0]q
[AR2]interface GigabitEthernet 0/0/1
[AR2-GigabitEthernet0/0/1]ip address 10.0.234.2 24
[AR2-GigabitEthernet0/0/1]q
[AR2]interface LoopBack 0
[AR2-LoopBack0]ip address 10.0.2.2 32
[AR2-LoopBack0]q
[AR2]# AR3配置
[AR3]interface GigabitEthernet 0/0/0
[AR3-GigabitEthernet0/0/0]ip address 10.0.13.3 24
[AR3-GigabitEthernet0/0/0]q
[AR3]interface GigabitEthernet 0/0/1
[AR3-GigabitEthernet0/0/1]ip address 10.0.234.3 24
[AR3-GigabitEthernet0/0/1]q
[AR3]interface LoopBack 0
[AR3-LoopBack0]ip address 10.0.3.3 32
[AR3-LoopBack0]q
[AR3]# AR4配置
[AR4]interface GigabitEthernet 0/0/0
[AR4-GigabitEthernet0/0/0]ip address 10.0.234.4 24
[AR4-GigabitEthernet0/0/0]q
[AR4]interface GigabitEthernet 0/0/1
[AR4-GigabitEthernet0/0/1]ip address 192.168.1.1 24
[AR4-GigabitEthernet0/0/1]q
[AR4]interface LoopBack 0
[AR4-LoopBack0]ip address 10.0.4.4 32
[AR4-LoopBack0]q
[AR4]

在AR1、AR4上检测连通性(以AR1为例)

2、配置OSPF

        使用各自的Loopback 0 接口地址作为Router ID,在互联接口、Loopback 0接口上激活OSPF

# AR1配置
[AR1]ospf 1 router-id 10.0.1.1
[AR1-ospf-1]area 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
[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]q
[AR1-ospf-1]q
[AR1]# AR2配置
[AR2]ospf 1 router-id 10.0.2.2
[AR2-ospf-1]area 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
[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]q
[AR2-ospf-1]q
[AR2]# AR3配置
[AR3]ospf 1 router-id 10.0.3.3
[AR3-ospf-1]area 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
[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]q
[AR3-ospf-1]q
[AR3]# AR4配置
[AR4]ospf 1 router-id 10.0.4.4
[AR4-ospf-1]area 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
[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]q
[AR4-ospf-1]q
[AR4]

        查看AR4的OSPF邻居关系、OSPF路由表

<AR4>display ospf peer brief

<AR4>display ospf routing

3、部署PIM-DM

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

# AR1配置
[AR1]multicast routing-enable    # 开启组播路由功能
[AR1]interface GigabitEthernet 0/0/0
[AR1-GigabitEthernet0/0/0]pim dm
[AR1-GigabitEthernet0/0/0]q
[AR1]interface GigabitEthernet 0/0/1
[AR1-GigabitEthernet0/0/1]pim dm
[AR1-GigabitEthernet0/0/1]q
[AR1]# AR2配置
[AR2]multicast routing-enable
[AR2]interface GigabitEthernet 0/0/0
[AR2-GigabitEthernet0/0/0]pim dm
[AR2-GigabitEthernet0/0/0]q
[AR2]interface GigabitEthernet 0/0/1
[AR2-GigabitEthernet0/0/1]pim dm
[AR2-GigabitEthernet0/0/1]q
[AR2]# AR3配置
[AR3]multicast routing-enable
[AR3]interface GigabitEthernet 0/0/0
[AR3-GigabitEthernet0/0/0]pim dm
[AR3-GigabitEthernet0/0/0]q
[AR3]interface GigabitEthernet 0/0/1
[AR3-GigabitEthernet0/0/1]pim dm
[AR3-GigabitEthernet0/0/1]q
[AR3]# AR4配置
[AR4]multicast routing-enable
[AR4]interface GigabitEthernet 0/0/0
[AR4-GigabitEthernet0/0/0]pim dm
[AR4-GigabitEthernet0/0/0]q
[AR4]interface GigabitEthernet 0/0/1
[AR4-GigabitEthernet0/0/1]pim dm
[AR4-GigabitEthernet0/0/1]q
[AR4]

        在AR1、AR4上检查PIM邻居关系

<AR1>display pim neighbor 

这时候,AR1与AR2、AR1与AR3、AR4与AR2、AR4与AR3之间都已经成功形成PIM关系

        在AR4的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
[AR4-GigabitEthernet0/0/1]q
[AR4]

        在AR4上查看IGMP接口信息

<AR4>display igmp interface GigabitEthernet 0/0/1

默认IGMP的版本为V2,AR4为IGMP的查询者

4、观察PIM路由表

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

# AR1上模拟组播源,发送组播流量
<AR1>ping -a 10.0.1.1 -c 10 239.0.0.12

PIM Start-Refresh报文内容

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

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

<AR1>display pim control-message counters message-type state-refresh interface GigabitEthernet 0/0/1

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

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

<AR1>display pim routing-table

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

AR2上并没有下游接口

AR3的下游接口为GE0/0/1

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

5、修改OSPF cost值,影响断言选举结果

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

        在AR2、AR3上查看前往组播地址10.0.1.1的路由开销值

<AR2>display ip routing-table 10.0.1.1

AR2、AR3到达10.0.1.1的路由开销值都为1

        修改AR3上的GE0/0/1接口的OSPF Cost值

[AR3]interface GigabitEthernet 0/0/0
[AR3-GigabitEthernet0/0/0]ospf cost 2
[AR3-GigabitEthernet0/0/0]q
[AR3]

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

<AR3>display ip routing-table 10.0.1.1

现在AR3到达10.0.1.1的路由开销值为2

        为了更好的观察现象,修改AR2、AR3的GE0/0/1接口Assert状态的超过时间为10s

[AR2]interface GigabitEthernet 0/0/1
[AR2-GigabitEthernet0/0/1]pim holdtime assert 10
[AR2-GigabitEthernet0/0/1]q
[AR2][AR3]interface GigabitEthernet 0/0/1
[AR3-GigabitEthernet0/0/1]pim holdtime assert 10
[AR3-GigabitEthernet0/0/1]q
[AR3]

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

<AR1>terminal debugging 
Info: Current terminal debugging is on.
<AR1>terminal monitor 
Info: Current terminal monitor is on.
<AR1>debugging pim join-prune receive 
<AR1>

        在AR1上重新触发组播流量

<AR1>ping -a 10.0.1.1 -c 10 239.0.0.12

        重新查看AR2、AR3的PIM的路由表

<AR2>display pim routing-table

现在AR3上没有下游接口,AR2为断言选举胜出者

6、配置IGMP Snooping

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

# 在全局、VLAN1开启IGMP Snooping
[LSW2]igmp-snooping enable
[LSW2]vlan 1
[LSW2-vlan1]igmp-snooping enable
[LSW2-vlan1]q# 手动配置路由器端口
[LSW2]interface GigabitEthernet 0/0/1
[LSW2-GigabitEthernet0/0/1]igmp-snooping static-router-port vlan 1
[LSW2-GigabitEthernet0/0/1]q
[LSW2]# 手动配置GE0/0/10为组播组239.0.0.12的成员端口
[LSW2]interface GigabitEthernet 0/0/10
[LSW2-GigabitEthernet0/0/10]l2-multicast static-group group-address 239.0.0.12 vlan 1
[LSW2-GigabitEthernet0/0/10]q
[LSW2]


http://www.ppmy.cn/devtools/168222.html

相关文章

鸿蒙 Next 实现线程之间的通信

鸿蒙 Next 实现线程之间的通信 在鸿蒙 Next 开发中&#xff0c;线程间通信是一个常见需求&#xff0c;尤其是在多线程任务处理中。鸿蒙 Next 提供了多种机制来实现线程间通信&#xff0c;包括事件驱动的 Emitter、共享内存 SharedArrayBuffer 以及基于消息传递的 Worker 和 Ta…

通过 CSS 的 命名页面(Named Pages) 技术实现作用域隔离,实现 @page 样式仅影响当前组件

以下是实现 page 样式仅影响当前组件的完整解决方案&#xff0c;通过 CSS 的 命名页面&#xff08;Named Pages&#xff09; 技术实现作用域隔离&#xff1a; vue <template><div><button v-print"printOptions">打印当前报表</button><…

MySQL复习笔记

文章目录 1.MySQL1.1什么是数据库1.2 数据库分类1.3 MySQL简介1.4连接数据库 2. 操作数据库2.1 操作数据库2.2 数据库的列类型2.3 数据库的字段属性&#xff08;重点&#xff09;2.4 创建数据库表&#xff08;重点&#xff09;2.5 数据表的类型2.6 修改数据表 3. MySQL 数据管理…

WebLogic XMLDecoder反序列化漏洞(CVE-2017-10271)深度解析与实战复现

0x00 漏洞概述 CVE-2017-10271 是Oracle WebLogic Server WLS Security组件中的远程代码执行漏洞。攻击者通过构造恶意XML请求&#xff0c;利用XMLDecoder反序列化机制绕过安全验证&#xff0c;最终实现服务器权限接管。 影响版本 WebLogic 10.3.6.0WebLogic 12.1.3.0WebLog…

第十五届蓝桥杯C/C++B组拔河问题详解

解题思路 这道题目的难点在于枚举所有区间&#xff0c;并且区间不能重合&#xff0c;那么这样感觉就很难了。但是用下面这种方法就会好很多。 我们只需要将左边的所有区间的各种和放在一个set中&#xff0c;然后我们在枚举右边的所有区间的和去和它进行比较&#xff0c;然后…

基于图神经网络(GNN)的节点分类实战:从GCN到GraphSAGE

图神经网络(GNN)是一种专门用于处理图结构数据的深度学习模型,广泛应用于社交网络分析、推荐系统和生物信息学等领域。图卷积网络(GCN)是GNN的经典方法,而GraphSAGE则通过引入采样机制进一步提升了其性能。本文将通过一个完整的实战案例,展示如何使用GCN和GraphSAGE对图…

基于CNN的多种类蝴蝶图像分类

基于CNN的多种类蝴蝶图像分类&#x1f98b; 基于卷积神经网络对64992786张图像&#xff0c;75种不同类别的蝴蝶进行可视化分析、模型训练及分类展示 导入库 import pandas as pd import os import matplotlib.pyplot as plt import seaborn as sns import numpy as np from …

Android第三次面试(Java基础)

面试题一&#xff1a;在 Android 里&#xff0c;Array 和 ArrayList 区别&#xff1f; 定义与大小&#xff1a;数组声明时要指定大小&#xff0c;之后固定&#xff1b;ArrayList 动态&#xff0c;无需提前定大小。性能&#xff1a;二者访问元素快&#xff0c;时间复杂度 O(1)&…