第165篇:PE-CE 路由协议选择:静态/OSPF/BGP
关键词:PE-CE路由、静态路由、OSPFv3、eBGP、iBGP、路由引入、多实例、Route-Map
一、引言
在 MPLS L3VPN 架构中,PE(Provider Edge)与 CE(Customer Edge)之间的路由协议选择直接影响 VPN 网络的规模、灵活性和运维复杂度。PE-CE 之间可以使用静态路由、OSPF、IS-IS 或 BGP 等协议来交换客户路由。每种协议都有其适用场景和限制,正确的选择需要在客户需求、网络规模和运维成本之间取得平衡。
二、核心概念
2.1 PE-CE 路由协议对比
| 协议 | 适用场景 | 优点 | 缺点 |
|---|---|---|---|
| 静态路由 | 小规模站点(<10个路由) | 配置简单,资源占用低 | 不可扩展,无自动收敛 |
| OSPF | 中小规模(<1000条路由) | 收敛快,支持区域划分 | PE需运行多实例OSPF |
| IS-IS | 大规模 | 收敛快,扩展性好 | 配置复杂,客户需支持IS-IS |
| eBGP | 大规模,多AS客户 | 策略控制灵活,扩展性最佳 | 配置复杂,需要AS号规划 |
| iBGP | 单AS客户 | 简单,无AS号问题 | 需要全互联或RR |
2.2 PE-CE 路由流程

2.3 VRF 内多实例路由
当 PE 连接多个 CE 时,需要在同一 VRF 内运行多个路由协议实例:
| 场景 | VRF 内协议 | 配置方式 |
|---|---|---|
| 单 CE | 单一协议 | 直接在 VRF 内使能协议 |
| 多 CE(同协议) | 多实例 | OSPFv3 多进程或 BGP 多实例 |
| 多 CE(不同协议) | 混合协议 | 各协议独立实例 + import-route |
三、技术细节
3.1 静态路由 PE-CE 方案
静态路由是最简单的 PE-CE 路由方案:
CE 侧配置:
[CE] ip route-static 0.0.0.0 0.0.0.0 10.1.1.1
# 默认路由指向 PE
PE 侧配置:
[PE] vpn-instance VPN-A
[PE-vpn-instance-VPN-A] ip route-static 10.1.2.0 255.255.255.0 10.1.2.1
# 静态路由指向 CE,下一跳为CE接口IP
路由注入:PE 通过 import-route static 将 VRF 内的静态路由注入 MP-BGP。
3.2 OSPF PE-CE 方案
OSPF 在 VRF 内的运行方式有单实例和多实例两种:
| 模式 | 说明 | 适用场景 |
|---|---|---|
| 单实例 | VRF 内运行一个 OSPF 进程,所有 CE 共享 | 单 CE 或多 CE 信任场景 |
| 多实例(OSPFv3) | VRF 内运行多个 OSPF 进程,各 CE 隔离 | 多 CE 隔离场景 |
OSPFv3 多实例配置:
[PE] ospfv3 1 vpn-instance VPN-A
[PE-ospfv3-1] area 0.0.0.0
[PE-ospfv3-1-area-0.0.0.0] network 10.1.1.0 0.0.0.255
[PE] ospfv3 2 vpn-instance VPN-A
[PE-ospfv3-2] area 0.0.0.0
[PE-ospfv3-2-area-0.0.0.0] network 10.1.2.0 0.0.0.255
3.3 BGP PE-CE 方案
BGP 是大规模 L3VPN 的首选 PE-CE 协议:
| 模式 | AS号分配 | 适用场景 |
|---|---|---|
| eBGP | PE 与 CE 使用不同 AS 号 | 客户自有 AS 号,多 AS 场景 |
| iBGP | PE 与 CE 使用相同 AS 号 | 单 AS 客户,简化配置 |
| 公共 AS(Public AS) | CE 使用公共 AS 号 | 客户无自有 AS 号 |
eBGP 特殊处理: - eBGP 默认不接收同一 AS 的路由,L3VPN 中 PE 与 CE 的 AS 号不同,无需特殊处理 - 当 PE 通过 eBGP 从 CE 接收路由时,路由的 AS_PATH 属性包含 CE 的 AS 号 - 通过 MP-BGP 传递时,AS_PATH 被保留并传递到对端 PE
3.4 路由引入与过滤
| 方向 | 配置 | 作用 |
|---|---|---|
| CE→PE | import-route | 将 CE 路由引入 VRF |
| PE→MP-BGP | import-route vpn-instance | 将 VRF 路由注入 VPNv4 |
| MP-BGP→PE | RT Import | 匹配 RT 后导入 VRF |
| PE→CE | 路由协议通告 | 将 VRF 路由通告给 CE |
路由过滤:
# 限制CE发布的路由前缀
[PE] route-policy CE-FILTER permit node 10
[PE-route-policy-CE-FILTER-10] if-match ip-prefix CE-NETWORKS
[PE] ip ip-prefix CE-NETWORKS index 10 permit 10.1.1.0 24
[PE] ip ip-prefix CE-NETWORKS index 20 deny 0.0.0.0 0 less-equal 32
四、实战配置/案例分析
4.1 多协议 PE-CE 混合配置
# ========== PE配置: VRF内多CE多协议 ==========
[PE] vpn-instance VPN-A
[PE-vpn-instance-VPN-A] rd 10.1.1.1:100
[PE-vpn-instance-VPN-A] route-target export 100:100
[PE-vpn-instance-VPN-A] route-target import 100:100
# CE1: 静态路由
[PE] interface GE 1/0/0
[PE-GigabitEthernet1/0/0] ip binding vpn-instance VPN-A
[PE-GigabitEthernet1/0/0] ip address 10.1.1.1 24
[PE] vpn-instance VPN-A
[PE-vpn-instance-VPN-A] ip route-static 10.1.1.0 255.255.255.0 10.1.1.2
[PE] bgp 65001
[PE-bgp-65001-vpnv4] import-route static vpn-instance VPN-A
# CE2: OSPF
[PE] ospfv3 1 vpn-instance VPN-A
[PE-ospfv3-1] router-id 10.1.1.1
[PE-ospfv3-1] area 0.0.0.0
[PE-ospfv3-1-area-0.0.0.0] network 10.1.2.0 0.0.0.255
[PE] interface GE 1/0/1
[PE-GigabitEthernet1/0/1] ip binding vpn-instance VPN-A
[PE-GigabitEthernet1/0/1] ip address 10.1.2.1 24
[PE-GigabitEthernet1/0/1] ospfv3 1 area 0.0.0.0
[PE-bgp-65001-vpnv4] import-route ospfv3 1 vpn-instance VPN-A
# CE3: eBGP
[PE] bgp 65001
[PE-bgp-65001] peer 10.1.3.2 as-number 65100
[PE-bgp-65001] peer 10.1.3.2 connect-interface GE 1/0/2
[PE-bgp-65001] import-route direct vpn-instance VPN-A
[PE-bgp-65001] import-route ospfv3 1 vpn-instance VPN-A
[PE] interface GE 1/0/2
[PE-GigabitEthernet1/0/2] ip binding vpn-instance VPN-A
[PE-GigabitEthernet1/0/2] ip address 10.1.3.1 24
4.2 故障排查:PE-CE 路由未学习
故障场景:PE 的 VRF 路由表中看不到 CE 的路由。
# Step 1: 检查 PE-CE 路由协议状态
<PE> display ospfv3 1 vpn-instance VPN-A peer
# OSPF邻居状态: Full (正常)
<PE> display bgp peer 10.1.3.2
# BGP邻居状态: Established (正常)
# Step 2: 检查 VRF 路由表
<PE> display ip routing-table vpn-instance VPN-A
# 缺少CE3的BGP路由
# Step 3: 检查 BGP 路由
<PE> display bgp routing-table peer 10.1.3.2
# BGP有从CE3学习的路由, 但未进入VRF
# Step 4: 根因分析
# CE3通过eBGP发布的路由在PE的BGP表中, 但未注入VRF
# 需要确认import-route配置
# Step 5: 解决方案
[PE-bgp-65001] import-route bgp vpn-instance VPN-A
# 将BGP路由注入VRF
# Step 6: 验证
<PE> display ip routing-table vpn-instance VPN-A
# VRF中已出现CE3的路由, Protocol=BGP
4.3 CE 侧 OSPF 配置
# CE2 侧 OSPF 配置
[CE2] ospfv3 1
[CE2-ospfv3-1] router-id 10.1.2.2
[CE2-ospfv3-1] area 0.0.0.0
[CE2-ospfv3-1-area-0.0.0.0] network 10.1.2.0 0.0.0.255
[CE2-ospfv3-1-area-0.0.0.0] network 192.168.1.0 0.0.0.255
[CE2] interface GE 0/0/0
[CE2-GigabitEthernet0/0/0] ip address 10.1.2.2 24
[CE2-GigabitEthernet0/0/0] ospfv3 1 area 0.0.0.0
四(续)、高级主题
4.4 PE-CE 路由协议选型决策矩阵
| 网络规模 | CE数量 | 路由条数 | 推荐协议 | 理由 |
|---|---|---|---|---|
| 微型 | 1-2 | <10 | 静态路由 | 配置简单,无需协议开销 |
| 小型 | 3-10 | 10-100 | OSPFv3 | 收敛快,PE支持多实例 |
| 中型 | 10-50 | 100-1000 | OSPFv3 / eBGP | 灵活扩展,策略控制 |
| 大型 | 50-200 | 1000-10000 | eBGP | 大规模扩展,策略丰富 |
| 超大型 | 200+ | 10000+ | eBGP + RR | 层次化设计,收敛可控 |
4.5 PE-CE 路由过滤最佳实践
# ========== PE侧: 严格限制CE发布的路由 ==========
# 1. 定义IP前缀列表
[PE] ip ip-prefix CE-A-NETWORKS index 10 permit 10.1.1.0 24
[PE] ip ip-prefix CE-A-NETWORKS index 20 permit 192.168.1.0 24
[PE] ip ip-prefix CE-A-NETWORKS index 30 deny 0.0.0.0 0 less-equal 32
# 2. 定义Route-Policy
[PE] route-policy CE-A-IMPORT permit node 10
[PE-route-policy-CE-A-IMPORT-10] if-match ip-prefix CE-A-NETWORKS
[PE] route-policy CE-A-IMPORT deny node 9999
[PE-route-policy-CE-A-IMPORT-9999] # 拒绝所有不匹配的路由
# 3. 应用到OSPF
[PE] ospfv3 1 vpn-instance VPN-A
[PE-ospfv3-1] import-route isis 1 route-policy CE-A-IMPORT
# 4. 应用到BGP(eBGP场景)
[PE-bgp-65001] peer 10.1.3.2 route-policy CE-A-IMPORT import
# 5. 限制默认路由注入(防止CE发布默认路由到PE)
[PE-ospfv3-1] default-route-advertise route-policy NO-DEFAULT
[PE] route-policy NO-DEFAULT deny node 10
[PE-route-policy-NO-DEFAULT-10] if-match ip-prefix DEFAULT-ONLY
[PE] ip ip-prefix DEFAULT-ONLY index 10 permit 0.0.0.0 0 greater-equal 0 less-equal 0
4.6 PE-CE 路由协议对比深度分析
| 维度 | 静态 | OSPFv3 | IS-IS | eBGP | iBGP |
|---|---|---|---|---|---|
| 收敛速度 | 人工干预 | 1-3s | 1-3s | 3-30s | 3-30s |
| 扩展性 | 差 | 中 | 好 | 优 | 中 |
| 策略控制 | 无 | 中 | 中 | 优 | 中 |
| 配置复杂度 | 低 | 中 | 高 | 高 | 中 |
| CPU 占用 | 极低 | 中 | 中 | 中 | 中 |
| 资源占用 | 极低 | 中 | 中 | 中 | 中 |
| 故障排查 | 简单 | 中等 | 复杂 | 复杂 | 中等 |
| AS号需求 | 无 | 无 | 无 | 需要 | 共享 |
4.7 PE-CE 路由冲突处理
当 PE 通过多个 CE 学习到相同路由时的处理机制:
| 场景 | 冲突路由来源 | 处理方式 |
|---|---|---|
| 同一协议多实例 | OSPF 进程1 vs 进程2 | 按协议优先级和Metric选择 |
| 不同协议 | 静态 vs OSPF vs BGP | 按协议优先级(Preference) |
| BGP 多路径 | 同一前缀多个Next-Hop | BGP选路规则(LocPrf/AS_PATH等) |
协议优先级(Preference):
| 协议 | 优先级值(华为) | 值越小越优先 |
|---|---|---|
| Direct | 0 | ✅ |
| OSPF(Internal) | 10 | |
| IS-IS | 15 | |
| Static | 60 | |
| BGP | 255 | ❌ 最后 |
五、总结
| 项目 | 要点 |
|---|---|
| 静态路由 | 简单场景首选,PE需手工配置每段CE路由 |
| OSPF | 中小规模场景,VRF内支持多实例隔离 |
| BGP | 大规模场景首选,策略控制灵活,扩展性最佳 |
| 混合协议 | 同一VRF可运行多协议,通过import-route统一注入MP-BGP |
| 路由过滤 | 严格控制CE发布的路由范围,防止路由泄露 |
思考
- PE-CE 使用 eBGP 时,如果 PE 和 CE 的 AS 号相同会发生什么?如何避免 AS 环路检测问题?
- 在 VRF 内同时运行 OSPF 和 BGP 时,如果两条路由指向同一目的网络,PE 如何选择最优路由?
- PE-CE 使用 OSPF 时,CE 是否可以配置默认路由(LSA Type 5)注入 PE?这样做有什么风险?
下篇预告:第166篇:L3VPN 数据转发过程详解