BGP A-D方式的组播VPN
产生原因
- PIM SM组播分发树:不知道组播源(即MTI地址)的位置,只能通过向中间设备RP发加入建立组播分发树。
- PIM SSM组播分发树:知道组播源的位置,无需RP,可以直接向组播源发起加入建立PIM SSM组播分发树。
PIM SSM组播分发树建立前提是知道公网组播源的位置,这里的公网组播源是PE设备MTI的接口地址。
基于MD方式的组播VPN,各PE之间是无法在建立组播分发树之前获取到PE设备的MTI接口地址,只能使用PIM SM组播分发树,公网配置RP,通过RP,各个PE设备建立公网组播分发树。
基于BGP A-D(Auto-Discovery)方式的组播VPN通过BGP MDT-AD消息传送MDT-AD路由,MDT-AD路由中携带公网组播源地址,各PE之间可以获取到PE设备的MTI接口地址,所以基于BGP A-D方式的组播VPN公网可以建立PIM SSM组播分发树,进行组播协议和数据报文的传递。
无论基于MD方式的组播VPN还是基于BGP A-D方式的组播VPN,所有PE设备逻辑上都是全连接的状态,各PE之间都会建立公网组播分发树,公网组播分发树的建立不依赖与私网VPN是否有流量。
公网组播分发树的建立仅和私网VPN配置Share-Group组地址和Mtunnel接口相关。
相关概念
关于MD MVPN的概念请参见MVPN术语介绍。
Peer:相互交换消息的BGP Speaker之间互称Peer(也称为对等体)。
BGP A-D(BGP自动发现):通过交互携带A-D路由的BGP Update消息,来获取并记录属于同一VPN的所有Peer成员信息。
实现原理
对于BGP A-D方式的组播VPN,目前仅支持MDT-SAFI A-D方式。即在BGP携带的MDT-SAFI A-D消息中定义一个新的地址族,在PE上配置VPN实例时,通过BGP Peer,PE向所有Peer发布VPN的配置信息,包括RD、Share-Group组地址和MTI接口的IP地址。对端PE收到BGP发布的此消息后,与自己配置的Share-Group组地址进行比较,确认加入相同的VPN后,利用该信息建立公网PIM-SSM组播分发树,从而承载私网组播业务。
如图7-14所示,PE1、PE2、PE3加入VPN1,都加入Share-group组地址G1,G1属于SSM组范围,各PE使能了BGP MDT-SAFI A-D功能,同时指定VPN1使用该A-D功能。CE1所在站点连接VPN1的组播源,CE2、CE3连接VPN1用户。通过BGP A-D机制,网络中的每一个PE获取并记录属于同一VPN的所有Peer成员信息,公网Share-MDT能够直接建立PIM-SSM组播分发树,从而支撑组播VPN业务运行在以PIM-SSM分发树为基础的公网隧道。
PE1、PE2、PE3配置BGP A-D功能后,进行会话协商,确定双方支持相同的A-D能力,建立BGP邻居关系。PE3收到PE1、PE2发送的BGP Update消息,记录PE1、PE2的BGP Peer地址。BGP Update消息中携带各自PE的相关信息。
PE3配置VPN1,加入Share-group组地址G1,以G1作为组地址,记录的PE1、PE2地址作为源地址,创建公网PIM-SSM表项,直接向PE1、PE2发送PIM加入消息,从而分别建立起PE1和PE2到PE3的两棵PIM-SSM组播分发树。
CE3向PE3发送加入消息,接收到加入消息后,PE3使用PIM-SSM share-group组地址封装加入报文后通过公网隧道发送到PE1,PE1解封装加入报文后发送给私网的组播源。
组播源发送的组播数据到达PE1后,PE1同样按Share-group组地址封装组播数据后沿公网隧道转发到PE3,最终转发到CE3侧的用户。