0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

组播Multicast进阶:PIM-DM实验配置

网络技术干货圈 来源:网络技术干货圈 作者:圈圈 2022-11-29 09:03 次阅读

实验拓扑

9b774cd0-6f76-11ed-8abf-dac502259ad0.png

实验需求

网络拓扑、IP地址规划如上图所示;

R1、R2、R3、R4运行OSPF协议,打通网络的单播路由;

R1、R2、R3、R4同时也是组播路由器,运行PIM-DM;

接收者加入组播组224.1.1.1,在R4上观察IGMP信息

组播源开始向组播组224.1.1.1发送组播数据,观察Assert现象、Prune现象。

实验步骤及配置

R1、R2、R3、R4完成接口IP地址的配置,并运行OSPF。R1的配置如下:

[R1]interfaceGigabitEthernet0/0/0
[R1-GigabitEthernet0/0/0]ipaddress10.1.12.124
[R1]interfaceGigabitEthernet0/0/1
[R1-GigabitEthernet0/0/1]ipaddress10.1.134.124
[R1]ospf1router-id1.1.1.1
[R1-ospf-1]area0
[R1-ospf-1-area-0.0.0.0]network10.1.12.10.0.0.0
[R1-ospf-1-area-0.0.0.0]network10.1.134.10.0.0.0
[R1-ospf-1-area-0.0.0.0]quit
[R1-ospf-1]quit

R2的配置如下:

[R2]interfaceGigabitEthernet0/0/0
[R2-GigabitEthernet0/0/0]ipaddress10.1.12.224
[R2]interfaceGigabitEthernet0/0/1
[R2-GigabitEthernet0/0/1]ipaddress10.1.23.224
[R2]interfaceGigabitEthernet0/0/2
[R2-GigabitEthernet0/0/2]ipaddress10.10.10.25424
[R2]ospf1router-id2.2.2.2
[R2-ospf-1]area0
[R2-ospf-1-area-0.0.0.0]network10.1.12.20.0.0.0
[R2-ospf-1-area-0.0.0.0]network10.1.23.20.0.0.0
[R2-ospf-1-area-0.0.0.0]network10.10.10.2540.0.0.0
[R2-ospf-1-area-0.0.0.0]quit
[R2-ospf-1]silent-interfaceGigabitEthernet0/0/2#G0/0/2口未连接OSPF路由器
[R2-ospf-1]quit

R3的配置如下:

[R3]interfaceGigabitEthernet0/0/0
[R3-GigabitEthernet0/0/0]ipaddress10.1.23.324
[R3]interfaceGigabitEthernet0/0/1
[R3-GigabitEthernet0/0/1]ipaddress10.1.134.324
[R3]ospf1router-id3.3.3.3
[R3-ospf-1]area0
[R3-ospf-1-area-0.0.0.0]network10.1.23.30.0.0.0
[R3-ospf-1-area-0.0.0.0]network10.1.134.30.0.0.0
[R3-ospf-1-area-0.0.0.0]quit
[R3-ospf-1]quit

R4的配置如下:

[R4]interfaceGigabitEthernet0/0/0
[R4-GigabitEthernet0/0/0]ipaddress10.1.134.424
[R4]interfaceGigabitEthernet0/0/1
[R4-GigabitEthernet0/0/1]ipaddress10.1.1.25424
[R4]ospf1router-id4.4.4.4
[R4-ospf-1]area0
[R4-ospf-1-area-0.0.0.0]network10.1.134.40.0.0.0
[R4-ospf-1-area-0.0.0.0]network10.1.1.2540.0.0.0
[R4-ospf-1-area-0.0.0.0]quit
[R4-ospf-1]silent-interfaceGigabitEthernet0/0/1
[R4-ospf-1]quit

R1、R2、R3及R4部署PIM-DM

R1的配置如下:

[R1]multicastrouting-enable#激活组播路由功能
[R1]interfaceGigabitEthernet0/0/0
[R1-GigabitEthernet0/0/0]pimdm#在接口上激活PIM密集模式
[R1]interfaceGigabitEthernet0/0/1
[R1-GigabitEthernet0/0/1]pimdm

R2的配置如下:

[R2]multicastrouting-enable#激活组播路由功能
[R2]interfaceGigabitEthernet0/0/0
[R2-GigabitEthernet0/0/0]pimdm#在接口上激活PIM密集模式
[R2]interfaceGigabitEthernet0/0/1
[R2-GigabitEthernet0/0/1]pimdm
[R2]interfaceGigabitEthernet0/0/2
[R2-GigabitEthernet0/0/2]pimdm

R3的配置如下:

[R3]multicastrouting-enable#激活组播路由功能
[R3]interfaceGigabitEthernet0/0/0
[R3-GigabitEthernet0/0/0]pimdm#在接口上激活PIM密集模式
[R3]interfaceGigabitEthernet0/0/1
[R3-GigabitEthernet0/0/1]pimdm

R4的配置如下:

[R4]multicastrouting-enable#激活组播路由功能
[R4]interfaceGigabitEthernet0/0/0
[R4-GigabitEthernet0/0/0]pimdm#在接口上激活PIM密集模式
[R4]interfaceGigabitEthernet0/0/1
[R4-GigabitEthernet0/0/1]igmpenable#在接口上激活IGMP

完成配置后,首先做个查看:

[R2]displaypimneighbor
VPN-Instance:publicnet
TotalNumberofNeighbors=2
NeighborInterfaceUptimeExpiresDr-PriorityBFD-Session
10.1.12.1GE0/0/0000800371N
10.1.23.3GE0/0/1002000251N

上面输出的是R2的PIM邻居,可以看到R2有两个PIM邻居,分别是R1及R2。确保所有的PIM路由器两两之间都建立起邻居关系。

3.完成PC及组播源的配置

本实验可以使用eNSP来模拟并且能够直观的看到实验现象。在使用eNSP进行组播实验时,组播接收者采用”终端“设备中的PC来模拟,而组播源则使用”终端“ 设备中的MCS来模拟:

9ba00832-6f76-11ed-8abf-dac502259ad0.png

组播接收者(PC)的IP地址配置如下:

9bb93e24-6f76-11ed-8abf-dac502259ad0.png

组播源的IP地址配置如下:

9bdc9900-6f76-11ed-8abf-dac502259ad0.png

现在,各台设备都已经就绪了,我们主要分析以下几个内容:

4.组成员加入组播组224.1.1.1

现在让组播接收者加入一个用于测试的组播组224.1.1.1,一般组播接收者就是我们的电脑或者其他便携设备,例如视频的业务,在电脑上安装一个视频客户端,打开客户端进行简单的操作就会触发电脑发送IGMP成员关系报告,宣称自己所要加入的组播组。

在eNSP中,PC作为组播接收者的配置如下,切换到组播选项卡,源IP填写PC的IP地址10.1.1.1 ,目的IP地址填写组播组地址224.1.1.1:

9c02b2c0-6f76-11ed-8abf-dac502259ad0.png

点击“加入“按钮,PC即开始发送IGMP成员关系报告消息申请加入组播组224.1.1.1。现在在最后一跳路由器R4上查看:

[R4]displayigmpgroup
InterfacegroupreportinformationofVPN-Instance:publicnet
GigabitEthernet0/0/1(10.1.1.254):
Total1IGMPGroupreported
GroupAddressLastReporterUptimeExpires
224.1.1.110.1.1.100140057

R4已经发现了组播组224.1.1.1内有一个组播成员10.1.1.1,但是由于现在R4还没有收到组播数据,所以自然没有组播数据转发给接收者。

5.组播源开始发送组播数据观察扩散过程、Assert机制

现在组播源开始向组播组224.1.1.1发送组播数据。在eNSP上模拟组播源的设备做如下操作(开始测试前,确保电脑上已安装媒体播放器:VLC media player):

9c2aae60-6f76-11ed-8abf-dac502259ad0.png

在配置界面中切换到组播源选项卡,在文件路径处选择电脑中的一个视频文件(FLV、MP4等格式),在组播组IP地址中填入224.1.1.1。点击运行按钮,这个组播源便开始播放视频,视频播放的过程中组播源会持续地向224.1.1.1这个组播地址发送组播流量,如果网络配置正确的话,组播接收者(PC)能够收到这些组播流量,并且在本地开始同步播放视频。在eNSP中,当组播源开始播放视频时,可以在组播接收者处点击“启动VLC“按钮:

9c4a37a8-6f76-11ed-8abf-dac502259ad0.png

VLC启动后,就能开始在接收者处看到正在播放的视频:

9c67f978-6f76-11ed-8abf-dac502259ad0.png

上面的截图中,左图是组播源正在播放中的视频,而右图则是组播接收者处正在同步播放的视频,这就是组播业务的直观体现。

现在我们来分析一下数据流量的转发过程。视频开始播放时,组播流量开始从组播源泛洪出来,组播数据到达第一跳路由器R2,则R2创建组播路由表项(10.10.10.10,224.1.1.1):

displaymulticastrouting-table
MulticastroutingtableofVPN-Instance:publicnet
Total1entry
00001.(10.10.10.10,224.1.1.1)
Uptime:0005
UpstreamInterface:GigabitEthernet0/0/2
Listof2downstreaminterface
1:GigabitEthernet0/0/1
2:GigabitEthernet0/0/0

在该表项中,上行接口朝向源,所以就是GE0/0/2口,而在开始时由于运行的是PIM-DM模式,因此R2将GE0/0/1及GE0/0/0接口都添加到下行接口列表中,然后将组播数据从GE0/0/0口和 GE0/0/1口都转发下去。

随后R1及R3都会收到R2转发下来的组播数据,同样的他们也是创建一个组播路由表项,然后将所有接口(除了RPF接口)都添加到下行接口列表中,并开始向下行接口发送数据数据。

在这个过程中,R1及R3都会向自己的GE0/0/1口转发组播流量,一旦双方在自己的GE0/0/1口上收到(10.10.10.10,224.1.1.1)组播组的数据时,他们就知道在这个LAN中有两台组播路由器在转发数据,这将触发Assert机制,R1及R3都去发送Assert消息,在R1或R2的GE0/0/1口上抓包可以看到:

9c99a81a-6f76-11ed-8abf-dac502259ad0.png

看一下R1发送的Assert消息:

9cbb0320-6f76-11ed-8abf-dac502259ad0.png

可以看到报文里包含组播组地址、源地址、优先级和度量值。R3发出的Assert消息类似,由于此时R1及R3都是通过OSPF学习到10.10.10.0/24网络的,并且metric相等都是2,因此接口IP地址大的路由器,也就是R3会Assert胜出,由它继续向10.1.134.0/24网络来转发组播组224.1.1.1的数据。

如此一来R1就不需要组播数据了,因此它会向上行接口发送一个Prune剪枝消息,将自己从组播树上剪除,R1的组播路由表就变成:

[R1]displaymulticastrouting-table
MulticastroutingtableofVPN-Instance:publicnet
Total1entry
00001.(10.10.10.10,224.1.1.1)
Uptime:0019
UpstreamInterface:GigabitEthernet0/0/0

从上面的输出可以看到,R1的(10.10.10.10,224.1.1.1)组播表项没有下行接口。

R2的组播表项就变成:

[R2]displaymulticastrouting-table
MulticastroutingtableofVPN-Instance:publicnet
Total1entry
00001.(10.10.10.10,224.1.1.1)
Uptime:0027
UpstreamInterface:GigabitEthernet0/0/2
Listof1downstreaminterface
1:GigabitEthernet0/0/1

(10.10.10.10,224.1.1.1)表项中,下行接口列表只有一个接口了,也就是GE0/0/1口。这是因为它收到了R1发过来的剪枝消息。

R4在收到组播数据后,也是创建一个组播表项:

[R4]displaymulticastrouting-table
MulticastroutingtableofVPN-Instance:publicnet
Total1entry
00001.(10.10.10.10,224.1.1.1)
Uptime:0041
UpstreamInterface:GigabitEthernet0/0/0
Listof1downstreaminterface
1:GigabitEthernet0/0/1

然后将组播数据从GE0/0/1口转发出去,如此一来接收者也就收到组播数据了。因此,最终网络稳定下来之后,组播流量的传输路径是这样的:

9ce03e9c-6f76-11ed-8abf-dac502259ad0.png

6.组播成员离组、观察Prune剪枝过程

现在,组播源仍然在不断的发送组播流量,我们让接收者离开组播组224.1.1.1。

由于接收者一旦离开组播组,R4的GE0/0/1口上关于224.1.1.1的组播组就没有成员了,因此它将接口GE0/0/1从自己的(10.10.10.10,224.1.1.1)组播表项的下行接口列表中去除,如此一来下行接口列表也就空了,R4知道自己不再需要224.1.1.1的组播数据,于是它向上行接口GE0/0/0发一个Prune剪枝消息,请求将自己从组播树上剪除。

R3收到这个剪枝消息后,将自己的GE0/0/1口从(10.10.10.10,224.1.1.1)组播表项的下行接口列表中去除,然后它发现接口列表空了,于是也发现自己不再需要组播数据了,因此向上行接口发送Prune消息,此刻R3的组播路由表如下:

displaymulticastrouting-table
MulticastroutingtableofVPN-Instance:publicnet
Total1entry
00001.(10.10.10.10,224.1.1.1)
Uptime:0020
UpstreamInterface:GigabitEthernet0/0/0
R2收到R3发出的Prune消息后,其组播表如下:
displaymulticastrouting-table
MulticastroutingtableofVPN-Instance:publicnet
Total1entry
00001.(10.10.10.10,224.1.1.1)
Uptime:0004
UpstreamInterface:GigabitEthernet0/0/2

下行接口列表为空,因此直接将源发送过来的组播数据丢弃,不从任何接口转发。

7.组播成员再次加组,观察Graft嫁接过程

经过前面的步骤,虽然组播源仍然在不断的向224.1.1.1发送组播数据,但是由于网络中不存在任何的组成员,因此组播流量被R2直接丢弃。

现在我们再次让组播接收者加入组播组224.1.1.1。PC发送IGMP成员关系报文,R4在收到这个报告之后意识到接口GE0/0/1下出现了组播组224.1.1.1的成员,于是将GE0/0/1接口添加到(10.10.10.10,224.1.1.1)表项的下行接口列表中,并向R3发送一个嫁接Graft消息:

9d0179c2-6f76-11ed-8abf-dac502259ad0.png

这个消息是一个单播包,R3收到之后将接口GE0/0/1添加到组播表项的下行接口列表,并向R4回送一个Graft-ACK报文以作确认。同时R3向自己的上行PIM邻居R2发送一个Graft消息。R2在收到这个消息的时候,也是将收到该消息的接口GE0/0/2添加到(10.10.10.10,224.1.1.1)表项的下行接口列表,随后开始向该接口转发224.1.1.1的组播流量。自此,组播树又重新构建完成。

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 网络
    +关注

    关注

    14

    文章

    7309

    浏览量

    87872
  • 路由器
    +关注

    关注

    22

    文章

    3603

    浏览量

    112006
  • PIM-DM
    +关注

    关注

    0

    文章

    2

    浏览量

    5396

原文标题:组播Multicast进阶:PIM-DM实验配置

文章出处:【微信号:网络技术干货圈,微信公众号:网络技术干货圈】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    LABview 通信问题

    求助各位大神,现在需要实现通信的发送功能,请问如何实现,路由器有特殊的要求么?软件就用UDP的发送?
    发表于 02-12 11:03

    zigbee协调器与路由之间的实验,求代码

    zigbee协调器与路由之间的实验,求代码作参考,我自己写的代码实现不了功能
    发表于 04-06 19:53

    万兆交换机那家强?深圳百联丰BL5704万兆交换机最棒

    PIM-SM、PIM-DM、DVMRP 等多种路由协议;基于MPLS 的交换路由以及支持 ECMP 的路由负载均
    发表于 11-13 09:51

    W5500 方式不能接受数据的疑问

    不到这个数据。按照5500方式给配置了。5500倒是可以向224.0.0.251发数据,但是就是接收不到(可以接受发往255.255.255.255的数据包)。难道5500的
    发表于 07-06 18:49

    无法接收多过滤器集pic32mz/mrf24wg0ma

    大家好,我把一些旧的多接收代码从MAL/MLA移植到ValueV1.08上运行。它目前无法接收数据包,并且已经调试到堆栈中,我怀疑它对过滤可能不满意,因为我看不到堆栈中出现的任何数据包。如果有
    发表于 07-17 14:09

    为什么LWIP + ENC28J60 + 不能发送数据?

    最近需要用到,用的是LWIP + ENC28J60。经过一番配置后,现在的情况是:可以接收到数据,但是发送
    发表于 10-08 22:32

    Harmony UDP变得简单

    (192.168.100.15)配置:IP=224.168.100.110端口=9760,无IGMP文档:卷V.TCP/IP堆栈库帮助这里有几个“问题:我曾经使用过UDP模块文档。多
    发表于 03-23 10:50

    【求助】W5500 UDP问题 怎么加入

    本人学生,最近的项目用到STM32+w5500的开发板,需要用W5500完成UDP功能,目前有以下两个问题,求各位大神帮忙解答一下:1、UDP中客户端和服务端怎么区分,比如电脑
    发表于 04-03 16:50

    PIM-SM Conformance Test Suite

    Agilent Technologies’ automated PIM-SM Conformance Test Suite is the ideal solution for network
    发表于 07-16 23:25 32次下载

    Agilent N2X Multicast Routing

    associated with VLANsSimulate PIM-SM/SSM over GRE tunnels to test multicast VPN devices and networksSimu
    发表于 07-25 10:27 11次下载

    PIM-DM基本配置实例

    1. 概述本文介绍安奈特三层交换机和路由器中 PIM-DM 的基本配置。2. 实施需求正确实现该功能有以下实施需求:􀂄 运行 AlliedWare TM 的交换机和路由器。􀂄 sof
    发表于 09-03 15:30 0次下载

    基于EP1C3的进阶实验vgachar

    基于EP1C3的进阶实验 vgachar
    发表于 10-27 18:20 1次下载

    基于EP1C3的进阶实验uartfifo

    基于EP1C3的进阶实验uartfifo
    发表于 11-18 16:05 0次下载

    基于EP1C3的进阶实验vgachar

    基于EP1C3的进阶实验vgachar
    发表于 11-18 16:05 0次下载

    组播Multicast进阶PIM-SM实验配置

    在R4上将RPT-SPT的切换设置为永远不切换,同时从源开始发送组播数据,观察源的注册过程、RP到源的SPT建立过程、组播流量沿着RPT下行的过程。
    的头像 发表于 11-30 09:12 1787次阅读