MPLS VPN实验

一、实验需求

1、拓扑图

2、实验需求

  1. 搭建 MPLS VPN 网络:利用图中的路由器设备,构建一个基于 MPLS(多协议标签交换)的 VPN(虚拟专用网络)骨干网络,实现不同客户站点之间的通信隔离与安全互联。
  2. 客户站点互联:使客户 A 的站点 1 和站点 2 能够通过 MPLS VPN 骨干网络进行通信,同时客户 B 的站点 1 和站点 2 也能通过该骨干网络通信,并且不同客户的站点之间不能直接通信。
  3. 路由协议配置:在骨干网络和客户站点边界配置合适的路由协议(如 BGP),确保路由信息的正确传递和标签交换路径(LSP)的建立。
  4. IP 地址规划与应用:按照图中给定的 IP 地址进行配置,保证网络中各设备接口 IP 地址的正确设置,实现网络层的连通性。

二、需求分析

  1. 网络拓扑结构:图中展示了一个典型的 MPLS VPN 网络拓扑,包含客户边缘路由器(CE)、提供商边缘路由器(PE)和提供商路由器(P)。需要理解各设备在网络中的角色和功能,以及它们之间的连接关系。
  2. IP 地址与子网划分:不同设备接口的 IP 地址和子网掩码已给定,需要正确配置以实现网络层可达。同时,要注意不同子网之间的路由关系。
  3. 路由协议选择:使用 BGP(边界网关协议)在 MPLS VPN 骨干网络中传递路由信息,BGP 可以处理不同自治系统(AS)之间的路由,满足实验中客户站点与骨干网络以及不同客户站点间的路由需求。
  4. MPLS 标签交换:MPLS 通过为数据包分配标签,实现快速的标签交换转发。需要在骨干网络设备上配置 MPLS 相关功能,建立 LSP,确保数据包能够沿着正确路径转发。

三、实验步骤

1、基础配置IP

bash 复制代码
CE1

system - view
interface GigabitEthernet0/0/0
ip address 172.16.0.2 30

CE2

system - view
interface GigabitEthernet0/0/0
ip address 172.16.0.6 30

CE3

system - view
interface GigabitEthernet0/0/0
ip address 192.168.0.2 30

CE4

system - view
interface GigabitEthernet0/0/0
ip address 192.168.0.6 30

PE1

system - view
interface LoopBack0
ip address 1.1.1.1 32

interface GigabitEthernet0/0/0
ip address 172.16.0.1 30

interface GigabitEthernet0/0/1
ip address 10.1.12.1 30

interface GigabitEthernet0/0/2
ip address 192.168.0.1 30

PE2

system - view
interface LoopBack0
ip address 4.4.4.4 32

interface GigabitEthernet0/0/0
ip address 172.16.0.5 30

interface GigabitEthernet0/0/1
ip address 10.1.34.2 30

interface GigabitEthernet0/0/2
ip address 192.168.0.5 30

P1

system - view
interface LoopBack0
ip address 2.2.2.2 32

interface GigabitEthernet0/0/0
ip address 10.1.12.2 30

interface GigabitEthernet0/0/1
ip address 10.1.23.1 30

P2

system - view
interface LoopBack0
ip address 3.3.3.3 32

interface GigabitEthernet0/0/0
ip address 10.1.23.2 30

interface GigabitEthernet0/0/1
ip address 10.1.34.1 30

2、IGP配置

(1)选择IGP协议

  • 这里以 OSPF 为例。在 P1、P2、PE1、PE2 设备上配置 OSPF。

    bash 复制代码
    PE1
    [PE1]ospf 100 router-id 1.1.1.1
    [PE1-ospf-100]a 0 
    [PE1-ospf-100-area-0.0.0.0]network  1.1.1.1 0.0.0.0
    [PE1-ospf-100-area-0.0.0.0]network 10.1.12.1 0.0.0.0
    
    PE2
    [PE2]ospf 100 router-id 4.4.4.4 
    [PE2-ospf-100]a 0
    [PE2-ospf-100-area-0.0.0.0]network 4.4.4.4 0.0.0.0
    [PE2-ospf-100-area-0.0.0.0]net 10.1.34.4 0.0.0.0
    
    P1
    [P1]ospf 100 router-id 2.2.2.2
    [P1-ospf-100]a 0	
    [P1-ospf-100-area-0.0.0.0]network 10.1.12.2 0.0.0.0
    [P1-ospf-100-area-0.0.0.0]network 10.1.23.2 0.0.0.0
    [P1-ospf-100-area-0.0.0.0]net 2.2.2.2 0.0.0.0
    
    P2
    [P2]ospf 100 router-id 3.3.3.3 
    [P2-ospf-100]a 0
    [P2-ospf-100-area-0.0.0.0]network 3.3.3.3 0.0.0.0
    [P2-ospf-100-area-0.0.0.0]network 10.1.23.3 0.0.0.0
    [P2-ospf-100-area-0.0.0.0]network 10.1.34.3 0.0.0.0

    3、MPLS 及 MPLS LDP 配置

(1)MPLS 基本配置

在 PE1、PE2、P1、P2 设备上使能 MPLS 能力

(2)MPLS LDP 配置

完成骨干网络设备间 MPLS LDP 邻居建立和标签交换路径(LSP)的创建。

bash 复制代码
PE1
[PE1]mpls lsr-id 1.1.1.1
[PE1]mpls
[PE1]mpls ldp
[PE1]interface g0/0/1
[PE1-GigabitEthernet0/0/1]mpls
[PE1-GigabitEthernet0/0/1]mpls ldp

PE2
[PE2]mpls lsr-id 4.4.4.4
[PE2] mpls
[PE2-mpls] mpls ldp
[PE2-GigabitEthernet0/0/0] mpls
[PE2-GigabitEthernet0/0/0] mpls ldp

P1
[P1]MPLS lsr-id 2.2.2.2
[P1] mpls
[P1-mpls] mpls ldp
[P1-GigabitEthernet0/0/0] mpls
[P1-GigabitEthernet0/0/0] mpls ldp
[P1-GigabitEthernet0/0/1] mpls
[P1-GigabitEthernet0/0/1] mpls ldp

P2
[P2]mpls lsr-id 3.3.3.3 
[P2] mpls
[P2-mpls] mpls ldp
[P2-GigabitEthernet0/0/0] mpls
[P2-GigabitEthernet0/0/0] mpls ldp
[P2-GigabitEthernet0/0/1] mpls
[P2-GigabitEthernet0/0/1] mpls ldp

4、BGP配置

(1)EBGP 配置(CE 与 PE 之间)

在 CE1 - CE4 上配置与对应 PE 的 EBGP 邻居关系。

CE1 、CE3、PE1

bash 复制代码
[CE1]bgp 64512
[CE1-bgp]router-id 172.16.0.2
[CE1-bgp]peer 172.16.0.1 as-number 2345
[CE1-bgp]network 172.16.10.0 2

[CE3]BGP 64513
[CE3-bgp]router-id 192.168.0.2 
[CE3-bgp]peer 192.168.0.1 as-number 2345
[CE3-bgp]net 192.168.1.0 24

进A
[PE1]bgp 2345
[PE1-bgp]ipv4-family vpn-instance A 
[PE1-bgp-A]router-id 172.16.0.1
[PE1-bgp-A]PEER 172.16.0.2 as-number 64512
进B
[PE1-bgp]ipv4-family vpn-instance B		
[PE1-bgp-B]router-id 192.168.0.1
[PE1-bgp-B]peer 192.168.0.2 as-number 64513

CE2、CE4、PE2

bash 复制代码
[CE2]ospf 1 router-id 172.16.0.6 
[CE2-ospf-1]a 0
[CE2-ospf-1-area-0.0.0.0]network 172.16.0.6 0.0.0.0
[CE2-ospf-1-area-0.0.0.0]net 172.16.2.0 0.0.0.255

[CE4]ospf 2 router-id 192.168.0.6 
[CE4-ospf-2]a 0
[CE4-ospf-2-area-0.0.0.0]network 192.168.2.0 0.0.0.255
[CE4-ospf-2-area-0.0.0.0]network 192.168.0.6 0.0.0.0

A
[PE2]ospf 1 vpn-instance A
[PE2-ospf-1]a 0	
[PE2-ospf-1-area-0.0.0.0]network 172.16.0.5 0.0.0.0

B	
[PE2]ospf 2 vpn-instance B
[PE2-ospf-2]a 0
[PE2-ospf-2-area-0.0.0.0]network 192.168.0.5 0.0.0.0

(2)IBGP 配置(PE 与 PE 之间)

PE1、PE2 上配置 IBGP 邻居关系

bash 复制代码
PE1
[PE1]bgp 2345
[PE1-bgp]router-id 1.1.1.1
[PE1-bgp]peer 4.4.4.4 as-number 2345	
[PE1-bgp]peer 4.4.4.4 connect-interface LoopBack 0	
[PE1-bgp]undo default ipv4-unicast 
[PE1-bgp]ipv4-family vpnv4 unicast 
[PE1-bgp-af-vpnv4]peer 4.4.4.4 enable 

PE2
[PE2]bgp 2345
[PE2-bgp]router-id 4.4.4.4
[PE2-bgp]undo default ipv4-unicast 
[PE2-bgp]peer 1.1.1.1 as-number 2345
[PE2-bgp]peer 1.1.1.1 connect-interface LoopBack 0
[PE2-bgp]ipv4-family vpnv4 unicast 
[PE2-bgp-af-vpnv4]peer 1.1.1.1 enable 


 [PE2]bgp 2345
 [PE2-bgp]ipv4-family vpn-instance A
 [PE2-bgp-A]import-route ospf 1
 [PE2-bgp]ipv4-family vpn-instance B
 [PE2-bgp-B]import-route ospf 2
 
 [PE2]ospf 1
 [PE2-ospf-1]import-route bgp
 [PE2]ospf 2
 [PE2-ospf-2]import-route bgp

5、MPLS VPN 相关 BGP 配置

在 PE1、PE2 上创建 VPN

将接口绑定到 VPN

在 PE1、PE2 的 BGP 视图下,使能 VPNv4 地址族,并与对端 PE 建立邻居关系

bash 复制代码
PE1
A
[PE1]ip vpn-instance A	
[PE1-vpn-instance-A]route-distinguisher 64512:100	
[PE1-vpn-instance-A-af-ipv4]vpn-target 64512:1 export-extcommunity 
[PE1-vpn-instance-A-af-ipv4]vpn-target 64512:2 import-extcommunity 
 
B
[PE1]ip vpn-instance B	
[PE1-vpn-instance-B]route-distinguisher 64513:100
[PE1-vpn-instance-B-af-ipv4]vpn-target 64513:1 export-extcommunity 	
[PE1-vpn-instance-B-af-ipv4]vpn-target 64513:2 import-extcommunity 
 
[PE1-GigabitEthernet0/0/0]ip binding vpn-instance A
[PE1-GigabitEthernet0/0/0] ip address 172.16.0.1 255.255.255.252
[PE1-GigabitEthernet0/0/2]ip binding vpn-instance B
[PE1-GigabitEthernet0/0/2] ip address 192.168.0.2 255.255.255.252 
bash 复制代码
PE2
A
[PE2]ip vpn-instance A
[PE2-vpn-instance-A]route-distinguisher 64512:200	
[PE2-vpn-instance-A-af-ipv4]vpn-target 64512:2 e
[PE2-vpn-instance-A-af-ipv4]vpn-target 64512:1 import-extcommunity 

B
[PE2]ip vpn-instance B
[PE2-vpn-instance-B]route-distinguisher 64513:200
[PE2-vpn-instance-B-af-ipv4]vpn-target 64513:2 export-extcommunity 
[PE2-vpn-instance-B-af-ipv4]vpn-target 64513:1 import-extcommunity 
 
[PE2-GigabitEthernet0/0/1]ip binding vpn-instance A
[PE2-GigabitEthernet0/0/1] ip address 172.16.0.5 255.255.255.252	
[PE2-GigabitEthernet0/0/2]ip binding vpn-instance B
[PE2-GigabitEthernet0/0/2]ip address 192.168.0.6 30

四、测试与验证

1、连通性测试

  • 在 CE1 上使用 ping 命令测试到 CE2 的连通性。
  • 同理,测试 CE3 到 CE4 以及跨 VPN 站点间的连通性。

2、路由表查看

  • 在各设备上使用命令查看路由表,如在华为设备上使用 display ip routing - table 命令,检查是否学习到正确的路由条目。

3、 MPLS 标签交换路径验证

在PE1、PE2、P1、P2 上使用命令查看 MPLS LDP 邻居状态和标签交换路径。

相关推荐
JaguarJack1 天前
PHP 的异步编程 该怎么选择
后端·php·服务端
BingoGo1 天前
PHP 的异步编程 该怎么选择
后端·php
JaguarJack2 天前
为什么 PHP 闭包要加 static?
后端·php·服务端
ServBay3 天前
垃圾堆里编码?真的不要怪 PHP 不行
后端·php
用户962377954483 天前
CTF 伪协议
php
BingoGo5 天前
当你的 PHP 应用的 API 没有限流时会发生什么?
后端·php
JaguarJack5 天前
当你的 PHP 应用的 API 没有限流时会发生什么?
后端·php·服务端
BingoGo6 天前
OpenSwoole 26.2.0 发布:支持 PHP 8.5、io_uring 后端及协程调试改进
后端·php
JaguarJack6 天前
OpenSwoole 26.2.0 发布:支持 PHP 8.5、io_uring 后端及协程调试改进
后端·php·服务端
JaguarJack7 天前
推荐 PHP 属性(Attributes) 简洁读取 API 扩展包
后端·php·服务端