介绍
MPLS 准许多个Site 通过Service Provider 的网络透明互联。一个ISP 的网络可以支持多个不同的IP VPN,每个VPN对客户来说,是个单独的私有网络,和其它的客户都是独立的。在一个VPN里面,每个site 可以发送IP 包给同一个VPN 里的其它Site。换句话来说,MPLS/VPN对于客户来说,相当于一个透明的三层传输网络,以前可以通过租用Leased Line 互联,现在可以租用MPLS/VPN 链路互联。
每个VPN和一个或多个VRF(VPN Routing or forwarding instance)关联。一个VRF 包括一个路由表、一个CEF 表和一组使用这个转发表的接口。
路由器为每个VRF维护着独立的路由表和CEF 表。这可以防止信息被发送到VPN 之外,并且每个VPN 可以使用重叠的IP 地址。
路由器通过MP-BGP的扩展community 标签来分发VPN 路由信息
实验环境
本例在下面的软件和硬件环境下实现:
P 和PE路由器
· Cisco IOS. Release 12.2(6h),支持MPLS VPN feature.
· P 路由器:Cisco 7200 系列路由器.
· PE 路由器:Cisco 2691, 或者3640 系列路由器.
C 和CE 路由器
· 任何可以和PE 交换路由信息的路由器都可以作为C 和CE 路由器.
缩写约定
· P - Provider's core router.
· PE - Provider's edge router.
· CE - Customer's edge router.
· C - Customer's router.
我们将用下面的拓扑图进行举例说明:

配置
网络拓扑图
本文档使用下面的拓扑图,网络中有3 台P 路由器、2 台PE 路由器(Pescara 和Pesaro),2 个
VPN 客户分别是Customer_A 和Customer_B:

配置过程
启用ip cef
使用下面的过程启用ip cef.,为了提高性能,可以在支持的路由器上使用ip cef distributed命令。
当在接口上配置了MPLS 后(在接口上配置 tag-switching ip).,还要在PE 上完成下面的步骤:
1. 在路由器上为每个相连的VPN创建一个VRF,使用命令 ip vrf
配置ip vrf 的时候:
o 为每个VPN指定正确的RD.这是为了扩展IP 地址之用,以便你可以识别IP 地址属于哪个VPN.
rd
o 配置MP-BGP的扩展communities 的import 和export 值. 这是用于过滤import 和export 过程的.
route-target [export|import|both] <target VPN extended community>
2. 在VPN 各自的接口下使用ip vrf forwarding <VPN routing/forwarding instance name>命令,别忘了还需要配置IP 地址
3. 配置PE-CE 间使用的路由协议,可是使用静态路由或者动态路由(RIP、OSPF、BGP).
配置MP-BGP
在PE 路由器之间配置MP-BGP.有几种办法来配置BGP,例如路由反射器或者联盟.我们这儿使用直连的邻居进行举例.
1. 声明彼此的邻居
2. 为这台PE 上的每个VPN配置address-family ipv4 vrf <VPN routing/forwarding instance name 命令.
如果需要的话,完成下面的步骤
o 重分布静态、RIP、或者OSPF 路由
o 重分布直连的路由
o Activate 和CE 路由器间的BGP 邻居
3. 进入address-family vpnv4 模式,完成下面的配置:
o Activate the neighbors. Activate 邻居
o 指定必须使用扩展community,这是必须的.
配置
本例中的5 台路由器配置如下:
Pescara
Current configuration:
!
version 12.2
!
hostname Pescara
!
ip cef
!
!--- Customer_A 的配置.
ip vrf Customer_A
!---启用Customer_A 的VPN 路由和转发表 (VRF).
rd 100:110
!--- Route distinguisher creates routing and forwarding
!--- tables for a VRF.
route-target export 100:1000
!--- Creates lists of import and export route-target extended
!--- communities for the specified VRF.
route-target import 100:1000
!
!--- Customer_B 配置.
ip vrf Customer_B
rd 100:120
route-target export 100:2000
route-target import 100:2000
!
interface Loopback0
ip address 10.10.10.4 255.255.255.255
ip router isis
!--- Customer_A 的配置.
interface Loopback101
ip vrf forwarding Customer_A
!---将一个接口或者自接口和一个VRF 实例关联起来.
ip address 200.0.4.1 255.255.255.0
!--- Loopback101 和 102 使用相同的IP 地址 200.0.4.1.这是准许的,因为它们属于2 个不用
客户的VRF
no ip directed-broadcast
!
!--- Customer_B 的配置.
interface Loopback102
ip vrf forwarding Customer_B
ip address 200.0.4.1 255.255.255.0
!--- Loopback101 和 102 使用相同的IP 地址 200.0.4.1.这是准许的,因为它们属于2 个不用
客户的VRF
no ip directed-broadcast
!
interface Serial2/0
no ip address
no ip directed-broadcast
encapsulation frame-relay
no fair-queue
!
interface Serial2/0.1 point-to-point
description link to Pauillac
bandwidth 512
ip address 10.1.1.14 255.255.255.252
no ip directed-broadcast
ip router isis
tag-switching ip
frame-relay interface-dlci 401
!
router isis
net 49.0001.0000.0000.0004.00
is-type level-1
!
router bgp 100
bgp log-neighbor-changes
!--- 启用BGP 邻居关系中断的记录.
neighbor 10.10.10.6 remote-as 100
neighbor 10.10.10.6 update-source Loopback0
!--- 配置BGP 邻居.
!
!--- Customer A and B commands.
address-family vpnv4
!--- 进入address-family vpnv4 配置模式,配置和PE/P 路由器间的MP-BGP 路由会话。
neighbor 10.10.10.6 activate
neighbor 10.10.10.6 send-community both
!--- Sends the community attribute to a BGP neighbor.
exit-address-family
!
!--- Customer B commands.
address-family ipv4 vrf Customer_B
!--- 进入address-family ipv4 的配置模式下,配置和CE 间的路由会话,
redistribute connected
no auto-summary
no synchronization
exit-address-family
!
!--- Customer A commands.
address-family ipv4 vrf Customer_A
redistribute connected
no auto-summary
no synchronization
exit-address-family
!
ip classless
!
end
Pesaro