组播VPN技术白皮书Word文档格式.docx
《组播VPN技术白皮书Word文档格式.docx》由会员分享,可在线阅读,更多相关《组播VPN技术白皮书Word文档格式.docx(19页珍藏版)》请在冰豆网上搜索。
互联网组管理协议
MD
MulticastDomain
组播域
MDT
MulticastDistributionTree
组播分发树
Share-MDT
Share-MulticastDistributionTree
共享组播分发树
Switch-MDT
Switch-MulticastDistributionTree
切换组播分发树
MPLS
MultiprotocolLabelSwitching
多协议标签交换
MSDP
MulticastSourceDiscoveryProtocol
组播源发现协议
MT
MulticastTunnel
组播隧道
MTI
MulticastTunnelInterface
组播隧道接口
VRF
VPNRoutingandForwarding
VPN路由与转发
MVRF
MulticastVRF
同时支持单播和组播的VRF表
PRouter
ProviderRouter
P路由器
PERouter
ProviderEdgeRouter
PE路由器
CERouter
CustomerEdgeRouter
CE路由器
PIM-DM
ProtocolIndependentMulticast-DenseMode
协议无关组播—密集模式
PIM-SM
ProtocolIndependentMulticast-SpareMode
协议无关组播—稀疏模式
RPT
RendezvousPointTree
共享树
SPT
ShortestPathTree
最短路径树
1概述
1.1产生背景
目前IP组播的应用越来越广,很多行业开始把组播技术作为应用的解决方案。
同时VPN技术在企业网中的应用也越来越普及,BGP/MPLSVPN被广泛应用。
因此如何在VPN环境中应用组播技术,成为需要解决的重要问题之一。
基于BGP/MPLSVPN的技术只是提出了针对单播的VPN业务的解决方法,并没有对组播业务的开展做出具体规划或建议。
组播VPN正是基于BGP/MPLSVPN架构的,为VPN内的用户提供组播业务的解决方案。
在BGP/MPLSVPN内开展组播需要考虑如下几个方面的问题:
(1)私网地址空间重叠。
BGP/MPLSVPN网络中的一个好处就是允许每个VPN的私网地址空间重叠,因此不同VPN用户的组播源地址可能是重叠的,组地址也可能是重叠的,PE设备需要能正确的将私网的组播数据包转发给属于同一VPN的用户,而不会造成数据的交叉访问。
为节约带宽,私网数据在公网进行组播转发。
组播技术对比于单播技术的优点就是,在网络的每个链路中都只有一份组播数据被转发,每个路由器根据出接口的个数复制组播数据,无论对一个接收者还是多个接收者而言带宽都是一样的。
私网组播数据除了在私网内进行组播转发外,如果在BGP/MPLSVPN网络的公网中也进行组播转发,利用组播按需复制的功能,只在分叉点复制组播数据,无疑会使公网的数据负载大大减少,从而节约带宽。
(2)私网数据在公网组播转发的RPF检查。
在BGP/MPLSVPN网络中,公网的P设备不能够学习到私网路由,私网单播数据包在公网上转发首先由PE设备在数据包上打上两层标签,再由P设备根据标签进行转发。
但是组播数据包与单播数据包转发模式不同,组播数据包的转发要根据组播源地址和入接口进行RPF检查,只有从RPF接口来的组播数据包才能转发,而公网的P设备是无法知道私网路由的,因此不能直接对私网的组播数据进行转发。
(3)私网组播数据流能够按需发送。
一个VPN有多个Site构成,每个Site连接到不同PE上,当在VPN内支持组播功能时,并不是每个Site都需要组播数据,当私网组播数据通过公网时,如果数据只流向连接有接收者Site的PE,将会减少PE设备的负荷。
(4)对现有网络改造小。
BGP/MPLSVPN已经被广泛应用,在现有网络基础上开通组播业务,尽量使用现有核心路由器的功能实现组播VPN的支持,对现有网络做最小的改造,以降低网络建设成本。
1.2技术优点
为了解决BGP/MPLSVPN中运营组播业务所面临的挑战,IETF制订了相关草案,提供了三种备选的解决方案:
MD方案、VPN-IPPIM方案和基于NBMA技术MD方案。
其中,MD组播VPN方案脱颖而出,成为当前的主流解决方案。
其优点如下:
(1)最大的优点是对现有网络升级简单。
仅需升级PE设备即可,无需升级CE和P设备,并且无需修改CE和P上的配置,也就是说MD方案对于CE和P是透明的;
使骨干网不必知道特定VPN内有多少个组播组的业务,于是骨干网的稳定性得到了保证。
(2)私网数据包在公网进行组播转发。
将私网组播数据包在PE设备上封装成公网组播数据包,然后利用公网固有的IP组播转发功能实现私网数据在公网内的组播转发。
由于利用公网本身的IP组播转发能力,解决了RPF检查问题。
(3)为服务提供商提供控制手段,方便骨干网络的规划和控制。
服务提供商对自己的骨干网具有独立的控制权,而不需要关注VPN内部的业务信息。
2组播VPN技术实现方案
2.1概念介绍
组播VPN解决方案基于draft-rosen-vpn-mcast草案的MD方案,包含以下的定义:
●MD:
从广义上讲,是指能够互相发送和接收组播报文的所有设备组成的集合。
对于组播VPN的MD解决方案,所说的MD是指各个PE上,能够互相发送和接收组播报文的所有VPN实例组成的集合。
●P-PIM:
表示PE上公网VRF中的PIM实例。
●C-PIM:
表示PE上私网VRF中的PIM实例。
●MVRF:
每个VPN实例独立维护其单播路由转发表,我们称之为VRF;
使能了三层组播功能的VPN实例也将维护其组播路由转发表,我们把同时维护的单播和组播路由转发表统称为MVRF,每个MVRF只能属于一个MD。
不同的MVRF加入到同一个MD中,通过MD内自动建立的MT将这些MVRF连接在一起,实现了不同Site之间的组播业务互通,从而形成了一个组播VPN网络。
●Share-Group:
根据MulticastDomains的原理,所有属于同一MD的PE设备上的VPN实例都要加入一个公共的组,我们将其称之为Share-Group。
●Share-MDT:
PE上的公网PIM实例加入到根据Share-Group建立的组播分发树,用于将VPN内的PIM协议报文和低速数据报文分发给其他同属于一个VPN的PE设备,这个组播分发树我们称之为Share-MDT。
●MT:
在MD内将各MVRF连接到一起的通道,用来在MD内部传递私网数据。
对MVRF来说,MT就像一个多路访问的LAN网络,各MVRF通过MTI连接在这个多路访问的LAN网络中。
●MTI:
在PE上的私网PIM实例看来,组播隧道是一个虚拟的物理接口,称为MTI。
每个PE上的私网PIM实例具有一个MTI。
当用户在VPN实例中配置了Share-Group后,MTI实际上是PE上公网PIM实例和私网PIM实例进行交互的“通道”,是PE上私网实例之间建立PIM邻居的接口。
通过共享组播隧道Share-MDT连通之后的各个PE上的MTI,相当于被连接到了共享网段上,各个PE上属于该MD的VPN实例就在MTI上建立PIM邻居关系。
在共享网段上的这些MTI,进行正常的DR选举,产生Assert等。
●Switch-MDT:
为了避免数据流向不必要的PE设备,在建立起Share-MDT后,当某些私网数据流量超过一定阈值时,为该私网数据用Switch-Group组建立起一棵新的分发树,即Switch-MDT。
通过Switch-MDT将VPN的私网数据分发给本VPN内有私网接收者的PE设备,从而节省带宽。
2.2MDVPN概述
MD实现机制的要点列举如下:
●运营商构建的公共网络支持组播功能,从而节约带宽。
PE同时支持公网实例和多个VPN实例,且分别运行相互独立的PIM。
PE与CE之间通过VPN实例进行私网组播通信;
PE与P之间则通过公网实例进行公网组播通信。
●MD在逻辑上表示某一特定VPN的私网组播数据在公网中的传播范围,在客观上标识了网络中支持该VPN实例的所有PE设备。
不同的VPN实例对应不同的MD。
●在MD内部,私网数据通过MT进行传输。
MT传输过程为:
本地PE将私网组播报文封装成公网组播数据报文,并在公网内进行组播转发,远端PE收到该报文后通过解封装将其还原成私网报文。
●MTI是MT的入/出口,相当于MD的入/出口。
本地PE将私网数据通过MTI发出,而远端PE则从MTI接收私网数据。
可以将MD比作一个私网数据的传输池,MTI则是MD的入/出口。
本地PE将私网数据从入口(MTI)投入传输池,传输池自动将私网数据复制并传输到MD的所有出口(MTI),任何有需求的远端PE都可以从各自的出口(MTI)“打捞”私网数据。
●一个VPN实例唯一指定一个Share-Group地址。
私网数据信息对于公网来说是透明的,不论私网组播报文属于哪个组播组、是协议报文还是数据报文,PE都统一将其封装为普通的公网组播数据报文,并以Share-Group作为其所属的公网组播组。
之后,PE将封装好的公网组播数据报文发送到公网中。
●一个Share-Group唯一对应一个MD,并利用公网资源唯一构建一棵Share-MDT用于指导数据转发。
在该VPN中传输的所有私网组播报文,无论从哪个PE进入公网,都经由此Share-MDT转发。
●一个Share-Group唯一确定一个Switch-Group-Pool以备进行Switch-MDT切换。
在进行Switch-MDT切换时,从Switch-Group-Pool中选取一个空闲的地址(即Switch-Group),所有从某特定PE进入公网的、且流量达到或超过切换阈值的私网组播报文都将使用该地址进行封装。
●网络中所有PE都在监测私网数据通过Share-MDT的转发速率。
当某些私网数据从PE进入公网的转发速率超过一定阈值时,该PE将作为源端沿Share-MDT向其下游发出切换通知,使用Switch-Group在该PE和有接收需求的远端PE之间新建一棵Switch-MDT。
之后,进行Switch-MDT切换:
即该私网数据进入公网时,不再使用Share-Group地址进行封装,而是被封装成公网的Switch-Group组播报文,从Share-MDT切换到新构建的Switch-MDT上。
通过配置ACL规则,可以使PE有针对地对私网数据进行检测。
2.3使用Share-MDT转发私网流量
图1Share-MDT的建立过程
如图1所示,以公网中运行PIM-SM为例,Share-MDT的创建过程如下:
(2)PE1的公网实例向公网RP发起加入(Join),以Share-Group地址为组播组地址,在公网中沿途的各设备上分别创建(*,239.1.1.1)表项。
PE2和PE3的加入过程与此类似。
最终在MD中形成一棵以公网RP为根,PE1、PE2和PE3为叶的RPT。
(3)PE1的公网实例向公网RP发起注册(Register),以IBGP接口地址为组播源地址、Share-Group地址为组播组地址,在公网中沿途的各设备上分别创建(11.1.1.1,239.1.1.1)表项。
PE2和PE3的注册过程与此类似。
最终在MD中形成三棵相互独立的连接PE与RP的SPT。
在PIM-SM网络中,由RPT(*,239.1.1.1)和这三棵相互独立的SPT共同组成了一棵Share-MDT。
图1私网流量转发过程
如图2所示,私网组播数据跨越公网进行传输的过程如下:
(4)Source发送私网组播数据(192.1.1.1,225.1.1.1)到CE1。
(5)CE1沿SPT将私网组播数据转发给PE1,PE1上的VPN实例查找转发表项。
如果对应转发表项的出接口包含MTI,则将该私网组播数据交由设备做进一步处理。
这时,PE1上的VPN实例将认为私网组播数据已从MTI发出。
(6)PE1对该私网组播数据以GRE方式进行封装,以PE1的IBGP接口地址为组播源地址、Share-Group地址为组播组地址,转换成普通的公网组播数据报文(11.1.1.1,239.1.1.1),然后交由PE1上的公网实例向公网进行转发。
(7)组播数据报文(11.11.1.1,239.1.1.1)沿Share-MDT传输给各PE上的公网实例。
各PE对其进行解封装,还原为私网组播数据,然后交由相应的VPN实例处理。
如果该PE上存在SPT的下游接口,则沿SPT转发该私网组播数据,否则将其丢弃。
(8)PE2上的VPN实例查找转发表项,最终将私网组播数据送达Receiver。
至此跨越公网的私网组播数据传输完成。
2.4使用Switch-MDT转发私网流量
在上述Share-MDT的建立过程中,连接PE3的CE3上并没有接收者,但私网组播数据(192.1.1.1,225.1.1.1)还会到达PE3,这就是MD方案的一个缺点,即:
所有属于同一MD的PE无论其是否有下游接收者,都会接收到组播数据报文。
这样造成了带宽浪费,也增加了PE的处理负担。
为了克服这些缺点,在组播VPN的实现中,还可以使用一种优化的按需发送方法——Switch-MDT,即为进入公网的大流量私网组播数据,在连接有私网接收者和私网组播源的各PE之间,建立起专用的Switch-MDT。
然后将该组播数据流从Share-MDT切换到Switch-MDT,从而实现按需进行组播。
从Share-MDT向Switch-MDT切换的过程如下:
(1)源端PE周期性地检测私网组播数据的转发速率。
发起从Share-MDT向Switch-MDT的切换必须同时满足以下两点要求:
●私网组播数据通过了ACL规则的过滤,否则仍沿Share-MDT转发;
●私网组播数据的转发速率超过了切换阈值,且维持了一定的时间,否则仍沿Share-MDT转发。
(2)在PE1上,一旦检测到满足切换条件,则从Switch-Group-Pool中分配一个空闲的Switch-Group地址,沿Share-MDT向所有下游PE发送切换通知消息。
该消息中包括私网组播源地址、私网组播组地址和Switch-Group地址。
(3)其它PE收到该消息后,检查自己是否连接有该私网组播数据的接收者:
如果有,则加入以PE1为根的Switch-MDT;
如果没有,则将该消息缓存起来,等待有接收者时再加入Switch-MDT。
(4)当PE1发送切换通知消息一定时间后,PE1停止使用Share-Group地址对私网组播数据进行封装,并改用Switch-Group地址进行封装,组播数据沿Switch-MDT向下分发。
(5)当Share-MDT切换到Switch-MDT之后,PE1会周期性地发送切换通知消息,以便后续有PE加入Switch-MDT。
当某下游PE不再连接有接收者时,可以退出Switch-MDT。
2.5Switch-Delay和Switch-Holddown
在PE1希望通过Switch-MDT转发数据的时候,PE1可以先发出一个切换到Switch-MDT的信令,然后等一个Switch-Delay长度的时间,再把数据封装成Switch-Group发送。
这样实现的优点是,预留出下游PE加入到Switch-MDT的时间,达到了最大限度避免数据的丢失。
Switch-Delay的时间长短可以根据网络情况进行配置。
当数据在Switch-MDT转发的时候,如果数据的流量低于切换阈值的时候,应该重新使用Share-MDT来转发数据。
为了避免数据流量在阈值附近时引起反复振荡,可以在发现数据流量低于阈值的时候并不立即切换回Share-MDT,而是等一个Switch-Holddown长度的时间,如果这段时间内数据流量依然低于阈值,那么就切换回Share-MDT,如果这段时间内数据流量又高于阈值了,则继续使用Switch-MDT。
这样实现的优点在于避免了由于数据流量不稳而引起封装数据反复在Share-MDT和Switch-MDT之间振荡。
2.6跨域组播VPN解决方案
存在两种跨域组播VPN解决方案:
即:
VRF-to-VRF连接方式和Multi-HopEBGP连接方式的跨域BGP/MPLSVPN组播。
1.VRF-to-VRF连接方式的跨域组播VPN
当VPN内的节点通过不同的自治域连接时,可以通过VRF-to-VRF的方式建立跨自治域的VPN。
如图3所示,连接两个自治域的ASBR(PE3和PE4)互相把对方当作这个VPN内的CE来对待。
PE1(PE2)到另一个自治域里的CE2(CE1)的单播路由的下一跳是本自治域的ASBR(PE3(PE4)),也就是说VPN通过ASBR进行了转接。
在这种方式建立的VPN里实现MD方案,需要在两个自治域里分别建立两个MD。
组播数据从一个MD到另一个MD是通过ASBR来进行转接的。
图1VRF-to-VRF连接方式示意图
在两个自治域里分别建立两个MD,这两个MD的Share-Group可以相同,也可以不同。
2.Multi-hopEBGP连接方式的跨域组播VPN
当VPN内的节点通过不同的自治域连接时,可以通过Multi-hopEBGP的方式建立跨自治域的VPN。
两个自治域的PE通过Multi-hopEBGP对等体关系把一个自治域内连接的VPN路由传送到对方的自治域里。
如图4所示,PE1(PE2)到另一个自治域里的CE2(CE1)的单播路由的下一跳是对方自治域里连接CE2(CE1)的PE2(PE1)。
图1Multi-hopEBGP连接方式示意图
实现的方案为:
(2)两个自治域的PE通过Multi-hopEBGP对等体关系把一个自治域内连接的VPN路由传送到对方的自治域里;
(3)PE1(PE2)到另一个自治域里的CE2(CE1)的单播路由的下一跳是对方自治域里的PE2(PE1);
PE1和PE2之间建立邻居关系;
(4)在两个自治域里只能建立一个MD;
(5)在两个自治域之间的公网数据传递通过域间组播实现。
3典型组网应用
3.1单自治域MDVPN
3.1.1组网图
设备
接口
IP地址
S1
-
10.110.7.2/24
PE3
Eth1/1
192.168.8.1/24
S2
10.110.8.2/24
Eth1/2
10.110.5.1/24
R1
10.110.1.2/24
Eth1/3
10.110.6.1/24
R2
10.110.9.2/24
Loop1
1.1.1.3/32
R3
10.110.10.2/24
Loop2
33.33.33.33/32
R4
10.110.11.2/24
CEa1
10.110.7.1/24
P
192.168.6.2/24
10.110.2.2/24
192.168.7.2/24
CEa2
10.110.9.1/24
192.168.8.2/24
10.110.4.2/24
2.2.2.2/32
10.110.12.1/24
PE1
192.168.6.1/24
22.22.22.22/32
10.110.1.1/24
CEa3
10.110.10.1/24
10.110.2.1/24
10.110.5.2/24
1.1.1.1/32
10.110.12.2/24
PE2
192.168.7.1/24
CEb1
10.110.8.1/24
10.110.3.1/24
10.110.3.2/24
10.110.4.1/24
CEb2
10.110.11.1/24
1.1.1.2/32
10.110.6.2/24
图1单自治域MDVPN组网图
3.1.2组网环境
在一个MPLSVPN自治域中存在两个VPN,分别是VPNa和VPNb,不同的VPN具有不同的组播源,需要开展VPN内的组播业务。
具体的实现要求如表1所示。
表1单自治域MDVPN组网需求
项目
组网需求
组播源和接收者
●VPNa中的组播源为S1,接收者为R1、R2和R3
●VPNb中的组播源为S2,接收者为R4
●VPNa中的Share-Group地址为239.1.1.1,Switch-Group-Pool范围为225.2.2.0~225.2.2.15
●VPNb中的Share-Group地址为239.2.2.2,Switch-Group-Pool范围为225.4.4.0~225.4.4.15
PE上各接口所属的VPN实例
●PE1:
Ethernet1/2和Ethernet1/3属于VPN实例a,Ethernet1/1和Loopback1属于公网实例
●PE2:
Ethernet1/2属于VPN实例b,Ethernet1/3属于VPN实例a,Ethernet1/1和Loopback1属于公网实例
●PE3:
Ethernet1/2属于VPN实例a,Ethernet1/3和Loopback2属于VPN实例b,Ethernet1/1和Loopback1接口属于公网实例
单播路由协议和MPLS
●在公网中配置OSPF,在各PE与CE之间配置RIP
●在PE1、PE2和PE3各自的Loopback1接口之间建立BGP对等体连接并传递所有私网路由
●在公网中配置MPLS
IP组播路由功能
●在P上使能IP组播路由
●在PE1、PE2和PE3的公网实例中均使能IP组播路由
●在PE1、PE2和PE3的VPN实例a中均使能IP组