16-IPv6 PIM配置
本章节下载: 16-IPv6 PIM配置 (928.41 KB)
本文所涉及的路由器和路由器图标,代表了一般意义下的路由器或运行IPv6 PIM协议的三层交换机。
IPv6 PIM(Protocol Independent Multicast for IPv6,IPv6协议无关组播)表示可以利用IPv6单播静态路由或者任意IPv6单播路由协议(包括RIPng、OSPFv3、IS-ISv6、BGP4+等)所生成的IPv6单播路由表为IPv6组播提供路由。IPv6组播路由与所采用的IPv6单播路由协议无关,只要能够通过IPv6单播路由协议产生相应的IPv6组播路由表项即可。IPv6 PIM借助RPF(Reverse Path Forwarding,逆向路径转发)机制实现对IPv6组播报文的转发。当IPv6组播报文到达本地设备时,首先对其进行RPF检查:若RPF检查通过,则创建相应的IPv6组播路由表项,从而进行IPv6组播报文的转发;若RPF检查失败,则丢弃该报文。有关RPF的详细介绍,请参见“IP组播配置指导”中的“IPv6组播路由与转发”。
根据实现机制的不同,IPv6 PIM分为以下几种类型:
· IPv6 PIM-DM(Protocol Independent Multicast-Dense Mode for IPv6,IPv6协议无关组播—密集模式)
· IPv6 PIM-SM(Protocol Independent Multicast-Sparse Mode for IPv6,IPv6协议无关组播—稀疏模式)
· IPv6 BIDIR-PIM(Bidirectional Protocol Independent Multicast for IPv6,IPv6双向协议无关组播,简称IPv6双向PIM)
· IPv6 PIM-SSM(Protocol Independent Multicast Source-Specific Multicast for IPv6,IPv6协议无关组播-指定源组播)
· 为了描述的方便,本文中把由支持IPv6 PIM协议的组播路由器所组成的网络简称为“IPv6 PIM域”。
· 设备目前不支持IPv6双向PIM。
IPv6 PIM-DM属于密集模式的IPv6组播路由协议,使用“推(Push)模式”传送IPv6组播数据,通常适用于IPv6组播组成员相对比较密集的小型网络,其基本原理如下:
· IPv6 PIM-DM假设网络中的每个子网都存在至少一个IPv6组播组成员,因此IPv6组播数据将被扩散(Flooding)到网络中的所有节点。然后,IPv6 PIM-DM对没有IPv6组播数据转发的分支进行剪枝(Prune),只保留包含接收者的分支。这种“扩散—剪枝”现象周期性地发生,被剪枝的分支也可以周期性地恢复成转发状态。
· 当被剪枝分支的节点上出现了IPv6组播组的成员时,为了减少该节点恢复成转发状态所需的时间,IPv6 PIM-DM使用嫁接(Graft)机制主动恢复其对IPv6组播数据的转发。
一般说来,密集模式下数据包的转发路径是有源树(Source Tree,即以IPv6组播源为“根”、IPv6组播组成员为“枝叶”的一棵转发树)。由于有源树使用的是从IPv6组播源到接收者的最短路径,因此也称为SPT(Shortest Path Tree,最短路径树)。
IPv6 PIM-DM的工作机制可以概括如下:
· 邻居发现
· 构建SPT
· 嫁接
· 断言
在IPv6 PIM域中,路由器通过周期性地的向本网段的所有IPv6 PIM路由器以组播方式发送IPv6 PIM Hello报文(以下简称Hello报文),以发现IPv6 PIM邻居,维护各路由器之间的IPv6 PIM邻居关系,从而构建和维护SPT。
路由器每个运行了IPv6 PIM协议的接口都会周期性地发送Hello报文,从而了解与该接口相关的IPv6 PIM邻居信息。
构建SPT的过程也就是“扩散—剪枝”的过程:
在IPv6 PIM-DM域中,IPv6组播源S向IPv6组播组G发送IPv6组播报文时,首先对IPv6组播报文进行扩散:路由器对该报文的RPF检查通过后,便创建一个(S,G)表项,并将该报文向网络中的所有下游节点转发。经过扩散,IPv6 PIM-DM域内的每个路由器上都会创建(S,G)表项。
然后对那些下游没有接收者的节点进行剪枝:由没有接收者的下游节点向上游节点发剪枝报文(Prune Message),以通知上游节点将相应的接口从其组播转发表项(S,G)所对应的出接口列表中删除,并不再转发该IPv6组播组的报文至该节点。
· (S,G)表项包括IPv6组播源的地址S、IPv6组播组的地址G、出接口列表和入接口等。
· 路由器上收到IPv6组播数据的接口称为“上游”,转发IPv6组播数据的接口称为“下游”。
剪枝过程最先由叶子路由器发起,如图1-1所示,没有接收者(Receiver)的路由器(如与Host A直连的路由器)主动发起剪枝,并一直持续到IPv6 PIM-DM域中只剩下必要的分支,这些分支共同构成了SPT。
图1-1 IPv6 PIM-DM中构建SPT示意图
“扩散—剪枝”的过程是周期性发生的。各个被剪枝的节点提供超时机制,当剪枝超时后便重新开始这一过程。
当被剪枝的节点上出现了IPv6组播组的成员时,为了减少该节点恢复成转发状态所需的时间,IPv6 PIM-DM使用嫁接机制主动恢复其对IPv6组播数据的转发,过程如下:
表1-1 需要恢复接收IPv6组播数据的节点向其上游节点发送嫁接报文(Graft Message)以申请重新加入到SPT中;
当上游节点收到该报文后恢复该下游节点的转发状态,并向其回应一个嫁接应答报文(Graft-Ack Message)以进行确认;
如果发送嫁接报文的下游节点没有收到来自其上游节点的嫁接应答报文,将重新发送嫁接报文直到被确认为止。
在一个网段内如果存在多台组播路由器,则相同的IPv6组播报文可能会被重复发送到该网段。为了避免出现这种情况,就需要通过断言(Assert)机制来选定唯一的IPv6组播数据转发者。
图1-2 Assert机制示意图
如图1-2所示,当Router A和Router B从上游节点收到(S,G)的IPv6组播报文后,都会向本地网段转发该报文,于是处于下游的节点Router C就会收到两份相同的IPv6组播报文,Router A和Router B也会从各自的下游接口收到对方转发来的该IPv6组播报文。此时,Router A和Router B会通过其下游接口向本网段的所有IPv6 PIM路由器以组播方式发送断言报文(Assert Message),该报文中携带有以下信息:IPv6组播源地址S、IPv6组播地址G、到IPv6组播源的IPv6单播路由/IPv6 MBGP路由/IPv6组播静态路由的优先级和度量值。通过一定的规则对这些参数进行比较后,Router A和Router B中的获胜者将成为(S,G)IPv6组播报文在本网段的转发者,比较规则如下:
表1-1 到IPv6组播源的优先级较高者获胜;
如果到IPv6组播源的优先级相等,那么到IPv6组播源的度量值较小者获胜;
如果到IPv6组播源的度量值也相等,则下游接口IPv6链路本地地址较大者获胜。
IPv6 PIM-DM使用以“扩散—剪枝”方式构建的SPT来传送IPv6组播数据。尽管SPT的路径最短,但是其建立的过程效率较低,并不适合大中型网络。
IPv6 PIM-SM属于稀疏模式的IPv6组播路由协议,使用“拉(Pull)模式”传送IPv6组播数据,通常适用于IPv6组播组成员分布相对分散、范围较广的大中型网络,其基本原理如下:
· IPv6 PIM-SM假设所有主机都不需要接收IPv6组播数据,只向明确提出需要IPv6组播数据的主机转发。IPv6 PIM-SM实现组播转发的核心任务就是构造并维护RPT(Rendezvous Point Tree,共享树或汇集树),RPT选择IPv6 PIM域中某台路由器作为公用的根节点RP(Rendezvous Point,汇集点),IPv6组播数据通过RP沿着RPT转发给接收者;
· 连接接收者的路由器向某IPv6组播组对应的RP发送加入报文,该报文被逐跳送达RP,所经过的路径就形成了RPT的分支;
· IPv6组播源如果要向某IPv6组播组发送IPv6组播数据,首先由IPv6组播源侧DR(Designated Router,指定路由器)负责向RP进行注册,把注册报文(Register Message)通过单播方式发送给RP,该报文到达RP后触发建立SPT。之后IPv6组播源把IPv6组播数据沿着SPT发向RP,当IPv6组播数据到达RP后,被复制并沿着RPT发送给接收者。
复制仅发生在分发树的分支处,这个过程能够自动重复直到数据包最终到达接收者。
IPv6 PIM-SM的工作机制可以概括如下:
· 邻居发现
· DR选举
· RP发现
· 嵌入式RP
· 构建RPT
· IPv6组播源注册
· SPT切换
· 断言
IPv6 PIM-SM使用与IPv6 PIM-DM类似的邻居发现机制,具体请参见“1.1.1 1. 邻居发现”一节。
借助Hello报文还可以为共享网络(如Ethernet)选举DR,DR将作为该共享网络中IPv6组播数据的唯一转发者。
无论是与IPv6组播源相连的网络,还是与接收者相连的网络,都需要选举DR。接收者侧的DR负责向RP发送加入报文;IPv6组播源侧的DR负责向RP发送注册报文。
· 各路由器之间通过比较Hello报文中所携带的优先级和IPv6链路本地地址,可以为多路由器网段选举DR。
· 在充当接收者侧DR的设备上必须使能MLD,否则连接在该DR上的接收者将不能通过该DR加入IPv6组播组。有关MLD的介绍,请参见“IP组播配置指导”中的“MLD”。
图1-3 DR选举示意图
如图1-3所示,DR的选举过程如下:
表1-1 共享网络上的各路由器相互之间发送Hello报文(携带有竞选DR优先级的参数),拥有最高优先级的路由器将成为DR;
如果优先级相同,或者网络中至少有一台路由器不支持在Hello报文中携带竞选DR优先级的参数,则根据各路由器的IPv6链路本地地址大小来竞选DR,IPv6链路本地地址最大的路由器将成为DR。
当DR出现故障时,其余路由器在超时后仍没有收到来自DR的Hello报文,则会触发新的DR选举过程。
RP是IPv6 PIM-SM域中的核心设备。在结构简单的小型网络中,IPv6组播信息量少,整个网络仅依靠一个RP进行IPv6组播信息的转发即可,此时可以在IPv6 PIM-SM域中的各路由器上静态指定RP的位置;但是在更多的情况下,IPv6 PIM-SM域的规模都很大,通过RP转发的IPv6组播信息量巨大。为了缓解RP的负担并优化RPT的拓扑结构,可以在IPv6 PIM-SM域中配置多个C-RP(Candidate-RP,候选RP),通过自举机制来动态选举RP,使不同的RP服务于不同的组播组,此时需要配置BSR(BootStrap Router,自举路由器)。BSR是IPv6 PIM-SM域中的管理核心,一个IPv6 PIM-SM域内只能有一个BSR,但可以配置多个C-BSR(Candidate-BSR,候选BSR)。这样,一旦BSR发生故障,其余C-BSR能够通过自动选举产生新的BSR,从而确保业务免受中断。
· 一个RP可以同时服务于多个IPv6 组播组,但一个IPv6 组播组只能唯一对应一个RP。
· 一台设备可以同时充当C-RP和C-BSR。
如图1-4所示,BSR负责收集网络中由C-RP发来的宣告报文(Advertisement Message),该报文中携带有C-RP的地址和优先级以及其服务的IPv6组范围,BSR将这些信息汇总为RP-Set(RP集,即IPv6组播组与RP的映射关系数据库),封装在自举报文(Bootstrap Message,BSM)中并发布到整个IPv6 PIM-SM域。
图1-4 RP与BSR信息交互示意图
网络中的各路由器将依据RP-Set提供的信息,使用相同的规则从众多C-RP中为特定IPv6组播组选择其对应的RP,具体规则如下:
表1-1 首先比较C-RP的优先级,优先级较高者获胜。
若优先级相同,则使用哈希(Hash)函数计算哈希值,该值较大者获胜。
若优先级和哈希值都相同,则C-RP地址较大者获胜。
哈希函数的表达式为:Value (G, M, Ci) = (1103515245 * ( (1103515245 * (G & M) + 12345) XOR Ci) + 12345) mod 231,其中各符号的含义如表1-2所示。
符号 |
含义 |
Value |
哈希值 |
G |
将IPv6组播组地址的每32比特作为一节,各节之间通过异或运算而得的数值。假设IPv6组播组地址为FF0E:C20:1A3:63::101,则G = 0xFF0E0C20 XOR 0x01A30063 XOR 0x00000000 XOR 0x00000101 |
M |
哈希掩码长度(Hash Mask Length) |
Ci |
将C-RP IPv6地址的每32比特作为一节,各节之间通过异或运算而得的数值。假设C-RP的IPv6地址为3FFE:B00:C18:1::10,则Ci = 0x3FFE0B00 XOR 0x0C180001 XOR 0x00000000 XOR 0x00000010 |
& |
逻辑运算符,表示与运算 |
XOR |
逻辑运算符,表示异或运算 |
mod |
算术运算符,表示整除取余 |
通过嵌入式RP(Embedded RP)机制可以从IPv6组播地址中解析出RP的地址,从而实现IPv6组播组到RP的映射,以取代静态配置的RP或由BSR机制动态计算出来的RP,DR不再需要预先知道RP的信息,只需对组播报文进行分析即可知道RP的地址。其工作原理如下:
· 接收者侧:
表1-1 接收者主机发送MLD报告报文声明加入某IPv6组播组;
接收者侧的DR提取内嵌在IPv6组播地址中的RP地址,并向该RP发送加入报文(Join Message)。
· IPv6组播源侧:
表1-1 IPv6组播源要向某IPv6组播组发送IPv6组播数据;
IPv6组播源侧的DR提取内嵌在IPv6组播地址中的RP地址,并向该RP发送注册报文。
图1-5 IPv6 PIM-SM中构建RPT示意图
如图1-5所示,RPT的构建过程如下:
表1-1 当接收者加入一个IPv6组播组G时,先通过MLD报文通知与其直连的DR;
DR掌握了IPv6组播组G的接收者的信息后,向该组所对应的RP方向逐跳发送加入报文;
从DR到RP所经过的路由器就形成了RPT的分支,这些路由器都在其转发表中生成了(*,G)表项,这里的“*”表示来自任意IPv6组播源。RPT以RP为根,以DR为叶子。
当发往IPv6组播组G的IPv6组播数据流经RP时,数据就会沿着已建立好的RPT到达DR,进而到达接收者。
当某接收者对IPv6组播组G的信息不再感兴趣时,与其直连的DR会逆着RPT向该组的RP方向逐跳发送剪枝报文;上游节点收到该报文后在其出接口列表中删除与下游节点相连的接口,并检查自己是否拥有该IPv6组播组的接收者,如果没有则继续向其上游转发该剪枝报文。
IPv6组播源注册的目的是向RP通知IPv6组播源的存在。
图1-6 IPv6组播源注册示意图
如图1-6所示,IPv6组播源向RP注册的过程如下:
表1-1 当IPv6组播源S向IPv6组播组G发送了一个IPv6组播报文时,与IPv6组播源直连的DR在收到该报文后,就将其封装成注册报文,并通过单播方式发送给相应的RP;
当RP收到该报文后,一方面解封装注册报文并将封装在其中的IPv6组播报文沿着RPT转发给接收者,另一方面向IPv6组播源方向逐跳发送(S,G)加入报文。这样,从RP到IPv6组播源所经过的路由器就形成了SPT的分支,这些路由器都在其转发表中生成了(S,G)表项。SPT以IPv6组播源侧的DR为根,以RP为叶子。
IPv6组播源发出的IPv6组播数据沿着已建立好的SPT到达RP,然后由RP把IPv6组播数据沿着RPT向接收者进行转发。当RP收到沿着SPT转发来的IPv6组播数据后,通过单播方式向与IPv6组播源直连的DR发送注册停止报文(Register-Stop Message),IPv6组播源注册过程结束。
本节中假设允许RP发起SPT切换,否则IPv6组播源侧DR将一直用注册报文封装IPv6组播报文,注册过程不会结束,除非RP上(S,G)表项的出接口变为空。
在IPv6 PIM-SM域中,一个IPv6组播组唯一对应一个RP和一棵RPT。在SPT切换前,所有发往该组的IPv6组播报文都必须先由IPv6组播源侧DR封装在注册报文中发往RP,由RP解封装后再沿RPT分发给接收者侧的DR,RP是所有IPv6组播数据必经的中转站。这个过程存在以下三个问题:
· IPv6组播源侧的DR和RP必须对IPv6组播数据进行繁琐的封装/解封装处理。
· IPv6组播数据的转发路径不一定是从IPv6组播源到接收者的最短路径。
· 当IPv6组播流量变大时,RP负担增大,容易引发故障。
为了解决上述问题,IPv6 PIM-SM允许由RP或接收者侧的DR发起SPT切换:
表1-1 RP发起的SPT切换
RP收到IPv6组播报文后,立即向IPv6组播源方向发送(S,G)加入报文,在IPv6组播源侧DR与RP之间建立起SPT分支,后续的IPv6组播报文都直接沿该分支到达RP。
接收者侧DR发起的SPT切换
默认情况下,接收者侧DR从RPT收到第一个IPv6组播数据包后便立即向SPT切换,过程如下:
· 首先,接收者侧DR向IPv6组播源方向逐跳发送(S,G)加入报文,并最终送达IPv6组播源侧DR,沿途经过的所有路由器在其转发表中都生成了(S,G)表项,从而建立了SPT分支;
· 随后,当IPv6组播数据沿SPT到达RPT与SPT分叉的路由器时,该路由器开始丢弃沿RPT到达的IPv6组播数据,同时向RP逐跳发送含RP位的剪枝报文,RP收到该报文后继续向IPv6组播源方向发送剪枝报文(假设此时只有这一个接收者),从而完成了SPT切换;
· 最终,IPv6组播数据将沿SPT从IPv6组播源到达接收者。
通过SPT切换,IPv6 PIM-SM能够以比IPv6 PIM-DM更经济的方式建立SPT。
IPv6 PIM-SM使用与IPv6 PIM-DM类似的断言机制,具体请参见“2. 断言”一节。
一般情况下,在一个IPv6 PIM-SM域内只能有一个BSR,并由该BSR负责在整个IPv6 PIM-SM域内宣告RP-Set信息,所有IPv6组播组的信息都在此BSR管理的网络范围内进行转发,我们称之为IPv6非管理域机制。
考虑到管理的精细化,可以将整个IPv6 PIM-SM域划分为一个IPv6 Global域(IPv6 Global-scope Zone)和多个IPv6管理域(IPv6 Admin-scope Zone),一方面可以有效分担单一BSR的管理压力,另一方面可以使用私有组地址为特定区域提供专门的服务。相应地,我们称之为IPv6管理域机制。
IPv6管理域与特定Scope值的IPv6组播组相对应,针对不同的Scope值划分相应的IPv6管理域。IPv6管理域的边界由ZBR(Zone Border Router,区域边界路由器)构成,每个IPv6管理域各维护一个BSR,为特定Scope值的IPv6组播组服务,属于此范围的IPv6组播协议报文(如断言报文、BSR自举报文等)无法通过IPv6管理域边界。不同IPv6管理域所服务的IPv6组播组范围可以重叠,该范围内的IPv6组播组只在本IPv6管理域内有效,相当于私有组地址。而IPv6 Global域则可视为一种特殊的IPv6管理域,其维护的BSR为Scope值为14的IPv6组播组提供服务。
每个IPv6管理域以及IPv6 Global域都有独立的C-RP和BSR设备,这些设备仅在其所属的域有效,也就是说BSR机制与RP选举在各IPv6管理域之间是隔离的;每个IPv6管理域都有自己的边界,各IPv6管理域所服务IPv6组播组范围内的IPv6组播信息不能进、出该边界。为了更清晰地理解IPv6管理域和IPv6 Global域之间的关系,可以从以下两个角度进行考虑:
地域空间角度
IPv6管理域是针对特定Scope值的逻辑管理区域,属于此范围的IPv6组播报文只能在本IPv6管理域的域内或域外传播,无法跨过IPv6管理域的边界。
图1-7 地域空间上IPv6管理域与IPv6 Global域的关系
如图1-7所示,对于同一Scope值的IPv6组播组而言,各IPv6管理域在地域上必须相互独立、相互隔离。而IPv6 Global域则包含了IPv6 PIM-SM域内的所有路由器,不属于任何IPv6管理域服务范围的IPv6组播报文,可以在整个IPv6 PIM-SM域范围内传播。
Scope值角度
如图1-8所示,IPv6组播通过其地址结构中的Scope字段来表明该IPv6组播组属于哪个域。
图1-8 IPv6组播地址结构
Scope值较大的域包含Scope值较小的域,Scope值为E所对应的域(即IPv6 Global域)最大。Scope字段可能的取值及其含义如表1-2所示。
表1-2 Scope字段的取值及其含义
取值 |
含义 |
所属域 |
0、F |
保留(Reserved) |
- |
1 |
接口本地范围(Interface-Local Scope) |
- |
2 |
链路本地范围(Link-Local Scope) |
- |
3 |
子网本地范围(Subnet-Local Scope) |
IPv6管理域 |
4 |
管理本地范围(Admin-Local Scope) |
IPv6管理域 |
5 |
站点本地范围(Site-Local Scope) |
IPv6管理域 |
6、7、9~D |
未分配(Unassigned) |
IPv6管理域 |
8 |
机构本地范围(Organization-Local Scope) |
IPv6管理域 |
E |
全球范围(Global Scope) |
IPv6 Global域 |
SSM(Source-Specific Multicast,指定信源组播)模型和ASM(Any-Source Multicast,任意信源组播)模型是两个完全对等的模型。目前,ASM模型包括IPv6 PIM-DM和IPv6 PIM-SM两种模式,SSM模型能够借助IPv6 PIM-SM的部分技术来实现,也称为IPv6 PIM-SSM。
SSM模型为指定源组播提供了解决方案,通过MLDv2来维护主机与路由器之间的关系。在实际应用中,通常采用MLDv2以及IPv6 PIM-SM的一部分技术来实现SSM模型。由于接收者已经通过其它渠道(如广告咨询等)知道了IPv6组播源的具体位置,因此在SSM模型中无需RP,无需构建RPT,也无需IPv6组播源注册过程来发现其它IPv6 PIM域内的IPv6组播源。
IPv6 PIM-SSM的工作机制可以概括如下:
· 邻居发现
· DR选举
· 构建SPT
IPv6 PIM-SSM使用与IPv6 PIM-SM完全相同的邻居发现机制,具体请参见“1.1.1 1. 邻居发现”一节。
IPv6 PIM-SSM使用与IPv6 PIM-SM完全相同的DR选举机制,具体请参见 “4. DR选举”一节。
构建为IPv6 PIM-SM服务的RPT,还是构建为IPv6 PIM-SSM服务的SPT,关键在于接收者准备加入的IPv6组播组是否属于IPv6 SSM组地址范围(IANA保留的IPv6 SSM组地址范围为FF3x::/32,其中x表示任意合法的scope)。
图1-9 IPv6 PIM-SSM中构建SPT示意图
如图1-9所示,Host B和Host C为IPv6组播信息的接收者(Receiver),由其借助MLDv2的报告报文向DR报告自己对来自IPv6组播源S、发往IPv6组播组G的信息感兴趣。收到该报告报文的DR先判断该报文中的IPv6组地址是否在IPv6 SSM组地址范围内:
· 如果在IPv6 SSM组地址范围内,则构建IPv6 PIM-SSM,并向IPv6组播源S逐跳发送通道(Channel)的订阅报文(Subscribe Message)。沿途所有路由器上都创建(S,G)表项,从而在网络内构建了一棵以IPv6组播源S为根、以接收者为叶子的SPT,该SPT就是IPv6 PIM-SSM中的传输通道;
· 如果不在IPv6 SSM组地址范围内,则仍旧按照IPv6 PIM-SM的流程进行后续处理,此时接收者侧DR需要向RP发送(*,G)加入报文,同时IPv6组播源侧DR需要进行IPv6组播源的注册。
在IPv6 PIM-SSM中,借助“通道”的概念表示IPv6组播组,借助“订阅报文”的概念表示加入报文。
与IPv6 PIM相关的协议规范有:
· RFC 3973:Protocol Independent Multicast-Dense Mode (PIM-DM): Protocol Specification (Revised)
· RFC 4601:Protocol Independent Multicast-Sparse Mode (PIM-SM): Protocol Specification (Revised)
· RFC 3956:Embedding the Rendezvous Point (RP) Address in an IPv6 Multicast Address
· RFC 5059:Bootstrap Router (BSR) Mechanism for Protocol Independent Multicast (PIM)
· RFC 4607:Source-Specific Multicast for IP
· draft-ietf-ssm-overview-05:An Overview of Source-Specific Multicast (SSM)
表1-3 IPv6 PIM-DM配置任务简介
配置任务 |
说明 |
详细配置 |
使能IPv6 PIM-DM |
必选 |
|
使能状态刷新能力 |
可选 |
|
配置状态刷新参数 |
可选 |
|
配置IPv6 PIM-DM定时器 |
可选 |
|
配置IPv6 PIM公共特性 |
可选 |
在配置IPv6 PIM-DM之前,需完成以下任务:
· 使能IPv6转发功能并配置任一IPv6单播路由协议,实现域内网络层互通
在配置IPv6 PIM-DM之前,需准备以下数据:
· 发送状态刷新报文的时间间隔
· 等待接收新状态刷新报文的最小时间
· 状态刷新报文的Hop Limit值
· 嫁接报文的重传时间
在接口上使能了IPv6 PIM-DM后,路由器会定期发送Hello报文以发现IPv6 PIM邻居,并对收到的来自IPv6 PIM邻居的报文进行处理。在部署IPv6 PIM-DM域时,建议在其所有非边界接口上均使能IPv6 PIM-DM。
表1-4 使能IPv6 PIM-DM
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
使能IPv6组播路由 |
multicast ipv6 routing-enable |
必选 缺省情况下,IPv6组播路由处于关闭状态 |
进入接口视图 |
interface interface-type interface-number |
- |
使能IPv6 PIM-DM |
pim ipv6 dm |
必选 缺省情况下,IPv6 PIM-DM处于关闭状态 |
· 同一台设备所有接口上所启用的IPv6 PIM模式必须相同。
· IPv6 PIM-DM不能与处于IPv6 SSM组地址范围内的IPv6组播组同时使用。
有关multicast ipv6 routing-enable命令的详细介绍,请参见“IP组播命令参考”中的“IPv6组播路由与转发”。
为了避免各路由器上被剪枝的接口因为超时而恢复转发,与IPv6组播源直连的路由器会周期性地发送(S,G)状态刷新报文,该报文沿着IPv6 PIM-DM域最初的扩散路径逐跳进行转发,从而刷新沿途所有路由器上的剪枝定时器的状态。只有当一个共享网段内的所有IPv6 PIM路由器上都使能了状态刷新能力时,该共享网段才具备状态刷新能力。
请在IPv6 PIM-DM域内的所有路由器上进行如下配置。
表1-5 使能状态刷新能力
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入接口视图 |
interface interface-type interface-number |
- |
使能状态刷新能力 |
pim ipv6 state-refresh-capable |
可选 缺省情况下,状态刷新能力处于使能状态 |
在与IPv6组播源直连的路由器上,会以一定的时间间隔周期性地发送(S,G)状态刷新报文,可以通过配置来改变这个时间间隔。
路由器可能在短时间内收到多个状态刷新报文,而其中有些报文可能是重复的。为了避免接收这些重复的报文,可以配置接收新状态刷新报文的等待时间:路由器将丢弃在该时间内收到的状态刷新报文;当该时间超时后,路由器将正常接收新的状态刷新报文,并更新自己的IPv6 PIM-DM状态,同时重置该等待时间。
在收到状态刷新报文时,路由器会将该报文的Hop Limit值减1后转发给其下游,直至该报文的Hop Limit值减为0,当网络规模很小时,状态刷新报文将在网络中循环传递。因此,为了有效控制刷新报文的传递范围,需要根据网络规模大小配置合适的Hop Limit值。
请在IPv6 PIM-DM域内的所有路由器上进行如下配置。
表1-6 配置状态刷新参数
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入IPv6 PIM视图 |
pim ipv6 |
- |
配置发送状态刷新报文的时间间隔 |
state-refresh-interval interval |
可选 缺省情况下,发送状态刷新报文的时间间隔为60秒 |
配置接收新状态刷新报文的等待时间 |
state-refresh-rate-limit interval |
可选 缺省情况下,接收新状态刷新报文的等待时间为30秒 |
配置状态刷新报文的Hop Limit值 |
state-refresh-hoplimit hoplimit-value |
可选 缺省情况下,状态刷新报文的Hop Limit值为255 |
嫁接报文是IPv6 PIM-DM中唯一使用确认机制的报文。在IPv6 PIM-DM域中,下游路由器发出嫁接报文后,如果在指定时间内没有收到来自其上游路由器的嫁接应答报文,则会重发嫁接报文,直到被确认。
表1-7 配置IPv6 PIM-DM定时器
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入接口视图 |
interface interface-type interface-number |
- |
配置嫁接报文的重传时间 |
pim ipv6 timer graft-retry interval |
可选 缺省情况下,嫁接报文的重传时间为3秒 |
表1-8 IPv6 PIM-SM配置任务简介
配置任务 |
说明 |
详细配置 |
|
使能IPv6 PIM-SM |
必选 |
||
配置RP |
配置静态RP |
三者至少选其一,若只配置静态RP,则不必再配置BSR |
|
配置C-RP |
|||
使能嵌入式RP |
|||
全局配置C-RP定时器 |
可选 |
||
配置BSR |
配置C-BSR |
必选 |
|
配置BSR服务边界 |
可选 |
||
全局配置C-BSR参数 |
可选 |
||
配置C-BSR定时器 |
可选 |
||
关闭自举报文语义分片功能 |
可选 |
||
配置IPv6管理域 |
使能IPv6管理域机制 |
可选 |
|
配置IPv6管理域边界 |
可选 |
||
配置IPv6管理域的C-BSR |
可选 |
||
配置IPv6组播源注册 |
可选 |
||
配置SPT切换 |
可选 |
||
配置IPv6 PIM公共特性 |
可选 |
在配置IPv6 PIM-SM之前,需完成以下任务:
· 使能IPv6转发功能并配置任一IPv6单播路由协议,实现域内网络层互通
在配置IPv6 PIM-SM之前,需准备以下数据:
· 静态RP的IPv6地址及表示其所服务IPv6组范围的IPv6 ACL规则
· C-RP的优先级及表示其所服务IPv6组范围的IPv6 ACL规则
· 合法C-RP的地址范围及表示其所服务IPv6组范围的IPv6 ACL规则
· 发送宣告报文的时间间隔
· C-RP超时时间
· C-BSR的优先级
· 哈希掩码长度
· 表示合法BSR地址范围的IPv6 ACL规则
· 自举时间间隔
· 自举超时时间
· 表示注册报文过滤规则的IPv6 ACL规则
· 注册抑制时间
· 注册探测时间
· 发起SPT切换的IPv6 ACL规则和排序规则
在接口上使能了IPv6 PIM-SM后,路由器会定期发送Hello报文以发现IPv6 PIM邻居,并对收到的来自IPv6 PIM邻居的报文进行处理。在部署IPv6 PIM-SM域时,建议在其所有非边界接口上均使能IPv6 PIM-SM。
表1-9 使能IPv6 PIM-SM
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
使能IPv6组播路由 |
multicast ipv6 routing-enable |
必选 缺省情况下,IPv6组播路由处于关闭状态 |
进入接口视图 |
interface interface-type interface-number |
- |
使能IPv6 PIM-SM |
pim ipv6 sm |
必选 缺省情况下,IPv6 PIM-SM处于关闭状态 |
同一台设备所有接口上所启用的IPv6 PIM模式必须相同。
有关multicast ipv6 routing-enable命令的详细介绍,请参见“IP组播命令参考”中的“IPv6组播路由与转发”。
RP可以通过手工方式静态配置,也可以通过BSR机制动态选举。对于大型IPv6 PIM网络,配置静态RP将会非常繁琐。所以,通常静态RP是作为动态选举RP机制的备份手段,以提高网络的健壮性,增强组播网络的运营管理能力。
当网络内仅有一个动态RP时,通过手工配置静态RP可以避免因单一节点故障而引起的通信中断,同时也可以避免C-RP与BSR之间频繁的信息交互而占用带宽。
请在IPv6 PIM-SM域内的所有路由器上进行如下配置。
表1-10 配置静态RP
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入IPv6 PIM视图 |
pim ipv6 |
- |
配置服务于IPv6 PIM-SM的静态RP |
static-rp ipv6-rp-address [ acl6-number ] [ preferred ] |
必选 缺省情况下,没有配置静态RP |
为了让静态RP功能正常发挥作用,必须在所有路由器上指定相同的静态RP地址。
在PIM-SM域中,可以把有意成为RP的路由器配置为C-RP。BSR通过接收来自C-RP的C-RP信息,或者接收来自其它路由器的自动RP宣告,收集C-RP信息并将其汇总为RP-Set信息,然后在全网内扩散。之后,网络内的其它路由器根据RP-Set信息计算出特定组播组范围所对应的RP。建议在骨干网路由器上配置C-RP。
为了防止C-RP欺骗,需要在BSR上配置合法的C-RP地址范围及其所服务的组播组范围。同时由于每个C-BSR都可能成为BSR,因此必须在IPv6 PIM-SM域内的所有C-BSR上都配置相同的过滤策略。
表1-11 配置C-RP
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入IPv6 PIM视图 |
pim ipv6 |
- |
配置某接口为服务于IPv6 PIM-SM的C-RP |
c-rp ipv6-address [ { group-policy acl6-number | scope scope-id } | priority priority | holdtime hold-interval | advertisement-interval adv-interval ] * |
必选 缺省情况下,没有配置C-RP |
合法C-RP的地址范围及其所服务的IPv6组播组范围 |
crp-policy acl6-number |
可选 缺省情况下,C-RP的地址范围及其所服务的IPv6组播组范围不受任何限制 |
· 在配置C-RP时,应在C-RP与IPv6 PIM-SM域中的其它设备之间保留较大的通信带宽。
· 一个RP可以为多个IPv6组播组服务,也可以为所有IPv6组播组服务。每个IPv6组播组在任意时刻,只能由唯一的一个RP为其转发数据,而不能由多个RP转发数据。
嵌入式RP机制可以从IPv6组播地址中直接解析出RP,从而取代静态配置的RP或由BSR机制动态计算出来的RP,DR不再需要预先知道RP的信息,只需对组播报文进行分析即可知道RP的地址。
请在IPv6 PIM-SM域内的所有路由器上进行如下配置。
表1-12 使能嵌入式RP
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入IPv6 PIM视图 |
pim ipv6 |
- |
使能嵌入式RP功能 |
embedded-rp [ acl6-number ] |
可选 缺省情况下,默认嵌入式RP地址范围内的IPv6组播组均可以使用嵌入式RP功能 |
默认的嵌入式RP地址范围为FF7x::/12和FFFx::/12,其中x表示任意合法的scope。有关scope字段的详细介绍,请参见“IP组播配置指导”中的“组播概述”。
为了使BSR能够在IPv6 PIM-SM域内分发RP-Set信息,C-RP必须周期性地向BSR发送宣告报文,BSR从该报文中学习RP-Set信息,并将该信息与自己的IPv6地址一起封装在自举报文中向域中的所有IPv6 PIM路由器进行宣告。
C-RP在其宣告报文中封装一个保持时间,BSR在收到该报文后,从中获得该时间值并启动C-RP超时定时器,如果超时后BSR仍没有收到来自C-RP后续的宣告报文,则认为目前网络中的C-RP失效或不可达。
请在已配置为C-RP的路由器上进行如下配置。
表1-13 全局配置C-RP定时器
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入IPv6 PIM视图 |
pim ipv6 |
- |
配置发送宣告报文的时间间隔 |
c-rp advertisement-interval interval |
可选 缺省情况下,发送宣告报文的时间间隔为60秒 |
配置C-RP超时时间 |
c-rp holdtime interval |
可选 缺省情况下,C-RP的超时时间为150秒 |
有关IPv6 PIM-SM其它定时器的相关配置,请参见“1.5.7 配置IPv6 PIM公共定时器”。
在一个IPv6 PIM-SM域中只能有一个BSR,但需要配置至少一个C-BSR。任意一台路由器都可以被配置为C-BSR。在C-BSR之间通过自动选举产生BSR,BSR负责在IPv6 PIM-SM域中收集并发布RP信息。
C-BSR应配置在骨干网的路由器上,在将路由器配置为C-BSR时,必须同时指定一个使能了IPv6 PIM-SM的接口的IPv6地址。C-BSR间的自动选举机制简单描述如下:
· 最初,每个C-BSR都认为自己是本IPv6 PIM-SM域的BSR,并使用接口的IPv6地址作为BSR地址,发送自举报文;
· 当某C-BSR收到其它C-BSR发来的自举报文时,首先比较自己与后者的优先级,优先级较高者获胜;在优先级相同的情况下,再比较自己与后者的BSR地址,拥有较大IPv6地址者获胜。如果后者获胜,则用后者的BSR地址替换自己的BSR地址,并不再认为自己是BSR;否则,保留自己的BSR地址,并继续认为自己是BSR。
通过在路由器上配置合法BSR的地址范围,可以对收到的自举报文按照地址范围进行过滤,从而防止某些恶意主机非法伪装成BSR,以避免合法的BSR被恶意取代。必须在IPv6 PIM-SM域内的所有路由器上进行相同的配置。通常针对以下两类情况实施预防措施:
某些恶意主机通过伪造自举报文以欺骗路由器,试图更改RP映射关系。这种攻击通常发生在边缘路由器上,由于BSR处于网络内部,主机在网络外部,因此边缘路由器通过对收到的自举报文进行邻居检查和RPF检查,丢弃不符合要求的报文,就可以避免外部网络用户对内部网络BSR的攻击;
网络中某台路由器被攻击者控制,或者有非法接入的路由器时,攻击者可以将这样的路由器配置为C-BSR,并使其在竞争中获胜,从而控制网络中RP信息的发布权。由于在被配置为C-BSR后,路由器会自动向整个网络扩散自举报文,而自举报文是Hop Limit值为1的IPv6组播报文,所以只要其邻居路由器不接收该自举报文,就不会影响整个网络。因此,通过在整个网络的所有路由器上都配置合法BSR的地址范围,从而丢弃合法范围之外的自举报文,就可以防止此类攻击。
以上两种预防措施可以部分地保护网络中BSR的安全。但是如果某台合法的BSR路由器被攻击者控制,还是可能导致问题。
表1-14 配置C-BSR
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入IPv6 PIM视图 |
pim ipv6 |
- |
配置某接口为C-BSR |
c-bsr ipv6-address [ hash-length [ priority ] ] |
必选 缺省情况下,没有配置C-BSR |
配置合法的BSR地址范围 |
bsr-policy acl6-number |
可选 缺省情况下,BSR的地址范围不受任何限制 |
由于BSR与IPv6 PIM-SM域中的其它设备需要交换大量信息,因此应在C-BSR与IPv6 PIM-SM域中的其它设备之间保留较大的通信带宽。
BSR作为IPv6 PIM-SM域中的管理核心,负责将收集到的RP-Set信息以自举报文的形式发向IPv6 PIM-SM域中的所有路由器。
BSR的服务边界,即IPv6 PIM-SM域的边界。BSR是针对特定的服务范围而言的,众多的BSR服务边界接口将网络划分成不同的IPv6 PIM-SM域,自举报文无法通过IPv6 PIM-SM域的边界,BSR服务边界之外的路由器也不能参与本IPv6 PIM-SM域内的组播转发。
请在欲配置为BSR服务边界的路由器上进行如下配置。
表1-15 配置BSR服务边界
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入接口视图 |
interface interface-type interface-number |
- |
配置BSR的服务边界 |
pim ipv6 bsr-boundary |
必选 缺省情况下,没有配置BSR的服务边界 |
在一个IPv6 PIM-SM域中,从众多C-BSR中选举出唯一的BSR。IPv6 PIM-SM域内的C-RP向BSR发送宣告报文,由BSR汇总为RP-Set,并向本IPv6 PIM-SM域内的所有路由器进行宣告。所有路由器都使用统一的哈希算法,得到特定IPv6组播组所对应RP的地址。
请在已配置为C-BSR的路由器上进行如下配置。
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入IPv6 PIM视图 |
pim ipv6 |
- |
配置哈希掩码长度 |
c-bsr hash-length hash-length |
可选 缺省情况下,哈希掩码长度为126 |
配置C-BSR的优先级 |
c-bsr priority priority |
可选 缺省情况下,C-BSR的优先级为64 |
当某C-BSR竞选成为BSR后,它会通过自举报文向其所服务的区域以组播方式发送自己的IPv6地址和RP-Set信息。BSR以自举时间间隔周期性地向网络发送自举报文,收到该报文的C-BSR会在自举超时时间内将其保持,此时BSR选举过程暂停;当自举超时时间超时后,C-BSR之间会触发新一轮的BSR选举过程。
请在已配置为C-BSR的路由器上进行如下配置。
表1-17 配置C-BSR定时器
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入IPv6 PIM视图 |
pim ipv6 |
- |
配置自举时间间隔 |
c-bsr interval interval |
可选 缺省取值请参见表后的说明 |
配置自举超时时间 |
c-bsr holdtime interval |
可选 缺省取值请参见表后的说明 |
关于自举时间间隔的取值:
· 如果没有进行手工配置,则其取值由如下公式决定:自举时间间隔=(自举超时时间-10)÷2。缺省情况下,自举超时时间为130秒,则自举时间间隔的缺省值=(130-10)÷2=60(秒)。
· 如果进行了手工配置,则取配置值。
关于自举超时时间的取值:
· 如果没有进行手工配置,则其取值由如下公式决定:自举超时时间=自举时间间隔×2+10。缺省情况下,自举时间间隔为60秒,则自举超时时间的缺省值=60×2+10=130(秒)。
· 如果进行了手工配置,则取配置值。
配置时,应保证自举时间间隔小于自举超时时间。
BSR周期性地向所在IPv6 PIM-SM域发送自举报文以通告RP-Set信息。当RP-Set信息较少时,自举报文被封装在一个IPv6报文中发送出去;而当RP-Set信息较多时,自举报文的大小可能超过接口的MTU(Maximum Transmission Unit,最大传输单元)值,从而触发其在IP层的分片。在这种情况下,一个IP分片的丢失就会导致整个自举报文都被丢弃。
自举报文语义分片功能可以解决上述问题:当自举报文大于接口MTU时,会被分解为多个自举报文分片(Bootstrap Message Fragment,BSMF)。非BSR收到自举报文分片后,若发现某组范围对应的RP信息都在这一个分片中,便立即更新该组范围对应的RP-Set;若发现某组范围映射的RP信息被分在了多个分片中,则待收齐了这些分片后再更新该组范围对应的RP-Set。这样,由于不同分片所含组范围对应的RP信息不同,因此个别分片的丢失只影响该分片所含组范围对应的RP信息,而不会导致整个自举报文都被丢弃。
自举报文语义分片功能是缺省使能的,但由于不支持该功能的设备会将自举报文分片当作完整的自举报文处理,从而导致其学到的RP-Set信息不完整,因此当IPv6 PIM-SM域中存在此类设备时,请在已配置为C-BSR的路由器上关闭本功能。
表1-18 关闭自举报文语义分片功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入IPv6 PIM视图 |
pim ipv6 |
- |
关闭自举报文语义分片功能 |
undo bsm-fragment enable |
必选 缺省情况下,自举报文语义分片功能处于使能状态 |
通常,BSR根据其BSR接口的MTU值对自举报文进行语义分片;而对由于新学到IPv6 PIM邻居而触发的自举报文发送,则根据发送接口的MTU值进行语义分片。
在IPv6非管理域机制下,一个IPv6 PIM-SM域中只有唯一的BSR,整个网络都在该BSR的管理范围之内。为了更有针对性地管理,可以将整个IPv6 PIM-SM域划分为多个IPv6管理域:每个IPv6管理域中各维护一个BSR,服务于特定Scope值的IPv6组播组;IPv6 Global域则可视为一种特殊的IPv6管理域,其维护的BSR为Scope值为14的IPv6组播组提供服务。
在配置IPv6管理域各项功能之前,必须先使能IPv6管理域机制。
请在IPv6 PIM-SM域内的所有路由器上进行如下配置。
表1-19 使能IPv6管理域机制
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入IPv6 PIM视图 |
pim ipv6 |
- |
使能IPv6管理域机制 |
c-bsr admin-scope |
必选 缺省情况下,IPv6管理域机制处于关闭状态 |
在IPv6管理域机制中,各IPv6管理域的边界由ZBR构成,每个IPv6管理域各维护一个BSR,服务于特定Scope值的IPv6组播组,属于此范围的IPv6组播协议报文(如断言报文、BSR自举报文等)无法通过IPv6管理域边界。
请在欲配置为ZBR的路由器上进行如下配置。
表1-20 配置IPv6管理域边界
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入接口视图 |
interface interface-type interface-number |
- |
配置IPv6组播转发边界 |
multicast ipv6 boundary { ipv6-group-address prefix-length | scope { scope-id | admin-local | global | organization-local | site-local } } |
必选 缺省情况下,没有配置IPv6组播转发边界 |
有关multicast ipv6 boundary命令的详细介绍,请参见“IP组播命令参考”中的“IPv6组播路由与转发”。
在应用了IPv6管理域机制的网络中,从众多C-BSR中选举出针对不同Scope值的BSR。网络内的C-RP只向对应的BSR发送宣告报文,由BSR汇总为RP-Set,并向其所服务IPv6管理域内的所有路由器进行宣告。所有路由器都使用统一的哈希算法,得到特定IPv6组播组所对应RP的地址。
请在欲配置为IPv6管理域C-BSR的路由器上进行如下配置。
表1-21 配置IPv6管理域的C-BSR
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入IPv6 PIM视图 |
pim ipv6 |
- |
配置IPv6管理域的C-BSR |
c-bsr scope { scope-id | admin-local | global | organization-local | site-local } [ hash-length hash-length | priority priority ] * |
必选 缺省情况下,没有配置IPv6管理域的C-BSR |
· 哈希掩码长度和C-BSR的优先级可以在全局和IPv6管理域这两种范围内进行配置:
· 如果在IPv6管理域下进行了配置,则取其配置值;
· 如果未在IPv6管理域下进行配置,则取相应的全局值。
有关全局C-BSR参数的相关配置,请参见“1.3.5 3. 全局配置C-BSR参数”。
在IPv6 PIM-SM域内,IPv6组播源侧DR向RP发送注册报文,而这些注册报文拥有不同的IPv6组播源或IPv6组播地址。为了让RP服务于特定的IPv6组播组,可以对注册报文进行过滤。如果某个(S,G)表项被过滤规则拒绝,或者过滤规则中没有定义对它的操作,RP都会向DR发送注册停止报文,以停止该IPv6组播数据的注册过程。
出于对注册报文在传递过程中完整性的考虑,可以配置根据整个报文来计算校验和。但为了减少往注册报文中封装数据报文的工作量并考虑到互通性,一般情况下不建议配置根据注册报文的全部内容来计算校验和的方式。
当接收者不再通过RP接收发往某IPv6组播组的数据(即RP不再服务于该IPv6组播组),或RP开始接收IPv6组播源沿着SPT发来的IPv6组播数据时,RP将向IPv6组播源侧DR发送注册停止报文,DR收到该报文后将停止发送封装有IPv6组播数据的注册报文并启动注册停止定时器(Register-Stop Timer)。在注册停止定时器超时之前,DR会向RP发送一个空注册报文(Null-Register Message,即不封装IPv6组播数据的注册报文):如果DR在注册探测时间(Register_Probe_Time)内收到了来自RP的注册停止报文,DR将刷新其注册停止定时器;否则,DR将重新开始发送封装有IPv6组播数据的注册报文。
注册停止定时器的超时时间是一个随机值,由其它两个时间值决定:注册抑制时间(Register_Suppression_Time)和注册探测时间。其具体取值范围如下:(0.5×注册抑制时间,1.5×注册抑制时间)-注册探测时间。
请在所有已配置为C-RP的路由器上配置注册报文的过滤规则和根据注册报文的全部内容来计算校验和;请在所有可能成为IPv6组播源侧DR的路由器上配置注册抑制时间和注册探测时间。
表1-22 配置IPv6组播源注册
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入IPv6 PIM视图 |
pim ipv6 |
- |
配置注册报文的过滤规则 |
register-policy acl6-number |
可选 缺省情况下,没有配置注册报文的过滤规则 |
配置根据注册报文的全部内容来计算校验和 |
register-whole-checksum |
可选 缺省情况下,仅根据注册报文头来计算校验和 |
配置注册抑制时间 |
register-suppression-timeout interval |
可选 缺省情况下,注册抑制时间为60秒 |
配置注册探测时间 |
probe-interval interval |
可选 缺省情况下,注册探测时间为5秒 |
由于RPT不一定是路径最短的树,因此当IPv6组播数据流量变大时有必要将RPT切换为路径最短的SPT。IPv6 PIM-SM路由器最初通过RPT转发IPv6组播数据,默认情况下,设备从RPT收到第一个IPv6组播数据包后便立即向SPT切换。
设备一旦建立了IPv6组播转发表项,即使有注册出接口,后续的IPv6组播数据报文也不会被封装成注册报文进行转发。所以,在可能成为RP的交换机(即静态RP或C-RP等)上,请不要使用参数infinity配置永远不向SPT切换,以免导致转发失败。
请在所有可能成为接收者侧DR上进行如下配置。
表1-23 配置SPT切换
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入IPv6 PIM视图 |
pim ipv6 |
- |
配置发起SPT切换的条件 |
spt-switch-threshold infinity [ group-policy acl6-number [ order order-value ] ] |
可选 缺省情况下,设备收到第一个IPv6组播数据包后便立即向SPT切换 |
IPv6 PIM-SSM模型需要MLDv2的支持,因此应确保连接有接收者的IPv6 PIM路由器上使能了MLDv2。
表1-24 IPv6 PIM-SSM配置任务简介
配置任务 |
说明 |
详细配置 |
使能IPv6 PIM-SM |
必选 |
|
配置IPv6 SSM组播组范围 |
可选 |
|
配置IPv6 PIM公共特性 |
可选 |
在配置IPv6 PIM-SSM之前,需完成以下任务:
· 使能IPv6转发功能并配置任一IPv6单播路由协议,实现域内网络层互通
在配置IPv6 PIM-SSM之前,需准备以下数据:
· IPv6 SSM组播组范围
由于IPv6 PIM-SSM是通过IPv6 PIM-SM的部分子集功能实现的,因此在配置IPv6 PIM-SSM之前须先使能IPv6 PIM-SM。在部署IPv6 PIM-SSM域时,建议在其所有非边界接口上均使能IPv6 PIM-SM。
表1-25 使能IPv6 PIM-SM
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
使能IPv6组播路由 |
multicast ipv6 routing-enable |
必选 缺省情况下,IPv6组播路由处于关闭状态 |
进入接口视图 |
interface interface-type interface-number |
- |
使能IPv6 PIM-SM |
pim ipv6 sm |
必选 缺省情况下,IPv6 PIM-SM处于关闭状态 |
同一台设备所有接口上所启用的IPv6 PIM模式必须相同。
有关multicast ipv6 routing-enable命令的详细介绍,请参见“IP组播命令参考”中的“IPv6组播路由与转发”。
在把来自IPv6组播源的信息传递给接收者的过程中,是采用IPv6 PIM-SSM模型还是IPv6 PIM-SM模型,这取决于接收者订阅通道(S,G)中的IPv6组播组是否在IPv6 SSM组播组范围之内,所有使能了IPv6 PIM-SM的接口将会认为属于该范围内的IPv6组播组采用了IPv6 SSM模型。
请在IPv6 PIM-SSM域内的所有路由器上进行如下配置。
表1-26 配置IPv6 SSM组播组范围
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入IPv6 PIM视图 |
pim ipv6 |
- |
配置IPv6 SSM组播组的范围 |
ssm-policy acl6-number |
可选 缺省情况下,IPv6 SSM组播组的范围为FF3x::/32,其中x表示任意合法的scope |
· 应确保域内所有路由器上配置的IPv6 SSM组播组地址范围都一致,否则组播信息将无法通过IPv6 SSM模型进行传输。
· 如果某IPv6组播组属于IPv6 SSM组播组范围,但该组成员使用MLDv1发送加入报文,则设备不会触发(*,G)加入报文。
对于本节中那些既可在IPv6 PIM视图、又可在接口视图下进行配置的功能或参数来说:
· 在IPv6 PIM视图下所作的配置对所有接口生效,在接口视图下所作的配置仅对当前接口生效;
· 如果在这两个视图下对某功能或参数均进行了配置,则不论配置先后,接口视图下的配置将被优先采用。
表1-27 IPv6 PIM公共特性配置任务简介
配置任务 |
说明 |
详细配置 |
配置IPv6组播数据过滤器 |
可选 |
|
配置Hello报文过滤器 |
可选 |
|
配置Hello报文选项 |
可选 |
|
配置剪枝延迟时间 |
可选 |
|
配置IPv6 PIM公共定时器 |
可选 |
|
配置加入/剪枝报文规格 |
可选 |
|
配置IPv6 PIM与BFD联动 |
可选 |
在配置IPv6 PIM公共特性之前,需完成以下任务:
· 使能IPv6转发功能并配置任一IPv6单播路由协议,实现域内网络层互通
· 配置IPv6 PIM-DM(或IPv6 PIM-SM、IPv6 PIM-SSM)
在配置IPv6 PIM公共特性之前,需准备以下数据:
· 表示IPv6组播数据过滤规则的IPv6 ACL规则
· 表示合法Hello报文的源地址范围的IPv6 ACL规则
· 竞选DR的优先级(全局值/接口值)
· 保持IPv6 PIM邻居可达状态的时间(全局值/接口值)
· 发送剪枝报文的延迟时间(全局值/接口值)
· 剪枝否决时间(全局值/接口值)
· 剪枝延迟时间
· 发送Hello报文的时间间隔(全局值/接口值)
· 发送Hello报文的最大延迟时间(接口值)
· 保持断言状态的时间(全局值/接口值)
· 发送加入/剪枝报文的时间间隔(全局值/接口值)
· 保持加入/剪枝状态的时间(全局值/接口值)
· IPv6组播源生存时间
· 加入/剪枝报文的最大长度
· 加入/剪枝报文中(S,G)表项的最大数量
无论在IPv6 PIM-DM还是IPv6 PIM-SM域内,各路由器都可以对流经自己的IPv6组播数据进行检查,通过比较是否符合过滤规则,从而决定是否继续转发IPv6组播数据。也就是说IPv6 PIM域内的路由器能够成为IPv6组播数据的过滤器。过滤器的存在一方面有助于实现信息流量控制,另一方面可以在安全性方面限定下游接收者能够获得的信息。
表1-28 配置IPv6组播数据过滤器
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入IPv6 PIM视图 |
pim ipv6 |
- |
配置IPv6组播数据过滤器 |
source-policy acl6-number |
必选 缺省情况下,没有配置IPv6组播数据过滤器 |
· 通常,过滤器的位置离IPv6组播源距离越近,过滤影响越明显。
· 过滤器不仅过滤独立的IPv6组播数据,还过滤封装在注册报文中的IPv6组播数据。
随着IPv6 PIM协议的推广和应用,对其安全性的要求也越来越高。建立正确的IPv6 PIM邻居是IPv6 PIM协议安全应用的前提。如果在接口上指定了合法Hello报文的源地址范围,便能够保证IPv6 PIM邻居的正确建立,从而有效防止各种IPv6 PIM协议报文攻击,提高设备对IPv6 PIM协议报文处理的安全性。
表1-29 配置Hello报文过滤器
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入接口视图 |
interface interface-type interface-number |
- |
配置合法Hello报文的源地址范围 |
pim ipv6 neighbor-policy acl6-number |
必选 缺省情况下,Hello报文的源地址范围不受任何限制 |
当Hello报文过滤器的配置生效后,对于之前已建立的IPv6 PIM邻居,若由于其Hello报文被过滤而导致无法收到后续的Hello报文,将会在老化超时后被自动删除。
无论在IPv6 PIM-DM域还是在IPv6 PIM-SM域内,各路由器之间发送的Hello报文都包含很多可供配置的选项,对各选项的介绍如下:
· DR_Priority(仅用于IPv6 PIM-SM):表示竞选DR的优先级,优先级高的设备被选举为DR。可以在与IPv6组播源或接收者直连的共享网络中的所有路由器上都配置此参数。
· Holdtime:表示保持IPv6 PIM邻居可达状态的时间,若超时后仍没有收到Hello报文,则认为IPv6 PIM邻居失效或不可达。
· LAN_Prune_Delay:表示在共享网络上传递剪枝报文的延迟时间,该选项由三部分组成:LAN-delay(发送剪枝报文的延迟时间)、Override-interval(剪枝否决时间)和禁止加入报文抑制能力。当共享网段内各IPv6 PIM路由器的LAN-delay或Override-interval不同时,取其中最大的值;当要禁止加入报文抑制能力时,须在共享网段内的所有IPv6 PIM路由器上都禁止该能力。
LAN-delay表示路由器从收到下游路由器发来的剪枝报文到继续向上游路由器发送剪枝报文的延迟时间,Override-interval则表示允许下游路由器否决剪枝动作的时间。路由器在收到下游路由器发来的剪枝报文后并不立即执行剪枝动作,而是仍将当前的转发状态保持LAN-delay+Override-interval时间。如果下游路由器需要继续接收IPv6组播数据,则必须在Override-interval时间内向上游路由器发送加入报文以否决这个剪枝动作,这就称为剪枝否决;如果Override-interval时间超时后未收到任何加入报文,上游路由器就会在LAN-delay+Override-interval时间超时后执行剪枝动作。
IPv6 PIM路由器发送Hello报文时,会生成一个随机数Generation ID并携带在该报文中。一台IPv6 PIM路由器的Generation ID一般不会变化,除非该路由器的状态发生了改变(如接口刚使能了IPv6 PIM或设备进行了重启),此时,当其开始或重新开始发送Hello报文时,会生成一个新的Generation ID。这样,如果IPv6 PIM路由器发现其上游邻居发来的Hello报文中Generation ID发生了改变,就会认为该邻居的状态已经丢失或其上游邻居已经改变,从而触发发送加入报文以进行状态刷新。
在禁止加入报文抑制能力(即使能邻居跟踪)时,应在共享网段的所有IPv6 PIM路由器上都禁止该能力,否则上游路由器无法跟踪每台下游路由器的加入报文。
表1-30 全局配置Hello报文选项
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入IPv6 PIM视图 |
pim ipv6 |
- |
配置竞选DR的优先级 |
hello-option dr-priority priority |
可选 缺省情况下,竞选DR的优先级为1 |
配置保持IPv6 PIM邻居可达状态的时间 |
hello-option holdtime interval |
可选 缺省情况下,保持IPv6 PIM邻居可达状态的时间为105秒 |
配置发送剪枝报文的延迟时间 |
hello-option lan-delay interval |
可选 缺省情况下,发送剪枝报文的延迟时间为500毫秒 |
配置剪枝否决时间 |
hello-option override-interval interval |
可选 缺省情况下,剪枝否决时间为2500毫秒 |
禁止加入报文抑制能力 |
hello-option neighbor-tracking |
必选 缺省情况下,加入报文抑制能力处于使能状态 |
表1-31 在接口上配置Hello报文选项
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入接口视图 |
interface interface-type interface-number |
- |
配置竞选DR的优先级 |
pim ipv6 hello-option dr-priority priority |
可选 缺省情况下,竞选DR的优先级为1 |
配置保持IPv6 PIM邻居可达状态的时间 |
pim ipv6 hello-option holdtime interval |
可选 缺省情况下,保持IPv6 PIM邻居可达状态的时间为105秒 |
配置发送剪枝报文的延迟时间 |
pim ipv6 hello-option lan-delay interval |
可选 缺省情况下,发送剪枝报文的延迟时间为500毫秒 |
配置剪枝否决时间 |
pim ipv6 hello-option override-interval interval |
可选 缺省情况下,剪枝否决时间为2500毫秒 |
禁止加入报文抑制能力 |
pim ipv6 hello-option neighbor-tracking |
必选 缺省情况下,加入报文抑制能力处于使能状态 |
配置不接受无Generation ID的Hello报文 |
pim ipv6 require-genid |
必选 缺省情况下,接受无Generation ID的Hello报文 |
剪枝延迟时间(Prune Delay)的作用是使共享网段中的上游路由器在收到下游路由器发来的剪枝报文后不会立即执行剪枝动作,而将当前的转发状态继续保持Prune Delay时间:如果在该时间内收到了下游路由器发来的加入报文,则否决这个剪枝动作;否则,便执行这个执行剪枝动作。
表1-32 配置剪枝延迟时间
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入IPv6 PIM视图 |
pim ipv6 |
- |
配置剪枝延迟时间 |
prune delay interval |
可选 缺省情况下,剪枝延迟时间等于剪枝未决时间(Prune Pending Timer,缺省为3秒) |
IPv6 PIM路由器通过周期性地发送Hello报文,以发现IPv6 PIM邻居,并维护各路由器之间的IPv6 PIM邻居关系。
为了避免多个IPv6 PIM路由器同时发送Hello报文而导致冲突,当IPv6 PIM路由器在收到Hello报文时,将延迟一段时间后再发送Hello报文,该时间值为小于“触发Hello报文的最大延迟时间”的一个随机值。
IPv6 PIM路由器通过周期性地向其上游路由器发送加入/剪枝报文以更新状态,在该报文中携带有保持时间,上游路由器为被剪枝的下游接口设置保持加入/剪枝状态定时器。
在断言中落选的路由器将会剪掉其下游的转发接口,并把这种断言状态保持一段时间。超时后,落选的路由器会重新恢复转发IPv6组播数据。
当路由器没有收到来自IPv6组播源S的后续IPv6组播数据时,不会立即删除(S,G)表项,而是将其维持一段时间后再删除,这段时间就称为IPv6组播源的生存时间。
表1-33 全局配置IPv6 PIM公共定时器
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入IPv6 PIM视图 |
pim ipv6 |
- |
配置发送Hello报文的时间间隔 |
timer hello interval |
可选 缺省情况下,发送Hello报文的时间间隔为30秒 |
配置发送加入/剪枝报文的时间间隔 |
timer join-prune interval |
可选 缺省情况下,发送加入/剪枝报文的时间间隔为60秒 |
配置保持加入/剪枝状态的时间 |
holdtime join-prune interval |
可选 缺省情况下,保持加入/剪枝状态的时间为210秒 |
配置保持断言状态的时间 |
holdtime assert interval |
可选 缺省情况下,保持断言状态的时间为180秒 |
配置IPv6组播源生存时间 |
source-lifetime interval |
可选 缺省情况下,IPv6组播源的生存时间为210秒 |
表1-34 在接口上配置IPv6 PIM公共定时器
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入接口视图 |
interface interface-type interface-number |
- |
配置发送Hello报文的时间间隔 |
pim ipv6 timer hello interval |
可选 缺省情况下,发送Hello报文的时间间隔为30秒 |
配置触发Hello报文的最大延迟时间 |
pim ipv6 triggered-hello-delay interval |
可选 缺省情况下,触发Hello报文的最大延迟时间为5秒 |
配置发送加入/剪枝报文的时间间隔 |
pim ipv6 timer join-prune interval |
可选 缺省情况下,发送加入/剪枝报文的时间间隔为60秒 |
配置保持加入/剪枝状态的时间 |
pim ipv6 holdtime join-prune interval |
可选 缺省情况下,保持加入/剪枝状态的时间为210秒 |
配置保持断言状态的时间 |
pim ipv6 holdtime assert interval |
可选 缺省情况下,保持断言状态的时间为180秒 |
如果网络没有特殊要求,建议采用缺省值。
如果加入/剪枝报文的尺寸较大,则丢失一个报文将导致较多信息的遗失;如果加入/剪枝报文的尺寸较小,则单个报文的丢失所产生的影响也将降低。
通过控制加入/剪枝报文中(S,G)表项的数目,可以有效减少单位时间内发送的(S,G)表项数量。
表1-35 配置加入/剪枝报文规格
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入IPv6 PIM视图 |
pim ipv6 |
- |
配置加入/剪枝报文的最大长度 |
jp-pkt-size packet-size |
可选 缺省情况下,加入/剪枝报文的最大长度为8100字节 |
配置加入/剪枝报文中(S,G)表项的最大数量 |
jp-queue-size queue-size |
可选 缺省情况下,加入/剪枝报文中(S,G)表项的最大数量为1020个 |
IPv6 PIM借助Hello报文在共享网段中选举出DR,使其成为该网段中IPv6组播数据的唯一转发者。当DR出现故障时,只有待其老化后才会触发新的DR选举过程,这个过程通常比较长。为了实现DR的快速切换,可以在共享网段的IPv6 PIM邻居之间引入BFD机制进行链路状态的快速检测。通过在共享网段内的所有IPv6 PIM路由器上都使能IPv6 PIM与BFD联动功能,可以使这些IPv6 PIM邻居快速感知DR故障并重新选举DR。
表1-36 配置IPv6 PIM与BFD联动
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入接口视图 |
interface interface-type interface-number |
- |
使能IPv6 PIM BFD功能 |
pim ipv6 bfd enable |
必选 缺省情况下,IPv6 PIM BFD功能处于关闭状态 |
· 只有在接口上先使能了IPv6 PIM-DM或IPv6 PIM-SM,本配置才能生效。
· 有关BFD的详细介绍,请参见“可靠性配置指导”中的“BFD”。
在完成上述配置后,在任意视图下执行display命令可以显示配置后IPv6 PIM的运行情况,通过查看显示信息验证配置的效果。
在用户视图下执行reset命令可以清除IPv6 PIM统计信息。
表1-37 IPv6 PIM显示和维护
操作 |
命令 |
查看IPv6 PIM-SM域中的BSR信息,以及本地配置并生效的C-RP信息 |
display pim ipv6 bsr-info [ | { begin | exclude | include } regular-expression ] |
查看IPv6 PIM所使用的IPv6单播路由信息 |
display pim ipv6 claimed-route [ ipv6-source-address ] [ | { begin | exclude | include } regular-expression ] |
查看IPv6 PIM控制报文的数量 |
display pim ipv6 control-message counters [ message-type { probe | register | register-stop } | [ interface interface-type interface-number | message-type { assert | bsr | crp | graft | graft-ack | hello | join-prune | state-refresh } ] * ] [ | { begin | exclude | include } regular-expression ] |
查看尚未被确认的IPv6 PIM-DM嫁接信息 |
display pim ipv6 grafts [ | { begin | exclude | include } regular-expression ] |
查看接口上的IPv6 PIM信息 |
display pim ipv6 interface [ interface-type interface-number ] [ verbose ] [ | { begin | exclude | include } regular-expression ] |
查看待发送的加入/剪枝报文信息 |
display pim ipv6 join-prune mode { sm [ flags flag-value ] | ssm } [ interface interface-type interface-number | neighbor ipv6-neighbor-address ] * [ verbose ] [ | { begin | exclude | include } regular-expression ] |
查看IPv6 PIM邻居信息 |
display pim ipv6 neighbor [ interface interface-type interface-number | ipv6-neighbor-address | verbose ] * [ | { begin | exclude | include } regular-expression ] |
查看IPv6 PIM路由表的内容 |
display pim ipv6 routing-table [ ipv6-group-address [ prefix-length ] | ipv6-source-address [ prefix-length ] | incoming-interface [ interface-type interface-number | register ] | outgoing-interface { include | exclude | match } { interface-type interface-number | register } | mode mode-type | flags flag-value | fsm ] * [ | { begin | exclude | include } regular-expression ] |
查看RP的信息 |
display pim ipv6 rp-info [ ipv6-group-address ] [ | { begin | exclude | include } regular-expression ] |
重置IPv6 PIM控制报文计数器 |
reset pim ipv6 control-message counters [ interface interface-type interface-number ] |
缺省情况下,以太网接口、VLAN接口及聚合接口处于DOWN状态。如果要对这些接口进行配置,请先使用undo shutdown命令使接口状态处于UP状态。
· 接收者通过组播方式接收视频点播信息,不同组织的接收者群体组成末梢网络,每个末梢网络中都存在至少一个接收者,整个IPv6 PIM域采用DM方式。
· Host A和Host C为两个末梢网络中的IPv6组播信息接收者;Switch D通过Vlan-interface300接口与IPv6组播源(Source)所在的网络连接;Switch A通过Vlan-interface100接口连接末梢网络N1,通过Vlan-interface103接口连接Switch D;Switch B和Switch C通过各自的Vlan-interface200接口连接末梢网络N2,分别通过Vlan-interface101和Vlan-interface102接口连接Switch D。
· Switch A与末梢网络N1之间运行MLDv1;Switch B和Switch C与末梢网络N2之间也运行MLDv1。
图1-10 IPv6 PIM-DM典型配置组网图
设备 |
接口 |
IPv6地址 |
设备 |
接口 |
IPv6地址 |
Switch A |
Vlan-int100 |
1001::1/64 |
Switch D |
Vlan-int300 |
4001::1/64 |
|
Vlan-int103 |
1002::1/64 |
|
Vlan-int103 |
1002::2/64 |
Switch B |
Vlan-int200 |
2001::1/64 |
|
Vlan-int101 |
2002::2/64 |
|
Vlan-int101 |
2002::1/64 |
|
Vlan-int102 |
3001::2/64 |
Switch C |
Vlan-int200 |
2001::2/64 |
|
|
|
|
Vlan-int102 |
3001::1/64 |
|
|
|
使能IPv6转发功能,并配置IPv6地址和IPv6单播路由协议
使能各交换机的IPv6转发功能,并按照图1-10配置各接口的IPv6地址和前缀长度,具体配置过程略。
配置IPv6 PIM-DM域内的各交换机之间采用OSPFv3协议进行互连,确保IPv6 PIM-DM域内部在网络层互通,并且各交换机之间能够借助IPv6单播路由协议实现动态路由更新,具体配置过程略。
使能IPv6组播路由,并使能IPv6 PIM-DM和MLD
# 在Switch A上使能IPv6组播路由,在各接口上使能IPv6 PIM-DM,并在其连接末梢网络的接口Vlan-interface100上使能MLD。
<SwitchA> system-view
[SwitchA] multicast ipv6 routing-enable
[SwitchA] interface vlan-interface 100
[SwitchA-Vlan-interface100] mld enable
[SwitchA-Vlan-interface100] pim ipv6 dm
[SwitchA-Vlan-interface100] quit
[SwitchA] interface vlan-interface 103
[SwitchA-Vlan-interface103] pim ipv6 dm
[SwitchA-Vlan-interface103] quit
Switch B和Switch C的配置与Switch A相似,配置过程略。
# 在Switch D上使能IPv6组播路由,并在各接口上使能IPv6 PIM-DM。
<SwitchD> system-view
[SwitchD] multicast ipv6 routing-enable
[SwitchD] interface vlan-interface 300
[SwitchD-Vlan-interface300] pim ipv6 dm
[SwitchD-Vlan-interface300] quit
[SwitchD] interface vlan-interface 103
[SwitchD-Vlan-interface103] pim ipv6 dm
[SwitchD-Vlan-interface103] quit
[SwitchD] interface vlan-interface 101
[SwitchD-Vlan-interface101] pim ipv6 dm
[SwitchD-Vlan-interface101] quit
[SwitchD] interface vlan-interface 102
[SwitchD-Vlan-interface102] pim ipv6 dm
[SwitchD-Vlan-interface102] quit
通过使用display pim ipv6 interface命令可以查看交换机接口上IPv6 PIM的配置和运行情况。例如:
# 查看Switch D上IPv6 PIM的配置信息。
[SwitchD] display pim ipv6 interface
Interface NbrCnt HelloInt DR-Pri DR-Address
Vlan300 0 30 1 4001::1
(local)
Vlan103 0 30 1 1002::2
(local)
Vlan101 1 30 1 2002::2
(local)
Vlan102 1 30 1 3001::2
(local)
通过使用display pim ipv6 neighbor命令可以查看交换机之间的IPv6 PIM邻居关系。例如:
# 查看Switch D上IPv6 PIM的邻居关系信息。
[SwitchD] display pim ipv6 neighbor
Total Number of Neighbors = 3
Neighbor Interface Uptime Expires Dr-Priority
1002::1 Vlan103 00:04:00 00:01:29 1
2002::1 Vlan101 00:04:16 00:01:29 3
3001::1 Vlan102 00:03:54 00:01:17 5
假如Host A需要接收IPv6组播组G(FF0E::101)的信息,当IPv6组播源S(4001::100/64)向IPv6组播组G发送IPv6组播数据时,通过扩散生成SPT,SPT路径中各交换机(Switch A和Switch D)上都存在(S,G)表项,Host A向Switch A发送MLD报告以加入IPv6组播组G,在Switch A上生成(*,G)表项。通过使用display pim ipv6 routing-table命令可以查看交换机的IPv6 PIM路由表信息。例如:
# 查看Switch A上的IPv6 PIM路由表信息。
[SwitchA] display pim ipv6 routing-table
Total 1 (*, G) entry; 1 (S, G) entry
(*, FF0E::101)
Protocol: pim-dm, Flag: WC
UpTime: 00:01:24
Upstream interface: NULL
Upstream neighbor: NULL
RPF prime neighbor: NULL
Downstream interface(s) information:
Total number of downstreams: 1
1: Vlan-interface100
Protocol: mld, UpTime: 00:01:20, Expires: never
(4001::100, FF0E::101)
Protocol: pim-dm, Flag: ACT
UpTime: 00:01:20
Upstream interface: Vlan-interface103
Upstream neighbor: 1002::2
RPF prime neighbor: 1002::2
Downstream interface(s) information:
Total number of downstreams: 1
1: Vlan-interface100
Protocol: pim-dm, UpTime: 00:01:20, Expires: never
# 查看Switch D上的IPv6 PIM路由表信息。
[SwitchD] display pim ipv6 routing-table
Total 0 (*, G) entry; 1 (S, G) entry
(4001::100, FF0E::101)
Protocol: pim-dm, Flag: LOC ACT
UpTime: 00:02:19
Upstream interface: Vlan-interface300
Upstream neighbor: NULL
RPF prime neighbor: NULL
Downstream interface(s) information:
Total number of downstreams: 2
1: Vlan-interface103
Protocol: pim-dm, UpTime: 00:02:19, Expires: never
2: Vlan-interface102
Protocol: pim-dm, UpTime: 00:02:19, Expires: never
· 接收者通过组播方式接收视频点播信息,不同组织的接收者群体组成末梢网络,每个末梢网络中都存在至少一个接收者,整个IPv6 PIM域采用SM方式。
· Host A和Host C为两个末梢网络中的IPv6组播信息接收者;Switch D通过Vlan-interface300接口与IPv6组播源(Source)所在网络连接;Switch A通过Vlan-interface100接口连接末梢网络N1,通过Vlan-interface101接口和Vlan-interface102接口分别连接Switch D和Switch E;Switch B和Switch C通过各自的Vlan-interface200接口连接末梢网络N2,分别通过Vlan-interface103和Vlan-interface104接口连接Switch E。
· 将Switch D的Vlan-interface105接口和Switch E的Vlan-interface102都配置为C-BSR和C-RP,其中Switch E上C-BSR的优先级较高。C-RP所服务的IPv6组播组范围为FF0E::101/64,通过改变哈希掩码长度使此范围内的IPv6组地址间隔映射到这两个C-RP上。
· Switch A与末梢网络N1之间运行MLDv1;Switch B和Switch C与末梢网络N2之间也运行MLDv1。
图1-11 IPv6 PIM-SM非管理域典型配置组网图
设备 |
接口 |
IPv6地址 |
设备 |
接口 |
IPv6地址 |
Switch A |
Vlan-int100 |
1001::1/64 |
Switch D |
Vlan-int300 |
4001::1/64 |
|
Vlan-int101 |
1002::1/64 |
|
Vlan-int101 |
1002::2/64 |
|
Vlan-int102 |
1003::1/64 |
|
Vlan-int105 |
4002::1/64 |
Switch B |
Vlan-int200 |
2001::1/64 |
Switch E |
Vlan-int104 |
3001::2/64 |
|
Vlan-int103 |
2002::1/64 |
|
Vlan-int103 |
2002::2/64 |
Switch C |
Vlan-int200 |
2001::2/64 |
|
Vlan-int102 |
1003::2/64 |
|
Vlan-int104 |
3001::1/64 |
|
Vlan-int105 |
4002::2/64 |
表1-1 使能IPv6转发功能,并配置IPv6地址和IPv6单播路由协议
使能各交换机的IPv6转发功能,并按照图1-11配置各接口的IPv6地址和前缀长度,具体配置过程略。
配置IPv6 PIM-SM域内的各交换机之间采用OSPFv3协议进行互连,确保IPv6 PIM-SM域内部在网络层互通,并且各交换机之间能够借助IPv6单播路由协议实现动态路由更新,具体配置过程略。
使能IPv6组播路由,并使能IPv6 PIM-SM和MLD
# 在Switch A上使能IPv6组播路由,在各接口上使能IPv6 PIM-SM,并在其连接末梢网络的接口Vlan-interface300上使能MLD。
<SwitchA> system-view
[SwitchA] multicast ipv6 routing-enable
[SwitchA] interface vlan-interface 100
[SwitchA-Vlan-interface100] mld enable
[SwitchA-Vlan-interface100] pim ipv6 sm
[SwitchA-Vlan-interface100] quit
[SwitchA] interface vlan-interface 101
[SwitchA-Vlan-interface101] pim ipv6 sm
[SwitchA-Vlan-interface101] quit
[SwitchA] interface vlan-interface 102
[SwitchA-Vlan-interface102] pim ipv6 sm
[SwitchA-Vlan-interface102] quit
Switch B和Switch C的配置与Switch A相似,Switch D和Switch E除了不需要在相应接口上使能MLD外,其它的配置也与Switch A相似,配置过程略。
配置C-BSR和C-RP
# 在Switch D上配置RP通告的服务范围,以及C-BSR和C-RP的位置,并指定哈希掩码长度为128,C-BSR的优先级为10。
<SwitchD> system-view
[SwitchD] acl ipv6 number 2005
[SwitchD-acl6-basic-2005] rule permit source ff0e::101 64
[SwitchD-acl6-basic-2005] quit
[SwitchD] pim ipv6
[SwitchD-pim6] c-bsr 4002::1 128 10
[SwitchD-pim6] c-rp 4002::1 group-policy 2005
[SwitchD-pim6] quit
# 在Switch E上配置RP通告的服务范围,以及C-BSR和C-RP的位置,并指定哈希掩码长度为128,C-BSR的优先级为20。
<SwitchE> system-view
[SwitchE] acl ipv6 number 2005
[SwitchE-acl6-basic-2005] rule permit source ff0e::101 64
[SwitchE-acl6-basic-2005] quit
[SwitchE] pim ipv6
[SwitchE-pim6] c-bsr 1003::2 128 20
[SwitchE-pim6] c-rp 1003::2 group-policy 2005
[SwitchE-pim6] quit
通过使用display pim ipv6 interface命令可以查看交换机接口上IPv6 PIM的配置和运行情况。例如:
# 查看Switch A上IPv6 PIM的配置信息。
[SwitchA] display pim ipv6 interface
Interface NbrCnt HelloInt DR-Pri DR-Address
Vlan100 0 30 1 1001::1
(local)
Vlan101 1 30 1 1002::2
Vlan102 1 30 1 1003::2
通过使用display pim ipv6 bsr-info命令可以查看交换机上BSR选举的信息,以及本地配置并生效的C-RP信息。例如:
# 查看Switch A上的BSR信息,以及本地配置并生效的C-RP信息。
[SwitchA] display pim ipv6 bsr-info
Elected BSR Address: 1003::2
Priority: 20
Hash mask length: 128
State: Accept Preferred
Uptime: 00:04:22
Expires: 00:01:46
# 查看Switch D上的BSR信息,以及本地配置并生效的C-RP信息。
[SwitchD] display pim ipv6 bsr-info
Elected BSR Address: 1003::2
Priority: 20
Hash mask length: 128
State: Elected
Uptime: 00:05:26
Expires: 00:01:45
Candidate BSR Address: 4002::1
Priority: 10
Hash mask length: 128
State: Candidate
Candidate RP: 4002::1(Vlan-interface105)
Priority: 192
HoldTime: 130
Advertisement Interval: 60
Next advertisement scheduled at: 00:00:48
# 查看Switch E上的BSR信息,以及本地配置并生效的C-RP信息。
[SwitchE] display pim ipv6 bsr-info
Elected BSR Address: 1003::2
Priority: 20
Hash mask length: 128
State: Elected
Uptime: 00:01:10
Next BSR message scheduled at: 00:01:48
Candidate BSR Address: 1003::2
Priority: 20
Hash mask length: 128
State: Elected
Candidate RP: 1003::2(Vlan-interface102)
Priority: 192
HoldTime: 130
Advertisement Interval: 60
Next advertisement scheduled at: 00:00:48
通过使用display pim ipv6 rp-info命令可以查看交换机上获取的RP信息。例如:
# 查看Switch A上的RP信息。
[SwitchA] display pim ipv6 rp-info
PIM-SM BSR RP information:
prefix/prefix length: FF0E::101/64
RP: 4002::1
Priority: 192
HoldTime: 130
Uptime: 00:05:19
Expires: 00:02:11
RP: 1003::2
Priority: 192
HoldTime: 130
Uptime: 00:05:19
Expires: 00:02:11
假如Host A需要接收IPv6组播组G(FF0E::100)的信息,由于根据哈希算法得出G对应的RP为Router E,因此Switch A和Switch E之间会生成RPT。当IPv6组播源S(4001::100/64)向RP发起注册后,Switch D和Switch E之间会生成SPT。当Switch A收到IPv6组播数据后立即执行从RPT到SPT的切换。RPT路径中的交换机(Switch A和Switch E)上存在(*,G)表项,而SPT路径中的交换机(Switch A和Switch D)上存在(S,G)表项,通过使用display pim ipv6 routing-table命令可以查看交换机的IPv6 PIM路由表信息。例如:
# 查看Switch A上的IPv6 PIM路由表信息。
[SwitchA] display pim ipv6 routing-table
Total 1 (*, G) entry; 1 (S, G) entry
(*, FF0E::100)
RP: 1003::2
Protocol: pim-sm, Flag: WC
UpTime: 00:03:45
Upstream interface: Vlan-interface102
Upstream neighbor: 1003::2
RPF prime neighbor: 1003::2
Downstream interface(s) information:
Total number of downstreams: 1
1: Vlan-interface100
Protocol: mld, UpTime: 00:02:15, Expires: 00:03:06
(4001::100, FF0E::100)
RP: 1003::2
Protocol: pim-sm, Flag: SPT ACT
UpTime: 00:02:15
Upstream interface: Vlan-interface101
Upstream neighbor: 1002::2
RPF prime neighbor: 1002::2
Downstream interface(s) information:
Total number of downstreams: 1
1: Vlan-interface100
Protocol: pim-sm, UpTime: 00:02:15, Expires: 00:03:06
# 查看Switch D上的IPv6 PIM路由表信息。
[SwitchD] display pim ipv6 routing-table
Total 0 (*, G) entry; 1 (S, G) entry
(4001::100, FF0E::100)
RP: 1003::2
Protocol: pim-sm, Flag: SPT LOC ACT
UpTime: 00:14:44
Upstream interface: Vlan-interface300
Upstream neighbor: NULL
RPF prime neighbor: NULL
Downstream interface(s) information:
Total number of downstreams: 1
1: Vlan-interface105
Protocol: mld, UpTime: 00:14:44, Expires: 00:02:26
# 查看Switch E上的IPv6 PIM路由表信息。
[SwitchE] display pim ipv6 routing-table
Total 1 (*, G) entry; 0 (S, G) entry
(*, FF0E::100)
RP: 1003::2 (local)
Protocol: pim-sm, Flag: WC
UpTime: 00:16:56
Upstream interface: Register
Upstream neighbor: 4002::1
RPF prime neighbor: 4002::1
Downstream interface(s) information:
Total number of downstreams: 1
1: Vlan-interface102
Protocol: pim-sm, UpTime: 00:16:56, Expires: 00:02:34
· 接收者通过组播方式接收视频点播信息,整个IPv6 PIM域采用SM管理域方式,划分为IPv6管理域1(Scope值为4)、IPv6管理域2(Scope值为4)和IPv6 Global域,Switch B、Switch C和Switch D为各IPv6管理域的ZBR。
· Source 1和Source 2分别向IPv6组播组FF14::101发送内容不同的IPv6组播信息,Host A和Host B则分别只接收来自Source 1和Source 2的IPv6组播信息;Source 3向IPv6组播组FF1E::202发送IPv6组播信息,Host C为其接收者。
· Switch B的Vlan-interface101接口为IPv6管理域1的C-BSR和C-RP,服务于Scope值为4的IPv6组播组;Switch D的Vlan-interface104接口为IPv6管理域2的C-BSR和C-RP,服务于Scope值为4的IPv6组播组;Switch F的Vlan-interface109接口为IPv6 Global域的C-BSR和C-RP,服务于Scope值为14的IPv6组播组。
· Switch A、Switch E和Switch I分别与各自所连接的接收者之间运行MLDv1。
图1-12 IPv6 PIM-SM管理域配置组网图
设备 |
接口 |
IPv6地址 |
设备 |
接口 |
IPv6地址 |
Switch A |
Vlan-int100 |
1001::1/64 |
Switch D |
Vlan-int104 |
3002::2/64 |
|
Vlan-int101 |
1002::1/64 |
|
Vlan-int108 |
6001::1/64 |
Switch B |
Vlan-int200 |
2001::1/64 |
|
Vlan-int107 |
6002::1/64 |
|
Vlan-int101 |
1002::2/64 |
Switch E |
Vlan-int400 |
7001::1/64 |
|
Vlan-int103 |
2002::1/64 |
|
Vlan-int105 |
3003::2/64 |
|
Vlan-int102 |
2003::1/64 |
|
Vlan-int108 |
6001::2/64 |
Switch C |
Vlan-int300 |
3001::1/64 |
Switch F |
Vlan-int109 |
8001::1/64 |
|
Vlan-int104 |
3002::1/64 |
|
Vlan-int107 |
6002::2/64 |
|
Vlan-int105 |
3003::1/64 |
|
Vlan-int102 |
2003::2/64 |
|
Vlan-int103 |
2002::2/64 |
Switch G |
Vlan-int500 |
9001::1/64 |
|
Vlan-int106 |
3004::1/64 |
|
Vlan-int109 |
8001::2/64 |
Switch H |
Vlan-int110 |
4001::1/64 |
Source 1 |
- |
2001::100/64 |
|
Vlan-int106 |
3004::2/64 |
Source 2 |
- |
3001::100/64 |
Switch I |
Vlan-int600 |
5001::1/64 |
Source 3 |
- |
9001::100/64 |
|
Vlan-int110 |
4001::2/64 |
|
|
|
配置IPv6地址和IPv6单播路由协议
使能各交换机的IPv6转发功能,请按照图1-12配置各接口的IPv6地址和前缀长度,具体配置过程略。
配置IPv6 PIM-SM域内的各交换机之间采用OSPFv3协议进行互连,确保IPv6 PIM-SM域内部在网络层互通,并且各交换机之间能够借助IPv6单播路由协议实现动态路由更新,具体配置过程略。
使能IPv6组播路由和IPv6管理域机制,并使能IPv6 PIM-SM和MLD
# 在Switch A上使能IPv6组播路由和IPv6管理域机制,在各接口上使能IPv6 PIM-SM,并在其连接有接收者的接口Vlan-interface100上使能MLD。
<SwitchA> system-view
[SwitchA] multicast ipv6 routing-enable
[SwitchA] pim ipv6
[SwitchA-pim6] c-bsr admin-scope
[SwitchA-pim6] quit
[SwitchA] interface vlan-interface 100
[SwitchA-Vlan-interface100] mld enable
[SwitchA-Vlan-interface100] pim ipv6 sm
[SwitchA-Vlan-interface100] quit
[SwitchA] interface vlan-interface 101
[SwitchA-Vlan-interface101] pim ipv6 sm
[SwitchA-Vlan-interface101] quit
Switch E和Switch I的配置与Switch A相似,配置过程略。
# 在Switch B上使能IPv6组播路由和IPv6管理域机制,并在各接口上使能IPv6 PIM-SM。
<SwitchB> system-view
[SwitchB] multicast ipv6 routing-enable
[SwitchB] pim ipv6
[SwitchB-pim6] c-bsr admin-scope
[SwitchB-pim6] quit
[SwitchB] interface vlan-interface 200
[SwitchB-Vlan-interface200] pim ipv6 sm
[SwitchB-Vlan-interface200] quit
[SwitchB] interface vlan-interface 101
[SwitchB-Vlan-interface101] pim ipv6 sm
[SwitchB-Vlan-interface101] quit
[SwitchB] interface vlan-interface 102
[SwitchB-Vlan-interface102] pim ipv6 sm
[SwitchB-Vlan-interface102] quit
[SwitchB] interface vlan-interface 103
[SwitchB-Vlan-interface103] pim ipv6 sm
[SwitchB-Vlan-interface103] quit
Switch C、Switch D、Switch F、Switch G和Switch H的配置与Switch B相似,配置过程略。
配置IPv6管理域边界
# 在Switch B上将接口Vlan-interface102和Vlan-interface103配置为IPv6管理域1的边界。
[SwitchB] interface vlan-interface 102
[SwitchB-Vlan-interface102] multicast ipv6 boundary scope 4
[SwitchB-Vlan-interface102] quit
[SwitchB] interface vlan-interface 103
[SwitchB-Vlan-interface103] multicast ipv6 boundary scope 4
[SwitchB-Vlan-interface103] quit
# 在Switch C上将接口Vlan-interface103和Vlan-interface106配置为IPv6管理域2的边界。
<SwitchC> system-view
[SwitchC] interface vlan-interface 103
[SwitchC-Vlan-interface103] multicast ipv6 boundary scope 4
[SwitchC-Vlan-interface103] quit
[SwitchC] interface vlan-interface 106
[SwitchC-Vlan-interface106] multicast ipv6 boundary scope 4
[SwitchC-Vlan-interface106] quit
# 在Switch D上将接口Vlan-interface107配置为IPv6管理域2的边界。
<SwitchD> system-view
[SwitchD] interface vlan-interface 107
[SwitchD-Vlan-interface107] multicast ipv6 boundary scope 4
[SwitchD-Vlan-interface107] quit
配置C-BSR和C-RP
# 在Switch B上配置RP通告的服务范围,并将接口Vlan-interface101配置为IPv6管理域1的C-BSR和C-RP。
[SwitchB] pim ipv6
[SwitchB-pim6] c-bsr scope 4
[SwitchB-pim6] c-bsr 1002::2
[SwitchB-pim6] c-rp 1002::2 scope 4
[SwitchB-pim6] quit
# 在Switch D上配置RP通告的服务范围,并将接口Vlan-interface104配置为IPv6管理域2的C-BSR和C-RP。
[SwitchD] pim ipv6
[SwitchD-pim6] c-bsr scope 4
[SwitchD-pim6] c-bsr 3002::2
[SwitchD-pim6] c-rp 3002::2 scope 4
[SwitchD-pim6] quit
# 在Switch F上将接口Vlan-interface109配置为IPv6 Global域的C-BSR和C-RP。
<SwitchF> system-view
[SwitchF] pim ipv6
[SwitchF-pim6] c-bsr scope global
[SwitchF-pim6] c-bsr 8001::1
[SwitchF-pim6] c-rp 8001::1
[SwitchF-pim6] quit
通过使用display pim ipv6 bsr-info命令可以查看交换机上BSR选举的信息,以及本地配置并生效的C-RP信息。例如:
# 查看Switch B上的BSR信息,以及本地配置并生效的C-RP信息。
[SwitchB] display pim ipv6 bsr-info
Elected BSR Address: 8001::1
Priority: 64
Hash mask length: 126
State: Accept Preferred
Scope: 14
Uptime: 00:01:45
Expires: 00:01:25
Elected BSR Address: 1002::2
Priority: 64
Hash mask length: 126
State: Elected
Scope: 4
Uptime: 00:04:54
Next BSR message scheduled at: 00:00:06
Candidate BSR Address: 1002::2
Priority: 64
Hash mask length: 126
State: Elected
Scope: 4
Candidate RP: 1002::2(Vlan-interface101)
Priority: 192
HoldTime: 130
Advertisement Interval: 60
Next advertisement scheduled at: 00:00:15
# 查看Switch D上的BSR信息,以及本地配置并生效的C-RP信息。
[SwitchD] display pim ipv6 bsr-info
Elected BSR Address: 8001::1
Priority: 64
Hash mask length: 126
State: Accept Preferred
Scope: 14
Uptime: 00:01:45
Expires: 00:01:25
Elected BSR Address: 3002::2
Priority: 64
Hash mask length: 126
State: Elected
Scope: 4
Uptime: 00:03:48
Next BSR message scheduled at: 00:01:12
Candidate BSR Address: 3002::2
Priority: 64
Hash mask length: 126
State: Elected
Scope: 4
Candidate RP: 3002::2(Vlan-interface104)
Priority: 192
HoldTime: 130
Advertisement Interval: 60
Next advertisement scheduled at: 00:00:10
# 查看Switch F上的BSR信息,以及本地配置并生效的C-RP信息。
[SwitchF] display pim ipv6 bsr-info
Elected BSR Address: 8001::1
Priority: 64
Hash mask length: 126
State: Elected
Scope: 14
Uptime: 00:01:11
Next BSR message scheduled at: 00:00:49
Candidate BSR Address: 8001::1
Priority: 64
Hash mask length: 126
State: Elected
Scope: 14
Candidate RP: 8001::1(Vlan-interface109)
Priority: 192
HoldTime: 130
Advertisement Interval: 60
Next advertisement scheduled at: 00:00:55
通过使用display pim ipv6 rp-info命令可以查看交换机上获取的RP信息。例如:
# 查看Switch B上的RP信息。
[SwitchB] display pim ipv6 rp-info
PIM-SM BSR RP information:
prefix/prefix length: FF0E::/16
RP: 8001::1
Priority: 192
HoldTime: 130
Uptime: 00:03:39
Expires: 00:01:51
prefix/prefix length: FF1E::/16
RP: 8001::1
Priority: 192
HoldTime: 130
Uptime: 00:03:39
Expires: 00:01:51
prefix/prefix length: FF2E::/16
RP: 8001::1
Priority: 192
HoldTime: 130
Uptime: 00:03:39
Expires: 00:01:51
prefix/prefix length: FF3E::/16
RP: 8001::1
Priority: 192
HoldTime: 130
Uptime: 00:03:39
Expires: 00:01:51
prefix/prefix length: FF4E::/16
RP: 8001::1
Priority: 192
HoldTime: 130
Uptime: 00:03:39
Expires: 00:01:51
prefix/prefix length: FF5E::/16
RP: 8001::1
Priority: 192
HoldTime: 130
Uptime: 00:03:39
Expires: 00:01:51
prefix/prefix length: FF6E::/16
RP: 8001::1
Priority: 192
HoldTime: 130
Uptime: 00:03:39
Expires: 00:01:51
prefix/prefix length: FF7E::/16
RP: 8001::1
Priority: 192
HoldTime: 130
Uptime: 00:03:39
Expires: 00:01:51
prefix/prefix length: FF8E::/16
RP: 8001::1
Priority: 192
HoldTime: 130
Uptime: 00:03:39
Expires: 00:01:51
prefix/prefix length: FF9E::/16
RP: 8001::1
Priority: 192
HoldTime: 130
Uptime: 00:03:39
Expires: 00:01:51
prefix/prefix length: FFAE::/16
RP: 8001::1
Priority: 192
HoldTime: 130
Uptime: 00:03:39
Expires: 00:01:51
prefix/prefix length: FFBE::/16
RP: 8001::1
Priority: 192
HoldTime: 130
Uptime: 00:03:39
Expires: 00:01:51
prefix/prefix length: FFCE::/16
RP: 8001::1
Priority: 192
HoldTime: 130
Uptime: 00:03:39
Expires: 00:01:51
prefix/prefix length: FFDE::/16
RP: 8001::1
Priority: 192
HoldTime: 130
Uptime: 00:03:39
Expires: 00:01:51
prefix/prefix length: FFEE::/16
RP: 8001::1
Priority: 192
HoldTime: 130
Uptime: 00:03:39
Expires: 00:01:51
prefix/prefix length: FFFE::/16
RP: 8001::1
Priority: 192
HoldTime: 130
Uptime: 00:03:39
Expires: 00:01:51
prefix/prefix length: FF04::/16
RP: 1002::2
Priority: 192
HoldTime: 130
Uptime: 00:03:39
Expires: 00:01:51
prefix/prefix length: FF14::/16
RP: 1002::2
Priority: 192
HoldTime: 130
Uptime: 00:03:39
Expires: 00:01:51
prefix/prefix length: FF24::/16
RP: 1002::2
Priority: 192
HoldTime: 130
Uptime: 00:03:39
Expires: 00:01:51
prefix/prefix length: FF34::/16
RP: 1002::2
Priority: 192
HoldTime: 130
Uptime: 00:03:39
Expires: 00:01:51
prefix/prefix length: FF44::/16
RP: 1002::2
Priority: 192
HoldTime: 130
Uptime: 00:03:39
Expires: 00:01:51
prefix/prefix length: FF54::/16
RP: 1002::2
Priority: 192
HoldTime: 130
Uptime: 00:03:39
Expires: 00:01:51
prefix/prefix length: FF64::/16
RP: 1002::2
Priority: 192
HoldTime: 130
Uptime: 00:03:39
Expires: 00:01:51
prefix/prefix length: FF74::/16
RP: 1002::2
Priority: 192
HoldTime: 130
Uptime: 00:03:39
Expires: 00:01:51
prefix/prefix length: FF84::/16
RP: 1002::2
Priority: 192
HoldTime: 130
Uptime: 00:03:39
Expires: 00:01:51
prefix/prefix length: FF94::/16
RP: 1002::2
Priority: 192
HoldTime: 130
Uptime: 00:03:39
Expires: 00:01:51
prefix/prefix length: FFA4::/16
RP: 1002::2
Priority: 192
HoldTime: 130
Uptime: 00:03:39
Expires: 00:01:51
prefix/prefix length: FFB4::/16
RP: 1002::2
Priority: 192
HoldTime: 130
Uptime: 00:03:39
Expires: 00:01:51
prefix/prefix length: FFC4::/16
RP: 1002::2
Priority: 192
HoldTime: 130
Uptime: 00:03:39
Expires: 00:01:51
prefix/prefix length: FFD4::/16
RP: 1002::2
Priority: 192
HoldTime: 130
Uptime: 00:03:39
Expires: 00:01:51
prefix/prefix length: FFE4::/16
RP: 1002::2
Priority: 192
HoldTime: 130
Uptime: 00:03:39
Expires: 00:01:51
prefix/prefix length: FFF4::/16
RP: 1002::2
Priority: 192
HoldTime: 130
Uptime: 00:03:39
Expires: 00:01:51
# 查看Switch F上的RP信息。
[SwitchF] display pim rp-info
PIM-SM BSR RP information:
prefix/prefix length: FF0E::/16
RP: 8001::1
Priority: 192
HoldTime: 130
Uptime: 00:03:39
Expires: 00:01:51
prefix/prefix length: FF1E::/16
RP: 8001::1
Priority: 192
HoldTime: 130
Uptime: 00:03:39
Expires: 00:01:51
prefix/prefix length: FF2E::/16
RP: 8001::1
Priority: 192
HoldTime: 130
Uptime: 00:03:39
Expires: 00:01:51
prefix/prefix length: FF3E::/16
RP: 8001::1
Priority: 192
HoldTime: 130
Uptime: 00:03:39
Expires: 00:01:51
prefix/prefix length: FF4E::/16
RP: 8001::1
Priority: 192
HoldTime: 130
Uptime: 00:03:39
Expires: 00:01:51
prefix/prefix length: FF5E::/16
RP: 8001::1
Priority: 192
HoldTime: 130
Uptime: 00:03:39
Expires: 00:01:51
prefix/prefix length: FF6E::/16
RP: 8001::1
Priority: 192
HoldTime: 130
Uptime: 00:03:39
Expires: 00:01:51
prefix/prefix length: FF7E::/16
RP: 8001::1
Priority: 192
HoldTime: 130
Uptime: 00:03:39
Expires: 00:01:51
prefix/prefix length: FF8E::/16
RP: 8001::1
Priority: 192
HoldTime: 130
Uptime: 00:03:39
Expires: 00:01:51
prefix/prefix length: FF9E::/16
RP: 8001::1
Priority: 192
HoldTime: 130
Uptime: 00:03:39
Expires: 00:01:51
prefix/prefix length: FFAE::/16
RP: 8001::1
Priority: 192
HoldTime: 130
Uptime: 00:03:39
Expires: 00:01:51
prefix/prefix length: FFBE::/16
RP: 8001::1
Priority: 192
HoldTime: 130
Uptime: 00:03:39
Expires: 00:01:51
prefix/prefix length: FFCE::/16
RP: 8001::1
Priority: 192
HoldTime: 130
Uptime: 00:03:39
Expires: 00:01:51
prefix/prefix length: FFDE::/16
RP: 8001::1
Priority: 192
HoldTime: 130
Uptime: 00:03:39
Expires: 00:01:51
prefix/prefix length: FFEE::/16
RP: 8001::1
Priority: 192
HoldTime: 130
Uptime: 00:03:39
Expires: 00:01:51
prefix/prefix length: FFFE::/16
RP: 8001::1
Priority: 192
HoldTime: 130
Uptime: 00:03:39
Expires: 00:01:51
· 接收者通过组播方式接收视频点播信息,不同组织的接收者群体组成末梢网络,每个末梢网络中都存在至少一个接收者,整个IPv6 PIM域采用SSM方式。
· Host A和Host C为两个末梢网络中的IPv6组播信息接收者;Switch D通过Vlan-interface300接口与IPv6组播源(Source)所在网络连接;Switch A通过Vlan-interface100接口连接末梢网络N1,通过Vlan-interface101接口和Vlan-interface102接口分别连接Switch D和Switch E;Switch B和Switch C通过各自的Vlan-interface200接口连接末梢网络N2,分别通过Vlan-interface103和Vlan-interface104接口连接Switch E;Switch E连接Switch A、Switch B、Switch C和Switch D。
· SSM组播组的范围是FF3E::/64。
· Switch A与末梢网络N1之间运行MLDv2;Switch B和Switch C与末梢网络N2之间也运行MLDv2。
图1-13 IPv6 PIM-SSM典型配置组网图
设备 |
接口 |
IPv6地址 |
设备 |
接口 |
IPv6地址 |
Switch A |
Vlan-int100 |
1001::1/64 |
Switch D |
Vlan-int300 |
4001::1/64 |
|
Vlan-int101 |
1002::1/64 |
|
Vlan-int101 |
1002::2/64 |
|
Vlan-int102 |
1003::1/64 |
|
Vlan-int105 |
4002::1/64 |
Switch B |
Vlan-int200 |
2001::1/64 |
Switch E |
Vlan-int104 |
3001::2/64 |
|
Vlan-int103 |
2002::1/64 |
|
Vlan-int103 |
2002::2/64 |
Switch C |
Vlan-int200 |
2001::2/64 |
|
Vlan-int102 |
1003::2/64 |
|
Vlan-int104 |
3001::1/64 |
|
Vlan-int105 |
4002::2/64 |
表1-1 使能IPv6转发功能,并配置IPv6地址和IPv6单播路由协议
使能各交换机的IPv6转发功能,并按照图1-13配置各接口的IPv6地址和前缀长度,具体配置过程略。
配置IPv6 PIM-SSM域内的各交换机之间采用OSPFv3协议进行互连,确保IPv6 PIM-SM域内部在网络层互通,并且各交换机之间能够借助IPv6单播路由协议实现动态路由更新,具体配置过程略。
使能IPv6组播路由,并使能IPv6 PIM-SM和MLD
# 在Switch A上使能IPv6组播路由,在各接口上使能IPv6 PIM-SM,并在其连接末梢网络的接口Vlan-interface100上使能MLD,且配置其版本为2。
<SwitchA> system-view
[SwitchA] multicast ipv6 routing-enable
[SwitchA] interface vlan-interface 100
[SwitchA-Vlan-interface100] mld enable
[SwitchA-Vlan-interface100] mld version 2
[SwitchA-Vlan-interface100] pim ipv6 sm
[SwitchA-Vlan-interface100] quit
[SwitchA] interface vlan-interface 101
[SwitchA-Vlan-interface101] pim ipv6 sm
[SwitchA-Vlan-interface101] quit
[SwitchA] interface vlan-interface 102
[SwitchA-Vlan-interface102] pim ipv6 sm
[SwitchA-Vlan-interface102] quit
Switch B和Switch C的配置与Switch A相似,Switch D和Switch E除了不需要在相应接口上使能MLD外,其它的配置也与Switch A相似,配置过程略。
配置IPv6 SSM组播组的地址范围
# 在Switch A上配置IPv6 SSM组播组的地址范围为FF3E::/64。
[SwitchA] acl ipv6 number 2000
[SwitchA-acl6-basic-2000] rule permit source ff3e:: 64
[SwitchA-acl6-basic-2000] quit
[SwitchA] pim ipv6
[SwitchA-pim6] ssm-policy 2000
[SwitchA-pim6] quit
Switch B、Switch C、Switch D和Switch E的配置与Switch A相似,配置过程略。
通过使用display pim ipv6 interface命令可以查看交换机接口上IPv6 PIM的配置和运行情况。例如:
# 查看Switch A上IPv6 PIM的配置信息。
[SwitchA] display pim ipv6 interface
Interface NbrCnt HelloInt DR-Pri DR-Address
Vlan100 0 30 1 1001::1
(local)
Vlan101 1 30 1 1002::2
Vlan102 1 30 1 1003::2
假如Host A需要接收指定IPv6组播源S(4001::100/64)发往IPv6组播组G(FF3E::101)的信息,Switch A会向IPv6组播源方向构造SPT,SPT路径中的交换机(Switch A和Switch D)上生成(S,G)表项,而SPT路径之外的交换机(Switch E)上没有IPv6组播路由项,通过使用display pim ipv6 routing-table命令可以查看交换机的IPv6 PIM路由表信息。例如:
# 查看Switch A上的IPv6 PIM路由表信息。
[SwitchA] display pim ipv6 routing-table
Total 0 (*, G) entry; 1 (S, G) entry
(4001::100, FF3E::101)
Protocol: pim-ssm, Flag:
UpTime: 00:00:11
Upstream interface: Vlan-interface101
Upstream neighbor: 1002::2
RPF prime neighbor: 1002::2
Downstream interface(s) information:
Total number of downstreams: 1
1: Vlan-interface100
Protocol: mld, UpTime: 00:00:11, Expires: 00:03:25
# 查看Switch D上的IPv6 PIM路由表信息。
[SwitchD] display pim ipv6 routing-table
Total 0 (*, G) entry; 1 (S, G) entry
(4001::100, FF3E::101)
Protocol: pim-ssm, Flag: LOC
UpTime: 00:08:02
Upstream interface: Vlan-interface300
Upstream neighbor: NULL
RPF prime neighbor: NULL
Downstream interface(s) information:
Total number of downstreams: 1
1: Vlan-interface105
Protocol: pim-ssm, UpTime: 00:08:02, Expires: 00:03:25
网络中各路由器(包括直连IPv6组播源或接收者的路由器)上都没有IPv6组播转发项,也就是说无法正确建立组播分发树,客户端无法接收IPv6组播数据。
· 无论运行哪个IPv6 PIM模式,IPv6单播路由是创建IPv6 PIM路由项的基础。只有单播运行顺畅,组播才能运行成功。
· IPv6 PIM协议需要RPF接口支持IPv6 PIM协议。RPF邻居也必须是IPv6 PIM邻居。如果RPF接口或RPF邻居没有使能IPv6 PIM,组播分发树就不能正确建立,导致组播数据转发异常。
· IPv6 PIM协议需要整个网络运行相同的IPv6 PIM模式,即DM或SM。否则,组播分发树不能正确建立,导致组播数据转发异常。
表1-1 检查IPv6单播路由。使用命令display ipv6 routing-table命令检查是否有到达IPv6组播源或RP的IPv6单播路由项。
检查RPF接口上是否使能IPv6 PIM。通过命令display pim ipv6 interface命令查看接口的IPv6 PIM信息。若接口上没有使能IPv6 PIM,请使用pim ipv6 dm或pim ipv6 sm命令使能IPv6 PIM。
检查RPF邻居是否是IPv6 PIM邻居。通过命令display pim ipv6 neighbor查看IPv6 PIM邻居信息。
检查直连IPv6组播源、直连接收者的路由器接口上是否使能了IPv6 PIM和MLD。
检查IPv6 PIM模式是否一致。通过命令display pim ipv6 interface verbose检查RPF接口和RPF邻居所在路由器的对应接口上是否使能了相同模式的IPv6 PIM协议。
检查整个网络中各路由器上的IPv6 PIM模式是否一致。通过命令display current-configuration查看接口上的IPv6 PIM模式信息,确保所有路由器配置相同模式的IPv6 PIM协议,即要么全部配置为pim ipv6 sm,要么全部配置为pim ipv6 dm。
IPv6组播数据可以到达中间路由器,但无法到达最后一跳路由器。中间路由器某接口上收到IPv6组播数据,但IPv6 PIM路由表中没有创建相应的(S,G)表项。
· 命令multicast ipv6 boundary用于在接口上设置IPv6组播转发边界,如果IPv6组播数据无法通过该边界,IPv6 PIM是无法创建路由项的。
· 此外,source-policy命令用于过滤接收到的IPv6组播数据报文。如果IPv6组播数据报文无法通过该命令的IPv6 ACL规则,IPv6 PIM也是无法创建路由项的。
检查IPv6组播转发边界的配置。通过命令display current-configuration查看IPv6组播转发边界上的设置,使用multicast ipv6 boundary命令更改IPv6组播转发边界的设置,使IPv6组播数据能够通过该边界。
检查IPv6组播过滤器配置。通过命令display current-configuration查看IPv6组播过滤器的配置,更改source-policy命令的IPv6 ACL规则,使IPv6组播数据的源/组地址通过IPv6 ACL过滤。
共享树不能正确建立,或者RP不能加入到达IPv6组播源的源树。
· RP是IPv6 PIM-SM网络的核心,为指定IPv6组播组服务。多个RP可以在网络中共存。请确保所有路由器上的RP信息是一致的;同一个指定组是被映射到相同的RP。否则,IPv6组播异常。
· 对于静态RP机制,整个网络中的所有路由器包括静态RP本身必须用静态RP命令配置相同的RP。否则,IPv6组播异常。
表1-1 检查是否有到达RP的路由。通过命令display ipv6 routing-table查看各路由器上是否有到达RP的路由。
检查动态RP信息。通过命令display pim ipv6 rp-info查看各路由器上的RP信息是否一致。如果不一致,请配置成一致。
检查静态RP的配置。通过命令display pim ipv6 rp-info查看全网所有路由器上是否配置了相同的静态RP。
C-RP无法向BSR单播通告报文,BSR没有发布包含C-RP的自举报文,BSR上没有到达各C-RP的单播路由,共享树无法正确建立,或者DR无法向RP进行源注册。
· C-RP周期性用单播模式向BSR通告报文。如果C-RP没有到达BSR的路由,BSR就不能接收C-RP发来的通告报文,也就不会通告包含该C-RP的自举消息。
· RP是IPv6 PIM-SM网络的核心。请确保所有路由器上的RP信息是一致的,指定IPv6组播组G被映射到相同的RP,到RP的单播路由是可达的。
表1-1 检查到各C-RP、RP和BSR的单播路由是否可达。通过命令display ipv6 routing-table查看各路由器上是否有到达RP和BSR的路由,及C-RP和BSR之间的路由。请确保各C-RP上存在到达BSR的单播路由,BSR上存在到达各C-RP的单播路由,整个网络中所有路由器上存在到达RP的单播路由。
检查RP和BSR信息。IPv6 PIM-SM协议需要RP和BSR的支持,首先使用命令display pim ipv6 bsr-info查看各路由器上是否有BSR信息,使用display pim ipv6 rp-info命令查看各路由器上RP信息是否正确。
检查IPv6 PIM邻居关系。通过命令display pim ipv6 neighbor查看各路由器是否建立了正常的邻居关系。
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!