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 邻居状态和标签交换路径。

相关推荐
好奇的菜鸟10 分钟前
Rust 中的宏与函数
开发语言·后端·rust
好奇的菜鸟15 分钟前
Rust 项目文档生成之旅:cargo doc
开发语言·后端·rust
范纹杉想快点毕业1 小时前
Qt实现文本编辑器光标高亮技术
java·开发语言·c++·算法·系统架构
LBJ辉1 小时前
9. CSS 引入方式
开发语言·前端·css
C语言小火车1 小时前
C语言酒店管理系统:完整源码与深度解析
c语言·开发语言
伊成2 小时前
Java面试高频面试题【2025最新版】
java·开发语言·面试
~贝母~2 小时前
猿人学js逆向比赛第一届第九题
开发语言·javascript·爬虫·ecmascript
编程乐趣2 小时前
推荐一个基于C#开发的跨平台构建自动化系统!
开发语言·c#·自动化
好奇的菜鸟3 小时前
如何重新安装 Rust
开发语言·后端·rust
mzhan0173 小时前
Python: file: encode: ‘gbk‘ codec can‘t encode character ‘\xe5‘ in position
开发语言·python