MPLS VPN原理与配置

2024-05-25 21:20
文章标签 配置 原理 mpls vpn

本文主要是介绍MPLS VPN原理与配置,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1.MPLS VPN概述
(1)MPLS VPN定义

(2)MPLS VPN网络架构

CE:用户网络边缘设备,有接口直接与运营商网络相连。CE可以是路由器或交换机,也可以是一台主机。通常情况下,CE“感知”不到VPN的存在,也不需要支持MPLS。
PE:运营商边缘路由器,是运营商网络的边缘设备,与CE直接相连。在MPLS网络中,对VPN的所有处理都发生在PE上,对PE性能要求较高。
P:运营商网络中的骨干路由器,不与CE直接相连。P设备只需要具备基本MPLS转发能力,不维护VPN相关信息。
站点的含义可以从下述几个方面理解:
站点是指相互之间具备IP连通性的一组IP系统,并且这组IP系统的IP连通性不需通过运营商网络实现。
站点的划分是根据设备的拓扑关系,而不是地理位置。如图所示,公司A的X省网络和公司A的Y省网络需要通过运营商的骨干网进行互联,所以它们被划分为两个站点。若在当前X省网络和Y省网络的CE之间增加一条物理专线,不需要通过运营商网络就可以互通,那么这两张网络就是一个站点。
站点与VPN的关系:
对于多个连接到同一服务提供商网络的站点,通过制定策略,可以将它们划分为不同的集合,只有属于相同集合的站点之间才能通过服务提供商网络互访,这种集合就是VPN。
一个Site中的设备可以属于多个VPN,换言之,一个Site可以属于多个VPN。
注:也有可能出现站点为一台主机的情况,此时该主机就是CE设备。本课程仅讨论站点是一个或多个子网,用路由器或交换机作为CE的情况。

2.MPLS VPN路由交互
(1)MPLS VPN 路由发布概述

(2)CE与PE之间的路由信息交换

(3)入口PE到出口PE路由传递(1)

(4)VRF

(5)RD

(6)VPN-IPv4地址

(7)MP-BGP

(8)入口PE到出口PE路由传递(3)

(9)RT

(10)入口PE到出口PE路由传递(4)

(11)数据转发时遇到的问题

(12)通过标签解决问题

(13)入口PE到出口PE路由传递(5)

PE上分配私网标签的方法有如下两种:
基于路由的MPLS标签分配:为VPN路由表的每一条路由分配一个标签(one label per route)。这种方式的缺点是:当路由数量比较多时,设备入标签映射表ILM(Incoming Label Map)需要维护的表项也会增多,从而提高了对设备容量的要求。
基于VPN实例的MPLS标签分配:为整个VPN实例分配一个标签,该VPN实例里的所有路由都共享一个标签。使用这种分配方法的好处是节约了标签。
私网路由交叉:VPNv4路由与本地VPN实例的VPN-Target进行匹配的过程称为私网路由交叉。PE在收到VPNv4路由后,既不进行优选,也不检查隧道是否存在,直接将其与本地的VPN实例进行交叉。
隧道迭代:为了将私网流量通过公网传递到另一端,需要有一条公网隧道承载这个私网流量。因此私网路由交叉完成后,需要根据目的IPv4前缀进行路由迭代,即该IPv4路由的下一跳有对应的LSP存在;只有隧道迭代成功,该路由才被放入对应的VPN实例路由表。

(14)MPLS VPN中的路由交互全过程

3.MPLS VPN报文转发
(1)报文转发过程(1)

(2)报文转发过程(2)

(3)报文转发过程(3)

(4)报文转发过程(4)

4.MPLS VPN报文转发
(1)配置命令-VPN实例配置(1)

(2)配置命令-VPN实例配置(2)

(3)配置命令-MP-BGP配置

(4)配置命令-PE与CE间路由配置

(5)MPLS VPN案例

A公司总部和PE之间才用OSPF交互路由信息,A公司分部和PE之间才用BGP交互路由信息,B公司总部和PE之间才用静态路由交互路由信息,B公司分部和PE之间才用ISIS交互路由信息。

[A-zongbu]ospf 1
[A-zongbu-ospf-1]area 0    
[A-zongbu-ospf-1-area-0.0.0.0]network 192.168.8.8 0.0.0.0
[A-zongbu-ospf-1-area-0.0.0.0]network 201.1.1.8 0.0.0.0

[AR1]ip vpn-instance A    
[AR1-vpn-instance-A]route-distinguisher 11:11
[AR1]inter g0/0/1
[AR1-GigabitEthernet0/0/1]ip binding vpn-instance A
Info: All IPv4 related configurations on this interface are removed!
Info: All IPv6 related configurations on this interface are removed!
[AR1-GigabitEthernet0/0/1]ip add 201.1.1.1 24
[AR1]ospf 2 vp    
[AR1]ospf 2 vpn-instance A
[AR1-ospf-2-area-0.0.0.0]network 201.1.1.1 0.0.0.0

[AR3]ip vpn-instance A
[AR3-vpn-instance-A]route-distinguisher 22:22
[AR3]inter g0/0/0
[AR3-GigabitEthernet0/0/0]ip binding vpn-instance A
Info: All IPv4 related configurations on this interface are removed!
Info: All IPv6 related configurations on this interface are removed!
[AR3-GigabitEthernet0/0/0]ip add 202.1.1.1 24
[AR3]bgp 123
[AR3-bgp]ipv4-family vpn-instance A
[AR3-bgp-A]peer 202.1.1.9 as-number 65888
[A-fenbu]bgp 65888
[A-fenbu-bgp]peer 202.1.1.1 as-number 123
BGP除了ipv4 地址族默认激活外,其他的都是没有激活的  
[AR3-bgp]ipv4-family vpn-instance A


[A-fenbu-bgp]network  192.168.9.8 32
[AR3]dis ip routing-table  vpn-instance A (查看是否学到A公司分部的BGP路由)

[AR1]mpls lsr-id 10.0.1.1
[AR1]mpls
[AR1-mpls]q    
[AR1]mpl ldp
[AR1]inter g0/0/0
[AR1-GigabitEthernet0/0/0]mpls
[AR1-GigabitEthernet0/0/0]mpls ldp

[AR2]mpls lsr-id 10.0.2.2
[AR2]mpls
[AR2-mpls]q    
[AR2]mpls ldp
[AR2-mpls-ldp]q
[AR2]inter g0/0/0
[AR2-GigabitEthernet0/0/0]mpls ldp
[AR2]inter g0/0/1
[AR2-GigabitEthernet0/0/1]mpls    
[AR2-GigabitEthernet0/0/1]mpls ldp


    
[AR3]mpls lsr-id 10.0.3.3
[AR3]mpls    
[AR3]mpls ldp
[AR3-mpls-ldp]q
[AR3]inter g0/0/1
[AR3-GigabitEthernet0/0/1]mpls         
[AR3-GigabitEthernet0/0/1]mpls ldp

查看会话是否正常:
[AR2]dis mpls ldp session  all
查看有没有发标签:
[AR2]dis mpls lsp

[AR1]ip vpn-instance A    
[AR1-vpn-instance-A]vpn-target 100:1 import-extcommunity
[AR1-vpn-instance-A]vpn-target 100:1 export-extcommunity

[AR3]ip vpn-instance A    
[AR3-vpn-instance-A]vpn-target 100:1  (标识导入导出的流量)
 IVT Assignment result:
Info: VPN-Target assignment is successful.
 EVT Assignment result:
Info: VPN-Target assignment is successful.


[AR1]bgp 123
[AR1-bgp]peer  10.0.3.3 as-number 123
[AR1-bgp]peer 10.0.3.3 c l 0
[AR1-bgp]peer 10.0.3.3 next-hop-local (对方下一跳的值为我本身)
[AR1-bgp]ipv4-family vpnv4     
[AR1-bgp-af-vpnv4]peer 10.0.3.3 enable (启用VPNV4让路由器可以传递VPNV4路由)

[AR3]bgp 123
[AR3-bgp]peer 10.0.1.1 as 123
[AR3-bgp]peer 10.0.1.1 c l 0
[AR3-bgp]peer 10.0.1.1 next-hop-local
[AR3-bgp]ipv4-family vpnv4
[AR3-bgp-af-vpnv4]peer 10.0.1.1 enable

[AR1]dis bgp vpnv4 all peer(查看邻居是否正常)

[AR1]bgp 123    
[AR1-bgp]ipv4-family vpn-instance A
[AR1-bgp-A]import-route ospf 2

[AR1-bgp]dis bgp vpnv4 vpn-instance  A routing-table  (查看路由实例)

[AR1]ospf 2
[AR1-ospf-2]im    
[AR1-ospf-2]import-route bgp


[B-fenbu]ip route-static 0.0.0.0 0.0.0.0 204.1.1.1

[AR1]ip vpn-instance B
[AR1-vpn-instance-B]ro    
[AR1-vpn-instance-B]route-distinguisher 33:33
[AR1-vpn-instance-B-af-ipv4]vp    
[AR1-vpn-instance-B-af-ipv4]vpn-target 200:1


[AR1-GigabitEthernet0/0/2]ip binding vpn-instance B
[AR1-GigabitEthernet0/0/2]ip add 204.1.1.1 24
[AR1]ip route-static vpn-instance B 192.168.8.0 24 204.1.1.8
[AR1]bgp 123    
[AR1-bgp]ipv4-family vpn-instance B
[AR1-bgp-B]import-route static


[AR3]ip vpn-instance B
[AR3-vpn-instance-B]route-distinguisher 44:44    
[AR3-vpn-instance-B-af-ipv4]vpn-target 200:1    
[AR3-GigabitEthernet0/0/2]ip binding vpn-instance B
Info: All IPv4 related configurations on this interface are removed!
Info: All IPv6 related configurations on this interface are removed!
[AR3-GigabitEthernet0/0/2]IP ADD 203.1.1.1 24

[AR3]ISIS vpn-instance B
[AR3-isis-1]network-entity 49.0001.0000.0000.0001.00
[AR3-isis-1]inter g0/0/2
[AR3-GigabitEthernet0/0/2]isis enable 1

[B-zongbu]isis 1
[B-zongbu-isis-1]network-entity 49.0001.0000.0000.0002.00.
[B-zongbu]inter g0/0/0
[B-zongbu-GigabitEthernet0/0/0]isis enable 1
[B-zongbu-LoopBack9]isi enable 1
[AR3]dis isis peer  vpn-instance B


[AR3]isis
[AR3-isis-1]im    
[AR3-isis-1]import-route bgp    
[AR3-bgp]ipv4-family vpn-instance B
[AR3-bgp-B]import-route isis 1

查看vpn实例:

dis IP v v

这篇关于MPLS VPN原理与配置的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1002659

相关文章

Linux 安装、配置Tomcat 的HTTPS

Linux 安装 、配置Tomcat的HTTPS 安装Tomcat 这里选择的是 tomcat 10.X ,需要Java 11及更高版本 Binary Distributions ->Core->选择 tar.gz包 下载、上传到内网服务器 /opt 目录tar -xzf 解压将解压的根目录改名为 tomat-10 并移动到 /opt 下, 形成个人习惯的路径 /opt/tomcat-10

uniapp接入微信小程序原生代码配置方案(优化版)

uniapp项目需要把微信小程序原生语法的功能代码嵌套过来,无需把原生代码转换为uniapp,可以配置拷贝的方式集成过来 1、拷贝代码包到src目录 2、vue.config.js中配置原生代码包直接拷贝到编译目录中 3、pages.json中配置分包目录,原生入口组件的路径 4、manifest.json中配置分包,使用原生组件 5、需要把原生代码包里的页面修改成组件的方

问题-windows-VPN不正确关闭导致网页打不开

为什么会发生这类事情呢? 主要原因是关机之前vpn没有关掉导致的。 至于为什么没关掉vpn会导致网页打不开,我猜测是因为vpn建立的链接没被更改。 正确关掉vpn的时候,会把ip链接断掉,如果你不正确关掉,ip链接没有断掉,此时你vpn又是没启动的,没有域名解析,所以就打不开网站。 你可以在打不开网页的时候,把vpn打开,你会发现网络又可以登录了。 方法一 注意:方法一虽然方便,但是可能会有

IDEA配置Tomcat远程调试

因为不想把本地的Tomcat配置改乱或者多人开发项目想测试,本文主要是记录一下,IDEA使用Tomcat远程调试的配置过程,免得一段时间不去配置到时候忘记(毕竟这次是因为忘了,所以才打算记录的…) 首先在catalina.sh添加以下内容 JAVA_OPTS="-Dcom.sun.management.jmxremote=-Dcom.sun.management.jmxremote.port

Steam邮件推送内容有哪些?配置教程详解!

Steam邮件推送功能是否安全?如何个性化邮件推送内容? Steam作为全球最大的数字游戏分发平台之一,不仅提供了海量的游戏资源,还通过邮件推送为用户提供最新的游戏信息、促销活动和个性化推荐。AokSend将详细介绍Steam邮件推送的主要内容。 Steam邮件推送:促销优惠 每当平台举办大型促销活动,如夏季促销、冬季促销、黑色星期五等,用户都会收到邮件通知。这些邮件详细列出了打折游戏、

微信小程序开发必知必会:文件结构和基本配置

一、微信小程序基本文件结构 1.  project.config.json:项目的基本配置文件,包括项目名称、appid、项目目录、页面文件夹等。     {"setting": {"urlCheck": false,"es6": true,"postcss": true,"nodeModulesPath": "D:\\\\node_modules"},"appid": "wxd678e

【杂记-浅谈DHCP动态主机配置协议】

DHCP动态主机配置协议 一、DHCP概述1、定义2、作用3、报文类型 二、DHCP的工作原理三、DHCP服务器的配置和管理 一、DHCP概述 1、定义 DHCP,Dynamic Host Configuration Protocol,动态主机配置协议,是一种网络协议,主要用于在IP网络中自动分配和管理IP地址以及其他网络配置参数。 2、作用 DHCP允许计算机和其他设备通

数据库原理与安全复习笔记(未完待续)

1 概念 产生与发展:人工管理阶段 → \to → 文件系统阶段 → \to → 数据库系统阶段。 数据库系统特点:数据的管理者(DBMS);数据结构化;数据共享性高,冗余度低,易于扩充;数据独立性高。DBMS 对数据的控制功能:数据的安全性保护;数据的完整性检查;并发控制;数据库恢复。 数据库技术研究领域:数据库管理系统软件的研发;数据库设计;数据库理论。数据模型要素 数据结构:描述数据库

Pycharm配置conda环境(解决新版本无法识别可执行文件问题)

引言: 很多小伙伴在下载最新版本的pycharm或者更新到最新版本后为项目配置conda环境的时候,发现文件夹目录中无法显示可执行文件(一般为python.exe),以下就是本人遇到该问题后试验和解决该问题的一些方法和思路。 一般遇到该问题的人群有两种,一种是刚入门对pycharm进行conda环境配置的小白(例如我),不熟悉相关环境配置的操作和过程,还有一种是入坑pycharm有段时间的老手

【zabbix】zabbix客户端配置

1、部署zabbix客户端 #zabbix 5.0 版本采用 golang 语言开发的新版本客户端 agent2 。#zabbix 服务端 zabbix_server 默认使用 10051 端口,客户端 zabbix_agent2 默认使用 10050 端口。systemctl disable --now firewalldsetenforce 0hostnamectl set-host