IPv6组播技术基础.ppt
IPv6 组播技术基础,Page 1,内容介绍,第1章 组播简介第2章 组播协议基础第3章 组播协议详述第4章 组播配置举例,Page 2,什么是组播?,三种传输模型Unicast:一对一的传输模型Broadcast:一对所有的传输模型Multicast:一对一组(多)的传输模型所谓“组”,可以理解为有某个共同特征的对象的集合,Page 3,什么是IP组播?,传输模型是针对TCPIP或OSI层次模型中的某一层上讲的,下一层或上一层的模型不影响本层的模型。所谓IP组播或者说3层组播,就是指在IP层看来,传输模型为一对多的模式。,Page 4,IP组播的特征,IP组播的特点是:相对于单播传输模型,组播解决了在数据头端进行复制带来的压力问题,同时使得从整个网络的角度观察,数据传输是呈点到多点(而非点到点)的状态。这样,使得节点间的流量模型达到最优状态。相对于广播传输模型,组播利用了网络层协议可以跨越链路层节点的特性,避免了全网进行数据广播引起的复杂模型,同时也降低了数据到达不必要节点而产生的冗余流量。另外,internet 明确不支持全网广播。思考:这个特点带来的价值如何?,Page 5,IP组播的用户价值,IP组播对于业务的优势主要体现在:减少服务器负载节约带宽,减少冗余的流量可扩展性,增加更多的接收者,并不会增加网络压力因此,IP组播适合的业务应用包括:视频直播、视频会议、证券市场等,劣势?,Page 6,组播IPv6地址,IPv6组播的地址范围:FF00:/8,Flags=|0|R|P|T|最高位为保留 R:标记是否为内嵌RP的组播地址 P:标记是否是基于单播前缀的组播地址 T:标记是否是永久分配的组播地址,Page 7,组播IPv6地址,Scope:限制组播组的域范围 1:本地接口范围(interface-local scope)2:本地链路范围(link-local scope)4:本地管理域范围(admin-local scope)5:站点范围(site-local scope)8:组织范围(organization-local scope)E:全球范围(global scope),Group id:在一个给定的范围内,永久或临时的组播组地址,Page 8,IPv6组播MAC地址分配,组播 IPv6&Mac 地址映射MAC的前两个字节以固定的0X3333填充。MAC的后四个字节以目的IPv6组播地址的后四位填充。,128Bit IP address,00110011,48 bit MAC address,mapping,00110011,Page 9,单播转发模型,1,3,1,2,3,发送到主机3的报文,Dest NextHop OIFH3/32 R3 Eth0.,单播转发表,发送到主机3的报文,基于IP报文的目的地址进行查找转发表,2,Page 10,组播转发模型,基于IP报文的源地址、目的地址进行查找转发表,1,2,3,1,2,3,发送到Group1的报文,S G IIF OIFListH1 G1 Eth1 Eth2、Eth3,组播转发表,发送到Group1的报文,加入Group1,加入Group1,发送到Group1的报文,Page 11,反向路径转发RPF(Reverse Path Forwarding),用来检查是否应该接收从某个接口来的某个源组的组播数据报文在转发平面,表现为组播转发表中的入接口项该接口由组播路由协议生成,也被组播路由协议用来构建分发树。,接收者R1,接收者R2,组播源S,Eth0,Eth1,Eth0,Eth1,组播转发表,目的 下一跳 接口S.Eth0,单播路由表,S G IIF OIFListS G Eth0,Page 12,组播基本概念小结,在TCPIP的分层架构上理解各层的组播IP组播的特征IP组播的地址分配IP组播转发模型RPF在转发平面的概念,Page 13,内容介绍,第1章 组播简介第2章 组播协议基础第3章 组播协议详述第4章 组播配置举例,Page 14,组播协议要素,组播通信模型组播协议四要素:源发现接收者发现拓扑发现(组播路由器之间的拓扑、网络单播路由信息)分发树生成,Page 15,组播协议架构,组播协议主机通信协议组播路由协议域间组播协议组播拓扑分离协议,Page 16,组播协议概述,组播协议主机通信协议MLD(v1、v2),用于了解接口所连接的网络是否有主机要接收某个组或者某个(源,组)的数据组播路由协议域间组播协议组播拓扑分离协议,组播网络,查询,报告,MLD,Page 17,组播协议概述,主机通信协议组播路由协议掌握网络拓扑,发现组播源,建立起以组播源为根的或者 RP 为根的分发树PIM:SM,DM,SSM,BidirPIMDVMRP,MOSPF域间组播协议组播拓扑分离协议,组播网络,组播源,Page 18,组播协议概述,组播协议主机通信协议组播路由协议域间组播协议BGMP组播拓扑分离协议,MSDP,组播源A,组播源B,组播自治域 APIM-SM,组播自治域 BPIM-SM,组播源信息,Page 19,组播协议概述,组播协议主机通信协议组播路由协议域间组播协议组播拓扑分离协议组播受单播网络拓扑限制。通过提供一套专门供组播进行 RPF 检查的单播路由,可以实现组播网络与单播网络拓扑的分离,MBGP 组播扩展组播静态路由ISIS、OSPF组播拓扑,组播静态路由,组播网络B,组播网络A,组播网络C,组播网络D,组播源A,MBGP,MBGP,接收者,Page 20,协议基础小结,通信四要素四类组播协议协议名称和含义,以及主要功能,Page 21,内容介绍,第1章 组播简介第2章 组播协议基础第3章 组播协议详述第4章 组播配置举例,Page 22,主机通信协议MLD,MLDv1,MLDv2,引入快速离开,引入特定源的加入离开机制,Page 23,MLDv1,MLDv1主要机制主机发送组离开消息路由器接收到组离开消息,发送特定组查询,如果没有主机响应,删除组成员信息,停止转发组播数据,FF0E:6组加入报告,FF0E:9 组加入报告,路由器发送特定组查询,组FF0E:9 离开消息,路由器发送特定组FF0E:9的查询,Page 24,MLDv2 协议(引入特定源组播机制(Source Specific Mulitcast,SSM),IS_IN(2001:2)for FF0E:6,IS_EX(2001:4)for FF0E:9,After Query Interval(125sec),SSM=Source Specific Multicast,I want packets for Group FF0E:6 but only from source 2001:2,I want packets for Group FF0E:9from all sources Except 2001:4,MLDv2 Router 维护特定源的状态发送特定源的查询,对组FF0E:6只有从源2001:2的报文被转发 对组FF0E:9除了源2001:4以外的所有源的组播数据被转发,Page 25,MLD v2 消息类型,主机发送给路由器的消息类型(Host to Router),路由器发送的查询消息(Router to Host),Page 26,MLD小结,MLD的作用MLD版本间的差异现实中的MLD,Page 27,组播路由协议PIM-SM(Sparse Mode),PIM-SM协议机制显式加入(Explicit join)模型可以建立以汇聚点(Rendezvous Point,RP)或者源为根的组播分发树(RP-rooted or Source-rooted Multicast Distribution Tree)支持从共享树(RP Tree,RPT)到源树(最短路径树,Shortest Path Tree,SPT)的切换周期性发送加入/剪枝(Join/Prune)消息维护分发树状态需要额外的RP发现机制(静态RP,BSR-RP,Auto-RP等)PIM-SM特点相对于 DM 协议,协议状态复杂,但需要更少的带宽,更有效率是目前域间组播最好的协议适用于稀疏分布的接收者模型,广泛应用于IPTV,Page 28,PIM-SM常用术语,源(Source)发送组播数据的终端主机或者PC接收者(Receiver)接收组播数据的终端主机或者PC指定路由器(Designated Router,DR)在共享网段上选举优先级最高或者IP地址最大的路由器为 DR源 DR 负责将数据从源转发到 RP接收者 DR 复制将数据从RP转发到接收者,或称作最后一跳 DR(Last-Hop DR)汇聚点(Rendezvous Point,RP)接收者从这里获取源信息,并且是共享树的根RPT从接收者 DR 到 RP 逐跳建立起来的,以 RP 为根的共享树SPT从接收者 DR 到源 DR建立起来的,以源为根的最短路径树,Page 29,PIM-SM协议报文类型,Hello 报文发现和维护邻居关系加入/剪枝(Join/Prune)报文发送加入/剪枝消息到上游邻居注册(Register)报文DR 封装从组播源来的数据并单播给 RP注册停止(Register stop)报文当在 RP 上没有接收者或者 RP 已经从源树接收数据时,由 RP 单播发送给源 DR断言(Assert)报文在共享网段上选出唯一的转发者C-RP通告(C-RP Advertisement)报文候选 RP 发送其可以服务的组信息单播发送给BSR自举路由器(Bootstrap Router)报文BSR 收集网路内的 RP 信息,并以 RP 集(RP-Set)的形式扩散到全网,Page 30,PIM SM协议主要工作过程,邻居发现及 DR 选举通过 Hello 报文维护邻居关系在共享网段上选举优先级最高和 IP 地址最大的路由器为 DR共享树构建接收者 DR 向到 RP 的邻居发送(*,G)加入,并逐跳扩散到 RP,形成以 RP 为根的共享树源 DR向 RP 注册活跃的组播源源 DR 封装组播源发送的数据并单播给 RP数据沿 RPT 转发RP 接收到源 DR 发送的注册报文,解封装注册报文中的数据,并沿共享树转发该数据RPT 到 SPT 切换接收者 DR向到源的邻居发送(S,G)加入,并逐跳扩散到源 DR,形成以源 DR 为根的源树RPT 剪枝 当接收者 DR从源树接收到数据后,向共享树发送(S,G)RPT 剪枝消息,剪除从共享树上下来的相同源的组播数据RPT及SPT树的状态维护接收者 DR 向 RPT 的邻居周期性发送(*,G)加入 和(S,G)RPT 剪枝,维护(*,G)加入和特定源的 RPT 剪枝状态接收者 DR向SPT 的邻居周期性发送(S,G)SPT 加入,维护 SPT 的加入状态,Page 31,RPT 树建立过程演示,Send IGMP Report,Send(*,G)Join towards RP,RP,RP create(*,G)entry and add this oif,Source DR,Create(*,G)entry and add oif,Create(*,G)entry and add oif,I have a receiver,I want data from,G,Send data,Unicast data to RP,Create(S,G)entry and copy oif from(*,G),Create(S,G)entry and copy oif from(*,G),Forward data,Forward data,Create(S,G)entry and copy oif from(*,G),Send(*,G)Join towards RP,Forward data,Register intf,在本演示中 RP 被配置了永不切换到源树,Page 32,RPT 树建立过程总结,路由器通过 MLD 了解到某个直连网段有接收者加入某个组播组 G接收者 DR 查找到 RP 的 RPF 邻居(即到 RP 的单播下一跳,并且是 PIM 邻居),向其发送(*,G)加入(*,G)沿着从接收者 DR 到 RP 的路径逐跳扩散,沿途路由器都创建相应的(*,G)项,将接收到加入的报文的接口加入出接口列表(oif-list),成为 RPT 树的节点源 DR 接收到组播源的数据,封装到注册报文,单播发送给 RP RP接收到注册报文,解封装里面的组播数据报文,并沿共享树转发,Page 33,RPT 到 SPT 树的切换过程演示,RP,Source DR,I have a receiver,I want data from G,Send data,Unicast data to RP,Forward data,Forward data,Create(S,G)entry and add this oif,Forward data,Send(S,G)Join towards Source,Send(S,G)Join towards Source,Add this oif in(S,G)entry,Forward data,Forward data,Send(S,G,rpt)prune towards RP,Send(S,G,rpt)prune towards RP,Send(S,G,)Register stop towards DR,在本演示中 RP 被配置了永不切换到源树,Page 34,RPT 到 SPT 树切换过程总结,共享树并不一定是到源的最优路径当从 RPT 上的数据超过配置的阈值时,接收者 DR 发起从RPT 到 SPT 的切换过程 接收者 DR 查找到源的 RPF 邻居(即到源的单播下一跳,并且是 PIM 邻居)并向其发送(S,G)加入(S,G)沿着从接收者 DR 到源DR 的路径逐跳扩散,沿途路由器创建(S,G)项,并将接收到(S,G)加入的接口加入到(S,G)项的出接口列表(oif-list),沿途路由器成为 SPT 树的节点源 DR 沿 SPT 树转发数据接收者 DR 从 SPT 树上接收到数据,向到 RP 的 RPF 邻居发送(S,G)RPT 剪枝消息,数据停止从 RPT 树上转发,Page 35,Assert 过程,在共享网段上可能存在多个转发者,会造成数据重复复制,起因可能是到源/RP有并行链路或者 RPT 和 SPT 经过同一 LAN当路由器从一个下游接口接收到数据时,将其到源/RP路由的优先级和 Cost 放到 Assert 消息中发送路由器将接收到的Assert消息中的路由优先级和Cost与自己的比较,优先级最高或者Cost最小的被选为Assert WinnerAssert Winner负责将数据转发到 LAN.Assert Loser剪枝自己的下游接口,Page 36,状态维护,发送给上游邻居的周期性(S,G)SPT Join,(*,G)Join 和(S,G,RPT)Prune周期性 Join 刷新上游邻居的下游接口加入状态周期性 RPT Prune 刷新上游邻居的下游接口的 RPT 剪枝状态数据报文刷新(S,G)项的超时定时器(Expiry timer),当源不活跃时,超时定时器超时,(S,G)项被删除C-RP周期性单播 C-RP-Adv 通告给 BSRBSR在全网周期性组播 BSR 消息,刷新所有 PIM 路由器的 RP 集(RP-Set)信息,Page 37,RP学习机制,1:静态RP,全网手工配置2:BSRRP,手工配置部分设备,其他设备通过BSR协议学习3:AutoRP,手工配置部分设备,其他设备通过AutoRP协议学习(思科私有协议),Page 38,BSR-RP 机制演示,BSR Msgs,BSR Msgs,BSR,BSR Msgs,BSR Msgs,PIM V2 Sparse Mode,BSR messages flooded hop by hop,C-RP,C-RP,C-RP Advertisement,(Unicast),C-RP Advertisement,(Unicast),FormRP SetSend BSM,BSR Msgs,BSR Msgs,Forward BSM on all intf,BSR Msgs,Page 39,RP的发现机制BSR RP,BSR-RP 是 PIM-SM 协议 RP 发现与分发的标准协议BSR 在全网分发所有的候选RP与对应服务组的信息,所有 PIM 路由器缓存RP-Set信息,PIM 路由器根据 V=Hash(G,M,RP)函数,选择Hash值最大的候选RP为 RPRP的负载分担,一个组范围(组掩码)内的每个组可以映射到不同的RP(而Auto-RP 一个组范围内的每个组只能有一个RP 为其服务)能自适应 RP 的变化,BSR Msgs,BSR Msgs,BSR,BSR Msgs,BSR Msgs,PIM V2 Sparse Mode,BSR messages flooded hop by hop,C-RP,C-RP,C-RP Advertisement,(Unicast),C-RP Advertisement,(Unicast),Page 40,IPv6邻居地址解析,J/P报文:Upstream neighbor必须是link-local地址Hello报文:源IP为link-local地址Global地址封装为second addressRPF检查时,将global地址转换成对应的link-local地址路由器记录每个邻居global地址同link-local地址的对应关系RPF检查时,先查询单播路由表,获取global地址通过global地址得到对应邻居的link-local地址不同接口可能获取具有相同link-local地址的邻居,但对应的global地址并不相同,通过global地址进行映射,就不会产生混淆问题。,Page 41,Embedded Rp,背景:由于MSDP不支持IPv6,Pim域之间无法彼此了解源的信息,所以提出了一个新的解决方案Embedded Rp。Embedded Rp是将Rp的地址封装在多播组地址在多播地址中设置一个标志位表示嵌入了Rp将Rp地址封装到多播组地址,Page 42,Embedded Rp,背景:由于MSDP不支持IPv6,Pim域之间无法彼此了解源的信息,所以提出了一个新的解决方案Embedded Rp。Embedded Rp是将Rp的地址封装在多播组地址在多播地址中设置一个标志位表示嵌入了Rp将Rp地址封装到多播组地址Embedded Rp 使用基于扩展单播前缀的多播地址表示Rp与组的映射关系,Page 43,Embedded Rp,R=1,表示此多播地址是嵌入了Rp的多播地址。如果R=1时 P,T必须也设为1RIID表示Rp的接口IDRIID不可以为0plen为前缀的长度Plen不可以为0或大于64group ID 是用户自己分配的32位的组播组ID,flgs,Page 44,Anycast-Rp using PIM,IPv4可以通过MSDP实现Anycast Rp功能,但MSDP不支持IPv6。IPv6通过Anycast-Rp协议(RFC 4610)实现Anycast Rp功能。选择一组Router组成Anycast-Rp Set。Anycast-Rp Set中的每个Router都在环回口上配置相同的Rp地址。每个Router都配置一全网唯一的本地地址同Set内的其他路由器交互。Router收到源DR发送的注册报文后,将该报文发送给Set内的其他Router。发送时需要将源地址改为自身的本地地址,目的地址改为对端Router的本地地址。Set内的所有Router都感知到源的存在。,Page 45,PIMSM协议小结,RPRPTSPT,Page 46,组播路由协议PIM-SSM(Source Specific Multicast),PIM-SSM协议机制主动加入(Explicit join)模型,只保留了SM 的 SPT 树只建立源为根的组播分发树(Source-rooted Multicast Distribution Tree)需要MLD v2(IGMP v3)主机的支持或者 SSM MappingPIM-SSM特点随着Internet的发展,MLD v2(IGMP v3)+PIM-SSM 的组网方式越来越普遍有助于实现组播路由协议平面与组播数据转发平面的分离SSM 模型相对于 ASM(Anycast Source Mulitcast)模型简单,避免了复杂的 RPT 建立过程,Page 47,PIM-SSM 协议演示,Create(S,G)entry and add this oif,Forward data,Forward data,Send(S,G)Join towards Source,I want data from G from Source S,Add this oif to the S,G entry,Host subscribe to channel(S,G)IGMPv3,Page 48,PIMSSM协议小结,MLD v2SPT only,Page 49,内容介绍,第1章 组播简介第2章 组播协议基础第3章 组播协议详述第4章 组播配置举例,Page 50,组网图,Page 51,网络规划,Page 52,基本组播配置(一),配置各接口的IP地址和单播路由协议 过程略使能IPv6组播功能,并在各接口上使能IPv6 PIM-SM功能#在RouterA上使能IPv6组播功能,并在各接口上使能IPv6 PIM-SM功能。RouterB、RouterC和RouterD上的配置过程与RouterA上的配置相似,配置过程略。RouterA multicast ipv6 routing-enableRouterA interface gigabitethernet 1/0/0RouterA-GigabitEthernet2/0/0 pim ipv6 smRouterA-GigabitEthernet2/0/0 quitRouterA interface pos 2/0/0RouterA-Pos2/0/0 pim ipv6 smRouterA-Pos2/0/0 quitRouterA interface pos 3/0/0RouterA-Pos3/0/0 pim ipv6 smRouterA-Pos3/0/0 quit RouterA interface pos 4/0/0RouterA-Pos4/0/0 pim ipv6 smRouterA-Pos4/0/0 quit,Page 53,基本组播配置(二),配置C-RP和C-BSR#在RouterD上配置C-RP,并指定C-RP服务的组地址范围。RouterD acl ipv6 number 2001RouterD-acl6-basic-2001 rule permit source ff3e:1 64RouterD-acl6-basic-2001 quitRouterD pim-ipv6RouterD-pim6 c-rp 2004:2 group-policy 2001#在RouterD上配置C-BSR。RouterD-pim6 c-bsr 2004:2RouterD-pim6 quit,Page 54,基本组播配置(三),在RouterA与Internet相连的接口上配置BSR边界 RouterA interface pos 4/0/0RouterA-Pos4/0/0 pim ipv6 bsr-boundaryRouterA-Pos4/0/0 quit,Page 55,基本组播配置(四),在网络中所有路由器上设置SSM 组地址范围#在RouterA上配置IPv6 PIM-SSM组播组的地址范围是FF3E:1/64。RouterA acl ipv6 2000RouterA-acl6-basic-2000 rule permit source FF3E:1 64RouterA-acl6-basic-2000 quitRouterA pim-ipv6RouterA-pim6 ssm-policy 2000RouterA-pim6 quit#RouterB、RouterC和RouterD上的配置过程与RouterA上的配置相同,配置过程略。,Page 56,基本组播配置(五),在与用户主机相连的路由器接口上使能PIM Silent和MLD#在路由器RouterB的主机侧接口使能PIM Silent,配置MLD。RouterB interface gigabitethernet 2/0/0RouterB-GigabitEthernet2/0/0 pim ipv6 silentRouterB-GigabitEthernet2/0/0 mld enableRouterB-GigabitEthernet2/0/0 quit 路由器RouterC主机侧接口的配置与此类似,配置过程略。,Page 57,查看显示信息(一),检验配置效果#使用display pim ipv6 bsr-info命令在路由器上查看BSR选举信息。以RouterB和RouterD上显示的BSR信息为例(RouterD上同时显示C-BSR信息),Page 58,查看显示信息(二),#使用display pim ipv6 rp-info命令查看各路由器上的RP信息。以RouterB上显示的RP信息为例。例如RouterA上RP信息如下:,Page 59,查看显示信息(三),#使用display pim ipv6 interface命令查看接口的PIM配置和运行信息。以RouterB上PIM的显示信息为例。,Page 60,查看显示信息(四),#组播源S(2001:5)同时向组播组FF3E:1(属于SSM组地址范围)和FF0E:1(不属于SSM组地址范围)发送组播报文。HostA和HostC需要接收组FF0E:1的信息。HostB需要接收组播源S(2001:5)发给组FF3E:1的信息。查看RouterB上信息。(RouterB为RP),