当前位置: 首页 > news >正文

组播实验-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地址连通性

②配置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邻居状态

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

# 在R4上查看OSPF路由表

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邻居关系

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接口信息

默认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报文内容

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

[AR3]interface GigabitEthernet 0/0/1

[AR3-GigabitEthernet0/0/1]ospf cost 2

此时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,观察剪枝过程

<AR1>terminal debugging

<AR1>terminal monitor

<AR1>debugging pim join-prune receive

# 在R1上重新触发组播流量

[AR1]ping -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

[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的二层组播转发表

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

#

http://www.dtcms.com/a/453704.html

相关文章:

  • 企业seo网站推广公司wordpress 下载受限
  • 第十二篇:std::shared_ptr和std::weak_ptr:共享所有权与解决循环引用
  • 第十九章:千变万化,随心而动——State的状态艺术
  • Harmony中EventHub实现发布订阅
  • 高效学习方法——知识关联性
  • 教育类网站素材总部在上海的世界500强企业
  • CCF编程能力等级认证GESP—C++6级—20250927
  • libopenssl-1_0_0-devel-1.0.2p RPM 包安装教程(openSUSE/SLES x86_64)​
  • 网站开发栏目需求1仪征网站建设公司哪家好
  • FK 外键上需要创建index 避免 主表update时 的lock
  • 三剑合璧:C++11 lambda、variadic template 与 wrapper 的协奏
  • 空间智能找文献方向
  • 儒枫网网站建设惠州 企业网站建设
  • 基于 GEE 平台用 Sentinel-1 SAR 数据实现山区潜在滑坡检测
  • CSS是什么?—— 网页的“化妆师”
  • cygwin + redis
  • 我也来做外国网站购物苏州新区建网站
  • #智能电饭煲技术开发原理与源代码实现
  • 无人机系统耗电,低功耗管理问题解决方法(chatgpt)
  • 设计网站国外公共建设工程中心网站
  • 第二十章:遍历万象,操作随心——Visitor的访问艺术
  • 找不到或无法加载主类
  • XMedia Recode:音频格式转换
  • Linux 内核态和用户态
  • 145、【OS】【Nuttx】【周边】效果呈现方案解析:VSCode Remote Server
  • 【C++实战(78)】解锁C++ 大数据处理:从并行到分布式实战
  • 农安县住房和城乡建设厅网站青岛网站建设开发
  • 建设网站企业邮箱查找
  • OpenCV(三):保存文件
  • 写一个shel脚本 完全备份 然后每天增量备份 以及计划任务 一周 mysql 数据库