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

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

3天内不再提示

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

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

实验拓扑

67ea94bc-703e-11ed-8abf-dac502259ad0.png

实验需求

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

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

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

R3为RP,配置Loopback0,IP地址为3.3.3.3,该地址作为RP的地址;

接收者加入组播组224.1.1.1;观察RPT的构建;

在R4上将RPT-SPT的切换设置为永远不切换,同时从源开始发送组播数据,观察源的注册过程、RP到源的SPT建立过程、组播流量沿着RPT下行的过程。

在R4上将RPT-SPT的切换恢复为默认值,同时将R4的GE0/0/1口的OSPF Cost值稍稍调大,观察RPT到SPT的切换过程。

本实验可使用华为自研模拟器eNSP完成。

实验步骤及配置

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.14.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.14.10.0.0.0

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.1024
[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

R3的基础配置如下:

[R3]interfaceGigabitEthernet0/0/0
[R3-GigabitEthernet0/0/0]ipaddress10.1.23.324
[R3]interfaceGigabitEthernet0/0/1
[R3-GigabitEthernet0/0/1]ipaddress10.1.34.324
[R3]interfaceloopback0
[R3-loopback0]ipaddress3.3.3.3255.255.255.255#该地址作为RP的地址
[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.34.30.0.0.0
[R3-ospf-1-area-0.0.0.0]network3.3.3.30.0.0.0

R4的基础配置如下:

[R4]interfaceGigabitEthernet0/0/0
[R4-GigabitEthernet0/0/0]ipaddress10.1.14.4255.255.255.0
[R4]interfaceGigabitEthernet0/0/1
[R4-GigabitEthernet0/0/1]ipaddress10.1.34.4255.255.255.0
[R4]interfaceGigabitEthernet0/0/2
[R4-GigabitEthernet0/0/2]ipaddress10.1.1.254255.255.255.0
[R4]ospf1router-id4.4.4.4
[R4-ospf-1]area0
[R4-ospf-1-area-0.0.0.0]network10.1.14.40.0.0.0
[R4-ospf-1-area-0.0.0.0]network10.1.34.40.0.0.0
[R4-ospf-1-area-0.0.0.0]network1.1.1.2540.0.0.0
[R4-ospf-1-area-0.0.0.0]quit
[R4-ospf-1]silent-interfaceGigabitEthernet0/0/2

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

R1的配置如下:

[R1]multicastrouting-enable
[R1]interfaceGigabitEthernet0/0/0
[R1-GigabitEthernet0/0/0]pimsm#在接口上激活PIM-SM
[R1]interfaceGigabitEthernet0/0/1
[R1-GigabitEthernet0/0/1]pimsm#在接口上激活PIM-SM
[R1]pim
[R1-pim]static-rp3.3.3.3#设置静态RP地址3.3.3.3

R2的配置如下:

[R2]multicastrouting-enable
[R2]interfaceGigabitEthernet0/0/0
[R2-GigabitEthernet0/0/0]pimsm
[R2]interfaceGigabitEthernet0/0/1
[R2-GigabitEthernet0/0/1]pimsm
[R2]interfaceGigabitEthernet0/0/2
[R2-GigabitEthernet0/0/2]pimsm
[R2]pim
[R2-pim]static-rp3.3.3.3

R3的配置如下:

[R3]multicastrouting-enable
[R3]interfaceGigabitEthernet0/0/0
[R3-GigabitEthernet0/0/0]pimsm
[R3]interfaceGigabitEthernet0/0/1
[R3-GigabitEthernet0/0/1]pimsm
[R3]interfaceloopback0
[R3-loopback0]pimsm
[R3]pim
[R3-pim]static-rp3.3.3.3

R4的配置如下:

[R4]multicastrouting-enable
[R4]interfaceGigabitEthernet0/0/0
[R4-GigabitEthernet0/0/0]pimsm
[R4]interfaceGigabitEthernet0/0/1
[R4-GigabitEthernet0/0/1]pimsm
[R4]interfaceGigabitEthernet0/0/2
[R4-GigabitEthernet0/0/2]igmpenable#连接组播接收者的接口激活IGMP
[R4]pim
[R4-pim]static-rp3.3.3.3

完成配置后,先做一下初步的验证:

displaypimneighbor
VPN-Instance:publicnet
TotalNumberofNeighbors=2
NeighborInterfaceUptimeExpiresDr-PriorityBFD-Session
10.1.14.1GE0/0/0004000241N
10.1.34.3GE0/0/1003900371N

上述输出的是R4的PIM邻居表,可以看到R4发现了两个PIM邻居。在其他路由器上也做相应的查看,确保PIM邻居都发现完整了。

displaypimrp-info
VPN-Instance:publicnet
PIMSMstaticRPNumber:1
StaticRP:3.3.3.3

上面的输出查看的是R4的PIM RP信息,我们为R4手工告知了RP的地址,3.3.3.3,其实也就是R3。

组播用户加入组224.1.1.1,查看RPT的建立过程

现在组播接收者PC加入组224.1.1.1(具体的操作方法请见本手册的PIM-DM实验小节,有详细描述),这将触发PC发送IGMP成员关系报告,R4最为最后一跳路由器会从GE0/0/2口上收到这个报告,它便知道该接口下出现了组播组224.1.1.1的成员,它将建立(* , 224.1.1.1)的组播路由表项:

displaypimrouting-table
VPN-Instance:publicnet
Total1(*,G)entry;0(S,G)entry
(*,224.1.1.1)
RP:3.3.3.3
Protocol:pim-sm,Flag:WCEXT
UpTime:0004
Upstreaminterface:GigabitEthernet0/0/1
Upstreamneighbor:10.1.34.3
RPFprimeneighbor:10.1.34.3
Downstreaminterface(s)information:None

随后R4会向RPF上行接口发送(*,G)PIM Join消息,请求加入共享树RPT。R4如何判断哪个接口是RPF上行接口呢?R4通过单播路由表来判断,对于RPT,PIM路由器在做RPF检查的时候是朝向RP的,因此R4在单播路由表中查找到达RP3.3.3.3的路由,选择路由的出接口作为RPF接口,但是这里由于全网接口COST都是默认值,因此R4上关于3.3.3.3的OSPF路由在R1及R3上出现等价负载均衡,这时R4会选择R1及R3中接口IP较大的作为RPF的主邻居,也就是R3,因此R4的GE0/0/1成为RPF接口。这与上面的输出吻合。

R3在收到R4发上来的PIM Join消息后,它会创建一个(*,224.1.1.1)表项,将收到该报文的接口GE0/0/1添加到下行接口列表中,由于自己就是RP了,因此共享树的一个分支就此建立完成。

displaypimrouting-table
VPN-Instance:publicnet
Total1(*,G)entry;0(S,G)entry
(*,224.1.1.1)
RP:3.3.3.3(local)
Protocol:pim-sm,Flag:WC
UpTime:0009
Upstreaminterface:Register
Upstreamneighbor:NULL
RPFprimeneighbor:NULL
Downstreaminterface(s)information:
Totalnumberofdownstreams:1#下行接口列表
1:GigabitEthernet0/0/1
Protocol:pim-sm,UpTime:0009,Expires:0021
680c3bd0-703e-11ed-8abf-dac502259ad0.png

源注册、RP到源的SPT建立过程、组播报文的传输过程

接下去我们来观察一下源注册、RP到源的SPT建立过程及组播报文的传输过程。首先在R4上将RPT-SPT的切换设置为永远不切换,因为这个特性我们在下一步中再去关注,这里暂时忽略掉。

[R4]pim
[R4-pim]spt-switch-thresholdinfinity

使用上述配置将R4的PIM SPT切换特性设置为永远不切换。

现在组播源开始向组播组224.1.1.1发送组播数据(这可以通过ping 224.1.1.1来模拟)。组播数据到达第一跳路由器R2后,R2会将组播数据封装在单播的PIM Register报文中发往RP也就是R3。

通过在R2的GE0/0/1口上抓包,可以看到Register报文,这是一个单播包,目的地址是3.3.3.3。R3在收到这个包后,解封装发现里头是个(10.10.10.10,224.1.1.1)的组播数据包,因此在本地创建一个(10.10.10.10,224.1.1.1)表项,同时将组播数据包沿着RPT先传下去(从GE0/0/1口发出去)。另一方面,R3紧接着向源的方向(同样是借助单播路由表查找到10.10.10.10的路由来获得RPF接口)发送(10.10.10.10,224.1.1.1)的PIM Join消息,试图在自己与源之间建立一条源树SPT。

displaypimrouting-table
VPN-Instance:publicnet
Total1(*,G)entry;1(S,G)entry
(*,224.1.1.1)
RP:3.3.3.3(local)
Protocol:pim-sm,Flag:WC
UpTime:0057
Upstreaminterface:Register
Upstreamneighbor:NULL
RPFprimeneighbor:NULL
Downstreaminterface(s)information:
Totalnumberofdownstreams:1
1:GigabitEthernet0/0/1
Protocol:pim-sm,UpTime:0057,Expires:0033

(10.10.10.10,224.1.1.1)
RP:3.3.3.3(local)
Protocol:pim-sm,Flag:SPT2MSDPACT
UpTime:0022
Upstreaminterface:GigabitEthernet0/0/0
Upstreamneighbor:10.1.23.2
RPFprimeneighbor:10.1.23.2
Downstreaminterface(s)information:
Totalnumberofdownstreams:1
1:GigabitEthernet0/0/1
Protocol:pim-sm,UpTime:0022,Expires:-

R2收到这个Join消息后,将GE0/0/1口添加到(10.10.10.10,224.1.1.1)组播表项的下行接口列表中国,然后将组播流量沿着建立好的SPT转发到RP,而不再将组播流量封装到Register报文中。

dispimrouting-table
VPN-Instance:publicnet
Total0(*,G)entry;1(S,G)entry
(10.10.10.10,224.1.1.1)
RP:3.3.3.3
Protocol:pim-sm,Flag:SPTLOCACT
UpTime:0041
Upstreaminterface:GigabitEthernet0/0/2
Upstreamneighbor:NULL
RPFprimeneighbor:NULL
Downstreaminterface(s)information:
Totalnumberofdownstreams:2
1:GigabitEthernet0/0/1
Protocol:pim-sm,UpTime:0041,Expires:0049
2:Register
Protocol:pim-sm,UpTime:0041,Expires:-
6827af00-703e-11ed-8abf-dac502259ad0.png

SPT切换过程

现在,将R4上之前配置的SPT切换的相关配置去除(undo spt-switch-threshold)。在默认情况下,R4作为最后一跳路由器,只要一收到224.1.1.1的组播数据包,则立即进行SPT的切换。接着将R4的GE0/0/1口OSPF Cost稍稍调大,调节为2(默认是1),我们通过这个动作来模拟这样一个事实:“R4从R1到达源,比从R3到达源要更近”。

现在,当R4从GE0/0/1口收到第一个224.1.1.1的组播数据包时,将启动SPT切换机制,朝着源的方向(也就是R1)发送(10.10.10.10,224.1.1.1)的PIM Join消息,请求加入SPT。

R1收到这个Join消息后,创建(10.10.10.10,224.1.1.1)表项,将GE0/0/1口添加到下行接口列表,同时向R2发送Join消息。R2收到这个Join消息后,将自己的GE0/0/0口添加到(10.10.10.10,224.1.1.1)表项的下行接口列表,并开始向GE0/0/0口下传组播数据。

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

这一步完成之后,网络中的组播路径树如下所示:

68424554-703e-11ed-8abf-dac502259ad0.png

现在R4会从R1及R3收到组播数据的两份拷贝,这显然是没有意义的,因此它向R3发送一个Prune消息,将自己从RPT上剪除。R3收到这个消息后,将接口GE0/0/1从(*,224.1.1.1)表项的下行接口列表中删除,也就不再向GE0/0/1口发送组播流量了,然后发现下行接口列表为空,因此向R2发送一个Prune消息,请求将自己从SPT上修剪掉,因为它不再需要组播流量了。R2收到这个Prune消息后,将GE0/0/1口从表项的下行接口列表中删除。

最终R2的组播表项如下:

displaypimrouting-table
VPN-Instance:publicnet
Total0(*,G)entry;1(S,G)entry
(10.10.10.10,224.1.1.1)
RP:3.3.3.3
Protocol:pim-sm,Flag:SPTLOCACT
UpTime:0019
Upstreaminterface:GigabitEthernet0/0/2
Upstreamneighbor:NULL
RPFprimeneighbor:NULL
Downstreaminterface(s)information:
Totalnumberofdownstreams:2
1:GigabitEthernet0/0/0
Protocol:pim-sm,UpTime:0019,Expires:0011
2:Register
Protocol:pim-sm,UpTime:0019,Expires:-

组播路径树如下:

686aca2e-703e-11ed-8abf-dac502259ad0.png

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

    关注

    14

    文章

    7251

    浏览量

    87436
  • PIM-SM
    +关注

    关注

    0

    文章

    3

    浏览量

    6491

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

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

收藏 人收藏

    评论

    相关推荐

    LABview 通信问题

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

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

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

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

    PIM-SMPIM-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次下载

    Agilent N2X Mulitcast Protocol

    Key FeaturesComprehensive PIM-SM protocol conformance testingIndustry leading Test Manager designed
    发表于 07-28 21:22 9次下载

    基于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-DM实验配置

    R1、R2、R3、R4运行OSPF协议,打通网络的单播路由。
    的头像 发表于 11-29 09:03 1680次阅读