嘘~ 正在从服务器偷取页面 . . .

MPLS VPN技术原理与配置


本篇我们来介绍一下MPLS-VPN的理论基础知识和基本配置原理。MPLS-VPN是指采用MPLS(多协议标记转换
)技术在骨干的宽带IP网络上构建企业IP专网,实现跨地域、安全、高速、可靠的数据、语音、图像多业务
通信,并结合差别服务、流量工程等相关技术,将公众网可靠的性能、良好的扩展性、丰富的功能与专用网
的安全 、灵活、高效结合在一起。BGP/MPLS IP VPN是一种L3VPN,它使用BGP在服务提供商骨干网上发布
VPN路由,使用MPLS在服务提供商骨干网上转发VPN报文。这里的IP是指VPN承载的是IP报文。

传统的VPN通过在所有站点间建立全连接隧道或者永久虚链路PVC的方式实现,不易维护和扩展,尤其是向
已有的VPN加入新的站点时,需要同时修改所有接入此VPN站点的边缘节点的配置。BGP/MPLS IP VPN基于
对等体模型,这种模型使得服务提供商和用户可以交换路由,服务提供商转发用户站点间的数据而不需要
用户的参与。相比较传统的VPN,BGP/MPLS IP VPN更容易扩展和管理。新增一个站点时,只需要修改提
供该站点业务的边缘节点的配置。BGP/MPLS IP VPN支持地址空间重叠、支持重叠VPN、组网方式灵活、
可扩展性好,并能够方便地支持MPLS TE,成为在IP网络运营商提供增值业务的重要手段,因此得到越来
越多的应用。

如上图示例所示,MPLS VPN的基本模型由三部分组成:CE、PE和P。
● CE(Customer Edge):用户网络边缘设备,有接口直接与服务提供商网络相连。CE可以是路由器或交换
机,也可以是一台主机。通常情况下,CE“感知”不到VPN的存在,也不需要支持MPLS。
● PE(Provider Edge):是服务提供商网络的边缘设备,与CE直接相连。在MPLS网络中,对VPN的所有处
理都发生在PE上,对PE性能要求较高。
● P(Provider):服务提供商网络中的骨干设备,不与CE直接相连。P设备只需要具备基本MPLS转发能力,
不维护VPN信息。
● PE和P设备由服务提供商管理,CE设备仅由用户管理,除非用户把管理权委托给服务提供商。一台PE设备
可以接入多台CE设备。一台CE设备也可以连接属于相同或不同ISP的多台PE设备。

基本概念-地址空间重叠

VPN是一种私有网络,不同的VPN独立管理自己的地址范围,也称为地址空间(address space)。不同VPN
的地址空间可能会在一定范围内重合,例如,VPNA和VPNB都使用10.110.10.0/24网段地址,这就发生了地
址空间的重叠(address spaces overlapping)。
不同的VPN独立管理自己的地址范围,地址可以重叠:
● 两个VPN没有共同的Site
● 两个VPN有共同的Site,但此Site中的设备不与两个VPN中使用重叠地址空间的设备互访
● VPN的路由需要在PE设备之间批量更新,此时地址需要唯一

基本概念-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地址来解决BPG无法区
分不同VPN中相同的IP地址前缀的问题。
RD:
● RD用于区分使用相同地址空间的IPv4前缀
● 64比特长度
● RD的结构使得每个ISP可以独立的分配RD,但为了在CE双归属的情况下保证路由正常,必须保证RD全局
唯一。
VPN-IPv4地址:
● 由64比特长度的RD加上IPv4地址构成
● 使用VPN-IPv4地址族传递VPN-IPv4地址

基本概念-VPN Target

BGP/MPLS IP VPN使用32位的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实例的路由表。

也就是说,VPN Target属性定义了一条VPN路由可以为哪些site所接收,以及PE可以接收哪些site发送来
的路由。使用VPN Target而不直接用RD作为BGP扩展团体属性的原因在于:
● 一条VPN-IPv4路由只能有一个RD,但可以关联多个VPN Target属性;BGP如果携带多个扩展团体属性,
可以提高网络的灵活性和可扩展性。
● VPN Target用于控制同一PE上不同VPN之间的路由发布。即,同一PE上的不同VPN之间可以设置相同的
VPN Target来实现路由的互相引入。

注:RD和RT的区别如下:
● RD(Route Distinguisher):路由标识,RD长度为64bit,利用RD+IP前缀组合成VPN路由。RD的主要
作用可以实现IP地址复用,节约IP地址资源。
● RT(VPN Target):RT 可以理解为路由引入策略,接收到VPN路由后需要将VPN路由中的RT和本地VPN
实例的import RT列表做对比,查看列表中是否包含该RT值。如果存在接收路由并引入到对应的VPN实例路
由表中,如果没有丢弃路由。
● RT分为 export和import方向,export 指本地通告的VPN路由所携带的RT值,import指本只接收标识
了该列表中RT值的路由条目。

基本概念-MP-BGP

传统的BGP-4(RFC1771)只能管理IPv4的路由信息,无法正确处理地址空间重叠的VPN的路由。
为了正确处理VPN路由,VPN使用RFC2858(Multiprotocol Extensions for BGP-4)中规定的MP-BGP,
即BGP-4的多协议扩展。MP-BGP实现了对多种网络层协议的支持,在Update报文中,将网络层协议信息反
映到NLRI(Network Layer Reachability Information)及Next Hop。
MP-BGP采用地址族(Address Family)来区分不同的网络层协议,既可以支持传统的IPv4地址族,又可
以支持其它地址族(比如VPN-IPv4地址族、IPv6地址族等)。关于地址族的一些取值可以参考RFC1700
(Assigned Numbers)。

基本原理-PE与CE之间的信息交互

PE和CE之间通过标准的BGP,OSPF,IS-IS,RIP或者静态路由交换路由信息。这个过程中,PE需要将CE传
来的路由分别存储在不同的VRF,除此之外其他操作和普通的路由交换没有任何区别。静态路由、RIP、BGP
都是标准的协议,所有的CE端都可以使用相同的路由协议,但是需要在PE的每个VRF运行不同的实例,相互
之间没有干扰。

基本原理-交换路由信息及私网标签分配

PE从CE接收到IPv4路由后,对该路由加上相应VRF的RD(RD手动配置),使其成为一条VPNV4路由,然后在
路由通告中更改下一跳属性为自己,通常是自己的Loopback地址,并为这条路由加上私网标签,该标签由
MP-IBGP协议随机生成(无需配置),同时加上Export Route Target属性,然后发送给它所有的PE邻居。
VRP5.3中,在PE1上需要启动MPLS,然后MP-BGP即可以为私网路由分配标签。PE之间便可以正确交互私网
路由信息。SOO主要用于防止VPN某站点有多个CE接入不同的PE时,从CE发往PE的VPN路由可能经过骨干网
又回到了该站点的路由环路。

MPLS-VPN配置示例

配置要求如下图所示
• CE1连接公司总部研发区、CE3连接分支机构研发区,CE1和CE3属于vpna
• CE2连接公司总部非研发区、CE4连接分支机构非研发区,CE2和CE4属于vpnb
• 通过部署BGP/MPLS IP VPN,实现总部和分支机构的安全互通,同时要求研发区和非研发区间数据隔离。

配置思路,采用如下的思路配置BGP/MPLS IP VPN:
• P、PE之间配置OSPF,实现骨干网的IP连通性。
• PE、P上配置MPLS基本能力和MPLS LDP,建立MPLS LSP公网隧道,传输VPN数据。
• PE1和PE2上配置VPN实例,其中,vpna使用的VPN-target属性为111:1,vpnb使用的VPN-target属性
为222:2,以实现相同VPN间互通,不同VPN间隔离。同时,与CE相连的接口和相应的VPN实例绑定,以接
入VPN用户。
• PE1和PE2之间配置MP-IBGP,交换VPN路由信息。
• CE与PE之间配置EBGP,交换VPN路由信息。

1、首先配置好各接口的IP地址,然后在MPLS骨干网上配置OSPF,实现骨干网PE和P的互通。以PE1为例,
以同样方式配置好P和PE2。
interface GigabitEthernet0/0/0
ip address 12.0.0.1 255.255.255.252
interface GigabitEthernet0/0/1
ip address 14.0.0.1 255.255.255.252
interface GigabitEthernet0/0/2
ip address 16.0.0.1 255.255.255.252
interface LoopBack0
ip address 1.0.0.1 255.255.255.255
ospf 1
area 0.0.0.0
network 1.0.0.1 0.0.0.0
network 12.0.0.1 0.0.0.0

2、在MPLS骨干网上配置MPLS基本能力和MPLS LDP,建立LDP LSP。 以P为例配置如下,以同样方式配置
好PE1和PE2。
mpls lsr-id 2.0.0.2
mpls
mpls ldp
interface GigabitEthernet0/0/0
mpls
mpls ldp
interface GigabitEthernet0/0/1
mpls
mpls ldp

3、在PE设备上配置VPN实例,将CE接入PE。以PE1为例,以同样方式配置好PE2。
ip vpn-instance vpna
ipv4-family
route-distinguisher 100:1
vpn-target 111:1 export-extcommunity
vpn-target 111:1 import-extcommunity
#
ip vpn-instance vpnb
ipv4-family
route-distinguisher 100:2
vpn-target 222:2 export-extcommunity
vpn-target 222:2 import-extcommunity
#
interface GigabitEthernet0/0/1
ip binding vpn-instance vpna
ip address 14.0.0.1 255.255.255.252
#
interface GigabitEthernet0/0/2
ip binding vpn-instance vpnb
ip address 16.0.0.1 255.255.255.252

4、 在PE之间建立MP-IBGP对等体关系,以PE1为例,以同样方式配置好PE2。
bgp 65000
peer 3.0.0.3 as-number 65000
peer 3.0.0.3 connect-interface LoopBack0
#
ipv4-family unicast
undo synchronization
peer 3.0.0.3 enable

ipv4-family vpnv4
policy vpn-target
peer 3.0.0.3 enable

5、 在PE与CE之间建立EBGP对等体关系,引入VPN路由。以CE1和PE1为例,PE2、CE2、CE3和CE4与CE1做
同样的配置。
CE1:
ospf 1
area 0.0.0.0
network 0.0.0.0 255.255.255.255
bgp 65001
peer 14.0.0.1 as-number 65000
#
ipv4-family unicast
undo synchronization
peer 14.0.0.1 enable

PE1:
bgp 65000
ipv4-family vpn-instance vpna
peer 14.0.0.2 as-number 65001

6、在PE设备上执行display ip routing-table vpn-instance命令,可以看到去往对端CE的路由。

7、验证同一VPN的CE能够相互Ping通,不同VPN的CE不能相互Ping通。例如CE1与CE3可以互相Ping通,
但不能Ping通CE2与CE4。CE2与CE4可以互相Ping通,但不能Ping通CE1与CE3。


文章作者: kclouder
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 kclouder !
  目录