Hub-Spoke MPLS完整配置案例(华为设备)拓扑类似这样 
一、组网拓扑
| 设备角色 | 设备型号 | LoopBack IP | 物理接口互联 | AS 号 | VRF 配置 |
|---|---|---|---|---|---|
| Hub-CE(AR1) | AR2220 | 1.1.1.1/32 | GE0/0/0 ↔ Hub-PE(AR2) GE0/0/0 | 65000 | 无(公网 + 私网直连) |
| Hub-PE(AR2) | AR3260 | 2.2.2.2/32 | GE0/0/0 ↔ AR1 GE0/0/0GE0/0/1 ↔ P(AR3) GE0/0/0 | 100 | VPNA_IN(收 Spoke 路由)VPNA_OUT(发 Spoke 路由) |
| P(AR3) | AR3260 | 3.3.3.3/32 | GE0/0/0 ↔ AR2 GE0/0/1GE0/0/1 ↔ Spoke-PE(AR4) GE0/0/0 | 100 | 无(纯公网转发) |
| Spoke-PE(AR4) | AR3260 | 4.4.4.4/32 | GE0/0/0 ↔ AR3 GE0/0/1GE0/0/1 ↔ Spoke-CE(AR5) GE0/0/0 | 100 | VPN-SPOKE(对接 Spoke-CE) |
| Spoke-CE(AR5) | AR2220 | 5.5.5.5/32 | GE0/0/0 ↔ AR4 GE0/0/1 | 65001 | 无(私网直连) |
核心需求:
- Spoke-CE(AR5)只能通过 Hub-CE(AR1)与其他 Spoke 互通;
- 所有跨 Spoke 流量必须经过 Hub 转发(集中管控);
- 用 双 VRF(VPNA_IN/VPNA_OUT) 绕开 BGP 水平分割。
二、基础配置(所有设备)
1. 配置 LoopBack 接口(用于 BGP/OSPF 邻居建立)
以 AR2(Hub-PE) 为例,其他设备类似:
plaintext
# 配置LoopBack0
interface LoopBack0
ip address 2.2.2.2 255.255.255.255
# 关闭接口防攻击(可选)
undo ip address check wildcard
2. 配置物理接口 IP
| 设备 | 接口 | IP 配置 |
|---|---|---|
| AR1 | GE0/0/0 | ip address 10.1.12.1 255.255.255.0 |
| AR2 | GE0/0/0 | ip address 10.1.12.2 255.255.255.0``ip binding vpn-instance VPNA_IN |
| AR2 | GE0/0/1 | ip address 10.2.23.2 255.255.255.0 |
| AR3 | GE0/0/0 | ip address 10.2.23.3 255.255.255.0 |
| AR3 | GE0/0/1 | ip address 10.3.34.3 255.255.255.0 |
| AR4 | GE0/0/0 | ip address 10.3.34.4 255.255.255.0 |
| AR4 | GE0/0/1 | ip address 10.4.45.4 255.255.255.0``ip binding vpn-instance VPN-SPOKE |
| AR5 | GE0/0/0 | ip address 10.4.45.5 255.255.255.0 |
三、公网配置(OSPF + LDP)
作用:保证 PE/P 之间 LoopBack 互通,为 BGP 邻居建立铺路,同时建立 LDP 隧道。
1. 配置 OSPF(AR2/AR3/AR4,AS 100 内)
以 AR2(Hub-PE) 为例:
plaintext
ospf 1 router-id 2.2.2.2
area 0
network 2.2.2.2 0.0.0.0 # 宣告LoopBack0
network 10.2.23.0 0.0.0.255 # 宣告公网接口
AR3(P) 配置:
plaintext
ospf 1 router-id 3.3.3.3
area 0
network 3.3.3.3 0.0.0.0
network 10.2.23.0 0.0.0.255
network 10.3.34.0 0.0.0.255
AR4(Spoke-PE) 配置:
plaintext
ospf 1 router-id 4.4.4.4
area 0
network 4.4.4.4 0.0.0.0
network 10.3.34.0 0.0.0.255
2. 配置 LDP(建立公网隧道)
以 AR2 为例,AR3/AR4 配置相同:
plaintext
mpls lsr-id 2.2.2.2 # LSR ID 与 LoopBack 一致
mpls
ldp
interface GigabitEthernet 0/0/1 # 公网接口使能LDP
四、Hub 侧关键配置(双 VRF + BGP)
1. Hub-PE(AR2)配置双 VRF
plaintext
# 配置 VPNA_IN(接收 Spoke 路由)
ip vpn-instance VPNA_IN
route-distinguisher 100:1 # RD 唯一标识
vpn-target 100:1 import-extcommunity # 只接收 RT=100:1 的路由
vpn-target 100:1 export-extcommunity # 导出路由带 RT=100:1
# 配置 VPNA_OUT(转发 Spoke 路由)
ip vpn-instance VPNA_OUT
route-distinguisher 100:2
vpn-target 100:1 import-extcommunity
vpn-target 100:1 export-extcommunity
# 配置 AR2 与 AR1(Hub-CE)的 BGP 邻居(双 VRF 都要对接 AR1)
bgp 100
# 公网 BGP(用于传递 VPNv4 路由)
ipv4-family vpnv4
policy vpn-target
peer 3.3.3.3 enable # 与 P 设备的 BGP 邻居
peer 4.4.4.4 enable # 与 Spoke-PE 的 BGP 邻居
# VPNA_IN 的 BGP(对接 AR1)
ipv4-family vpn-instance VPNA_IN
peer 10.1.12.1 as-number 65000 # AR1 的 AS 号
peer 10.1.12.1 allow-as-loop # 同 AS 防环
import-route direct # 导入直连路由到 BGP
# VPNA_OUT 的 BGP(对接 AR1)
ipv4-family vpn-instance VPNA_OUT
peer 10.1.12.1 as-number 65000
peer 10.1.12.1 allow-as-loop
import-route direct
2. Hub-CE(AR1)配置 BGP(连接双 VRF)
plaintext
bgp 65000
router-id 1.1.1.1
# 与 AR2 的 VPNA_IN 建立邻居
ipv4-family unicast
peer 10.1.12.2 as-number 100
peer 10.1.12.2 allow-as-loop
network 192.168.1.0 255.255.255.0 # 宣告 Hub 私网路由
五、Spoke 侧配置(VPN-SPOKE + BGP)
1. Spoke-PE(AR4)配置 VRF
plaintext
ip vpn-instance VPN-SPOKE
route-distinguisher 100:10
vpn-target 100:1 import-extcommunity # 匹配 Hub 的 RT
vpn-target 100:1 export-extcommunity
2. Spoke-PE(AR4)配置 BGP
plaintext
bgp 100
ipv4-family vpnv4
policy vpn-target
peer 2.2.2.2 enable # 与 Hub-PE 的 BGP 邻居
peer 3.3.3.3 enable
# VPN-SPOKE 的 BGP(对接 Spoke-CE)
ipv4-family vpn-instance VPN-SPOKE
peer 10.4.45.5 as-number 65001 # Spoke-CE 的 AS 号
import-route direct
3. Spoke-CE(AR5)配置 BGP
plaintext
bgp 65001
router-id 5.5.5.5
ipv4-family unicast
peer 10.4.45.4 as-number 100
network 192.168.2.0 255.255.255.0 # 宣告 Spoke 私网路由
六、验证配置
-
验证 OSPF 邻居
plaintext
display ospf peer brief # 所有 PE/P 应显示 Full 状态 -
验证 LDP 会话
plaintext
display mpls ldp session # 会话状态应为 Operational -
验证 BGP 路由
plaintext
# Hub-PE 查看 VPNA_IN 路由 display bgp vpnv4 all routing-table # Spoke-CE 查看是否收到 Hub 路由 display bgp routing-table 192.168.1.0 -
验证互通性
plaintext
# Spoke-CE(AR5) ping Hub-CE(AR1)私网 ping 192.168.1.1 -a 192.168.2.1
七、核心逻辑总结
回程路径(Spoke C→Spoke B) :步骤与上述 1-10反向一致,协议 / 转发逻辑相同。
-
流量路径 :
Spoke-CE(AR5) → Spoke-PE(AR4) → P(AR3) → Hub-PE(AR2) VPNA_IN → Hub-CE(AR1) → Hub-PE(AR2) VPNA_OUT → 其他 Spoke -
双 VRF 作用:VPNA_IN 收 Spoke 路由 → AR1 中转 → VPNA_OUT 发路由,绕开 BGP 水平分割。
-
集中管控:所有跨 Spoke 流量必须经过 AR1,可在 AR1 配置 ACL/QoS 策略。
-
以 Spoke B(172.16.2.0/24)访问 Spoke C(172.16.3.0/24) 为例,路径 + 协议如下:
-
Spoke B→AR6(Spoke-CE)
- 流量:Spoke B 主机发往 172.16.3.1
- 协议:私网 IPv4
-
AR6→AR4(Spoke-PE)
- 流量:AR6 转发流量到 AR4 的 VPNB 接口
- 协议:EBGP(传递私网路由)+ 直连 IPv4
-
AR4→AR3(P)
- 流量:AR4 给私网 IPv4 加两层标签(内层 VPNB 标签 + 外层 LDP 标签)
- 协议:MPLS LDP(公网隧道)
-
AR3→AR2(Hub-PE)
- 流量:AR3 按外层 LDP 标签转发 MPLS 报文
- 协议:MPLS LDP
-
AR2→AR1(Hub-CE)
- 流量:AR2 剥离外层 LDP 标签,将私网流量送入 VPNA_IN,转发到 AR1
- 协议:EBGP(VRF 内传递私网路由)
-
AR1→AR2(Hub-PE)
- 流量:AR1 查路由表,将流量 "调头" 发回 AR2 的 VPNA_OUT
- 协议:直连 IPv4
-
AR2→AR3(P)
- 流量:AR2 给私网 IPv4 重新加两层标签(内层 VPNC 标签 + 外层 LDP 标签)
- 协议:MPLS LDP
-
AR3→AR5(Spoke-PE)
- 流量:AR3 按外层 LDP 标签转发 MPLS 报文
- 协议:MPLS LDP
-
AR5→AR7(Spoke-CE)
- 流量:AR5 剥离标签,转发私网流量到 AR7
- 协议:EBGP(传递私网路由)
-
AR7→Spoke C
- 流量:AR7 转发流量到 Spoke C 主机
- 协议:私网 IPv4