其他分享
首页 > 其他分享> > SP运营商核心网架构设计NG MV P N(下一代组播 V P N)技术深入分析

SP运营商核心网架构设计NG MV P N(下一代组播 V P N)技术深入分析

作者:互联网

我们经常听到MPLS V*P*N,但是对MV P N(Multicast V* P* N-组播V*P*N)了解的很少,实际上M*V*P*N已经出来20年了,在IE-LAB的SP运营商网络技术课程体系中,M V P N做为SP的高阶课程在SP的全栈课中有最深入的主题探讨。同时M V P N也是CCDE认证的前期知识储备必不可少的技术点。

 

RFC 2547是定义一个可扩展的架构,允许运营商为企业客户提供Layer 3 单播路由和转发服务。实际上这个就是MPLS ***,而M***是在MPLS Layer 3 ***的基本上,为客户提供组播服务,有两个发展阶段:Rosen Model和Next Generation M***(简称NG M***)。

 

l Rosen Model M***从2000年就开发出来了,它需要运营商的核心也运行PIM,数据平面是GRE,实际上是将C-Mcast(客户的组播包)封装进P-Mcast(运营商核心的组播包)中。

l NG M***则对M***做了更多的定义,比如core tree的建立方式有PIM(Rosen也属于这种)、MLDP、P2MP-TE、IR、BIER;core tree的类型也分为Default MDT、Data MDT和Partitioned MDT。NG M***的最优的地方在于,在M***中增加了LSM(labeled switch multicast – 以标签方式转发组播)的方式,意思是可以将C-Mcast报文可以封装进标签中进行传输。这种以标签方式转发组播包的好处是可以与单播公用MPLS的核心控制平面和数据平面,而不需要在核心中部署PIM,这样可以部署更快捷,而且不需要在核心周期性的维护状态,减少资源消耗,还可以做FRR(Fast RestoRation – 快速恢复)等。

 

这篇文章我们主要讨论NG M***中,C-Signaling在Overlay中传输的比较。那么首先什么是C-Signaling呢?从字面翻译就是客户的信令,说白了就是客户网络中接收者(Receiver)发送(*,G)或(S,G)加入共享树或源树等的报文。那什么是C-Overlay Signaling呢?实际上就是客户的信令在运营商中使用PIM、MLDP等协议构建的Overlay中传递的方式。

1.png



从上图我们可以看到,M***对客户来说是透明的,客户CE与运营商PE之间运行的是普通的PIM,不需要任何修改,信令传到运营商后,有4种方式:PIM in Overlay,BGP in Overlay,Static,In-band。其中Static是用于P2MP-TE的,In-band是将PIM的信令转成MLDP中Opaque value。有兴趣的同学可以做实验或查MLDP相关的RFC。我们这次主要讨论的是PIM in Overlay和BGP in Overlay,实验环境为Default MDT,MLDP MP2MP Core Tree,实验拓扑中R9为源,R5为RP,R8为接收者加入239.1.1.1,如下图:

2.png



我们先按NG M*** profile 1:Default MDT - MLDP MP2MP - PIM C-mcast Signaling的基本配置配好,基本配置如下,需要在所有PE上配置:


3.png

这时我们从源去ping下组播组239.1.1.1,可以ping通


4.png

好,我们来看下C-Signaling,默认的C-Signaling在Overlay中传输方式是PIM in Overlay,意思是将客户的信令PIM的(*,G)或(S,G)的报文变为运营商核心的PIM报文封装进core tree里面传给另一端客户。现在我们的core tree是以MLDP建立的MP2MP Default MDT。虽然核心设备并没有运行PIM,但是PE-R7路由器会将接收者R8发送的(*,G)和(S,G) join/prune消息直接封装进标签进行传输。

5.png


我们可以在R7的e0/2口抓包查看,能够看到R7在周期性的发送PIM join/prune消息


6.png


打开其中一个报文查看:


7.png


可以看到这个包是R7将接收者R8发往RP的(*,G) join和RPT置位的(S,G)的prune消息,封装进标签中,发送给R1(R1是连接RP的PE)。我们再打开另外一个报文查看:



8.png


可以看到这个包是R7将接收者R8发往源的(S,G) join消息封装进标签中,发送给R4(R4是连接源的PE)。


这些信令报文会周期性发送,在源不发组播流量后,源树会prune,但是共享树的(*,G) join消息会一直周期性的发送。这样实际上会浪费一些资源。所以后续又开发了BGP in Overlay,是将客户的(*,G) join/prune和(S,G) join/prune消息变成BGP ipv4 m***地址簇的NLRI,在Overlay网络里进行传输,下表是BGP IPv4 mpvn地址簇的NLRI和PTA的类型:

9.png

PIM in Overlay和BGP in Overlay方式对比是:

10.png


         PIM是soft-state的,需要周期性的发送refresh消息,而BGP是hard-state的,是增量更新的,不需要周期性更新。另外BGP的扩展性要好的多,可以使用与BGP ipv4 unicast地址簇和BGP ***v4 unicast地址簇相同的逻辑拓扑。

 因为篇幅原因,BGP in Overlay具体配置和实验过程,将在SP CCIE的视频课程中更新。M***组播***的技术探讨我们下期继续。



标签:架构设计,组播,join,PIM,Overlay,SP,BGP,MV,MLDP
来源: https://blog.51cto.com/11042505/2477865