Hub-Spoke mpls配置

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 无(私网直连)

核心需求

  1. Spoke-CE(AR5)只能通过 Hub-CE(AR1)与其他 Spoke 互通;
  2. 所有跨 Spoke 流量必须经过 Hub 转发(集中管控);
  3. 双 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 私网路由

六、验证配置
  1. 验证 OSPF 邻居

    plaintext

    复制代码
    display ospf peer brief  # 所有 PE/P 应显示 Full 状态
  2. 验证 LDP 会话

    plaintext

    复制代码
    display mpls ldp session  # 会话状态应为 Operational
  3. 验证 BGP 路由

    plaintext

    复制代码
    # Hub-PE 查看 VPNA_IN 路由
    display bgp vpnv4 all routing-table
    # Spoke-CE 查看是否收到 Hub 路由
    display bgp routing-table 192.168.1.0
  4. 验证互通性

    plaintext

    复制代码
    # Spoke-CE(AR5) ping Hub-CE(AR1)私网
    ping 192.168.1.1 -a 192.168.2.1

七、核心逻辑总结

回程路径(Spoke C→Spoke B) :步骤与上述 1-10反向一致,协议 / 转发逻辑相同。

  1. 流量路径Spoke-CE(AR5) → Spoke-PE(AR4) → P(AR3) → Hub-PE(AR2) VPNA_IN → Hub-CE(AR1) → Hub-PE(AR2) VPNA_OUT → 其他 Spoke

  2. 双 VRF 作用:VPNA_IN 收 Spoke 路由 → AR1 中转 → VPNA_OUT 发路由,绕开 BGP 水平分割。

  3. 集中管控:所有跨 Spoke 流量必须经过 AR1,可在 AR1 配置 ACL/QoS 策略。

  4. Spoke B(172.16.2.0/24)访问 Spoke C(172.16.3.0/24) 为例,路径 + 协议如下:

  5. Spoke B→AR6(Spoke-CE)

    • 流量:Spoke B 主机发往 172.16.3.1
    • 协议:私网 IPv4
  6. AR6→AR4(Spoke-PE)

    • 流量:AR6 转发流量到 AR4 的 VPNB 接口
    • 协议:EBGP(传递私网路由)+ 直连 IPv4
  7. AR4→AR3(P)

    • 流量:AR4 给私网 IPv4 加两层标签(内层 VPNB 标签 + 外层 LDP 标签)
    • 协议:MPLS LDP(公网隧道)
  8. AR3→AR2(Hub-PE)

    • 流量:AR3 按外层 LDP 标签转发 MPLS 报文
    • 协议:MPLS LDP
  9. AR2→AR1(Hub-CE)

    • 流量:AR2 剥离外层 LDP 标签,将私网流量送入 VPNA_IN,转发到 AR1
    • 协议:EBGP(VRF 内传递私网路由)
  10. AR1→AR2(Hub-PE)

    • 流量:AR1 查路由表,将流量 "调头" 发回 AR2 的 VPNA_OUT
    • 协议:直连 IPv4
  11. AR2→AR3(P)

    • 流量:AR2 给私网 IPv4 重新加两层标签(内层 VPNC 标签 + 外层 LDP 标签)
    • 协议:MPLS LDP
  12. AR3→AR5(Spoke-PE)

    • 流量:AR3 按外层 LDP 标签转发 MPLS 报文
    • 协议:MPLS LDP
  13. AR5→AR7(Spoke-CE)

    • 流量:AR5 剥离标签,转发私网流量到 AR7
    • 协议:EBGP(传递私网路由)
  14. AR7→Spoke C

    • 流量:AR7 转发流量到 Spoke C 主机
    • 协议:私网 IPv4
相关推荐
全栈工程师修炼指南1 小时前
Nginx | HTTPS 加密传输:客户端与Nginx服务端 SSL 双向认证实践
运维·网络·nginx·https·ssl
诸神黄昏EX2 小时前
Android Qualcomm USB 专题系列【总篇:USB HAL架构】
android·linux·网络
TG:@yunlaoda360 云老大2 小时前
如何配置华为云国际站代理商OBS的跨区域复制?
服务器·网络·华为云
while(1){yan}2 小时前
UDP和TCP的核心
java·开发语言·网络·网络协议·tcp/ip·udp
wniuniu_2 小时前
ceph中修改镜像大小
网络·ceph
国科安芯3 小时前
AS32A601型MCU芯片如何进行IAP升级?
网络·单片机·嵌入式硬件·安全·risc-v·安全性测试
Evan芙3 小时前
TCP/IP传输访问数据流如何进出主机原理总结
网络·网络协议·tcp/ip
寰天柚子3 小时前
服务器远程运维实战:高效管理租赁/自有服务器的全流程指南
运维·服务器·网络
咩图3 小时前
使用ngrok完成内网穿透
网络·内网穿透·ngrok