MPLS VPN原理与配置
MPLS VPN
- 物理专线:独享物理网络带宽
- 优点:安全性高,网络质量取决于网络设备和链路带宽
- 缺点:成本高,链路带宽利用率低
- VPN:虚拟专用网
- 优点:安全性高,链路带宽利用率高,与其他用户在公网中实现逻辑上的隔离
- BGP/MPLS IP VPN:
- 简称MPLS VPN,是目前广泛应用的三层VPN技术,属于VPN技术中的一种
MPLS VPN网络架构
- CE设备:直接与服务商网络连接的用户边界设备
- PE设备:服务商MPLS VPN骨干网络的边界设备,与CE设备相连,主要负责VPN业务接入
- P设备:指服务商MPLS VPN骨干网络中的核心设备,主要负责路由和数据的
MPLS VPN技术架构
- MP-BGP:负责PE与PE之间的私网路由传递
- LDP:负责PE与PE之间建立MPLS隧道,用于私网流量穿越公网
- VRF:负责PE设备上的VPN用户管理
- 静态路由、IGP、BGP:负责CE和PE之间的私网路由信息交换
VRF:虚拟路由转发
- 也称为VPN实例,同样称为小路由器(虚拟路由器)
- 作用:在PE设备上管理不同的VPN用户的私网路由
RD和RT的区别
RD:路由标识符,8B
type(2B) | 管理员字段 | 用户自定义字段 |
0 | 2字节AS号 | 4字节用户自定义 |
1 | 4字节IPv4地址 | 2字节用户自定义 |
2 | 点分4字节AS号 | 2字节用户自定义 |
3 | 整数型4字节 | 2字节用户自定义 |
- type字段不需要配置,管理员字段和用户自定义字段在项目中有严格规范,按照以上一种方式配置,实验环境无要求
作用
- 用来区分在PE间传递来的重叠的私网IPv4路由
- 原因
- 由于在PE设备上将不同的CE传来的同一条IPv4路由引入BGP中传递出去,BGP会当作一跳BGP路由传递出去
- RD(8B)+ipv4路由形成vpnv4路由(12B)
- 入口PE到出口PE之间通过BGP传递VPNv4路由,但是传统的BGP 4只能传递IPv4单播路由,所以入口PE和出口PE之间需要运行MP-BGP
RT:route-target,路由目标,8B
- 书写格式与RD一致
- 是BGP扩展团体属性
- 可以由一个或多个export target和import target组成
作用
- 用于在PE设备上将VPNv4路由导入到正确的VRF中
export target:本地PE设备朝远端PE通过MP-BGP通告vpnv4路由时,携带export target
import target:PE收到其他PE通过MP-BGP通告的vpnv4路由时,检查其export target属性当此属性与PE上某个VPN实例(VRF)的importtarget匹配时,PE就把该路由加入到该VPN实例的路由表中
MPLS VPN路由传递的过程
- 分三部分
- 本地CE到入口PE之间交互IPv4路由信息
- 问题:入口PE如何区分不同站点的重叠路由信息?
- 解决方法
- PE为每个站点单独配置一个VPN实例(VRF,相当于一个小路由器),每个VRF单独维护一章IPv4私网路由表,PE自己还维护一张公网路由表,不同的VRF路由表之间和公网路由表都是逻辑上隔离的,相互独立
- PE设备将每个站点传递过来的路由信息存放在对应的VRF中,最终PE设备上将维护一章公网路由表和多个数量可变的VRF(接入多个VPN用户,就有多少个VRF)
- 入口PE和出接口PE之间交互vpnv4路由信息
- 问题:相同的私网路由如何在公网中传输而不冲突?
- 解决方法
- 给每条IPv4私网路由打上对应VPN实例的RD值,相同的IPv4路由打上不同的RD值,形成不同的VPNv4路由,使用BGP在传递时就可以区分不同站点重叠的私网路由
- 问题:传统的BGPv4无法传递VPNv4路由
- 解决方法
- 在VPN专线中,用MP-BGP协议承载VPNv4路由,PE与PE之间建立MP-IBGP对等体关系,开启通告VPNv4单播路由的能力,存放在VPNv4路由表中,通过update报文通告
- 新增两种属性
- MP-reach-NLRI:多协议可达网络层路由信息,用来携带更新的VPNv4前缀信息和路由属性
- MP-unrech-NLRI:多协议不可达网络层路由信息,用来携带撤销VPNv4前缀信息,撤销时不携带路由属性
- 出口PE和远端CE之间交互IPv4路由信息
- 问题:出口PE接收到私网路由后,如何正确的将私网路由导入到对应的VRF中?
- 解决方法
- 入口在通告VPNv4路由时,携带出站RT值(export target),出口PE检查其export target属性,当其与PE上某个VPN实例import target匹配时,才会把路由加入到该VPN实例的路由表中
- 同一VPN中
- 入口PE export target(钥匙)=出口PE impoet target(锁)
- 入口PE import target(锁)=出口PE expoet target(钥匙)
MPLS VPN数据转发的问题
- 问题1:PE设备在接收到私网数据 时,如何判断去往那个站点?
- 解决方法:
- 通过MP-BGP协议在通告vpnv4路由时为VPNv4分配标签,从对应的VPN中发出的数据在PE设备上打上标签,在接收端PE设备上通过标签识别VPN及转发接口
- 问题2:公网中的p设备没有参与VPN路由的传递,如何转发私网数据?
- 解决方法
- 公网设备使能MPLS和MPLS LDP,为私网数据分发公网标签,建立公网隧道
- 原因:
- 公网设备没有私网路由,私网数据无法在公网传输,加上标签保护私网数据,发送到公网上时会通过公网标签穿越公网
配置步骤
- ISP网络IGP互通,配置LDP
- 在PE设备上创建VPN实例,并绑定到对应接口上
- 在CE和PE之间配置路由协议
- 在PE与PE之间建立MP-IBGP对等体关系
- 在PE设备上执行IGP和BGP的路由双向引入