BGP/MPLS IP VPN基本概念

Site

在介绍VPN时经常会提到“Site”,Site(站点)的含义可以从下述几个方面理解:

· Site是指相互之间具备IP连通性的一组IP系统,并且,这组IP系统的IP连通性不需通过运营商网络实现。

如图2-2所示,左半边的网络中,A市X公司总部网络是一个Site,B市X公司分支机构网络是另一个Site。这两个网络各自内部的任何IP设备之间不需要通过运营商网络就可以互通。

图2-2 Site示意图
BGP MPLS IP V匹N基本概念-LMLPHP

· Site的划分是根据设备的拓扑关系,而不是地理位置,尽管在大多数情况下一个Site中的设备地理位置相邻。地理位置隔离的两组IP系统,如果它们使用专线互联,不需要通过运营商网络就可以互通,这两组IP系统也组成一个Site。

图2-2所示,右半边网络,B市的分支机构网络不通过运营商网络,而是通过专线直接与A市的总部相连,则A市的总部网络与B市的分支机构网络构成了一个Site。

· 一个Site中的设备可以属于多个VPN,换言之,一个Site可以属于多个VPN。

如图2-3所示,X公司位于A市的决策部网络(Site A)允许与位于B市的研发部网络(Site B)和位于C市的财务部网络(Site C)互通。但是不允许Site B与Site C互通。这种情况下,可以构建两个VPN(VPN1和VPN2),Site A和Site B属于VPN1,Site A和Site C属于VPN2。这样,Site A就属于多个VPN。

图2-3 一个Site属于多个VPN
BGP MPLS IP V匹N基本概念-LMLPHP

· Site通过CE连接到运营商网络,一个Site可以包含多个CE,但一个CE只属于一个Site。

根据Site的情况,建议CE设备选择方案如下:

如果Site只是一台主机,则这台主机就作为CE设备;

如果Site是单个子网,则使用交换机作为CE设备;

如果Site是多个子网,则使用路由器作为CE设备。

对于多个连接到同一运营商网络的Site,通过制定策略,可以将它们划分为不同的集合(set),只有属于相同集合的Site之间才能通过运营商网络互访,这种集合就是VPN。

地址空间重叠

VPN是一种私有网络,不同的VPN独立管理自己的地址范围,也称为地址空间(address space)。不同VPN的地址空间可能会在一定范围内重合,例如,VPN1和VPN2都使用10.110.10.0/24网段地址,这就发生了地址空间的重叠(address spaces overlapping)。

以下两种情况允许VPN使用重叠的地址空间:

· 两个VPN没有共同的Site

· 两个VPN有共同的Site,但此Site中的设备不与两个VPN中使用重叠地址空间的设备互访

VPN实例

在BGP/MPLS IP VPN中,不同VPN之间的路由隔离通过VPN实例(VPN-instance)实现。

PE为每个直接相连的Site建立并维护专门的VPN实例,VPN实例中包含对应Site的VPN成员关系和路由规则。具体来说,VPN实例中的信息包括:IP路由表、标签转发表、与VPN实例绑定的接口以及VPN实例的管理信息。VPN实例的管理信息包括RD(Route Distinguisher,路由标识符)、路由过滤策略、成员接口列表等。

VPN、Site、VPN实例之间的关系如下:

· VPN是多个Site的组合。一个Site可以属于多个VPN。

· 每一个Site在PE上都关联一个VPN实例。VPN实例综合了它所关联的Site的VPN成员关系和路由规则。多个Site根据VPN实例的规则组合成一个VPN。

· VPN实例与VPN不是一一对应的关系,VPN实例与Site之间存在一一对应的关系。

VPN实例也称为VPN路由转发表VRF(VPN Routing and Forwarding table)。PE上存在多个路由转发表,包括一个公网路由转发表,以及一个或多个VPN路由转发表。如图2-4所示。

图2-4 VPN实例示意图
BGP MPLS IP V匹N基本概念-LMLPHP

公网路由转发表与VPN实例存在以下不同:

· 公网路由表包括所有PE和P设备的IPv4路由,由骨干网的路由协议或静态路由产生。

· VPN路由表包括属于该VPN实例的所有Site的路由,通过CE与PE之间或者两个PE之间的VPN路由信息交互获得。

· 公网转发表是根据路由管理策略从公网路由表提取出来的转发信息;而VPN转发表是根据路由管理策略从对应的VPN路由表提取出来的转发信息。

可以看出,PE上的各VPN实例之间相互独立,并与公网路由转发表相互独立。

可以将每个VPN实例看作一台虚拟的设备,维护独立的地址空间并有连接到私网的接口。

RD和VPN-IPv4地址

传统BGP无法正确处理地址空间重叠的VPN的路由。假设VPN1和VPN2都使用了10.110.10.0/24网段的地址,并各自发布了一条去往此网段的路由。虽然本端PE通过不同的VPN实例可以区分地址空间重叠的VPN的路由,但是这些路由发往对端PE后,由于不同VPN的路由之间不进行负载分担,因此对端PE将根据BGP选路规则只选择其中一条VPN路由,从而导致去往另一个VPN的路由丢失。

PE之间使用MP-BGP(Multiprotocol Extensions for BGP-4,BGP-4的多协议扩展)来发布VPN路由,并使用VPN-IPv4地址来解决上述问题。

VPN-IPv4地址共有12个字节,包括8字节的路由标识符RD(Route Distinguisher)和4字节的IPv4地址前缀,如图2-5所示。

图2-5 VPN-IPv4地址结构
BGP MPLS IP V匹N基本概念-LMLPHP

RD用于区分使用相同地址空间的IPv4前缀,增加了RD的IPv4地址称为VPN-IPv4地址(即VPNv4地址)。PE从CE接收到IPv4路由后,转换为全局唯一的VPN-IPv4路由,并在公网上发布。

RD的结构使得每个服务供应商可以独立地分配RD,但为了在CE双归属的情况下保证路由正常,必须保证PE上的RD全局唯一。如图2-6所示,CE以双归属方式接入到PE1和PE2。PE1同时作为路由反射器RR(Route Reflector)。

图2-6 CE双归属组网示意图
BGP MPLS IP V匹N基本概念-LMLPHP

该组网中,PE1作为骨干网边界设备发布一条IPv4前缀为10.1.1.1/8的VPN-IPv4路由给PE3。同时又作为RR反射PE2发布的IPv4前缀为10.1.1.1/8的VPN-IPv4路由给PE3。

· 如果该VPN在PE1和PE2上的RD一样,由于目的地址相同,PE3只保留一条到10.1.1.1/8的VPN-IPv4路由,其路径为:PE3—>PE1->CE。

· 当PE1与CE之间的直连链路出现故障时,PE3删除到10.1.1.1/8的VPN-IPv4路由,无法正确转发到该目的地址的VPN数据。而实际上PE3应该有一条到10.1.1.1/8的路由,其路径为:PE3—>PE1—>PE2->CE。

· 如果该VPN在PE1和PE2上的RD不同,则PE3从PE1接收的到10.1.1.1/8两条VPN-IPv4路由的目的地址不同,因此PE3上保留两条到10.1.1.1/8的VPN-IPv4路由。当PE1与CE之间的任何一条链路出现故障时,PE3将删除其中对应的一条,仍保留另一条,使得到10.1.1.1/8的数据能正确转发。

VPN Target

BGP/MPLS IP VPN使用BGP扩展团体属性-VPN Target(也称为Route Target)来控制VPN路由信息的发布。

每个VPN实例关联一个或多个VPN Target属性。有两类VPN Target属性:

· Export Target:本地PE从直接相连Site学到IPv4路由后,转换为VPN-IPv4路由,并为这些路由设置Export Target属性。Export Target属性作为BGP的扩展团体属性随路由发布。

· Import Target:PE收到其它PE发布的VPN-IPv4路由时,检查其Export Target属性。当此属性与PE上某个VPN实例的Import Target匹配时,PE就把路由加入到该VPN实例中。

在BGP/MPLS IP VPN网络中,通过VPN Target属性来控制VPN路由信息在各Site之间的发布和接收。VPN Export Target和Import Target的设置相互独立,并且都可以设置多个值,能够实现灵活的VPN访问控制,从而实现多种VPN组网方案。

例如:某VPN实例的Import Target包含100:1,200:1和300:1,当收到的路由信息的Export Target为100:1、200:1、300:1中的任意值时,都可以被注入到该VPN实例中

05-11 22:59