PIM组播协议集模式
组播pim 原理
![组播pim 原理](https://img.taocdn.com/s3/m/864cd74d78563c1ec5da50e2524de518974bd36f.png)
组播pim 原理
PIM(Protocol Independent Multicast)称为协议无关组播。
作为组播路由解决方案,它直接利用单播路由表的路由信息,对组播报文执行RPF(Reverse Path Forwarding,逆向路径转发)检查,检查通过后创建组播路由表项,从而转发组播报文。
PIM-DM(PIM-Dense Mode,协议无关组播-密集模式)基本工作原理:PIM-DM使用“推(Push)模式”转发组播报文,一般应用于组播组成员规模相对较小、相对密集的网络。
其关键工作机制包括邻居发现、扩散、剪枝、嫁接、断言:
1. 邻居发现:路由器通过周期性地向所有PIM路由器(224.0.0.13)以组播方式发送PIM Hello报文,以发现PIM邻居,维护各路由器之间的PIM邻居关系,从而构建和维护SPT。
2. 扩散:当PIM-DM网络中出现活跃的组播源之后,组播源发送的组播报文将在全网内扩散。
当PIM路由器接收到组播报文,根据单播路由表进行RPF检查通过后,就会在该路由器上创建(S,G)表项,并将该报文向网络中的所有下游节点转发。
3. 剪枝:当PIM路由器接收到组播报文后,RPF检查通过,但是下游网段没有组播报文需求。
此时PIM路由器会向上游发送剪枝报文,通知上游路由器禁止相应下游接口的转发,将其从(S,G)表项的下游接口列表中删除。
4. 嫁接:PIM-DM通过嫁接机制,使有新组成员加入的网段快速得到组播报文。
叶子路由器通过IGMP了解到与其相连的用户网段上,组播组G有新的组成员加入。
随后叶子路由器会向上游发送Graft报文,请求上游路由器恢复相应出接口转发,将其添加在(S,G)表项下游接口列表中。
PIM技术介绍-2017.04.18
![PIM技术介绍-2017.04.18](https://img.taocdn.com/s3/m/9baf21f2551810a6f52486bf.png)
PIM技术介绍目录1 PIM简介 (2)1.1 PIM-DM 简介 (2)1.2 PIM-DM 工作机制 (2)1.2.1邻居发现 (2)1.2.2构建SPT (3)1.2.3嫁接 (3)1.2.4断言 (4)1.3 PIM-SM 简介 (4)1.4 PIM-SM 工作机制 (5)1.4.1邻居发现 (5)1.4.2DR 选举 (5)1.4.3RP发现 (6)1.4.4构建RPT (8)1.4.5组播源注册 (8)1.4.6RPT 向SPT 切换 (9)1.4.7断言 (9)1.5 SSM 模型在PIM 中的实现 (10)1.5.1邻邻居发现 (10)1.5.2DR 选举 (10)1.5.3构建SPT (10)2 PIM协议报文格式 (12)2.1 PIM报文通用格式 (12)2.2 PIM Hello消息格式 (13)2.3 PIM Register消息格式 (15)2.4 PIM Register-Stop消息格式 (17)2.5 PIM Join/Prune消息格式 (18)2.6 PIM Graft/Graft-Ack消息格式 (21)2.7 PIM Bootstrap消息格式 (23)2.8 PIM Assert消息格式 (26)2.9 PIM C-RP Advertisement消息格式 (27)3 组播相关概念 (30)3.1 IP组播三种的传递方式 (30)3.2 IP组播技术体系结构 (30)1 PIM简介PIM 是Protocol Independent Multicast(协议无关组播)的简称,表示可以利用静态路由或者任意单播路由协议(包括RIP、OSPF、IS-IS、BGP 等)所生成的单播路由表为IP 组播提供路由。
组播路由与所采用的单播路由协议无关,只要能够通过单播路由协议产生相应的组播路由表项即可。
PIM 借助RPF(Reverse PathForwarding,逆向路径转发)机制实现对组播报文的转发。
PIM组播协议密集模式
![PIM组播协议密集模式](https://img.taocdn.com/s3/m/f38d63bfc77da26925c5b04f.png)
PIM组播协议密集模式(DM模式)【实验名称】PIM组播协议密集模式(DM模式)【实验目的】熟悉如何配置PIM密集模式【背景描述】你是一个某单位的网络管理员,单位有存放资料的组播服务器,,服务器为用户提供组播服务,请你满足现在的网络需求。
采用PIM的密集模式来实现。
【实现功能】实现PIM密集模式下组播流量的传输,如果没有组成员,自动修剪组播发送信息。
【实验拓扑】【实验设备】S3550-24(2台)、S2126G(1台)、S2150G(1台)、PC(4台)【实验步骤】第一步:基本配置switch(config)#hostname S1S1(config)#vlan 10 ! 创建一个vlan10S1(config-vlan)#exiS1(config)#vlan 12S1(config-vlan)#exiS1(config)#vlan 20S1(config-vlan)#exiS1(config)#vlan 100S1(config-vlan)#exiS1(config)#interface f0/24S1(config-if)#switchport mode trunk !把f0/24接口作为trunk接口S1(config-if)#switchport trunk allowed vlan remove 100 ! trunk链路不传输vlan 100的信息S1(config)#interface vlan 1S1(config-if)#ip address 192.168.1.253 255.255.255.0S1(config-if)#no shutdownS1(config)#interface vlan 10S1(config-if)#ip address 192.168.10.1 255.255.255.0 !创建一个SVI地址S1(config-if)#no shutdownS1(config)#interface vlan 12S1(config-if)#ip address 192.168.12.1 255.255.255.0S1(config-if)#no shutdownS1(config)#interface vlan 20S1(config-if)#ip address 192.168.20.1 255.255.255.0S1(config-if)#no shutdownS1(config)#interface vlan 100S1(config-if)#ip address 192.168.100.1 255.255.255.0S1(config-if)#no shutdownS1(config)#interface fastethernet f0/1 !把接口加入到vlan 10S1(config-if)#switchport access vlan 10S1(config)#interface fastethernet f0/2S1(config-if)#switchport access vlan 20S1(config)#interface fastethernet f0/12S1(config-if)#switchport access vlan 12switch(config)#hostname S2S2(config)#vlan 12S2(config-vlan)#exiS2(config)#vlan 50S2(config-vlan)#exiS2(config)#vlan 60S2(config-vlan)#exiS2(config)#vlan 100S2(config-vlan)#exiS2(config)#interface f0/24S2(config-if)#switchport mode trunkS2(config)#interface vlan 1S2(config-if)#ip address 192.168.2.253 255.255.255.0 S2(config-if)#no shutdownS2(config)#interface vlan 12S2(config-if)#ip address 192.168.12.2 255.255.255.0 S2(config)#interface vlan 50S2(config-if)#ip address 192.168.50.1 255.255.255.0 S2(config-if)#no shutdownS2(config)#interface vlan 60S2(config-if)#ip address 192.168.60.1 255.255.255.0 S2(config-if)#no shutdownS2(config)#interface fastethernet f0/1S2(config-if)#switchport access vlan 50S2(config)#interface fastethernet f0/2S2(config-if)#switchport access vlan 60S2(config)#interface fastethernet f0/12S2(config-if)#switchport access vlan 12switch(config)#hostname S2126S2126(config)#vlan 10S2126(config-vlan)#exiS2126(config)#vlan 20S2126(config-vlan)#exiS2126(config)#interface f0/1S2126(config-if)#switchport access vlan 10S2126(config)#interface f0/2S2126(config-if)#switchport access vlan 20S2126(config)#interface vlan 1S2126(config-if)#ip address 192.168.1.254S2126(config)#interface fastethernet 0/24S2126(config-if)#switchport mode trunkswitch(config)#hostname S2150S2150(config)#vlan 50S2150(config-vlan)#exiS2150(config)#vlan 60S2150(config-vlan)#exiS2150(config-if)#switchport access vlan 50S2150(config)#interface f0/2S2150(config-if)#switchport access vlan 60S2150(config)#interface vlan 1S2150(config-if)#ip address 192.168.2.254S2150(config)#interface fastethernet 0/24S2150(config-if)#switchport mode trunk第二步:配置路由协议S1(config)#router ospf ! 开启ospf进程S1(config-router)#network 192.168.1.0 0.0.0.255 area 0 !将网段加入到区域0 S1(config-router)#network 192.168.10.0 0.0.0.255 area 0S1(config-router)#network 192.168.12.0 0.0.0.255 area 0S1(config-router)#network 192.168.20.0 0.0.0.255 area 0S1(config-router)#network 192.168.100.0 0.0.0.255 area 0S2(config)#router ospfS2(config-router)#network 192.168.2.0 0.0.0.255 area 0S2(config-router)#network 192.168.12.0 0.0.0.255 area 0S2(config-router)#network 192.168.50.0 0.0.0.255 area 0S2(config-router)#network 192.168.60.0 0.0.0.255 area 0第三步:配置组播S1(config)# ip multicast-routing !开启组播功能S1(config)#interface vlan 1S1(config-if)#ip pim !默认为DM模式S1(config)#interface vlan 10S1(config-if)#ip pimS1(config)#interface vlan 12S1(config-if)#ip pimS1(config)#interface vlan 20S1(config-if)#ip pimS1(config)#interface vlan 100S1(config-if)#ip pimS2(config)# ip multicast-routingS2(config)#interface vlan 1S2(config-if)#ip pimS2(config)#interface vlan 12S2(config-if)#ip pimS2(config)#interface vlan 50S2(config-if)#ip pimS2(config-if)#ip pimS2126(config)#ip igmp profile 1 !进入igmp配置文件模式S2126(config-profile)#deny !允许所有的组播组通过。
什么是组播?让我们一起解密组播协议(IGMP、PIM)
![什么是组播?让我们一起解密组播协议(IGMP、PIM)](https://img.taocdn.com/s3/m/df36cadf370cba1aa8114431b90d6c85ec3a8803.png)
什么是组播?让我们⼀起解密组播协议(IGMP、PIM)写在前⾯:本⼈是⼀名计算机系⼤⼆的学⽣,会不定时的将我的学习笔记分享给⼤家!如果需要更多的学习资源可以通过我的⾃⾏下载!⽬录组播技术传统的点到点单播存在的问题重复流量过多消耗设备资源、带宽资源难以保证传输质量概述信息发送者:组播源接受相同的信息接受这过程⼀个组播组,并且接受者都是定义:⼀点发出,多点接应优势提⾼效率优化性能分布式应⽤缺点基于udp尽⼒⽽为报⽂重复报⽂失序缺少拥塞避免机制61、ip组播(1) 对于IP 组播,需要关注下列问题:组播源将组播信息传输到哪⾥?即组播寻址机制;⽹络中有哪些接收者?即主机注册;这些接收者需要从哪个组播源接收信息?即组播源发现;组播信息如何传输?即组播路由。
(2) IP 组播属于端到端的服务,组播机制包括以下四个部分:寻址机制:借助组播地址,实现信息从组播源发送到⼀组接收者;主机注册:允许接收者主机动态加⼊和离开某组播组,实现对组播成员的管理;组播路由:构建组播报⽂分发树(即组播数据在⽹络中的树型转发路径),并通过该分发树将报⽂从组播源传输到接收者;组播应⽤:组播源与接收者必须安装⽀持视频会议等组播应⽤的软件,TCP/IP 协议栈必须⽀持组播信息的发送和接收。
为了让组播源和组播组成员进⾏通信,需要提供⽹络层组播地址,即IP 组播地址。
同时必须存在⼀种技术将IP 组播地址映射为链路层的组播MAC 地址。
(3) IP 组播地址IANA(Internet Assigned Numbers Authority,互联⽹编号分配委员会)将D类地址空间分配给IPv4组播使⽤,范围从224.0.0.0到239.255.255.255,具体分类及其含义如下表所⽰。
组播地址D类地址范围含义224.0.0.0-224.0.0.255为路由协议预留的永久组地址224.0.1.0-231.255.255.255 /233.0.0.0-238.255.255.255⽤户可⽤的asm临时组地址,全⽹范围有效232.0.0.0-232.255.255.255⽤户可⽤ssm临时组地址,全⽹范围内有效239.0.0.0-239.255.255.255⽤户可⽤的asm临时组地址,尽在特定的本地管理域内有效,陈伟本地管理组播地址D类地址范围含义IPv4 组播地址的范围及含义说明:组播组中的成员是动态的,主机可以在任何时刻加⼊或离开组播组。
PIM
![PIM](https://img.taocdn.com/s3/m/565e3b1a10a6f524ccbf85b3.png)
组播路由协议PIM-SM 概述PIM-SM (Protocol Independent Multicast-Sparse Mode)––––––独立于协议的组播稀疏模式。
PIM,独立于协议,这主要是指PIM不依赖于某种特定的单播路由协议,它只是利用单播路由协议建立起来的单播路由表来完成RPF校验,而非维护一个组播路由表来实现组播的转发。
因为PIM不需要保持自己的路由表,所以它不需要象其它协议那样发送或接收组播路由更新,这样PIM的开销也就低了许多。
以下我将结合例子来简单讲述PIM-SM协议:一.P IM-SM的工作过程(共享树的加入剪枝)PIM-SM的操作是围绕着一个单向的共享树来展开的,这里的单向是指:从源到接收者方向。
在共享树上,有一个根节点----RP,共享树上的组播数据流要依赖于RP来向下转发,因此共享树也叫RP树,通常称作RPT。
那么源的数据流是如何到达接收者的呢?见下图:ReceiverB是个接收者,想接收HostA的数据流,则它向路由器C发送一个IGMP加入报文(该报文中包含一个组播组,即B想接收的那个组播流的多播地址),RouterC收到这个加入报文后,它要检查看是否存在有关于该多播地址的路由条目,没有,则创建一个(*,G)路由条目(这里的G就是目标多播组的组地址),并将收到加入报文的接口添加在这个路由条目的出接口中。
同时这也引发了RouterC向RP(图中的RouterD)发送一个PIM(*,G)加入消息,以便能够加入共享树。
至于routerC 是如何知道RP的,我们将在以后讨论。
RP收到这个(*,G)加入消息,也检查看是否存在有关于该多播地址的路由条目,有则将收到消息的接口加入到相应条目的出接口表中(即自己与RouterC相连的接口),如果没有相应的路由条目,则创建,并也在其出接口表中添加收到消息的接口。
其实组播路由器在转发组播数据流的时候,并不关心其下面有多少个接收者,他们分别位于何处,它只关心组播数据流是否有相应的出接口,有就将它们从出接口转发出去,没有就丢掉。
组播路由协议
![组播路由协议](https://img.taocdn.com/s3/m/c9d778d56394dd88d0d233d4b14e852458fb3912.png)
组播路由协议组播路由协议(Multicast Routing Protocol)是一种网络协议,用于支持组播传输,将数据从一个源节点传输到多个目的节点。
组播路由协议通过建立一棵组播树来实现数据的传输,其中源节点作为根节点,目的节点作为叶子节点。
组播路由协议有多种类型,常见的包括DVMRP、IGMP、PIM和MOSPF等。
每种协议都有各自的特点和适用场景。
其中,Distance Vector Multicast Routing Protocol(DVMRP)是一种基于距离向量的组播路由协议。
它使用了类似于BGP的距离矩阵来选择最佳的路径,并通过向邻居节点广播消息来更新路由表。
DVMRP适用于小型网络,但在大型网络中可能产生大量的控制消息。
Internet Group Management Protocol(IGMP)是一种用于在主机和组播路由器之间交换组播组信息的协议。
它允许主机加入和离开组播组,并向路由器报告组播组成员。
IGMP采用了查询-报告机制,通过查询消息和报告消息来维护组播组的成员关系。
Protocol Independent Multicast(PIM)是一种独立于底层网络的组播路由协议。
它可以与各种底层网络协议一起使用,如IP、ATM和Frame Relay等。
PIM使用了两种模式:稠密模式(Dense Mode)和稀疏模式(Sparse Mode)。
稠密模式适用于具有大量组播组成员的网络,而稀疏模式适用于成员分布较不密集的网络。
Multicast Open Shortest Path First(MOSPF)是一种基于OSPF协议的组播路由协议。
它通过向OSPF协议添加组播扩展来支持组播传输。
MOSPF使用与OSPF相同的链路状态数据库(LSDB)和最短路径树(SPF)算法来计算最优的组播路径。
无论是哪种组播路由协议,其基本目标是找到一条最佳的路径,以最小的开销实现数据的组播传输。
pim协议
![pim协议](https://img.taocdn.com/s3/m/1940c52854270722192e453610661ed9ad5155d5.png)
pim协议PIM(Protocol Independent Multicast)协议是一种网络组播协议,旨在实现高效的组播数据传输。
PIM协议并不依赖于任何特定的单播协议,而是可以与各种单播协议结合使用。
它可以在不同的网络环境下实现多播数据的传输,包括以IPv4和IPv6为基础的网络。
PIM协议的主要目标是实现高效的组播数据传输,以减少网络带宽的消耗和提高数据传输的速度。
PIM协议使用两种基本的路由协议来实现组播转发:PIM-DM(PIM-Dense Mode)和PIM-SM(PIM-Sparse Mode)。
PIM-DM是一种基于洪泛(flooding)的路由协议,适用于网络中的密集型组播场景。
当组播数据包到达一个路由器时,该路由器会将数据包发送到所有的接口上,直到数据包到达组播组的所有成员。
然而,这种方法会产生大量的数据副本,造成网络带宽的浪费。
因此,在网络拓扑中使用PIM-DM协议需要谨慎考虑。
与之相对的,PIM-SM采用一种树状结构的路由方式,只在需要的时候才将组播数据发送到具体的接口。
PIM-SM通过建立组播树(Multicast Tree)来实现组播数据的传输。
这个树的根节点是源节点,叶节点是接收组播数据的成员节点。
PIM-SM 协议使用广播及其他技术来构建和维护组播树,以动态地调整组播数据的传输路径。
这种方式可以有效地减少组播数据在网络中的传播范围,节约了网络资源的开销。
除了PIM-DM和PIM-SM,还有扩展的PIM协议:PIM-SSM (PIM-Source Specific Multicast)和PIM-BSR(PIM-Bootstrap Router)。
PIM-SSM是一种源特定的组播协议,只允许源IP 地址和组播组的IP地址相匹配的数据通过,极大地减少了组播数目。
PIM-BSR则是用来识别和维护网络中的组播源和组播组的协议。
总而言之,PIM协议是一种实现高效组播数据传输的协议。
组播 ---PIM
![组播 ---PIM](https://img.taocdn.com/s3/m/0634841dfc4ffe473368ab64.png)
实验五、配置PIM auto-rp环境:三台路由器串口相连,其它的配置如图所示要求:1. R1,R2,R3配置ospf 并把所有接口加入到area 02.配置R1为rp,配置R2为映射代理,把R3加入239.3.3.3组3.练习本课所有show命令步骤一:在每个路由器上配置1个loopback 口,并配置三台路由器接口使其连通。
R1的配置R1(config)#interface Loopback0R1(config-if)# ip address 30.1.1.1 255.255.255.0R1(config)#interface Serial0R1(config-if)# ip address 10.1.1.1 255.255.255.0R1(config-if)# clockrate 64000R1(config-if)#n o shutdownR2的配置R2(config)#interface Loopback0R2(config-if)# ip address 40.1.1.1 255.255.255.0R2(config)#interface Serial0R2(config-if)# ip address 20.1.1.1 255.255.255.0R2(config-if)#clockrate 64000R2(config-if)#no shutdownR2(config)#interface Serial1R2(config-if)# ip address 10.1.1.2 255.255.255.0R2(config-if)#no shutdownR3的配置R3(config)#interface Loopback0R3(config-if)# ip address 50.1.1.1 255.255.255.0R3(config)#interface Serial1R3(config-if)# ip address 20.1.1.2 255.255.255.0R3(config-if)#no shutdown步骤二:配置ospf路由协议,使其连通R1的配置R1(config)#router ospf 1R1(config-router)# network 10.1.1.0 0.0.0.255 area 0R1(config-router)# network 30.1.1.0 0.0.0.255 area 0R2的配置R2(config)#router ospf 1R2(config-router)#network 10.1.1.0 0.0.0.255 area 0R2(config-router)# network 20.1.1.0 0.0.0.255 area 0R2(config-router)# network 40.1.1.0 0.0.0.255 area 0R3的配置R3(config)#router ospf 1R3(config-router)# network 20.1.1.0 0.0.0.255 area 0R3(config-router)# network 50.1.1.0 0.0.0.255 area 0步骤三:配置R1为rp,配置R2为映射代理,把R3加入239.3.3.3组R1的配置R1(config)#ip multicast-routing →启用多播协议R1(config)#interface Loopback0R1(config-if)#ip pim sparse-mode →接口PIM模式为稀疏R1(config)#interface Serial0R1(config-if)#ip pim sparse-modeR1(config)#ip pim send-rp-announce Loopback0 scope 5 →指定R1为RPR2的配置R2(config)#ip multicast-routingR2(config)#interface Loopback0R2(config-if)#ip pim sparse-modeR2(config)#interface Serial0R2(config-if)#ip pim sparse-modeR2(config)#interface Serial1R2(config-if)#ip pim sparse-modeR2(config)#ip pim send-rp-discovery Loopback0 scope 5 →将R2指定为映射代理R3的配置R3(config)#ip multicast-routingR3(config)#interface Loopback0R3(config-if)#ip pim sparse-modeR3(config-if)#ip igmp join-group 239.3.3.3 →将此接口加入到组239.3.3.3R3(config)#interface Serial1R3(config-if)#ip pim sparse-mode步骤四:查看组播路由表R1#sh ip mroute 239.3.3.3IP Multicast Routing TableFlags: D - Dense, S - Sparse, B - Bidir Group, s - SSM Group, C - Connected, L - Local, P - Pruned, R - RP-bit set, F - Register flag,T - SPT-bit set, J - Join SPT, M - MSDP created entry,X - Proxy Join Timer Running, A - Candidate for MSDP Advertisement,U - URD, I - Received Source Specific Host Report, Z - Multicast TunnelY - Joined MDT-data group, y - Sending to MDT-data groupOutgoing interface flags: H - Hardware switchedTimers: Uptime/ExpiresInterface state: Interface, Next-Hop or VCD, State/Mode(*, 239.3.3.3), 00:37:56/stopped, RP 30.1.1.1, flags: SIncoming interface: Null, RPF nbr 0.0.0.0Outgoing interface list:Serial0, Forward/Sparse, 00:37:56/00:03:07(10.1.1.1, 239.3.3.3), 00:00:04/00:02:56, flags: P →学来对端的基于源的多播路由Incoming interface: Serial0, RPF nbr 0.0.0.0Outgoing interface list: Null(30.1.1.1, 239.3.3.3), 00:00:04/00:03:28, flags: TIncoming interface: Loopback0, RPF nbr 0.0.0.0Outgoing interface list:Serial0, Forward/Sparse, 00:00:05/00:03:24(50.1.1.1, 239.3.3.3), 00:00:12/00:03:17, flags: PXIncoming interface: Serial0, RPF nbr 10.1.1.2Outgoing interface list: NullR2#sh ip mroute 239.3.3.3IP Multicast Routing TableFlags: D - Dense, S - Sparse, B - Bidir Group, s - SSM Group, C - Connected, L - Local, P - Pruned, R - RP-bit set, F - Register flag,T - SPT-bit set, J - Join SPT, M - MSDP created entry,X - Proxy Join Timer Running, A - Candidate for MSDP Advertisement,U - URD, I - Received Source Specific Host Report, Z - Multicast TunnelY - Joined MDT-data group, y - Sending to MDT-data groupOutgoing interface flags: H - Hardware switchedTimers: Uptime/ExpiresInterface state: Interface, Next-Hop or VCD, State/Mode(*, 239.3.3.3), 00:43:06/stopped, RP 30.1.1.1, flags: SFIncoming interface: Serial1, RPF nbr 10.1.1.1Outgoing interface list:Serial0, Forward/Sparse, 00:42:48/00:03:02(20.1.1.1, 239.3.3.3), 00:00:22/00:03:07, flags: TIncoming interface: Serial0, RPF nbr 0.0.0.0, RegisteringOutgoing interface list:Serial1, Forward/Sparse, 00:00:22/00:03:07(40.1.1.1, 239.3.3.3), 00:00:23/00:03:08, flags: FTIncoming interface: Loopback0, RPF nbr 0.0.0.0, RegisteringOutgoing interface list:Serial0, Forward/Sparse, 00:00:24/00:03:06(50.1.1.1, 239.3.3.3), 00:01:39/00:01:53, flags:Incoming interface: Serial0, RPF nbr 20.1.1.2Outgoing interface list:Serial1, Forward/Sparse, 00:01:39/00:01:53R3#sh ip mroute 239.3.3.3IP Multicast Routing TableFlags: D - Dense, S - Sparse, B - Bidir Group, s - SSM Group, C - Connected, L - Local, P - Pruned, R - RP-bit set, F - Register flag,T - SPT-bit set, J - Join SPT, M - MSDP created entry,X - Proxy Join Timer Running, A - Candidate for MSDP Advertisement,U - URD, I - Received Source Specific Host Report, Z - Multicast TunnelY - Joined MDT-data group, y - Sending to MDT-data groupOutgoing interface flags: H - Hardware switchedTimers: Uptime/ExpiresInterface state: Interface, Next-Hop or VCD, State/Mode(*, 239.3.3.3), 00:46:06/stopped, RP 30.1.1.1, flags: SJCLFIncoming interface: Serial1, RPF nbr 20.1.1.1Outgoing interface list:Loopback0, Forward/Sparse, 00:46:06/00:02:27(50.1.1.1, 239.3.3.3), 00:03:54/00:03:06, flags: LFTIncoming interface: Loopback0, RPF nbr 0.0.0.0, RegisteringOutgoing interface list:Serial1, Forward/Sparse, 00:00:32/00:02:58步骤五:查看接口组播信息R1#sh ip pim int s0Address Interface Ver/ Nbr Query DR DRMode Count Intvl Prior10.1.1.1 Serial0 v2/S 1 30 1 0.0.0.0R1#sh ip pim int lo 0Address Interface Ver/ Nbr Query DR DRMode Count Intvl Prior30.1.1.1 Loopback0 v2/S 0 30 1 30.1.1.1 R2#sh ip pim int s0Address Interface Ver/ Nbr Query DR DRMode Count Intvl Prior20.1.1.1 Serial0 v2/S 1 30 1 0.0.0.0R2#sh ip pim int s1Address Interface Ver/ Nbr Query DR DRMode Count Intvl Prior10.1.1.2 Serial1 v2/S 1 30 1 0.0.0.0R2#sh ip pim int lo 0Address Interface Ver/ Nbr Query DR DRMode Count Intvl Prior40.1.1.1 Loopback0 v2/S 0 30 1 40.1.1.1 R3#sh ip pim int s1Address Interface Ver/ Nbr Query DR DRMode Count Intvl Prior20.1.1.2 Serial1 v2/S 1 30 1 0.0.0.0R3#sh ip pim int lo 0Address Interface Ver/ Nbr Query DR DRMode Count Intvl Prior50.1.1.1 Loopback0 v2/S 0 30 1 50.1.1.1 步骤六:查看组播邻居R1#sh ip pim neighborPIM Neighbor TableNeighbor Interface Uptime/Expires Ver DR Address Prio/Mode 10.1.1.2 Serial0 01:59:55/00:01:38 v2 1 / SR2#sh ip pim neiPIM Neighbor TableNeighbor Interface Uptime/Expires Ver DR Address Prio/Mode 20.1.1.2 Serial0 02:00:36/00:01:17 v2 1 / S10.1.1.1 Serial1 02:03:04/00:01:21 v2 1 / SR3#sh ip pim neighborPIM Neighbor TableNeighbor Interface Uptime/Expires Ver DR Address Prio/Mode 20.1.1.1 Serial1 02:03:21/00:01:35 v2 1 / S步骤七:查看rp映射表R1#sh ip pim rp mappingPIM Group-to-RP MappingsThis system is an RP (Auto-RP)Group(s) 224.0.0.0/4RP 30.1.1.1 (?), v2v1Info source: 40.1.1.1 (?), elected via Auto-RPUptime: 00:43:36, expires: 00:02:59R2#sh ip pim rp mappingPIM Group-to-RP MappingsThis system is an RP-mapping agent (Loopback0)Group(s) 224.0.0.0/4RP 30.1.1.1 (?), v2v1Info source: 30.1.1.1 (?), elected via Auto-RPUptime: 00:48:13, expires: 00:02:44R3#sh ip pim rp mappingPIM Group-to-RP MappingsGroup(s) 224.0.0.0/4RP 30.1.1.1 (?), v2v1Info source: 40.1.1.1 (?), elected via Auto-RPUptime: 00:50:26, expires: 00:02:03步骤八:ping 组播地址测试R1#ping 239.3.3.3Type escape sequence to abort.Sending 1, 100-byte ICMP Echos to 239.3.3.3, timeout is 2 seconds: Reply to request 0 from 20.1.1.2, 80 ms 此显示为已通Reply to request 0 from 20.1.1.2, 112 msR2#ping 239.3.3.3Type escape sequence to abort.Sending 1, 100-byte ICMP Echos to 239.3.3.3, timeout is 2 seconds: Reply to request 0 from 20.1.1.2, 56 msReply to request 0 from 20.1.1.2, 136 msReply to request 0 from 20.1.1.2, 80 msR3#ping 239.3.3.3Type escape sequence to abort.Sending 1, 100-byte ICMP Echos to 239.3.3.3, timeout is 2 seconds: Reply to request 0 from 50.1.1.1, 8 ms步骤九:查看当前配置结果R1#sh runhostname R1!ip multicast-routing!interface Loopback0ip address 30.1.1.1 255.255.255.0ip pim sparse-mode!interface Serial0ip address 10.1.1.1 255.255.255.0ip pim sparse-modeclockrate 64000!router ospf 1network 10.1.1.0 0.0.0.255 area 0network 30.1.1.0 0.0.0.255 area 0!ip pim send-rp-announce Loopback0 scope 5 endR2#sh runhostname R2!ip multicast-routing!interface Loopback0ip address 40.1.1.1 255.255.255.0ip pim sparse-mode!interface Serial0ip address 20.1.1.1 255.255.255.0ip pim sparse-modeclockrate 64000!interface Serial1ip address 10.1.1.2 255.255.255.0ip pim sparse-mode!router ospf 1network 10.1.1.0 0.0.0.255 area 0network 20.1.1.0 0.0.0.255 area 0network 40.1.1.0 0.0.0.255 area 0!ip pim send-rp-discovery Loopback0 scope 5 !endR3#sh runhostname R3!ip multicast-routing!interface Loopback0ip address 50.1.1.1 255.255.255.0ip pim sparse-modeip igmp join-group 239.3.3.3!interface Serial1ip address 20.1.1.2 255.255.255.0ip pim sparse-mode!router ospf 1network 20.1.1.0 0.0.0.255 area 0network 50.1.1.0 0.0.0.255 area 0!end多播实验(二)环境:三台路由器由串口相联,连接如下图。
PIM协议分析组播路由协议的工作原理与应用
![PIM协议分析组播路由协议的工作原理与应用](https://img.taocdn.com/s3/m/d1f4a480d4bbfd0a79563c1ec5da50e2524dd124.png)
PIM协议分析组播路由协议的工作原理与应用PIM协议(Protocol Independent Multicast)是一种用于实现组播路由的协议。
它的设计初衷是为了解决互联网上的组播通信问题。
本文将分析PIM协议的工作原理以及其在组播路由中的应用。
一、PIM协议的工作原理PIM协议是一种基于源的组播路由协议,主要用于构建组播树并实现组播数据的传输。
在PIM协议中,有两种重要的角色:组播源和组播接收者。
首先,组播源负责产生并发送组播数据。
当组播源发送组播数据时,它将该数据通过本地接口传递给PIM进程。
PIM进程将根据网络情况和配置信息,决定选择哪条出局口进行数据传输。
其次,组播接收者是指希望接收组播数据的主机。
组播接收者通过在组播组上加入的方式,表达他们的兴趣。
当接收者加入了组播组后,PIM协议将自动为其建立一条到源的最佳路径,以便接收组播数据。
PIM协议主要有两种模式:稠密模式(dense mode)和稀疏模式(sparse mode)。
稠密模式适用于组播数据较为密集的情况,而稀疏模式适用于组播数据较为稀疏的情况。
在稠密模式中,PIM协议使用洪泛(flooding)的方式来传递组播数据。
当组播源发送组播数据时,PIM协议将该数据通过所有接口传递给邻居路由器,邻居路由器再转发给它们的邻居,以此类推。
这种方式的优点是简单直接,但是在网络中会造成大量的冗余传输。
在稀疏模式中,PIM协议使用树状结构来传递组播数据,树的根节点是组播源,叶节点是组播接收者。
在建立组播树时,PIM协议使用了Rendezvous Point(RP)机制。
RP是组播树的核心节点,负责维护组播会话的状态,并指导组播数据的传输路径。
当组播源发送数据时,它会通过RP将数据传递给其他路由器,然后再由这些路由器传递给组播接收者。
稀疏模式可以减少冗余传输,提高网络效率。
二、PIM协议的应用PIM协议在组播路由中具有广泛的应用。
以下将介绍PIM协议在几个方面的具体应用。
PIM组播协议稀疏模式SM模式
![PIM组播协议稀疏模式SM模式](https://img.taocdn.com/s3/m/55acc9db76a20029bd642d33.png)
你是一个某单位的网络管理员,单位有存放资料的组播服务器,,服务器为用户提供组播服务,请你满足现在的网络需求。
采用PIM的稀疏模式来实现PIM组播协议稀疏模式(SM模式)【实验名称】PIM组播协议稀疏模式(SM模式)【实验目的】熟悉如何配置PIM稀疏模式【背景描述】你是一个某单位的网络管理员,单位有存放资料的组播服务器,,服务器为用户提供组播服务,请你满足现在的网络需求。
采用PIM的稀疏模式来实现。
【实现功能】实现PIM稀疏模式下组播流量的传输,只有请求加入组才能获得组播流量【实验拓扑】【实验设备】S3550-24(2台)、S2126G(1台)、S2150G(1台)、PC(4台)【实验步骤】第一步:基本配置switch(config)#hostname S1S1(config)#vlan 10 ! 创建一个vlan10S1(config-vlan)#exiS1(config)#vlan 12S1(config-vlan)#exiS1(config)#vlan 20S1(config-vlan)#exiS1(config)#vlan 30S1(config-vlan)#exiS1(config)#vlan 100S1(config-vlan)#exiS1(config)#interface f0/24S1(config-if)#switchport mode trunk !把f0/24接口作为trunk接口S1(config-if)#switchport trunk allowed vlan remove 100 ! trunk链路不传输vlan 100的信息S1(config)#interface vlan 1S1(config-if)#ip address 192.168.1.253 255.255.255.0S1(config-if)#no shutdownS1(config)#interface vlan 10S1(config-if)#ip address 192.168.10.1 255.255.255.0S1(config-if)#no shutdownS1(config)#interface vlan 12S1(config-if)#ip address 192.168.12.1 255.255.255.0S1(config-if)#no shutdownS1(config)#interface vlan 20S1(config-if)#ip address 192.168.20.1 255.255.255.0S1(config-if)#no shutdownS1(config)#interface vlan 30S1(config-if)#ip address 192.168.30.1 255.255.255.0 S1(config-if)#no shutdownS1(config)#interface vlan 100S1(config-if)#ip address 192.168.100.1 255.255.255.0 S1(config-if)#no shutdownS1(config)#interface fastethernet f0/1S1(config-if)#switchport access vlan 10S1(config)#interface fastethernet f0/2S1(config-if)#switchport access vlan 20S1(config)#interface fastethernet f0/3S1(config-if)#switchport access vlan 30S1(config)#interface fastethernet f0/12S1(config-if)#switchport access vlan 12switch(config)#hostname S2S2(config)#vlan 12S2(config-vlan)#exiS2(config)#vlan 50S2(config-vlan)#exiS2(config)#vlan 60S2(config-vlan)#exiS2(config)#vlan 100S2(config-vlan)#exiS2(config)#interface f0/24S2(config-if)#switchport mode trunkS2(config)#interface vlan 1S2(config-if)#ip address 192.168.2.253 255.255.255.0 S2(config-if)#no shutdownS2(config)#interface vlan 12S2(config-if)#ip address 192.168.12.2 255.255.255.0 S2(config)#interface vlan 50S2(config-if)#ip address 192.168.50.1 255.255.255.0 S2(config-if)#no shutdownS2(config)#interface vlan 60S2(config-if)#ip address 192.168.60.1 255.255.255.0 S2(config-if)#no shutdownS2(config)#interface fastethernet f0/1S2(config-if)#switchport access vlan 50S2(config)#interface fastethernet f0/2S2(config-if)#switchport access vlan 60S2(config)#interface fastethernet f0/12S2(config-if)#switchport access vlan 12switch(config)#hostname S2126S2126(config)#vlan 10S2126(config-vlan)#exiS2126(config)#vlan 20S2126(config-vlan)#exiS2126(config)#interface f0/1S2126(config-if)#switchport access vlan 10 S2126(config)#interface f0/2S2126(config-if)#switchport access vlan 20 S2126(config)#interface vlan 1S2126(config-if)#ip address 192.168.1.254 S2126(config)#interface fastethernet 0/24 S2126(config-if)#switchport mode trunkswitch(config)#hostname S2150S2150(config)#vlan 50S2150(config-vlan)#exiS2150(config)#vlan 60S2150(config-vlan)#exiS2150(config)#interface f0/1S2150(config-if)#switchport access vlan 50S2150(config)#interface f0/2S2150(config-if)#switchport access vlan 60S2150(config)#interface vlan 1S2150(config-if)#ip address 192.168.2.254S2150(config)#interface fastethernet 0/24S2150(config-if)#switchport mode trunk第二步:配置路由协议S1(config)#router ospf ! 开启ospf进程S1(config-router)#network 192.168.1.0 0.0.0.255 area 0 !将网段加入到区域0 S1(config-router)#network 192.168.10.0 0.0.0.255 area 0S1(config-router)#network 192.168.12.0 0.0.0.255 area 0S1(config-router)#network 192.168.20.0 0.0.0.255 area 0S1(config-router)#network 192.168.30.0 0.0.0.255 area 0S1(config-router)#network 192.168.100.0 0.0.0.255 area 0S2(config)#router ospfS2(config-router)#network 192.168.2.0 0.0.0.255 area 0S2(config-router)#network 192.168.12.0 0.0.0.255 area 0S2(config-router)#network 192.168.50.0 0.0.0.255 area 0S2(config-router)#network 192.168.60.0 0.0.0.255 area 0第三步:配置组播S1(config)# ip multicast-routing !开启组播功能S1(config)# ip pim rp-address 192.168.30.1 !静态指定RP S1(config)#interface vlan 1S1(config-if)#ip pimS1(config-if)#ip pim sparse-mode !设置PIM模式为SM模式S1(config)#interface vlan 10S1(config-if)#ip pimS1(config-if)#ip pim sparse-modeS1(config)#interface vlan 12S1(config-if)#ip pimS1(config-if)#ip pim sparse-modeS1(config)#interface vlan 20S1(config-if)#ip pimS1(config-if)#ip pim sparse-modeS1(config)#interface vlan 100S1(config-if)#ip pimS1(config-if)#ip pim sparse-modeS2(config)# ip multicast-routingS2(config)# ip pim rp-address 192.168.30.1S2(config)#interface vlan 1S2(config-if)#ip pimS2(config-if)#ip pim sparse-modeS2(config)#interface vlan 12S2(config-if)#ip pimS1(config-if)#ip pim sparse-modeS2(config)#interface vlan 50S2(config-if)#ip pimS2(config-if)#ip pim sparse-modeS2(config)#interface vlan 60S2(config-if)#ip pimS2(config-if)#ip pim sparse-modeS2126(config)#ip igmp profile 1 !进入igmp配置文件模式S2126(config-profile)#deny !允许所有的组播组通过。
路由器组播协议书
![路由器组播协议书](https://img.taocdn.com/s3/m/53319e8788eb172ded630b1c59eef8c75fbf950d.png)
路由器组播协议书路由器组播协议(Multicast Routing Protocol)是一种网络协议,用于在互联网中实现组播功能。
组播是一种多对多的通信形式,它允许数据包从一个源节点发送到一组目标节点。
相比于单播(点对点)和广播(一对多)通信,组播可以在网络中减少数据包的传输量,提高网络效率。
路由器组播协议定义了路由器之间如何协同工作,以实现组播功能。
路由器组播协议有多种类型,包括DVMRP(Distance Vector Multicast Routing Protocol)、PIM(Protocol Independent Multicast)、IGMP(Internet Group Management Protocol)等。
下面将分别介绍这些协议的特点和原理。
DVMRP是一种最早的路由器组播协议,它基于距离矢量路由算法,通过维护每个目标组播组的树形结构来实现组播功能。
DVMRP协议使用TTL(Time to Live)字段来控制组播数据包的传输范围,每个路由器都根据收到的组播数据包创建或维护一棵组播树,并使用路由表来决定数据包的转发路径。
DVMRP协议的缺点是在大规模网络中的扩展性较差。
PIM协议是一种较新的路由器组播协议,它与具体的单播路由协议无关,可以与任何单播路由协议配合使用。
PIM协议采用分层的组播模型,根据网络中各个路由器上的组播组成员关系,构建组播分发树。
PIM协议分为密集模式(PIM-DM)和稀疏模式(PIM-SM)两种工作模式,根据网络中组播的密度选择合适的模式。
在PIM-SM模式下,网络中仅有一部分路由器作为组播组的转发节点,其他路由器只需在需要时加入组播树。
IGMP协议是一种在主机和路由器之间交互的协议,用于管理主机对组播组的成员关系。
主机通过发送IGMP报文给路由器,告知它们对特定组播组的兴趣,路由器据此来决定是否转发组播数据包。
IGMP协议定义了三种报文类型:成员查询、成员报告和成员离开。
组播主机之间采用的通信协议
![组播主机之间采用的通信协议](https://img.taocdn.com/s3/m/240cc30ff6ec4afe04a1b0717fd5360cbb1a8d5d.png)
组播主机之间采用的通信协议组播(Multicast)是一种在网络中一对多通信的方式,它可以实现一次传输多个数据包给特定的一组主机。
在组播通信中,主机通过采用特殊的通信协议进行数据的组播和接收。
本文将介绍组播主机之间常用的通信协议,包括Internet组管理协议(IGMP)和组播路由协议(PIM)。
一、Internet组管理协议(IGMP)Internet组管理协议(Internet Group Management Protocol,简称IGMP)是组播通信中用于管理主机和路由器之间的组播组成员关系的协议。
它使得主机可以通过向路由器发送IGMP报文,表明自己希望加入或离开某个组播组,从而实现组播数据的传输。
IGMP的工作原理如下:当一个主机要加入或离开一个组播组时,它会发送IGMP报文给所连接的路由器。
路由器收到报文后,会根据其中的信息,更新自己的组播组成员表。
这样,路由器就知道哪些主机属于哪个组播组,从而能够正确地转发组播数据。
IGMP报文的格式包括报文类型、报文校验和、组播组地址等字段。
其中,报文类型指示了该报文是加入组播组还是离开组播组,组播组地址指明了加入或离开的组播组的地址。
通过这些字段,IGMP实现了组播通信中的成员管理。
二、组播路由协议(PIM)组播路由协议(Protocol Independent Multicast,简称PIM)是用于实现组播数据在网络中的路由转发的协议。
PIM协议主要分为两种模式:稠密模式(Dense-mode)和稀疏模式(Sparse-mode),根据网络的特点选择适合的模式。
稠密模式适用于网络中组播组成员较多的情况。
在稠密模式下,路由器会广播组播数据,即使没有任何主机要接收。
这样可以确保组播数据能够到达每一个主机,但会产生大量的冗余数据。
稠密模式使用的PIM协议是PIM-DM。
稀疏模式适用于网络中组播组成员较少的情况。
在稀疏模式下,路由器只有在有主机要接收组播数据时,才会转发组播数据。
PIM协议解析组播路由协议的工作原理与组播树构建策略
![PIM协议解析组播路由协议的工作原理与组播树构建策略](https://img.taocdn.com/s3/m/8ed23661580102020740be1e650e52ea5518ce05.png)
PIM协议解析组播路由协议的工作原理与组播树构建策略随着互联网的快速发展,网络通信的需求也在不断增加。
而组播技术作为一种高效的数据传输方式,被广泛应用于多媒体、在线教育、实时通信等领域。
在组播通信中,路由协议起到了至关重要的作用,而PIM(Protocol Independent Multicast)协议作为一种常用的组播路由协议,具备了良好的适应性和兼容性,可用于不同的网络环境。
本文将从PIM协议的工作原理和组播树构建策略两方面进行探讨。
一、PIM协议的工作原理PIM协议是一种基于源的组播路由协议,它通过建立一棵组播树来实现数据的传输。
在PIM协议中,有两种关键的角色,分别是RP (Rendezvous Point)和DR(Designated Router)。
首先,RP作为数据的分发点,负责将数据从源节点转发到组播树上的其他节点。
在PIM协议中,RP的选举可以采用静态配置或自动选举的方式,具体选择哪种方式取决于网络中的具体需求。
RP在接收到数据后,将根据组播组地址,将数据转发给组播树上的相应分支。
其次,DR作为局域网的代表,负责将RP发送的数据进行分发,并维护组播树的结构。
在PIM协议中,DR会定期发送Hello消息以保证与其他DR的连接正常,并通过特定的协议消息来交换相关的组播信息。
PIM协议的核心原理是,当有源节点发送组播数据时,数据会逐级向上转发,直到达到RP所在的点。
然后,RP根据组播组地址的信息,将数据转发到相应的组播树分支。
最终,数据将通过组播树传输到所有接收组的成员节点。
这种数据转发方式保证了组播通信的高效和可扩展性。
二、组播树构建策略组播树的构建是PIM协议中的一个重要环节,合理的组播树结构能够提高组播传输效率和可靠性。
PIM协议提供了两种组播树构建策略,分别是源特定树(SPT,Source- Specific Tree)和共享树(Shared Tree)。
首先,SPT是一种基于源的组播树构建策略,它在数据传输时以特定源作为树的根节点。
PIM-DM协议配置
![PIM-DM协议配置](https://img.taocdn.com/s3/m/ec807bff85254b35eefdc8d376eeaeaad1f316ed.png)
PIM-DM (Protocol Independent Multicast-Dense Mode)是一种密集模式的组播路由协议,合用于网络规模比较小、组播成员相对集中的情况。
因为PIM-DM 不依赖于任何特定的单播路由协议,所以被称作是协议无关的( Protocol Independent)组播路由协议。
PIM-DM 在RFC 3973 文档中定义。
PIM-DM 设备之间通过Hello 消息来发现邻居。
一旦PIM-DM 设备启动,它就周期性地在每一个配置了PIM-DM 的接口上发送Hello 消息。
Hello 消息有一个保持时间(Hello Hold Time)字段,这个时间参数定义了邻居等待下一个Hello 消息的最长期。
如果邻居在这个时间内没有收到另一个Hello 消息,就会将这个设备从邻居关系表中删除。
PIM-DM 使用扩散与剪枝(flood and prune)来建立组播树。
PIM-DM 假定当组播源开始发送组播数据报文时,网络中的所有系统都需要接收该报文,因此报文被转发给每一个系统。
从设备上游接口接收到的报文都要经过RPF (Reverse Path Forwarding,反向路径转发)检查,没有通过RPF 检查的报文将被丢弃。
对于通过了RPF 检查的组播报文,设备根据报文的(S, G)对,即根据组播报文的源地址和组地址计算外出接口。
如果计算出的外出接口不为空,则对该(S, G)对建立一个外出接口的表项,并且将该组播报文由外出接口转发;如果计算出的外出接口为空,则向RPF 邻居发送一个剪枝报文,通知上游邻居不要再向本接口转发来自该(S, G)的组播报文。
上游接口接收到剪枝报文以后,把发送该剪枝报文的接口记为剪枝状态(Pruned),并设置一个剪枝状态计时器。
这样就建立了一棵以组播源为根的组播转发树。
PIM-DM 使用Assert 机制来消除冗余路由。
如图1 所示,组播数据报文同时到达设备A 和设备B 时,设备A 和设备B 都向设备C 转发,这时设备C 就会收到同一份报文的两个拷贝,这是不允许的。
【干货分享】组播PIM-SM基础知识.......
![【干货分享】组播PIM-SM基础知识.......](https://img.taocdn.com/s3/m/a768390a876fb84ae45c3b3567ec102de2bddf6a.png)
【干货分享】组播PIM-SM基础知识.......PIM协议是组播路由的基础,上期已经介绍了PIM-DM的原理,本期介绍PIM-SM的基本原理。
01 背景概述在ASM(Any-Source Multicast)模型中,PIM-SM使用“拉(Pull)模式”转发组播报文,一般应用于组播组成员规模相对较大、相对稀疏的网络。
基于这一种稀疏的网络模型,它的实现方法是:·在网络中维护一台重要的PIM路由器:汇聚点RP(Rendezvous Point),可以为随时出现的组成员或组播源服务。
网络中所有PIM路由器都知道RP的位置。
·当网络中出现组成员(用户主机通过IGMP加入某组播组G)时,最后一跳路由器向RP发送Join报文,逐跳创建(*,G)表项,生成一棵以RP为根的RPT。
·当网络中出现活跃的组播源(组播源向某组播组G发送第一个组播数据)时,第一跳路由器将组播数据封装在Register报文中单播发往RP,在RP上创建(S,G)表项,注册源信息。
在ASM模型中,PIM-SM的关键机制包括邻居发现、DR竞选、RP发现、RPT构建、组播源注册、SPT切换、断言;同时也可通过配置BSR(Bootstrap Router)管理域来实现单个PIM-SM域的精细化管理。
02 邻居发现PIM路由器上每个使能了PIM协议的接口都会对外发送Hello报文。
封装Hello报文的组播报文的目的地址是224.0.0.13(表示同一网段中所有PIM路由器)、源地址为接口的IP地址、TTL数值为1。
Hello报文的作用:发现PIM邻居、协调各项PIM协议报文参数、维持邻居关系。
·发现PIM邻居同一网段中的PIM路由器都必须接收目的地址为224.0.0.13的组播报文。
这样直接相连的PIM路由器之间通过交互Hello报文以后,就可以彼此知道自己的邻居信息,建立邻居关系。
只有邻居关系建立成功后,PIM路由器才能接收其他PIM协议报文,从而创建组播路由表项。
PIM协议笔记摘要
![PIM协议笔记摘要](https://img.taocdn.com/s3/m/b896cfc1c0c708a1284ac850ad02de80d5d80657.png)
PIM协议笔记摘要关于PIM(摘⾃cisco官⽅⽂档):发送者和组成员可能在远程⽹络那么这样⼀来,发送者发出的数据,必须经过路由器才能到达组成员的⽹络,所以要使组播数据准确地被转发到组成员的⽹络,就必须让中间的路由器也知道组成员⽹络的位置所在。
两个不同⽹络的主机使⽤单播通信时,数据可以被中间路由器准确地转发,是因为路由器的单播路由表中能够找到⽬标⽹络的位置,如果要让路由器也能像转发单播数据⼀样,将组播根据路由表来精确地转发到⽬的地,那就需要让路由器拥有像单播路由表⼀样的组播路由表,从⽽让路由器在收到组播时,就像查单播⼀样,去查组播该从什么样的接⼝被发出去才能到达⽬标⽹络。
要让路由器⽣成⼀张功能完全的组播路由表,就需要在路由器之间运⾏⼀种协议,这种协议可以让组播源和⽬的之间的路由表⽣成单播表⼀样地⽣成组播表,最后路由器根据这张组播路由表来完成组播的转发。
这个协议就是PIM (Protocol Independent Multicast)。
其实要让路由器知道⽬标组员的位置,完全可以依靠单播来找到组员,所以只要组播的源和⽬的之间单播是通的,那么组播路由表就能建⽴,⽽不⽤管单播运⾏的是动态路由协议还是静态路由协议,但是前提是PIM 必须依靠单播路由表才能⽣成。
查看:show ip mrouteshow ip mroute 224.1.1.1组播树因为在需要将⼀份数据同时发给多个接收者时,⽽开发了组播技术,所以组播的发送者通常⾯临着要将数据发向多个接收者,并且这些接收者可以分布在任意⽹络的任意位置。
如果接收者在远程⽹络,那么就需要路由器提供组播转发,所以要保证接收者能够正常收到组播,就必须让路由器知道⾃⼰该将组播从什么样的接⼝发出去,当组播到达下⼀跳路由器后,下⼀跳路由器同样也必须知道该将组播从什么样的接⼝发出去,即使接收者不是与⾃⼰直连的,只有这样让路由器之间协同⼯作,都能够记住组播的出⼝,最终在发送者与接收者之间形成⼀条连线,这样才能完成组播的转发。
PIM介绍——精选推荐
![PIM介绍——精选推荐](https://img.taocdn.com/s3/m/8bea2d34bdd126fff705cc1755270722192e592a.png)
1.1 PIM-DM协议简介协议独立组播-密集模式PIM-DM(Protocol Independent Multicast,Dense Mode)属于密集模式的组播路由协议。
PIM-DM适用于小型网络,在这种网络环境下,组播组的成员相对比较密集。
PIM-DM的工作过程可以概括为:邻居发现、扩散—剪枝过程、嫁接阶段。
1. 邻居发现PIM-DM路由器刚开始启动时,需要使用Hello报文来进行邻居发现。
各个运行PIM-DM的网络节点之间使用Hello报文保持相互之间的联系。
PIM-DM的Hello报文是周期性发送的。
2. 扩散—剪枝过程(Flooding&Prune)PIM-DM假设网络上的所有主机都准备接收组播数据。
当某组播源S开始向组播组G发送数据时,路由器接收到组播报文后,首先根据单播路由表进行RPF检查,如果检查通过,路由器创建一个(S,G)表项,然后将数据向网络上所有下游PIM-DM节点转发(Flooding)。
如果没有通过RPF检查,即组播报文从错误的接口输入,则将报文丢弃。
经过这个过程,在PIM-DM组播域内,都会创建一个(S,G)表项。
如果下游节点没有组播组成员,则向上游节点发剪枝(Prune)消息,通知上游节点不用再向下游节点转发数据。
上游节点收到剪枝消息后,就将相应的接口从其组播转发表项(S,G)对应的输出接口列表中删除,这样就建立了一个以源S为根的SPT(Shortest Path Tree)树。
剪枝过程最先由叶子路由器发起。
这个过程就称为扩散—剪枝过程。
各个被剪枝的节点同时提供了超时机制,当剪枝超时时,每台路由器又重新开始扩散—剪枝过程。
PIM-DM的扩散—剪枝机制周期性地不断进行。
在这个过程中,PIM-DM采用RPF检查,利用现存的单播路由表构建了一棵从数据源始发的组播转发树。
当一个组播包到达的时候,路由器首先判断到达路径的正确性。
如果到达接口是单播路由指示的通往组播源的接口,那么认为这个组播包是从正确路径而来;否则,这个组播包将作为冗余报文而被丢弃,不进行组播转发。
pim路由协议的基本原理
![pim路由协议的基本原理](https://img.taocdn.com/s3/m/5bd7c482c67da26925c52cc58bd63186bceb921f.png)
pim路由协议的基本原理PIM路由协议的基本原理是协议无关组播路由协议,它不依赖于单播路由协议,而是通过RPF(Reverse Path Forwarding)机制根据接收者的分布数量和网络环境生成组播路由表,转发组播报文。
PIM协议分为两种模式:Dense Mode(DM)和Sparse Mode(SM)。
DM适用于组播组成员数量相对较多、分布相对密集的情况,采用“推(Push)”的方式转发组播报文及生成组播表。
而SM则适用于接收者分布较为分散、地域较大的环境,采用“拉(PULL)”模型建组播表,组播流仅流向有接收者的位置。
在PIM SM模式中,路由器分为以下几种:1.RP(Rendezvous Point):负责接收组播数据,并向组播接受者进行转发,同时与组播源构建SPT(Shortest Path Tree)树,与组播接受者构建RPT(Reverse Path Tree)树。
2.叶子路由器:与用户主机相连的PIM路由器,但连接的用户主机不一定为组成员。
3.第一跳路由器:组播转发路径上,与组播源相连且负责转发该组播源发出的组播数据的PIM路由器。
4.最后一跳路由器:组播转发路径上,与组播组成员相连且负责向该组成员转发组播数据的PIM路由器。
5.中间路由器:组播转发路径上,第一跳路由器与最后一跳路由器之间的PIM路由器。
在PIM SM模式下,当网络中出现组成员时,用户通过IGMP加入某组播组,然后由最后一跳路由器向RP发送join报文,并逐跳在PIM路由器上建立(* G)表项。
RP每隔60秒向上游PIM路由器发送join报文,收到join报文后,重置接口计时器(210秒),超时后就会将此接口从下游接口中移除。
只要接受者存在,成员端DR就会每隔60秒向上游PIM路由器发送join报文,用来刷新(* G)条目。
独立组播协议PIM分析
![独立组播协议PIM分析](https://img.taocdn.com/s3/m/935a1fc9d5bbfd0a795673a3.png)
PM— I DM( rtclIdp n e tMu i s D neMo e . 一 种 Pooo n e e dn hc t es d ) 另 a
地使 用 He o消息保 持联 系 , 而构 建和 维护 了 S T树 。 l l 从 P
的接 口输入 . 则将报 文丢弃 。
经过这 个过 程 。I DM组 播域 内每 个路 由器都 会创 建一 PM—
个 (, ) 项 。如 果 下 游 节 点 没 有 组 播 组 成 员 , 向 上 游 节 点 发 Sg 表 则
般情 况 下 。 密集 模式 PM— M 适用 于 较小 型 网络 , 种 I D 这
供超 时机 制 , 当剪枝 超时后 重新 开始这 个过 程 。扩散 &剪枝 机 制周 期性进 行 。
13 嫁 接 ( a ) . Grf t
下: ①邻居发现; ②构建 S T树 ; P ③嫁接 阶段 ; P ④R F检查 ; ⑤
AS R S E T机 制 。
转 发 状 态
剪 枝过 程最 先 由叶 子路 由器 发 起 ,没 有接 收者 的路 由器
( 如 和 uea相 连 的 路 由 器 ) 动 发 起 剪 枝 过 程 。 例 sr 主 上 述 过 程 就 称 为 扩 散 & 剪 枝 过 程 。各 个 被 剪 枝 的 节 点 提
这种周 期性 的扩散 和剪枝 现象是 密集模 式协 议 的特征 . 只 能适 合规模 较小 的局域 网 。 密集模 式采 用 的“ 散一剪 枝 ” 扩 技术 在 广域 网上 是不 可取 的。 通 过 以上 叙述 .可 以把 PM— M 的工 作过 程 简要 概括 如 I D
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
PIM组播协议密集模式(DM模式)【实验名称】PIM组播协议密集模式(DM模式)【实验目的】熟悉如何配置PIM密集模式【背景描述】你是一个某单位的网络管理员,单位有存放资料的组播服务器,,服务器为用户提供组播服务,请你满足现在的网络需求。
采用PIM的密集模式来实现。
【实现功能】实现PIM密集模式下组播流量的传输,如果没有组成员,自动修剪组播发送信息。
【实验拓扑】S1 vlan1:192.168.1.253 vlan10:192.168.10.1 vlan12:192.168.12.1 vlan20:192.168.20.1 vlan100:192.168.100.1 S2 vlan1:192.168.2.253 vlan50:192.168.50.1 vlan12:192.168.12.2 vlan60:192.168.60.1S2126 vlan1:192.168.1.254 S2150vlan1:192.168.2.254【实验设备】S3550-24(2台)、S2126G(1台)、S2150G(1台)、PC(4台)【实验步骤】第一步:基本配置switch(config)#hostname S1S1(config)#vlan 10 ! 创建一个vlan10S1(config-vlan)#exiS1(config)#vlan 12S1(config-vlan)#exiS1(config)#vlan 20S1(config-vlan)#exiS1(config)#vlan 100S1(config-vlan)#exiS1(config)#interface f0/24S1(config-if)#switchport mode trunk !把f0/24接口作为trunk接口S1(config-if)#switchport trunk allowed vlan remove 100 ! trunk链路不传输vlan 100的信息S1(config)#interface vlan 1S1(config-if)#ip address 192.168.1.253 255.255.255.0S1(config-if)#no shutdownS1(config)#interface vlan 10S1(config-if)#ip address 192.168.10.1 255.255.255.0 !创建一个SVI地址S1(config-if)#no shutdownS1(config)#interface vlan 12S1(config-if)#ip address 192.168.12.1 255.255.255.0S1(config-if)#no shutdownS1(config)#interface vlan 20S1(config-if)#ip address 192.168.20.1 255.255.255.0S1(config-if)#no shutdownS1(config)#interface vlan 100S1(config-if)#ip address 192.168.100.1 255.255.255.0S1(config-if)#no shutdownS1(config)#interface fastethernet f0/1 !把接口加入到vlan 10S1(config-if)#switchport access vlan 10S1(config)#interface fastethernet f0/2S1(config-if)#switchport access vlan 20S1(config)#interface fastethernet f0/12S1(config-if)#switchport access vlan 12switch(config)#hostname S2S2(config)#vlan 12S2(config-vlan)#exiS2(config)#vlan 50S2(config-vlan)#exiS2(config)#vlan 60S2(config-vlan)#exiS2(config)#vlan 100S2(config-vlan)#exiS2(config)#interface f0/24S2(config-if)#switchport mode trunkS2(config)#interface vlan 1S2(config-if)#ip address 192.168.2.253 255.255.255.0 S2(config-if)#no shutdownS2(config)#interface vlan 12S2(config-if)#ip address 192.168.12.2 255.255.255.0 S2(config)#interface vlan 50S2(config-if)#ip address 192.168.50.1 255.255.255.0 S2(config-if)#no shutdownS2(config)#interface vlan 60S2(config-if)#ip address 192.168.60.1 255.255.255.0 S2(config-if)#no shutdownS2(config)#interface fastethernet f0/1S2(config-if)#switchport access vlan 50S2(config)#interface fastethernet f0/2S2(config-if)#switchport access vlan 60S2(config)#interface fastethernet f0/12S2(config-if)#switchport access vlan 12switch(config)#hostname S2126S2126(config)#vlan 10S2126(config-vlan)#exiS2126(config)#vlan 20S2126(config-vlan)#exiS2126(config)#interface f0/1S2126(config-if)#switchport access vlan 10S2126(config)#interface f0/2S2126(config-if)#switchport access vlan 20S2126(config)#interface vlan 1S2126(config-if)#ip address 192.168.1.254S2126(config)#interface fastethernet 0/24S2126(config-if)#switchport mode trunkswitch(config)#hostname S2150S2150(config)#vlan 50S2150(config-vlan)#exiS2150(config)#vlan 60S2150(config-vlan)#exiS2150(config-if)#switchport access vlan 50S2150(config)#interface f0/2S2150(config-if)#switchport access vlan 60S2150(config)#interface vlan 1S2150(config-if)#ip address 192.168.2.254S2150(config)#interface fastethernet 0/24S2150(config-if)#switchport mode trunk第二步:配置路由协议S1(config)#router ospf ! 开启ospf进程S1(config-router)#network 192.168.1.0 0.0.0.255 area 0 !将网段加入到区域0 S1(config-router)#network 192.168.10.0 0.0.0.255 area 0S1(config-router)#network 192.168.12.0 0.0.0.255 area 0S1(config-router)#network 192.168.20.0 0.0.0.255 area 0S1(config-router)#network 192.168.100.0 0.0.0.255 area 0S2(config)#router ospfS2(config-router)#network 192.168.2.0 0.0.0.255 area 0S2(config-router)#network 192.168.12.0 0.0.0.255 area 0S2(config-router)#network 192.168.50.0 0.0.0.255 area 0S2(config-router)#network 192.168.60.0 0.0.0.255 area 0第三步:配置组播S1(config)# ip multicast-routing !开启组播功能S1(config)#interface vlan 1S1(config-if)#ip pim !默认为DM模式S1(config)#interface vlan 10S1(config-if)#ip pimS1(config)#interface vlan 12S1(config-if)#ip pimS1(config)#interface vlan 20S1(config-if)#ip pimS1(config)#interface vlan 100S1(config-if)#ip pimS2(config)# ip multicast-routingS2(config)#interface vlan 1S2(config-if)#ip pimS2(config)#interface vlan 12S2(config-if)#ip pimS2(config)#interface vlan 50S2(config-if)#ip pimS2(config-if)#ip pimS2126(config)#ip igmp profile 1 !进入igmp配置文件模式S2126(config-profile)#deny !允许所有的组播组通过。
S2126(config)# ip igmp snooping svgl profile 1S2126(config)# ip igmp snooping svgl !设置为svgl模式S2126(config)# ip igmp snooping svgl vlan 1 mrouter learn pim-dvmrp !动态学习路由连接口S2126(config)# ip igmp snooping svgl vlan 10 mrouter learn pim-dvmrpS2126(config)# ip igmp snooping svgl vlan 20 mrouter learn pim-dvmrpS2126(config)# ip igmp snooping source-check port ! 源端口检测,默认打开。