问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

MPLS VPN基础配置详解及标签转发流程

创作时间:
作者:
@小白创作中心

MPLS VPN基础配置详解及标签转发流程

引用
CSDN
1.
https://blog.csdn.net/2301_81166421/article/details/145739452

本文将详细介绍MPLS VPN的基础配置过程以及标签的转发流程。通过实验环境的搭建和详细的配置步骤,帮助读者理解VPN路由信息的发布机制、路由隔离原理以及数据转发过程。

实验环境

默认将接口的IP地址配置好。根据图上描述:

  • R1和R3配置BGP
  • R2和R3配置ISIS
  • R7和R5配置RIP
  • R6和R5配置OSPF

在基本MPLS VPN组网中,VPN路由信息的发布涉及CE和PE,P路由器只维护骨干网的路由,不需要了解任何VPN路由信息。R4什么都不用配置关于VPN的东西。

一、将CE的路由传到PE设备上

因为VPN对于用户是无感知的,所以需要在CE设备上正常的配置IGP协议/BGP。

R1配置

[R1]bgp 100
[R1-bgp]peer 13.1.1.3 as-number 500
[R1-bgp]network 192.168.1.0

R2配置

[R2]isis
[R2-isis-1]is-level level-2
[R2-isis-1]network-entity 49.0001.0000.0000.0002.00

在接口开启ISIS。

R6配置

[R6]ospf 1 router-id 6.6.6.6
[R6-ospf-1]area 0.0.0.0
[R6-ospf-1-area-0.0.0.0]network 56.1.1.6 0.0.0.0
[R6-ospf-1-area-0.0.0.0]network 192.168.2.1 0.0.0.0

R7配置

[R7]rip
[R7-rip-1]version 2
[R7-rip-1]network 57.0.0.0
[R7-rip-1]network 192.168.2.0

R3配置(PE配置)

创建VPN实例(VRF):

[R3]ip vpn-instance VPN1
[R3-vpn-instance-VPN1]route-distinguisher 1:1
[R3-vpn-instance-VPN1]vpn-target 100:1 export-extcommunity
[R3-vpn-instance-VPN1]vpn-target 1:100 import-extcommunity

解释:

  1. ip vpn-instance VPN1
  • 含义:创建名为VPN1的VPN实例,用于隔离不同VPN的路由和转发。
  • 作用:VPN实例是MPLS VPN的核心,每个实例对应一个独立的虚拟路由表,实现不同VPN之间的逻辑隔离。
  1. route-distinguisher 1:1
  • 含义:设置VPN实例的路由标识符(Route Distinguisher, RD)为1:1。
  • 作用:
  • RD用于在MPLS VPN网络中唯一标识VPN实例。不同VPN实例的RD必须不同。
  • 当本地私网路由(IPv4)通过MP-BGP发布为VPNv4路由时,RD会附加在IPv4路由前,形成全局唯一的VPNv4路由(格式:RD:IPv4)。
  1. vpn-target 100:1 export-extcommunity
  • 含义:设置导出VPN Target(Route Target)为100:1。
  • 作用:
  • 导出规则:从本VPN实例发出的路由会携带RT1属性。
  • 对端PE设备需在对应VPN实例中导入RT1,才能接收这些路由。
  • 类比:类似于“贴标签”,本端给发出的路由贴标签100:1,对端需要“认这个标签”才能接收。
  1. vpn-target 1:100 import-extcommunity
  • 含义:设置导入VPN Target(Route Target)为1:100。
  • 作用:
  • 导入规则:只有携带RT:1:100属性的路由,才会被本VPN实例接收。
  • 若对端PE未在导出规则中发送RT:1:100,本端将无法接收其路由。
  • 关键点:导入RT必须与对端PE的导出RT匹配,否则路由无法互通。

检查:

display ip routing-table vpn-instance VPN1

解释含义:

  • RD:解决地址空间重叠,确保不同VPN的相同IP路由在骨干网中唯一。
  • RT:控制路由互通策略,决定哪些VPN实例可以接收或发送路由。
  • 关键点:RD是“身份证”,RT是“通行证”,两者共同实现MPLS VPN的逻辑隔离与灵活互通。

配置R3:

R3配置

[R3]int g0/0/01
[R3-GigabitEthernet0/0/1]ip binding vpn-instance VPN1
Info: All IPv4 related configurations on this interface are removed!
Info: All IPv6 related configurations on this interface are removed!
[R3-GigabitEthernet0/0/1]dis th
interface GigabitEthernet0/0/1
ip binding vpn-instance VPN1
return
[R3-GigabitEthernet0/0/1]ip address 13.1.1.3 24

1. 路由表隔离机制

每个VPN实例拥有独立的路由表和地址空间。当接口绑定到VPN实例时:

  • 原IP地址属于全局路由表:未绑定前,接口的IP地址默认注册在设备的全局路由表中。
  • 绑定后需归属VPN实例路由表:绑定VPN实例后,接口必须从全局路由表切换到该VPN实例的私有路由表,因此原IP地址需要解除全局注册并重新注册到VPN实例的路由表中。

在G0/0/2接口同样配置:

[R3]ip vpn-instance VPN2
[R3-vpn-instance-VPN2]route-distinguisher 2:2
[R3-vpn-instance-VPN2]vpn-target 2:100 export-extcommunity
[R3-vpn-instance-VPN2]vpn-target 100:2 import-extcommunity
interface GigabitEthernet0/0/2
ip binding vpn-instance VPN2
ip address 23.1.1.3 255.255.255.0

由于接口配置了VPN实例所以在和CE设备建立的是VPN实例的邻居关系

1. 路由隔离需求

  • 多租户环境:PE设备需同时服务多个客户(VPN),每个客户可能使用重叠的私有IP地址(如192.168.1.0/24)。
  • 独立路由表:VPN实例为每个客户创建独立的路由表,确保不同客户的路由互不干扰。

示例场景:

  • 客户A(VPN1):CE1连接PE1,使用IP段192.168.1.0/24。
  • 客户B(VPN2):CE2连接同一PE1,同样使用192.168.1.0/24。
  • 绑定VPN实例后:
  • PE1为VPN1和VPN2分别创建路由表,CE1和CE2的路由独立存储。
  • 即使IP地址相同,PE能通过VPN实例区分流量。

邻居的建立

和R1建立BGP的实例邻居:

[R3]bgp 500
[R3-bgp]ipv4-family vpn-instance VPN1
[R3-bgp-VPN1]peer 13.1.1.1 as-number 100

和R2建立ISIS的VPN实例的邻居:

[R3]isis vpn-instance VPN2
[R3-isis-1]is-level level-2
[R3-isis-1]network-entity 49.0001.0000.0000.0003.00
[R3-isis-1]import-route bgp
[R3]bgp 500
[R3-bgp]ipv4-family vpn-instance VPN2
[R3-bgp-VPN2]import-route isis 1

在接口开启ISIS(只在G0/0/2)。

二、将PE1的路由传递到PE2设备上

其中在中间的设备配置底层协议OSPF进行普通的路由传递。

在基本MPLS VPN组网中,VPN路由信息的发布涉及CE和PE,P路由器只维护骨干网的路由,不需要了解任何VPN路由信息。R4什么都不用配置关于VPN的东西。

和R5建立VPNv4的路由邻居关系:

[R3-bgp]bgp 500
[R3-bgp]peer 5.5.5.5 as-number 500
[R3-bgp]peer 5.5.5.5 connect-interface LoopBack1
[R3-bgp]ipv4-family vpnv4
[R3-bgp-af-vpnv4] peer 5.5.5.5 enable

为什么要建立MP-BGP,的VPNv4的路由

1. MP-BGP的扩展能力

MP-BGP通过地址族(Address Family)机制扩展BGP协议,支持多种网络层协议(如VPNv4、IPv6等),并引入以下关键特性:

(1) 支持VPNv4地址族

  • 格式:VPNv4路由 = RD(Route Distinguisher) + IPv4地址(如100:1:10.0.0.0/24)。
  • 作用:
  • 唯一性:通过RD将不同VPN的相同IPv4路由转换为全局唯一的VPNv4路由。
  • 隔离性:PE设备根据VPN实例的RD区分路由归属。

(2) 携带扩展团体属性

  • Route Target(RT):作为BGP的扩展团体属性,控制路由的导入/导出策略。
  • 示例:
  • 企业A的路由携带RT1,企业B的路由携带RT:200:1。
  • PE设备根据RT策略决定是否接收路由。

R5配置:

[R5]bgp 500
[R5-bgp]peer 3.3.3.3 as-number 500
[R5-bgp]peer 3.3.3.3 connect-interface LoopBack1
[R5-bgp]ipv4-family vpnv4
[R5-bgp-af-vpnv4] peer 3.3.3.3 enable

三、将PE2学习到的路由发送给CE设备

先在PE2配置VPN实例:

为什么不配置VPN实例,RE设备不会显示VPN的路由

MP-BGP拒绝接受路由

  • VPNv4路由的生成依赖RD:MP-BGP要求每条VPN路由必须附加RD属性,而RD仅在VPN实例中定义。
  • 未配置VPN实例时:PE无法为路由分配RD,导致MP-BGP拒绝将这些路由转换为VPNv4格式,路由无法跨PE传播。
  1. PE1将VPN-A的路由附加RT1,通过MP-BGP发布给PE2。
  2. PE2检查接收的路由,发现其携带RT1,匹配VPN-B的导入规则,遂将路由存入VPN-B的路由表。
[R5]ip vpn-instance VPN1
[R5-vpn-instance-VPN1]route-distinguisher 1:1
[R5-vpn-instance-VPN1] vpn-target 1:100 export-extcommunity
[R5-vpn-instance-VPN1]r vpn-target 100:1 import-extcommunity

然后再接口绑定VPN实例

ip vpn-instance VPN2
ipv4-family
route-distinguisher 2:2
vpn-target 100:2 export-extcommunity
vpn-target 2:100 import-extcommunity

因为R5和R6配置的是IGP协议:

[R5]ospf 100 router-id 5.5.5.5 vpn-instance VPN1
[R5-ospf-100]import-route bgp
[R5-ospf-100-area-0.0.0.0] area 0.0.0.0
[R5-ospf-100-area-0.0.0.0] network 56.1.1.5 0.0.0.0

R5和R7配置是RIP:

[R5]rip 1 vpn-instance VPN2
[R5-rip-1]version 2
[R5-rip-1]network 57.0.0.0
[R5-rip-1]import-route bgp

R6配置:

[R6]ospf
[R6-ospf-1]ar 0
[R6-ospf-1-area-0.0.0.0]network 56.1.1.6 0.0.0.0
[R6-ospf-1-area-0.0.0.0]network 192.168.2.1 0.0.0.0

R7配置:

[R7]rip
[R7-rip-1]version 2
[R7-rip-1]network 57.0.0.0
[R7-rip-1]network 192.168.2.0

四、解决路由黑洞问题

由于中间的P设备什么都没没有配置任何关于VPN的东西,所以R5收到R3发来的路由先检查下一条是否可达,发现下一跳是不可达的,所以在R5查路由表的时候什么路由都没有。

解决

配置MPLS LDP:

[R3]mpls lsr-id 3.3.3.3
[R3]mpls
[R3]mpls ldp
[R3-GigabitEthernet0/0/0]ip address 34.1.1.3 255.255.255.0
[R3-GigabitEthernet0/0/0]mpls
[R3-GigabitEthernet0/0/0]mpls ldp

R4配置

[R4]mpls lsr-id 4.4.4.4
[R4]mpls
[R4]mpls ldp
[R4-GigabitEthernet0/0/0]ip address 34.1.1.4 255.255.255.0
[R4-GigabitEthernet0/0/0]mpls
[R4-GigabitEthernet0/0/0]mpls ldp
[R4-GigabitEthernet0/0/1] ip address 45.1.1.4 255.255.255.0
[R4-GigabitEthernet0/0/1] mpls
[R4-GigabitEthernet0/0/1] mpls ldp

R5配置:

[R5]mpls lsr-id 5.5.5.5
[R5]mpls
[R5]mpls ldp
[R5-GigabitEthernet0/0/1]ip address 45.1.1.5 255.255.255.0
[R5-GigabitEthernet0/0/1]mpls
[R5-GigabitEthernet0/0/1]mpls ldp

转发过程

R1访问R6

数据从CE1设备发送原始的数据,发送到PE1

PE1收到后先查询转发表

发现目的地址192.168.2.1的Tunbel ID不为零,所以在查询BGP的VPN的路由

将原始路由上压入1027的私网标签,并且下一跳是5.5.5.5

在查询转发表,发现5.5.5.5的Tunnel ID不为0根据隧道转发

在查询MPLS的LSP表

发现下一跳是34.1.1.4并且动作时压入1024的标签这时原始的数据压入的两层标签,一层是BGP下发的标签1027,一层是MPLS下发的1024,数据带着两层标签发送到R4,

R4收到后进行查表

R4查表后发现目的地址是5.5.5.5的路由动作是交换,将原来的标签1024替换成3

3(隐式空标签)次末节弹出。。。当数据标签换成3的时候,在将MPLS的标签弹出,只剩下BGP的路由标签1027,这时数据带着BGP的标签发送到R5

到了R5后进行查表

发现收入的标签是1027动作是剥离,也就是将原来的BGP标签剥离掉,剩下原始的数据。

在将原始的数据发送到CE设备,完成标签的压入,交换,剥离。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号