H-实验手册:组播PIM-SM
- 格式:docx
- 大小:90.60 KB
- 文档页数:3
PIM简介组播源向组播地址发出组播报文,经过中间网络路由到达组播组所有成员。
为使中间网络能够实现组播报文的复制和转发,必须为网络中的路由器配置组播路由协议。
PIM(Protocol Independent Multicast)称为协议无关组播,作为一种组播路由解决方案,在实践中得到广泛的应用。
一.PIM转发基础网络中单播路由畅通是PIM转发的基础。
PIM利用现有的单播路由信息,对组播报文执行RPF(Reverse Path Forwarding)检查,从而创建组播路由表项,构建组播分发树。
PIM不维护专门的单播路由,也不依赖某具体的单播路由协议,它直接利用单播路由的结果。
为PIM提供单播路由信息的可以是静态路由、RIP、OSPF、IS-IS、BGP等任何一种单播路由协议。
二.PIM支持的组播模型ASM(Any-Source Multicast)模型ASM(Any-Source Multicast)模型目前包括PIM-DM(Protocol Independent Multicast Dense Mode)和PIM-SM (Protocol Independent Multicast Sparse Mode)两种模式:●PIM-DM称为协议独立组播-密集模式。
适合规模较小、组播组成员相对比较密集的局域网。
●PIM-SM称为协议独立组播-稀疏模式。
适合网络中的组成员相对比较稀疏,分布广泛的大型网络。
有关专家在47个组播节点,5个组播源的网络环境下,分别应用PIM-DM和PIM-SM,测量了数据报文和控制报文占用的网络带宽、路由器的处理开销。
实验的结果如表1-1。
表1-1组播协议实验结果考察对象组播成员分布状况试验结果占用的网络带宽大于42%PIM-SM发出的包比PIM-DM多。
小于42%PIM-SM发出的包比PIM-DM少。
路由器上的路由表项个数小于32% PIM-SM协议维护的路由表项个数少。
32%~58% 两种路由协议情况下,路由表项个数相当。
PIM-SMDR指定路由器以及PIM-DM指定前转器的区别【转⾃⽹络】很多同学将PIM-SM DR指定路由器以及 PIM-DM指定前转器的概念搞混,这⾥做个解释,希望能帮助⼤家理清。
1、PIM-SM DR 指定路由器PIM在每⼀个多路访问⽹络,使⽤PIM HELLO消息选择⼀个DR。
我们看上⾯这个图,先看左侧,源以及PIM路由器R1和R2共处⼀个BMA(⼴播多路访问)⽹络,那么产⽣⾃源的组播数据,R1、R2都能接收到,如果两者都向RP发起Register并转发组播数据,那不就扯淡了么?因此我们在这个MA⽹络中进⾏DR选举,DR将负责向RP发起register以及负责将来⾃源的组播数据转发给RP,⾮DR当然就暂时先歇着了。
我们再看右侧接受者与R3、R4共处⼀个MA⽹络,如果R3与R4都加⼊RPT共享树并且向这个MA⽹络转发组播数据,那么接受者将收到重复的组播数据,这实际上是没有意义的,因此在这⾥也选DR,由DR负责向RP发送Join消息并且形成RPT的分⽀,最终将接受者所在⽹络拉到共享树上,另外它也负责将树上的组播流量转发给接受者。
所以,总结⼀下:靠近源的DR(如上图R2)负责将source的组播数据发给RP(以及发送Register消息);靠近接受者的DR(如上图的R4)负责向RP发送Join消息从⽽形成共享树,也就是负责将接受者拉到共享树(同时负责将来⾃源的组播数据转发给接收者)。
IP最⼤的成为DR,但是这个因素不太稳定,毕竟想要改变DR还得改IP编址,因此增强的PIM协议建议在PIMv2的hello信息中加⼊DR优先级选项(默认值为1),优先级最⾼的路由器成为DR。
当然并⾮所有的PIM路由器都⽀持这个DR优先级选项,不⽀持的路由器在发送PIM HELLO的时候不携带这个选项,当PIMv2路由器收到⼀个不包含DR优先级选项的hello时(或此消息中的优先级=0),那么接收⽅就知道,发送者不⽀持这个优先级选项,因此这个⼦⽹中的DR选举将使⽤IP地址进⾏⽐较。
RPF机制,PIM-DM工作机制,PIM-SM工作机制一、组播的RPF机制路由器在接收到由源S 向组播组G 发送的组播报文后,首先查找组播转发表。
∙如果存在对应(S,G)表项,且该组播报文实际到达接口与Incoming interface 一致,则向所有的outgoing interfaces 执行转发;∙如果存在对应(S,G)表项,但是报文实际到达接口与Incoming interface 不一致,则对此报文执行RPF 检查。
如果检查通过,则将Incoming interface 修改为报文实际到达接口,然后向所有的outgoing interfaces 执行转发。
∙如果不存在对应(S,G)表项,则对此报文执行RPF 检查。
如果检查通过,则根据相关路由信息,创建对应路由表项,然后向所有的outgoing interfaces 执行转发。
RPF 检查执行过程如下:在单播路由表中查找RPF接口。
单播路由表中汇集了到达各个目的地址的最短路径。
∙如果当前组播路径沿袭从组播源S 到客户端的SPT 或组播源S 到RP的源树,则路由器以源S 的IP 地址为目的地址查找单播路由表,对应表项中的出接口为RPF接口。
路由器认为由该RPF 接口接收到的组播报文所经历的路径是从源S 到本地的最短路径。
∙如果当前组播路径沿袭从RP 到客户端的RPT,则路由器以RP 的IP 地址为目的地址查找单播路由表,对应表项中的出接口为RPF 接口。
路由器认为由该RPF 接口接收到的组播报文所经历的路径是从RP 到本地的最短路径。
∙将RPF 接口与组播报文的实际到达接口相比较,判断到达路径的正确性,从而决定是否进行转发。
∙如果两接口相一致,那么就认为这个组播包是从正确路径而来,RPF 检查成功。
∙如果两接口不一致,将该组播报文丢弃。
作为路径判断依据的单播路由信息可以来源于任何一种单播路由协议、组播静态路由或者MBGP 路由协议。
当组播路径沿袭从组播源到客户端的SPT 时,RPF 检查过程如图13-1 所示。
组播路由协议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相连的接口),如果没有相应的路由条目,则创建,并也在其出接口表中添加收到消息的接口。
其实组播路由器在转发组播数据流的时候,并不关心其下面有多少个接收者,他们分别位于何处,它只关心组播数据流是否有相应的出接口,有就将它们从出接口转发出去,没有就丢掉。
目录第1章 IGMP配置命令............................................................................................................1-11.1 IGMP配置命令...................................................................................................................1-11.1.1 debugging igmp.......................................................................................................1-11.1.2 display igmp group..................................................................................................1-11.1.3 display igmp interface.............................................................................................1-21.1.4 igmp group-policy....................................................................................................1-31.1.5 igmp host-join..........................................................................................................1-41.1.6 igmp max-response-time.........................................................................................1-51.1.7 igmp timer querier-present......................................................................................1-61.1.8 igmp timer query......................................................................................................1-71.1.9 igmp version............................................................................................................1-71.1.10 multicast routing-enable........................................................................................1-8第2章 PIM-DM/SM协议配置命令..........................................................................................2-12.1 PIM-DM/SM协议配置命令.................................................................................................2-12.1.1 c-bsr........................................................................................................................2-12.1.2 c-rp..........................................................................................................................2-22.1.3 debugging multicast forwarding..............................................................................2-32.1.4 debugging multicast kernel-routing.........................................................................2-42.1.5 debugging pim common..........................................................................................2-42.1.6 debugging pim dm...................................................................................................2-52.1.7 debugging pim sm...................................................................................................2-62.1.8 display multicast forwarding-table...........................................................................2-72.1.9 display multicast routing-table.................................................................................2-82.1.10 display pim bsr-info...............................................................................................2-92.1.11 display pim interface...........................................................................................2-102.1.12 display pim neighbor...........................................................................................2-112.1.13 display pim routing-table.....................................................................................2-122.1.14 display pim rp-info...............................................................................................2-132.1.15 pim.......................................................................................................................2-142.1.16 pim bsr-boundary................................................................................................2-152.1.17 pim dm.................................................................................................................2-152.1.18 pim sm.................................................................................................................2-162.1.19 pim timer hello.....................................................................................................2-172.1.20 spt-switch-threshold............................................................................................2-18第1章 IGMP配置命令1.1 IGMP配置命令1.1.1 debugging igmp【命令】debugging igmp { all | event | host | packet | timer }【视图】所有视图【参数】all:表示打开所有IGMP调试信息开关。
第一章 PIM的密集模式在组播的初期的时候使用的模式就是PIM的密集模式,这种模式使用一种推的方式通过网络传输组播数据包。
用简单的术语来说,组播路由器通过所有的接口发送组播数据,知道其他的设备告诉它停止传送。
本试验主要测试PIM密集模式的运行状态,启动路由器的组播功能:Ip multicast-routing在PIM密集模式在接口下的配置:Ip pim dense-modePIM需要单播路由的支持,在每个借口上打开组播的理由是因为IP组播路由选择是颠倒的路由,它转发(或者不转发)组播包取决与该组播包从那里来(源IP地址)而不是到那里去(组播组地址)。
因此,整个组播传输路径上的控制机制与单播路由机制是很大的差别。
配置PIM-DM相对容易,但另一件事是要完全理解路由器在收到组播信息、剪枝、嫁接等信息时所用的一系列的响应。
在Cisco路由器中,组播转发状态表现形式为组播路由表或者“mroute”表中的(*,G)和(S,G)项,通过执行“show ip mroute”命令可以显示这些信息。
1.1 PIM-DM(*,G)状态规则虽然PIM-DM规范中没有要求,但无论何时只要创建(S,G)状态,Cisco 的执行成学就自动创建父(*,G)状态。
主要理由是在Cisco的执行程序中所有(S,G)数据结构是与其父(*,G)数据结构链接在一起的。
这样做不仅由于各种PIM内部的最佳化效果获得补偿。
由次产生PIM通过规则。
密集模式(*,G)项不用于组播转发,他们的主要功能是维护那些与组有关的信息使之成为一个整体。
例如,(*,G)项表示组运行的模式(在次为密集模式),而密集模式也映射了连接其他邻居或直接连在组现有成员上的接口。
由此产生了第1条密集模式规则:密集模式(*,G)项的输出接口列表映射了现有的PIM-DM邻居接口或直接连接的组成员接口。
1.2 PIM-DM(S,G)状态规则在PIM-DM中,组播信息流到达后创建(S,G)项,如果父(*,G)项不存在,首先创建它,而其所提供的输出接口列表和上面的讲述的模式一样。
4 PIM-SM(IPv4)配置关于本章通过配置PIM协议,可以实现域内组播路由与数据转发。
PIM-SM是稀疏模式的域内组播路由协议,适用于组成员分布相对分散、范围较广的大规模网络。
注意事项端口作为VPLS AC侧的接入端口时,如果该端口同时还作为组播流入接口,会导致对应组播数据无法正常转发。
4.1 PIM-SM(IPv4)概述介绍PIM-SM的适用范围及基本原理。
4.2 设备支持的PIM-SM(IPv4)特性设备支持的PIM-SM特性有:PIM-SM for ASM、PIM-SM for SSM、PIM BFD。
4.3 缺省配置介绍缺省情况下,PIM-SM的配置信息。
4.4 配置ASM模型的PIM-SM通过配置ASM模型的PIM-SM,可为用户主机提供任意源组播服务,加入同一组播组的用户主机都能收到任意源发往该组的组播数据。
4.5 配置SSM模型的PIM-SM通过配置SSM模型的PIM-SM,可以为用户主机提供指定组播源服务,加入同一组播组的用户主机可以按各自需要只接收指定源的组播数据。
4.6 调整组播源控制参数通过过滤组播源地址,以及对组播源生存时间进行控制,可以提高数据安全性、控制网络流量。
4.7 调整邻居控制参数PIM设备之间通过交互Hello报文建立邻居关系。
4.8 调整DR竞选控制参数设备之间通过交互Hello报文选举DR,主要负责源端或者组成员端的协议报文发送的工作。
4.9 调整加入和剪枝控制参数设备向上游发送Join信息请求转发组播数据,发送Prune信息请求停止转发组播数据。
可以根据实际需要调整转发控制参数,若无特殊需要,推荐使用缺省值。
4.10 调整断言控制参数当设备从下游接口接收到组播数据时,说明该网段中还存在其他的上游设备。
设备从该接口发出Assert报文,参与竞选唯一上游。
4.11 配置PIM BFD当BFD检测到对端故障以后上报PIM模块,PIM模块立即触发新一轮的DR竞选过程,而不是等到邻居关系超时,这将很大程度上缩小组播数据传输的中断时间,提高组播网络的可靠性。
组播⼀、组播概述:(基于UDP)在IP⽹络中,节点之间的通信通常采⽤点到点的⽅式。
点到多点的传输:使⽤⼴播:占⽤不必要的带宽,不需要的⼈,也会接收到。
数据源发送⼀份数据包链路上传输⼀份数据包所有主机都会接收数据包使⽤单播:需要向每⼀个接收者单独发送⼀份数据,当接收者数量增加时,发送源复制的⼯作负荷会⽐例增加,当接收者数据巨⼤时,⼀些接收者接收数据的延时⼤⼤增加,对延时敏感的应⽤如多媒体会议、视频监控。
数据源发送多份数据包链路上传输多份数据包只有数据接收者才会收到数据包使⽤组播:数据源发送⼀份数据包链路上传输⼀份数据包只有数据接收者才会收到数据包组播优缺点:只要是组播都是⽤UDP优点:增强效率,控制⽹路流量,减少服务器和CPU的负载优化性能,消除流量冗余分布式应⽤,使多点传输成为可能缺点:尽最⼤努⼒交付(UDP),不会重传⽆拥塞控制(qos),⽆法保证优先传输数据包重复数据包的⽆需交付组播典型应⽤:多媒体会议、IP视频监控,QQ共享⽩板等多对⼀。
组⽹技术需求:组播地址:224.0.0.0-- 239.255.255.255(没有什么⼴播地址和⽹络地址)本地协议预留组播地址:224.0.0.0--224.0.1.255(保留给某些协议具体使⽤)仅供本地⽹段上的⽹络协议使⽤。
本地管理组地址:(私⽹)239.0.0.0--239.255.255.255⽤户组播地址:(公⽹)224.0.2.0--238.255.255.255组播MAC地址:以太⽹:01-00-5e-xx-xx-xx组播IP地址到组播MAC地址的映射:组播中:32个IP地址对应⼀个MAC组播MAC地址,第⼀个字节的最后⼀位为1。
单播MAC地址,第⼀个字节的最后⼀位为0。
⼆、组播组管理协议:(1)IGMP简介:是运⾏在主机和路由设备之间的协议→ 主机通过组播组管理协议加⼊或离开某些组播组→ 路由设备通过组播组管理协议管理和维护本地的组播组信息常⽤的组播组管理协议为IGMP(管理和维护本地组的信息)加⼊、查询、离开离开时,得表⽰⾃⼰是不是最后⼀个⼈,如果是最后⼀个⼈,路由设备得删除组播组信息(2)、组播分发树模型(路由器和路由器之间)是组播数据的转发路径根据树根位置的不同,组播分发树模型分为:→ 最短路径树模型:源到每⼀个接收者的最短路径(⽐较耗资源)→ 共享树模型:源到每⼀个接收者的路径不⼀定是最短的(3).组播转发机制:组播转发机制和单播转发机制不同:→ 单播转发关⼼报⽂到哪⾥去(只关⼼报⽂的⽬的地址)→ 组播转发关⼼报⽂从哪⾥来组播转发机制-----当收到两个数据包,会通过单播路由表查询到组播源最短的路径,从⽽确认收哪个数据包,不收哪个数据包,所有没有单播路由表,就不可能有组播转发表。
1. 42配置PIM-SM命令1. 42.1PIM-SM配置命令列表1. 42.1.1clear ip mrouteclear ip mroute {* | group_address [source_address] }不删除多播路由表项特权模式手动删除pimsm多播路由表项Ruijie# clear ip mroute *Ruijie# clear ip mroute224.2.2.2Ruijie# clear ip mroute224.2.2.2 2.2.2.2无2. 42.1.2clear ip mroute statisticsclear ip mroute statistics {* | group_address [source_address] }不删除多播路由表项的统计信息特权模式手动删除pimsm多播路由表项的统计信息Ruijie# clear ip mroute statistics *Ruijie# clear ip mroute statistics 224.2.2.2Ruijie# clear ip mroute statistics 224.2.2.2 2.2.2.2无3. 42.1.3clear ip pim sparse-mode bsr rp-setclear ip pim sparse-mode bsr rp-set *不删除rp-set。
特权模式手动删除所有动态学习到的RP信息。
Ruijie# clear ip pim sparse-mode bsr rp-set*无4. 42.1.4clear ip pim sparse-mode trackclear ip pim sparse-mode track不重新设置统计的开始时间点、不清除PIM报文的计数器特权模式重新设置统计的开始时间点,并清除PIM报文的计数器Ruijie# clear ip pim sparse-mode track无5. 42.1.5ip multicast-routingip multicast-routing缺省时,不启动多播路由全局模式当要启动多播路由时,配置此命令。
PIM SM组播实验一、实验拓扑图,如图1.1所示:图1.1 PIM SM组播实验二、实验说明:1.R1通过ping模拟组播源;2.R4为组员;3.全网运行ospf同步路由信息。
三、预配置:1.R1的预配置:Router>enRouter#conf tEnter configuration commands, one per line. End with CNTL/Z.Router(config)#no ip do loRouter(config)#line 0Router(config-line)#no exec-tRouter(config-line)#logg sRouter(config-line)#Router(config-line)#ho R1R1(config)#int lo0R1(config-if)#ip add 1.1.1.1 255.255.255.0R1(config-if)#int s0/0R1(config-if)#ip add 12.0.0.1 255.255.255.0R1(config-if)#no sh2.R2的预配置:Router>enRouter#conf tEnter configuration commands, one per line. End with CNTL/Z.Router(config)#no ip do loRouter(config)#line 0Router(config-line)#no exec-tRouter(config-line)#logg sRouter(config-line)#R2(config)#int lo0R2(config-if)#ip add 2.2.2.2 255.255.255.0R2(config-if)#int s0/0R2(config-if)#ip add 12.0.0.2 255.255.255.0R2(config-if)#no shR2(config-if)#int s0/1R2(config-if)#ip add 23.0.0.2 255.255.255.0R2(config-if)#no sh3.R3的预配置:Router>enRouter#conf tEnter configuration commands, one per line. End with CNTL/Z.Router(config)#no ip do loRouter(config)#line 0Router(config-line)#no exec-tRouter(config-line)#logg sRouter(config-line)#Router(config-line)#ho R3R3(config)#int lo0R3(config-if)#ip add 3.3.3.3 255.255.255.0R3(config-if)#int s0/0R3(config-if)#ip add 34.0.0.3 255.255.255.0R3(config-if)#no shR3(config-if)#int s0/1R3(config-if)#ip add 23.0.0.3 255.255.255.0R3(config-if)#no sh4.R4的预配置:Router>enRouter#conf tEnter configuration commands, one per line. End with CNTL/Z.Router(config)#no ip do loRouter(config)#line 0Router(config-line)#no exec-tRouter(config-line)#logg sRouter(config-line)#Router(config-line)#ho R4R4(config)#int lo0R4(config-if)#ip add 4.4.4.4 255.255.255.0R4(config-if)#int s0/0R4(config-if)#ip add 34.0.0.4 255.255.255.0R4(config-if)#no sh四、配置及调试过程:1.在各路由器上配置IGP同步路由信息:R1(config-router)#router-id 1.1.1.1R1(config-router)#network 0.0.0.0 0.0.0.0 area 0R2(config-if)#router os 1R2(config-router)#router-id 2.2.2.2R2(config-router)#net 0.0.0.0 0.0.0.0 a 0R3(config-if)#router os 1R3(config-router)#router-id 3.3.3.3R3(config-router)#net 0.0.0.0 0.0.0.0 a 0R4(config-if)#router os 1R4(config-router)#router-id 4.4.4.4R4(config-router)#net 0.0.0.0 0.0.0.0 a 02.配置RP:R2(config)#ip pim rp-address 2.2.2.2R3(config)#ip pim rp-address 2.2.2.23.接口下启用PIM-SM:R2(config)#int s0/0R2(config-if)#ip pim sparse-modeR2(config)#int s0/1R2(config-if)#ip pim sparse-modeR3(config)#int s0/0R3(config-if)#ip pim sparse-modeR3(config)#int s0/1R3(config-if)#ip pim sparse-mode4.配置R4使其接受224.1.1.1的流量:R4(config-if)#int s0/0R4(config-if)#ip igmp join-group 224.1.1.15.在R1上ping测试:R1(config-if)#do ping 224.1.1.1Type escape sequence to abort.Sending 1, 100-byte ICMP Echos to 224.1.1.1, timeout is 2 seconds:Reply to request 0 from 34.0.0.4, 68 msR4(config-if)#do debug ip icmpICMP packet debugging is onR4(config-if)#*Mar 1 01:27:34.563: ICMP: echo reply sent, src 34.0.0.4, dst 12.0.0.1 6.查看组播路由:R2(config-if)#do sh ip mroute 224.1.1.1IP 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 group Outgoing interface flags: H - Hardware switchedTimers: Uptime/ExpiresInterface state: Interface, Next-Hop or VCD, State/Mode(*, 224.1.1.1), 00:24:51/stopped, RP 2.2.2.2, flags: SIncoming interface: Null, RPF nbr 0.0.0.0Outgoing interface list:Serial0/1, Forward/Sparse, 00:14:37/00:02:39(12.0.0.1, 224.1.1.1), 00:00:56/00:03:27, flags: TIncoming interface: Serial0/0, RPF nbr 12.0.0.1Outgoing interface list:Serial0/1, Forward/Sparse, 00:00:56/00:02:39R3(config-if)# do sh ip mroute 224.1.1.1IP 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 group Outgoing interface flags: H - Hardware switchedTimers: Uptime/ExpiresInterface state: Interface, Next-Hop or VCD, State/Mode(*, 224.1.1.1), 00:14:41/stopped, RP 2.2.2.2, flags: SJCIncoming interface: Serial0/1, RPF nbr 23.0.0.2Outgoing interface list:Serial0/0, Forward/Sparse, 00:14:41/00:02:22(12.0.0.1, 224.1.1.1), 00:01:01/00:02:51, flags: JTIncoming interface: Serial0/1, RPF nbr 23.0.0.2Outgoing interface list:Serial0/0, Forward/Sparse, 00:01:01/00:02:227.查看RP映射:R2(config-if)#do sh ip pim rp map PIM Group-to-RP MappingsGroup(s): 224.0.0.0/4, Static RP: 2.2.2.2 (?)R3(config-if)#do sh ip pim rp map PIM Group-to-RP MappingsGroup(s): 224.0.0.0/4, StaticRP: 2.2.2.2 (?)。
组播之PIM 篇拟制Prepared by 王君菠 Date 日期 2006-02 评审人 Reviewed byDate 日期 批准 Approved byDate 日期华为三康技术有限公司Huawei-3Com Technologies Co., Ltd.版权所有 侵权必究 All rights reserved修订记录Revision Record目录1 PIM-DM篇 (5)1.1 简介 (5)1.2 RPF 逆向路径查询 (5)1.3 PIM的组播转发方式 (7)1.4 PIM-DM 的剪枝(prune) (8)1.5 PIM-DM的嫁接(Graft) (9)1.6 剪枝否决(pruning override) (10)1.7 断言(Assert) (11)1.8 PIM-DM的状态维护 (11)1.9 DR的选取 (12)2 PIM-SM篇 (13)2.1 引述 (13)2.2 PIM-SM表项建立和转发过程 (13)2.3 PIM-SM 注册与注册停止 (15)2.4 PIM-SM 剪枝 (16)2.5 PIM-SM的状态维护 (16)2.6 组播分发树模型和RPT到SPT的切换 (16)3 参考资料 (20)前言近几年,随着网络应用的发展,多媒体会议普及、IPTV炒作的越来越热,组播变的越来越热,应用的越来越多。
组播要完成从组播源到客户端传递信息,可分成两个部分理解:客户端主机和路由器之间的组播数据传输及实现;路由器与路由器之间的组播数据传输及实现。
其中客户端和主机之间是IGMP来完成的;路由器与路由器之间,是组播路由协议,常见的有DVMRP,CBT,MOSPF,MBGP,MSDP,PIM等。
PIM (Protocol Independent Multicast)分为两种模式:PIM-SM (SparseMode稀疏模式)和 PIM-DM(DenseMode密集模式),本文就这两部分分别展开讨论。
1.1.1 PIM-SM故障定位思路在运行PIM-SM的网络中,如果客户端无法接收组播源发送的组播数据(S,G),按照如下顺序进行问题定位:●检查组播源发送的组播数据的TTL是否足够到达客户端。
●检查网络中所有路由器是否已经发现了组G的RP信息并且所有路由器关于组G的RP信息一致。
●检查以RP为根的共享树是否正确建立。
从直连客户端的路由器开始,沿着到达RP的RPF路径反向逐跳进行检查,直到RP为止。
●检查RP是否已经加入以S为根的最短路径树。
从RP开始,沿着到达S的RPF路径反向逐跳进行检查,直到S为止。
●检查直连客户端的路由器是否已经加入以S为根的最短路径树。
从直连客户端的路由器开始,沿着到达S的RPF路径反向逐跳进行检查,直到S为止。
在问题定位过程中,需要特别关注的有以下几方面:●组播和单播不同的一个显著特征是基于源地址的转发。
对于从某个接口接收到的组播数据(S, G),查找到达S的单播路由,只有到达S的出接口存在并且就是组播数据到达的接口的情况下,才转发该数据;否则不予转发。
这就是所谓RPF检查的概念,即反向路径转发。
RPF检查是各种组播协议进行组播转发的基础。
●PIM(协议独立组播)是目前应用最为广泛的一种组播路由协议,协议独立的意思是指PIM协议本身并不维护独立的单播路由表,而是使用现有的单播路由表中的路由作为RPF检查的根据。
所以,协议无关并不等于可以不要单播路由,恰恰相反,要使PIM正常运行,单播畅通是前提。
在PIM协议中,除了组播数据之外,还有BSR报文等等都需要进行RPF检查,只有来自RPF邻居的这些报文才被接受。
所以RPF邻居也是PIM的一个重要概念。
RPF邻居必须是PIM邻居,但是这个要求必须由网络设计保证,PIM协议本身不会从PIM邻居中选择RPF邻居。
如果RPF接口或RPF邻居没有使能相同的PIM协议,必然导致组播不正常。
●PIM邻居关系的建立是PIM协议正确运行的基础。
PIM-DM实验
一、实验拓扑图
二、实验步骤
1、配置组播源地址
CLIENT1:172.16.1.1 255.255.255.0 组播组地址:224.1.1.1
CLIENT2:192.168.1.1. 255.255.255.0 组播地址:224.1.1.1
2、基本IP地址配置
R1配置:
[R1-GigabitEthernet0/0/0]ip address 172.16.1.254 24
[R1-GigabitEthernet0/0/1]ip address 12.1.1.1 24
[R1-GigabitEthernet0/0/2]ip address 13.1.1.1 24
[R1-LoopBack0]ip address 1.1.1.1 24
R2配置:
[R2-GigabitEthernet0/0/0]ip address 12.1.1.2 24
[R2-GigabitEthernet0/0/1]ip address 23.1.1.2 24
[R2-LoopBack0]ip address 2.2.2.2 24
R3配置:
[R3-LoopBack0]ip address 3.3.3.3 24
[R3-GigabitEthernet0/0/1]ip address 13.1.1.3 24
[R3-GigabitEthernet0/0/0]ip address 23.1.1.3 24
[R3-GigabitEthernet0/0/2]ip address 192.168.1.254 24
3、配置路由
R1配置:
[R1]ospf 1 router-id 1.1.1.1
[R1-ospf-1-area-0.0.0.0]network 1.1.1.0 0.0.0.255
[R1-ospf-1-area-0.0.0.0]network 12.1.1.0 0.0.0.255
[R1-ospf-1-area-0.0.0.0]network 172.16.1.0 0.0.0.255
[R1-ospf-1-area-0.0.0.0]network 13.1.1.0 0.0.0.255 R2配置:
[R2]ospf 1 router-id 2.2.2.2
[R2-ospf-1-area-0.0.0.0]network 2.2.2.0 0.0.0.255
[R2-ospf-1-area-0.0.0.0]network 12.1.1.0 0.0.0.255
[R2-ospf-1-area-0.0.0.0]network 23.1.1.0 0.0.0.255
R3配置:
[R3]ospf 1 router-id 3.3.3.3
[R3-ospf-1-area-0.0.0.0]network 3.3.3.0 0.0.0.255
[R3-ospf-1-area-0.0.0.0]network 23.1.1.0 0.0.0.255
[R3-ospf-1-area-0.0.0.0]network 13.1.1.0 0.0.0.255
[R3-ospf-1-area-0.0.0.0]network 192.168.1.0 0.0.0.255
3、配置IGMP
R3配置:
[R3]multicast routing-enable/启动进程
[R3-GigabitEthernet0/0/2]igmp enable/接口下启用IGMP
4、配置PIM-SM起邻居
R1配置:
[R1]multicast routing-enable
[R1]pim
[R1-pim]qu
[R1-GigabitEthernet0/0/0]pimsm
[R1-GigabitEthernet0/0/1]pimsm
[R1-GigabitEthernet0/0/2]pimsm
[R1-LoopBack0]pimsm
R2配置:
[R2]multicast routing-enable
[R2]pim
[R2-pim]qu
[R2-GigabitEthernet0/0/0]pimsm
[R2-GigabitEthernet0/0/1]pimsm
[R2-LoopBack0]pimsm
R3配置:
[R3]multicast routing-enable /上面已经配置过
[R3]pim
[R3-pim]qu
[R3-GigabitEthernet0/0/0]pimsm
[R3-GigabitEthernet0/0/1]pimsm
[R3-LoopBack0]pimsm
5、配置RP(静态的,所有路由器都手动指定RP)这里配置动态的
需要C-RP,C-BSR
R1配置:
[R1]pim
[R1-pim]c-rp lo0
R2配置:
[R2]pim
[R2-pim]c-bsrLoopBack 0
R3配置:
[R3]pim
[R3-pim]c-rp lo0
6、推送组播视频流
CLIENT1:推送视频流,如:
CLIENT2:接收视频流
三、其他查询命令
1、查询邻居状态:。