MPLS VPN(多协议标签交换虚拟专用网)是一种基于 MPLS 技术实现的 VPN 解决方案,能在公用网络中为不同用户提供隔离的私有通信通道。其核心是通过 VRF(VPN 路由转发实例)隔离不同 VPN 的路由,通过 BGP VPNv4 地址族传递跨 PE 的 VPN 路由,通过 MPLS 标签实现数据转发。
假设有如下简化拓扑:
- CE 设备:CE1(属于 VPN1,连接用户网络)、CE2(属于 VPN1,连接用户网络)
- PE 设备:PE1(连接 CE1)、PE2(连接 CE2)
- P 设备:P1(核心转发设备,不参与 VPN 路由)
- 链路:CE1-PE1(10.1.1.0/24)、PE1-P1(10.2.2.0/24)、P1-PE2(10.3.3.0/24)、PE2-CE2(10.4.4.0/24)
先配置各接口 IP 地址,确保底层 IP 连通性。
CE1 配置:
interface GigabitEthernet0/0
ip address 10.1.1.1 255.255.255.0
no shutdown
!
ip route 0.0.0.0 0.0.0.0 10.1.1.2 // 默认路由指向PE1
PE1 配置:
interface GigabitEthernet0/0 // 连接CE1
ip address 10.1.1.2 255.255.255.0
no shutdown
!
interface GigabitEthernet0/1 // 连接P1
ip address 10.2.2.1 255.255.255.0
no shutdown
P1 配置:
interface GigabitEthernet0/0 // 连接PE1
ip address 10.2.2.2 255.255.255.0
no shutdown
!
interface GigabitEthernet0/1 // 连接PE2
ip address 10.3.3.1 255.255.255.0
no shutdown
PE2 配置:
interface GigabitEthernet0/0 // 连接P1
ip address 10.3.3.2 255.255.255.0
no shutdown
!
interface GigabitEthernet0/1 // 连接CE2
ip address 10.4.4.2 255.255.255.0
no shutdown
CE2 配置:
interface GigabitEthernet0/0
ip address 10.4.4.1 255.255.255.0
no shutdown
!
ip route 0.0.0.0 0.0.0.0 10.4.4.2 // 默认路由指向PE2
在 PE 和 P 的公网接口启用 MPLS LDP(标签分发协议),建立标签交换路径(LSP)。
PE1 配置:
mpls ldp router-id GigabitEthernet0/1 force // 以连接P的接口为LDP Router-ID
!
interface GigabitEthernet0/1 // 仅在公网接口启用MPLS
mpls ip
P1 配置:
mpls ldp router-id GigabitEthernet0/0 force
!
interface GigabitEthernet0/0 // 连接PE1的接口
mpls ip
!
interface GigabitEthernet0/1 // 连接PE2的接口
mpls ip
PE2 配置:
mpls ldp router-id GigabitEthernet0/0 force
!
interface GigabitEthernet0/0 // 连接P的接口
mpls ip
在 PE 上创建 VRF,用于隔离 VPN1 的路由(需保证两端 PE 的 VRF 参数一致)。
PE1 配置:
ip vrf VPN1 // 创建名为VPN1的VRF
rd 100:1 // 路由区分符(RD,唯一标识VPN路由)
route-target import 100:1 // 导入目标(接收带此RT的路由)
route-target export 100:1 // 导出目标(本地路由添加此RT)
!
// 将连接CE1的接口加入VRF
interface GigabitEthernet0/0
ip vrf forwarding VPN1 // 关联VRF
ip address 10.1.1.2 255.255.255.0 // 需重新配置IP(加入VRF后原IP失效)
PE2 配置:
ip vrf VPN1
rd 100:1 // 与PE1保持一致
route-target import 100:1
route-target export 100:1
!
interface GigabitEthernet0/1
ip vrf forwarding VPN1
ip address 10.4.4.2 255.255.255.0
配置 PE 与 CE 之间的路由,使 CE 的路由能进入 VRF。
PE1 配置(VRF 内静态路由):
ip route vrf VPN1 192.168.1.0 255.255.255.0 10.1.1.1 // CE1侧用户网段(假设CE1背后有192.168.1.0/24)
CE1 配置(指向 PE1 的静态路由):
ip route 192.168.2.0 255.255.255.0 10.1.1.2 // 假设CE2侧用户网段为192.168.2.0/24
PE2 配置(VRF 内静态路由):
ip route vrf VPN1 192.168.2.0 255.255.255.0 10.4.4.1 // CE2侧用户网段
CE2 配置(指向 PE2 的静态路由):
ip route 192.168.1.0 255.255.255.0 10.4.4.2 // 指向CE1侧用户网段
通过 BGP VPNv4 地址族传递 VPN 路由(PE1 和 PE2 需建立 BGP 邻居关系)。
PE1 配置:
router bgp 65000 // 自治系统号(PE通常属于同一AS或建立EBGP)
neighbor 10.3.3.2 remote-as 65000 // 与PE2建立IBGP邻居(PE2的公网接口IP)
neighbor 10.3.3.2 update-source GigabitEthernet0/1 // 用公网接口作为更新源
!
address-family vpnv4 // 启用VPNv4地址族
neighbor 10.3.3.2 activate // 激活邻居的VPNv4能力
neighbor 10.3.3.2 send-community extended // 传递扩展团体属性(含RT)
!
address-family ipv4 vrf VPN1 // 进入VRF的IPv4地址族
redistribute static // 重分发VRF内的静态路由到BGP
PE2 配置:
router bgp 65000
neighbor 10.2.2.1 remote-as 65000 // 与PE1建立IBGP邻居(PE1的公网接口IP)
neighbor 10.2.2.1 update-source GigabitEthernet0/0
!
address-family vpnv4
neighbor 10.2.2.1 activate
neighbor 10.2.2.1 send-community extended
!
address-family ipv4 vrf VPN1
redistribute static // 重分发VRF内的静态路由到BGP
-
检查 MPLS LDP 邻居:
在 PE1/P1/PE2 上执行 show mpls ldp neighbor
,确认 LDP 会话已建立。
-
检查 VRF 路由表:
在 PE1 上执行 show ip route vrf VPN1
,应能看到 CE1 侧的路由(192.168.1.0/24)和从 PE2 学习到的 CE2 侧路由(192.168.2.0/24)。
-
检查 BGP VPNv4 路由:
在 PE1 上执行 show ip bgp vpnv4 all
,应能看到 PE2 发布的 VPN 路由(带 RT 100:1)。
-
测试连通性:
在 CE1 上 ping CE2 侧的 192.168.2.1,若通通则配置成功。
MPLS VPN 的核心是通过 VRF 隔离路由、BGP VPNv4 传递跨 PE 路由、MPLS 标签交换数据。关键配置需注意:VRF 的 RD/RT 需两端一致,PE 间 BGP 需传递扩展团体属性,公网接口需启用 MPLS。