3 NG MVPN

NG MVPN是IP组播数据穿越BGP/MPLS L3VPN网络的新一代解决方案。NG MVPN通过MP-BGP协议传递私网组播路由,通过P2MP隧道传输私网组播协议报文和组播数据流量,实现私网组播数据流量通过公网传递到远端的私网站点。

NG MVPN方案支持两种模式:RSVP-TE模式和mLDP模式。

3.1 NG MVPN基本概念

· MVPN(Multicast Virtual Private Network,组播VPN):在逻辑上表示某个VPN的私网组播数据在公网中的传播范围,在实际中则标识了网络中支持该VPN的所有PE。每个MVPN都服务于某个特定的VPN,属于该VPN的所有私网组播数据,都在此MVPN内传输。不同的VPN对应不同的MVPN。

· MVPN实例:PE上为一个MVPN提供组播服务的虚拟实例,用来在PE上实现不同MVPN的业务隔离。

· Inclusive-Tunnel(相容性隧道):承载来自于一个MVPN的所有组播业务。一个VPN实例唯一对应一条相容性隧道。PE将组播数据报文和PIM BSM(Bootstrap

Message,自举报文)统一封装为普通的公网组播数据报文,并通过相容性隧道发送到公网中。

· Selective-Tunnel(选择性隧道):承载来自于一个或多个特定的组播组的组播业务。一个VPN实例可以对应多条选择性隧道。

3.2 MP-BGP路由扩展

3.2.1 BGP MVPN邻居建立

为了支持NG

MVPN,MP-BGP新增BGP MVPN地址族,该地址族用于协商和建立BGP MVPN邻居,并传递私网组播路由信息。对于BGP IPv4 MVPN和BGP IPv6 MVPN,AFI(Address Family Identifier,地址族标识符)分别为1和2,SAFI(Subsequent Address Family Identifier,子地址族标识符)均为5。

在NG

MVPN组网中,PE之间既可以建立IBGP邻居,也可以建立EBGP邻居:

· 建立IBGP邻居时,为简化全连接配置,需要部署RR(Route Reflector,路由反射器)。所有PE都只需和RR建立IBGP邻居关系。RR发现并接收PE发起的BGP连接后形成客户机列表,将从某个PE收到的路由反射给其他所有的PE。

· 建立EBGP邻居时,不需要部署RR。BGP自动将从EBGP邻居收到的MVPN路由发送给其他EBGP和IBGP邻居。

3.2.2 BGP MVPN路由

在NG

MVPN中,MVPN路由信息是携带在BGP Update消息中的NLRI(Network Layer Reachable

Information,网络层可达信息)字段中进行传递的,携带MVPN路由信息的NLRI也称为MVPN

NLRI。

MVPN NLRI的格式如图16所示。

图16 MVPN NLRI格式

MVPN NLRI各字段的含义如下:

· Route Type:MVPN路由的类型。MVPN路由一共分为7类。具体可参见表1。

· Length:MVPN NLRI里Route Type specific字段的长度。

· Route Type specific:MVPN路由信息。不同类型的MVPN路由包含不同的信息,所以该字段的长度是可变的。

表1 MVPN路由分类

类型

名称

含义

1

Intra-AS I-PMSI A-D route

主要用于域内MVPN成员的自动发现,PE之间根据Intra-AS I-PMSI A-D Route建立相容性隧道

2

Inter-AS I-PMSI A-D route

主要用于域间MVPN成员的自动发现,由所有配置了MVPN功能ASBR发起

3

S-PMSI A-D route

当满足切换隧道的条件后,组播源侧PE向接收者侧PE发送S-PMSI A-D Route以进行选择性隧道切换

4

Leaf A-D route

接收者侧PE收到组播源侧PE发送的S-PMSI A-D Route后,回应Leaf A-D route,表示接收者侧PE存在建立选择性隧道的需求,协助组播源侧PE完成隧道信息收集

5

Source Active A-D route

当组播源侧PE发现一个新的组播源时,组播源侧PE向接收者侧PE发送Source Active A-D Route以通告组播源的位置信息

6

Shared Tree Join route

主要用来传递私网组播成员的加入信息。当接收者侧PE收到来自用户侧的(*,G)加入请求时,会将(*,G)加入消息转换成Shared Tree Join route,并将该路由穿越公网发送给组播源侧PE

7

Source Tree Join route

主要用来传递私网组播成员的加入信息,当接收者侧PE收到自用户侧的(S,G)加入请求时,会将(S,G)加入消息转换成Source Tree Join route,并将该路由穿越公网发送给组播源侧PE

1到5类称为MVPN A-D路由,主要作用是进行MVPN成员的自动发现和协助MPLS进行P2MP隧道的建立。6和7类称为C-multicast路由(C表示Customer,即来自于私网的组播路由),主要作用是发起私网用户加入和指导私网组播数据流量传递。目前,暂不支持6类路由。

3.2.3 BGP MVPN路由属性

1. PMSI Tunnel

attribute

PMSI(Provider Multicast Service

Interface,运营商组播服务接口)是指公网承载私网组播数据流量的逻辑通道。对指定的组播数据流量,在组播源侧PE上通过PMSI将私网组播数据流量分发给其他PE,接收者PE根据PMSI接收属于同一MVPN的组播数据流量。公网隧道是PMSI的具体实现形式,在NG MVPN中,公网隧道分为相容性隧道和选择性隧道。

PMSI Tunnel attribute主要用于公网隧道的创建,目前携带在Intra-AS I-PMSI

A-D route和S-PMSI

A-D route中,格式如图17所示。

图17 PMSI Tunnel attribute格式

PMSI Tunnel attribute各字段的含义如下:

· Flags:标志位。目前只有3类路由携带此属性时,该字段有意义。

¡ 3类路由S-PMSI A-D route携带此属性时,该标志位取值为0,表示接收者侧PE收到S-PMSI A-D route后不需要对此消息进行回应。

¡ 3类路由S-PMSI A-D route携带此属性时,该标志位取值为1,表示接收者侧PE收到S-PMSI A-D route后需要回应4类路由Leaf A-D route。

· Tunnel Type:隧道类型。目前只支持RSVP-TE P2MP隧道和mLDP P2MP隧道两种类型。

· MPLS Label:MPLS标签值,用于VPN隧道复用,目前不支持。

· Tunnel Identifier:隧道信息。

¡ 对于RSVP-TE P2MP隧道,隧道信息为

¡ 对于mLDP P2MP隧道,隧道信息为

2. Router Target扩展团体属性

Route Target扩展团体属性用来控制BGP MVPN路由的发布和接收。

Route Target属性分为如下两类:

· Export Target属性:为本地PE上的VPN实例设置Export Target属性后,PE在发布VPN实例对应MVPN实例的MVPN A-D路由时,会携带该Export Target属性。

· Import Target:当PE收到其他PE发布的MVPN A-D路由时,检查路由中的Export

Target属性。只有当此属性与PE上某个VPN实例的Import Target属性存在相同的属性值时,才接受该MVPN A-D路由,并在VPN实例中记录MVPN成员。如果不匹配,则丢弃该路由。

3.2.4 BGP VPN-IPv4路由携带的MVPN相关扩展团体属性

在NG

MVPN网络中,BGP VPN-IPv4路由需要携带MVPN相关的扩展团体属性,以便对C-multicast路由的发布和接收进行控制,实现组播用户加入或者离开消息的准确传递。MVPN相关的扩展团体属性包含如下两种:

· Source AS Extended Community:此属性携带本地BGP自治系统号信息,取值为MVPN组播源的AS号,格式为32位自治系统号::0。该属性主要用于跨域场景。

· VRF Route Import Extended Community:此属性携带本地BGP实例的Router ID和BGP VPN-IPv4路由所属的VPN实例信息,格式为32位Router ID:VPN实例索引。组播源侧PE发布给接收者侧PE的VPN-IPv4路由中包含此属性,接收者侧PE向组播源侧PE回应C-multicast route时会将此属性携带在路由中。组播源侧PE在收到接收者侧PE发送的Shared Tree Join route或Source Tree Join route时,如果Router ID为自己的Router ID,则将该路由加入到VPN实例索引标识的VPN实例的组播转发表项中;否则,组播源侧PE忽略该路由。

3.3 RSVP-TE模式

RSVP-TE模式组播VPN的基本思想是:各PE之间两两建立IBGP邻居,通过MP-BGP协议发布MVPN路由信息,在公网上建立RSVP-TE P2MP隧道。私网组播数据通过相容性RSVP-TE P2MP隧道或选择性RSVP-TE P2MP隧道传输给远端PE,远端PE收到该报文后通过剥离标签信息将其还原成私网组播报文。

3.3.1 创建RSVP-TE P2MP隧道

RSVP-TE P2MP隧道是由RSVP-TE P2MP协议建立、用来承载私网组播流量的点对多点的隧道。RSVP-TE P2MP协议(Point-to-MultiPoint,点到多点)用于建立点到多点类型的CR-LSP(称为P2MP LSP)。一条或多条RSVP-TE P2MP LSP构成了点到多点类型的RSVP-TE P2MP隧道。

P2MP LSP具有多个目的节点。P2MP

LSP头节点到各目的节点的点对点类型的LSP称为Sub-LSP。一条P2MP LSP由多条Sub-LSP组成。

1. RSVP-TE P2MP协议对RSVP协议扩展

RSVP P2MP协议在Path和Resv消息中新增如下对象:

· P2MP SESSION对象

Path和Resv消息均可以携带该对象。

该对象用来唯一标识一条P2MP TE隧道。P2MP SESSION格式如图18所示。

图18 P2MP SESSION格式

P2MP SESSION各字段的含义如下:

¡ P2MP

ID:头节点为不同的P2MP TE隧道分配不同的P2MP ID。

¡ MUST

be zero:保留字段。

¡ Tunnel

ID:隧道ID。

¡ Extended

Tunnel ID:扩展隧道ID,取值为P2MP TE隧道的源地址。

一条P2MP LSP由P2MP SESSION对象以及P2MP SENDER_TEMPLATE对象中的LSP ID字段来唯一确定。

· S2L_SUB_LSP对象

Path和Resv消息均可以携带该对象。

该对象用来携带P2MP LSP的目的地址。一个S2L_SUB_LSP只能携带一个目的地址,一个Path消息只能携带一个S2L_SUB_LSP。P2MP LSP支持多个目的地址,所以一条P2MP LSP需要使用多个Path消息。

· P2MP_SENDER_TEMPLATE对象

Path消息中可以携带该对象。

RSVP P2MP协议在P2P SENDER_TEMPLATE基础上增加Sub-Group Originator ID、Sub-Group ID字段,用来标识同一个P2MP LSP的不同Path消息。节点使用自己的LSR ID作为Sub-Group

Originator ID,并为不同Path消息分配不同的Sub-Group ID。

· P2MP_FILTER_SPEC对象

Resv消息中可以携带该对象。

RSVP P2MP协议在P2P FILTER_SPEC基础上增加Sub-Group Originator ID、Sub-Group ID字段,用来标识同一个P2MP LSP的不同Resv消息。节点使用自己的LSR ID作为Sub-Group

Originator ID,并为不同Resv消息分配不同的Sub-Group ID。

2. RSVP-TE P2MP

LSP建立过程

图19 P2MP LSP建立过程

如图19所示,使用RSVP-TE建立P2MP LSP的过程为:

(16) 选择第一个Egress叶子节点为目的地址。

(17) Ingress LSR在S2L_SUB_LSP对象中携带该Egress叶子节点地址建立CRLSP。

¡ Ingress

LSR生成携带LABEL_REQUEST对象的P2MP Path消息,沿着通过CSPF计算出的路径将该消息逐跳发送给Egress

LSR。Path消息经过的LSR,都依据Path消息生成路径状态。

¡ Egress

LSR收到Path消息后,生成携带预留信息和LABEL对象的Resv消息,沿着Path消息的相反路径将该消息逐跳发送给Ingress LSR。Resv消息通告标签的同时,在沿途的LSR上预留一定的资源,并生成预留状态。

(18) 选择下一个叶子节点,重复步骤(2)。

(19) 当Ingress

LSR成功为所有的叶子节点创建Sub-LSP时,RSVP-TE P2MP LSP建立成功。

在使用RSVP-TE建立P2MP LSP之前,需要先通过MVPN路由获取LSP的多个目的地址。详细的获取过程请参见“3.3.2 创建相容性隧道”和“3.3.3 选择性隧道切换”。

(20)

3. RSVP-TE P2MP报文转发

如图20所示,CE 1、CE 2和CE 3加入同一组播组。组播源Source只需向根节点PE 1发送一份信息,由网络中各设备根据该组播组中各成员的分布情况对该信息进行复制和标签转发,最后将该信息准确地发送给CE 1、CE 2和CE

3。根节点PE 1收到组播报文时,先查找组播路由表项,确认该组播报文需要通过RSVP P2MP LSP转发,然后为组播报文添加标签,根据组播标签转发表进行MPLS转发。

图20 RSVP P2MP转发示意图

3.3.2 创建相容性隧道

如图21所示,在组播源侧PE和接收者侧PE上均部署了BGP和MVPN之后,相容性隧道的创建过程如下:

(21) 组播源侧PE向接收者侧PE发送1类路由Intra-AS I-PMSI A-D route。该路由中携带了如下属性:

¡ Route

Target:用于控制路由的发布和接收。

¡ PMSI

Tunnel attribute,用于传递隧道信息。其中,Tunnel Type字段取值为RSVP-TE P2MP隧道;Tunnel Identifier取值为组播源侧PE为RSVP-TE P2MP隧道分配的隧道信息。

(22) 接收者侧PE向组播源侧PE发送1类路由Intra-AS I-PMSI A-D route,该路由中未携带PMSI Tunnel attribute,只携带了Route Target属性来控制路由的发布和接收。

(23) 接收者侧PE收到组播源侧PE发送的1类路由后,检查此路由中的Route Target属性与本地VPN实例配置的Import Target是否匹配。如果匹配,则接受此路由并将组播源侧PE记录为隧道的远端PE。

(24) 组播源侧PE接收到接收者侧PE发送的1类路由后,检查路由中的Route Target属性与本地VPN实例配置的Import Target是否匹配。如果匹配,则接受此路由,并向接收者侧PE发送Path消息,将接收者PE记录为隧道的目的端(即Egress叶子节点)。

(25) 组播源侧PE在收到接收者侧PE回应的Resv消息后,创建以组播源侧PE为源端、该接收者侧PE为目的端的Sub-LSP。

(26) 当有多个接收者侧PE时,可按照相同的方法创建多条Sub-LSP,从而形成以组播源侧PE为源端、所有接收者侧PE为目的端的RSVP-TE P2MP LSP。RSVP-TE P2MP LSP的具体建立过程参见“3.3.1 创建RSVP-TE

P2MP隧道”。

图21 相容性隧道的创建过程

至此,MVPN中组播源侧PE到各个接收者侧PE之间的RSVP-TE P2MP相容性隧道创建完成,如图22所示。

图22 在公网中创建相容性隧道

3.3.3 选择性隧道切换

1. 选择性隧道切换过程

由于相容性隧道承载同一个MVPN的所有组播业务,该隧道由属于同一个MVPN的所有PE组成。因此对于接收者侧的所有PE,无论该PE是否有下游接收者,均会接收到组播数据流量,造成了网络中带宽的浪费,同时也加重了PE设备处理的负担。

当达到指定的切换条件时,相容性隧道可以切换到选择性隧道,以实现不同组播流量通过不同的隧道传递。

选择性隧道切换的过程如下:

(27) 组播源侧PE收到满足隧道切换条件的私网组播报文后,向接收者侧PE发送携带PMSI Tunnel attribute的S-PMSI A-D route,并要求接收者侧PE回应加入信息。

(28) 接收者侧PE收到组播源侧PE发送的S-PMSI A-D route后,记录该路由。若存在下游接收者,则接收者侧PE向组播源侧PE回应Leaf A-D route,同时接收者侧PE根据S-PMSI A-D route中携带的PMSI Tunnel attribute加入对应的隧道(由于此时组播源侧PE不知道隧道目的端PE的信息,所以隧道还未真正建立)。若不存在下游接收者,则接收者侧PE不会回应Leaf A-D route。

(29) 组播源侧PE收到接收者侧PE发送的Leaf A-D route后,创建以组播源侧PE为源端、该接收者侧PE为目的端的Sub-LSP。

(30) 当存在下游接收者的接收者侧PE有多个时,可按照相同的方法创建多条Sub-LSP,从而形成以组播源侧PE为源端、所有存在接收者的接收者侧PE为目的端的RSVP-TE

P2MP LSP。RSVP-TE

P2MP LSP的具体建立过程参见“3.3.1 创建RSVP-TE P2MP隧道”。

图23 选择性隧道切换过程

至此,MVPN中组播源侧PE到接收者侧PE之间的RSVP-TE P2MP选择性隧道创建完成,如图24所示。

图24 创建选择性隧道并进行隧道切换

2. 选择性隧道的延迟切换

当组播流量满足切换条件后,连接组播源的PE会延迟一段时间才将组播业务切换到选择性隧道发送。这样就为下游PE预留出了回应Leaf

A-D route的时间,并且预留了选择性隧道建立的时间,以避免切换过程中数据的丢失。

3.4 mLDP模式

3.4.1 mLDP模式概述

mLDP模式也是NG-MVPN的一种解决方案。与RSVP-TE模式差异点主要体现在公网隧道的构建方式:

· RSVP-TE模式的P2MP隧道构建从Ingress PE开始,Ingress PE需要知道P2MP隧道的终点PE(叶子节点)的IP地址,从上游向下游通过RSVP协议建立标签隧道。

· mLDP模式的P2MP隧道是从Egress PE开始,Egress PE需要知道Ingress PE(根节点)的IP地址,从下游向上游通过LDP协议签建立隧道。

3.4.2 mLDP P2MP隧道创建过程

1. mLDP P2MP节点角色

如图25所示,mLDP P2MP建立了一条由一个入口节点(PE 1)到多个尾节点(PE 3、PE

4、PE 5)的“树形”隧道,组播流量在入口节点引入到该隧道中进行转发。当网络中的某些设备(即Receiver)需要接收组播报文时,组播源(即Source)仅需发送一份报文到入口节点,在分支节点(PE 2和P 3)上进行报文的复制,从而保证不会重复占用带宽。

图25 mLDP P2MP组网示意图

mLDP P2MP隧道中包括如下节点角色:

· Root:根节点。mLDP P2MP网络的Ingress节点,组播报文在此处被压入MPLS标签。根节点通过BGP通告的MVPN路由中的1类和3类路由将组播源信息和根节点信息传递给叶子节点。

· Transit:中间节点,负责交换标签。

· Branch:分支节点,中间节点中的一种。MPLS报文在此节点复制(根据其后叶子节点个数进行复制),然后进行标签交换。

· Leaf:叶子节点。如果与本节点相连的设备中存在组播接收者,则本节点为叶子节点。叶子节点为mLDP P2MP隧道的尾节点。

· Bud:Bud节点。既作为mLDP P2MP网络的叶子节点,又作为Branch节点。

2. LDP协议扩展

· mLDP会话

mLDP会话建立时需协商mLDP能力,只有本地和远端对等体均支持mLDP P2MP功能,才能在二者之间建立mLDP P2MP隧道。mLDP会话消息格式如图26所示。

图26 mLDP会话消息格式

mLDP会话消息各字段的含义如下:

¡ U:设置为1,表示对端设备如果不支持协商,则可以忽略该TLV。

¡ V:设置为0,表示不需要转发协商报文。

¡ P2MP

Capablity:设置为1,表示该LSP协商的是P2MP能力。

¡ S:会话初始的时候设置为1,表示具有P2MP能力。

¡ Reserved:保留字段。

· P2MP FEC element

mLDP P2MP扩展了标签映射消息中的FEC TLV,用于建立mLDP P2MP隧道。扩展的FEC TLV称为P2MP FEC Element,其报文格式如图27所示。P2MP FEC Element主要包含以下几部分:

¡ Type:mLDP建立的树形LSP类型,目前仅支持P2MP。

¡ Address

family:根节点地址类型。目前仅支持IPv4和IPv6。

¡ Address

length:根节点地址长度。

¡ Root

node address:根节点地址。

¡ Opaque

length:Opaque

value的长度。

¡ Opaque

value:Opaque

value用来在根节点区分不同的P2MP LSP,并携带一些关于P2MP的根节点和叶子节点的信息。

图27 P2MP FEC Element格式示意图

3. mLDP P2MP隧道建立

如(20)图28所示,本地和远端对等体成功协商mLDP能力后,建立mLDP P2MP隧道的过程为:

(31) 根节点通过BGP通告的MVPN路由中的1类和3类路由将组播源信息和根节点信息传递给叶子节点。叶子节点和中间节点选择到根节点的最优路由,并将该路由的下一跳作为自己的上游节点。

(32) 叶子节点向上游发送Label

mapping消息,并生成相应转发表项。

(33) 中间节点接收到来自下游的Label

mapping消息后,会查询是否给上游发送过标签映射消息。如果没有给上游发送过标签,则查询路由表确定上游后,向上游发送Label mapping消息,并生成对应的转发表项。如果已经发送过,则无需再次发送。

(34) 根节点收到下游发送的Label

mapping消息后,会生成相应的转发表项。

图28 mLDP P2MP隧道建立过程示意图

4. mLDP P2MP报文转发

如图29所示,CE 1、CE 2和CE 3加入同一组播组。组播源Source只需向根节点PE 1发送一份信息,由网络中各设备根据该组播组中各成员的分布情况对该信息进行复制和标签转发,最后将该信息准确地发送给CE 1、CE 2和CE

3。根节点PE 1收到组播报文时,先查找组播路由表项,确认该组播报文需要通过mLDP P2MP隧道转发,然后为组播报文添加标签,根据组播标签转发表进行MPLS转发。

图29 mLDP P2MP转发示意图

3.4.3 创建相容性隧道

如图30所示,在组播源侧PE和接收者侧PE上均部署了BGP和MVPN之后,相容性隧道的创建过程如下:

(35) 组播源侧PE向接收者侧PE发送1类路由Intra-AS I-PMSI A-D route。该路由中携带了如下属性:

¡ Route

Target:用于控制路由的发布和接收。

¡ PMSI

Tunnel attribute,用于传递隧道信息。其中,Tunnel Type字段取值为mLDP P2MP隧道;Tunnel Identifier取值为组播源侧PE为mLDP P2MP隧道分配的隧道信息。

(36) 接收者侧PE收到组播源侧PE发送的1类路由后,检查此路由中的Route Target属性与本地VPN实例配置的Import Target是否匹配。如果匹配,则接受此路由并向组播源侧PE发送Label mapping消息。

(37) 接收者侧PE创建以组播源侧PE为根、接收者侧PE为叶的LSP。

(38) 当有多个接收者侧PE时,可按照相同的方法创建多条LSP,从而形成以组播源侧PE为根、所有接收者侧PE为叶的mLDP P2MP LSP。mLDP P2MP LSP的具体建立过程参见“3.4.2 mLDP P2MP隧道创建过程”。

图30 相容性隧道的创建过程

至此,MVPN中组播源侧PE到各个接收者侧PE之间的mLDP P2MP相容性隧道创建完成,如图22所示。

图31 在公网中创建相容性隧道

3.4.4 选择性隧道切换

选择性隧道切换的过程如下:

(39) 组播源侧PE收到满足隧道切换条件的私网组播报文后,向接收者侧PE发送携带PMSI Tunnel attribute的S-PMSI A-D route,不要求接收者侧PE回应加入信息。

(40) 接收者侧PE收到组播源侧PE发送的S-PMSI A-D route后,记录该路由。若存在下游接收者,接收者侧PE根据S-PMSI A-D route中携带的PMSI Tunnel attribute,创建以组播源侧PE为根、接收者侧PE为叶的LSP。若不存在下游接收者,则接收者侧PE不创建对应的隧道。

(41) 当存在下游接收者的接收者侧PE有多个时,可按照相同的方法创建LSP,从而形成以组播源侧PE为根、所有存在接收者的接收者侧PE为叶的mLDP

P2MP LSP。mLDP P2MP

LSP的具体建立过程参见“3.4.2 mLDP P2MP隧道创建过程”。

图32 选择性隧道切换过程

至此,MVPN中组播源侧PE到接收者侧PE之间的mLDP P2MP选择性隧道创建完成,如图33所示。

图33 创建选择性隧道并进行隧道切换

3.4.5 跨AS的mLDP模式MVPN

1. A类跨AS的mLDP模式MVPN

如图34所示,VPN跨越了AS

100和AS 200两个自治系统,PE 3和PE 4分别是AS 100和AS 200的ASBR。PE 3和PE 4通过各自的VPN实例相连,并互把对方视为CE设备。

图34 A类跨AS的mLDP模式MVPN示意图

采用本方式时,需在每个AS内各建立一个独立的MVPN,在各MVPN之间实现私网组播数据跨AS的传输。跨AS传输私网组播数据的过程如下:

(42) 由于PE 3与PE 4互把对方视为自己的CE,因此:在AS 100中,CE 1与PE 4(相当于PE 3的CE)之间可以互通组播业务;在AS 200中,CE 2与PE 3(相当于PE 4的CE)之间也可以互通组播业务。

(43) CE 1发出VPN 1的私网组播协议和数据报文在PE 1上经过MPLS封装后通过mLDP Tunnel1到达PE 3,PE 3解封装后通过普通三层组播转发到达PE 4,该报文被PE 4视为与自己私网接口相连的VPN 2的私网报文,于是将其通过mLDP Tunnel2转发给CE 2;CE 2发出的VPN 2的报文也采用相同的方法到达CE 1。这样,就实现了私网组播数据在CE 1与CE 2之间的互通。

A类跨域无法在域间互相通告激活组播源的自动发现路由(Source Active A-D route),所以必须在RP间配置MSDP或anycast-RP以实现域间组播源信息的传递。

2. B类跨AS的mLDP模式MVPN

如图35所示,VPN跨越了AS 100和AS

200两个自治系统,PE 3和PE 4分别是AS 100和AS 200的ASBR,PE

3和PE 4通过MP-EBGP相连。在此组网中,ASBR之间通过MP-EBGP交换它们从各自AS内的PE上接收的VPN-IPv4路由。

图35 B类跨AS的mLDP模式MVPN示意图

采用本方式时,只需在所有AS内统一建立一个MVPN即可,在该MVPN内部实现私网组播数据跨AS的传输。隧道建立和流量转发过程如下:

(44) CE 1收到组播流量后,如果域内RP为PE 1,则发送注册报文到PE 1;如果RP为CE 1或者CE 2,则需要通过MSDP或者Anycast-RP将组播源信息发送到PE 1。无论采用哪种方式,当PE 1发现组播源信息后,都会发送Source Active A-D

route通告组播源,该路由可以直接通过BGP传递到PE

3、PE 4和PE 2。

(45) PE 2收到Source Active A-D route后,检查本AS域内是否存在组播接收者信息。如果存在接收者,向上游发送C-Multicast Route加入,该路由可以直接通过BGP传递到PE 4、PE 3和PE 1。

(46) PE 1收到C-Multicast Route后,将组播流量封装MPLS标签后通过mLDP隧道发送到PE 2,在PE 2上进行解封装后转发到私网侧。

3. C类跨AS的mLDP模式MVPN

如图36所示,VPN跨越了AS 100和AS

200两个自治系统,PE 3和PE 4分别是AS 100和AS 200的ASBR。PE

3和PE 4通过MP-EBGP相连,并互把对方视为P设备。在此组网中,不同AS的PE之间建立多跳MP-EBGP会话,并通过该会话直接在PE之间发布VPN-IPv4路由。

图36 C类跨AS的mLDP模式MVPN示意图

采用本方式时,只需在所有AS内统一建立一个MVPN即可,在该MVPN内实现私网组播数据跨AS的传输。跨AS传输私网组播数据的过程如下:

(47) CE 1收到组播流量后,如果域内RP为PE 1,则发送注册报文到PE 1;如果RP为CE 1或者CE 2,需要通过MSDP或者Anycast-RP将组播源信息发送到PE 1。不管哪种方式,当PE 1发现组播源信息后,都会发送Source Active A-D

route通告组播源,该路由可以通过BGP直接发送给PE 2。

(48) PE 2上收到Source Active A-D route后,检查本AS域内是否存在组播接收者信息,如果存在接收者,向上游发送C-Multicast Route加入,该路由可以通过BGP直接传递到PE 1。

(49) PE 1收到C-Multicast Route后,将组播流量封装MPLS标签后通过mLDP隧道中发送到PE 2,在PE 2上进行解封装后转发到私网侧。