首页 > 其他分享 >MPLS VPN基础

MPLS VPN基础

时间:2024-10-09 18:50:40浏览次数:8  
标签:VPN MPLS 基础 instance 3.3 100 vpn 路由

文章目录

在这里插入图片描述

MPLS VPN

既然能用MPLS解决私网经过公网进入私网之间进行通信,为什么还要用MPLSVPN?

  • 当私网中出现多个站点,需要使用一定的技术来对私网流量进行区分,同时也要实现用户之间的隔离
  • MPLS网络一般是运营商进行搭建的,但是也能实现基本的内网经过公网之后到内网之间的通信,但是存在很大弊端
  • 因此使用 MPLS VPN

隔离靠VRF:用来让LER下方连接的私网之间进行隔离

区分靠RD:RD不可以控制路由的加载,没有能力控制路由究竟进入哪一个VRF的功能,能通过RD区分具体的VPNv4路由

进入对应的VRF使用RT:究竟进入哪一个VRF,RT来决策

传递靠MP-BGP:多协议BGP,用于传递VPNv4路由

传统GRE、IPsecVPN的优缺点

  • 便宜,不需要找运营商(运营商只负责互通)

  • 只需要自己配置就可以

  • 假设运营商中间出现网络拥塞,用户体验得不到保障

  • 服务质量和带宽得不到保障

  • 用户业务和运营商业务是相互隔离的

MPLS VPN相比于传统的GRE、IPsecVPN的优点

  • 吸取传统VPN优点:运营商传递的是 VPNv4 路由
  • 可以对数据流量进行优化,保障网络的稳定性
  • 用户业务和运营商业务之间也是相互隔离的

VPN组件

VRF

VPN实例,把一个物理设备虚拟成很多逻辑设备,逻辑设备之间相互隔离,用来让 LER 下方连接的私网之间进行隔离 虚拟路由转发表 VPN-instance 提供路由隔离

包含内容:IP路由表、标签转发表、接口列表、RD、路由过滤策略

在LER设备上配置

ip vpn-instance VPN_A    #创建VPN实例
ipv4-family    #打开IPv4地址族功能
inter g0/0/0
ip bind vpn-instance VPN_A    #进入接口将接口加入VPN实例,绑定的不同VPN实例可以针对不同的客户
ip add 12.1.1.2 24    #将接口加入VPN实例之后会清空IP配置
dis ip routing-table vpn-instance VPN_A    #查看虚拟路由表

#此时在LER设备上进行 ICMP 的 Ping 测试需要在命令后加参数
ping -vpn-instance VPN_A 3.3.3.3 进行连通性测试(同样支持普通ICMP里面的参数)
ping -vpn-instance VPN_A -a 1.1.1.1 3.3.3.3    #指定源地址去进行 Ping 测试
tracert -vpn-instance VPN_A -v -a 1.1.1.1 3.3.3.3    # -v表示显示详细信息,-a表示指定源地址,-q表示探测包的数量
#在配置完RT之后,我们使用上面的 Tracert 命令就能看见数据包经过IP网络进入MPLS网络的效果
RD

路由标识符,用于区分使用相同地址空间的IPv4前缀,必须保证PE上的RD全局唯一

R1
ip vpn-instance VPN_A    #当用户的路由加入到VRF之后,我们需要给他添加一个RD值
route-distinguisher 100:1    #RD用来标识进入此LER设备的路由变成 VPN 路由之后打的Tag就是100:1

R3
ip vpn-instance VPN_A
route-distinguisher 100:2

加上RD属性之后就变成了VPNv4路由,之后就需要建立 MP-BGP 用以承载 VPNv4 路由

MP-BGP

因为本身有MPLS作为支撑,所以可以直接跨设备建立邻居

所以在MPLS网络中需要建立 MP-IBGP 的邻居关系

bgp 100
peer 3.3.3.3 as 100
peer 3.3.3.3 con loo 0
undo peer 3.3.3.3 enable    #关闭掉IPv4的邻居关系
ipv4-family vpnv4    #在BGP中使能 VPNv4
peer 3.3.3.3 enable    #激活 VPNv4 的邻居关系

dis bgp vpnv4 all peer    #查看VPNv4的所有邻居

bgp 100
ipv4 vpn-instance VPN_A    #进入VPN实例进行路由宣告
network x.x.x.x 24    #在VPN实例里面宣告路由

dis bgp vpnv4 vpn-instance VPN_A routing-table 3.3.3.3    #查看VPN实例下的BGP路由
dis bgp vpnv4 route-distinguisher 100:1 routing-table 12.1.1.0    #查看RD、RT信息,并且指定要查询的路由
dis bgp vpnv4 all routing-table peer 3.3.3.3 advertised-routes    #查看所有对邻居3.3.3.3通告的路由信息

#此时因为没有配置RT,VPNv4路由无法接受,因此MP-IBGP邻居收不到传来的路由条目,刚刚的查询命令查不到相应的东西
RT

称为VPN的 Target、BGP扩展团体属性、控制VPN路由信息的加载、每个VPN实例关联一个或多个VPN Targer 属性

接受的RT叫 IRT,发送的RT叫 ERT

R1
ip vpn-instance VPN_A    #还是需要在LER设备上进行配置
vpn-target 100:1 export-extcommunity    # R1-LER 配置出去的RT为100:1

R3
ip vpn-instance VPN_A
vpn-target 100:1 import-extcommunity    # R3-LER 配置进来的RT为100:1

R3
ip vpn-instance VPN_A    #还是需要在LER设备上进行配置
vpn-target 100:2 export-extcommunity    # R3-LER 配置出去的RT为100:2

R1
ip vpn-instance VPN_A
vpn-target 100:2 import-extcommunity    # R1-LER 配置进来的RT为100:2

#现在使用命令就能在 R3-LER 设备上看到本端LER传递的路由信息
dis bgp vpnv4 route-distinguisher 100:1 routing-table 12.1.1.0    #查看RD、RT信息,并且指定要查询的路由
dis bgp vpnv4 vpn-instance VPN_A routing-table 3.3.3.3   #查看VPN实例下的BGP路由,配置RT之后就可以正常查询了
在LER设备上进行 ICMP 的 Ping 测试需要在命令后加参数
ping -vpn-instance VPN_A 3.3.3.3 进行连通性测试(同样支持普通ICMP里面的参数)
ping -vpn-instance VPN_A -a 1.1.1.1 3.3.3.3    #指定源地址去进行 Ping 测试
tracert -vpn-instance VPN_A -v -a 1.1.1.1 3.3.3.3    # -v表示显示详细信息,-a表示指定源地址,-q表示探测包的数量
#在配置完RT之后,我们使用上面的 Tracert 命令就能看见数据包经过IP网络进入MPLS网络的效果

Author:DC

标签:VPN,MPLS,基础,instance,3.3,100,vpn,路由
From: https://blog.csdn.net/Jerry_BLOG/article/details/142793871

相关文章

  • 0基础学Java之Day02(上午完整版)
    一、扩展Hello.java1.详解代码/**作者:zzj时间:2024年10月9日*/​//公有的类叫做HellopublicclassHello{​//公有的静态的无返回值的方法叫做main--这种固定写法的方法叫做主方法publicstaticvoidmain(String[]args){​//输出语句(......
  • 0基础学Java之Day02(下午完整版)
    五、Java的体系划分JavaSE--J2SE--核心版本JavaEE--J2EE--企业版本(做服务器)JavaME--J2ME--微型版本(做移动端--已弃用)学习路线:后端程序员:JavaSE、JavaEE移动端程序员:JavaSE、JavaME-------(已弃用)Android移动端程序员:JavaSE、AndroidSDKIOS移动端程序......
  • 运维工程师一月多少钱(非常详细),零基础入门到精通,看这一篇就够了
    前言运维工程师的月薪因地区、工作经验、技能水平及公司规模等因素而有所不同。根据多个来源的数据,我们可以对运维工程师的月薪进行大致的归纳和分析:一、全国平均月薪*整体平均月薪:根据看准网的数据,2024年运维工程师在全国的平均月薪约为¥16,052,中位数为¥13,030至¥1......
  • AI的历史、现状与理论基础
    在本篇文章中,我们将深入探讨人工智能(AI)的起源、现状以及理论基础,为读者提供一个全面的理解框架。I.引言人工智能(AI)作为一门跨学科的研究领域,其目标是模拟、延伸和扩展人的智能。本文旨在概述AI的历史发展、当前趋势以及理论基础,为读者提供一个系统的视角。II.AI的发展历程A......
  • 笔记--(5)、Linux硬盘管理与文件系统基础
    一、挂载、卸载在linux中所有的存储设备有需要挂载才可以使用lsblk查看硬盘信息mount挂载命令mount-tsdb/mydisk/挂载sdb硬盘到mydisk目录中umount卸载挂载设备命令umountsdb取消挂载sdb硬盘umount/mydisk/输入挂载路径也能取消二、硬盘分区结构硬盘中......
  • 【Next.js 入门教程系列】01-基础知识
    原文链接CSDN的排版/样式可能有问题,去我的博客查看原文系列吧,觉得有用的话,给我的库点个star,关注一下吧 基础知识本篇包括以下内容:Next.js是什么创建Next.js项目客户端组件和服务器端组件数据获取缓存静态渲染与动态渲染Next.js​Next.jsisa framework forb......
  • js基础篇一
    JavaScripthtml骨架CSS血肉js行为JavaScript:是一种运行在客户端(浏览器)的一种编程语言,实现人机交互弱类型的语言作用:网页的特效表单验证数据交互(ajax)js书写的位置行内写在开始标签里内部写在script标签里(写在</body>的前面)因为代码是从上向......
  • Vue组件开发基础教程
    首发于公众号[小白讲前端]欢迎关注1.环境搭建安装Node.js:确保你的机器上已安装了Node.js。安装VueCLI:打开命令行工具,运行npminstall-g@vue/cli来全局安装VueCLI。2.创建项目在命令行中执行:vuecreatemy-vue-appcdmy-vue-app这将创建一个新的Vue项......
  • 我的AI学习 基础篇
    我的AI学习:基础`今年的诺贝尔物理奖给了搞机器学习和神经网络的人了。因为这两位奠定了AI的基础。所以观点:基于机器学习、神经网络的是AI。AI大模型(LLM),也叫大语言模型,这里我列几个网站,也是我平常遇到问题经常在上面访问的,不妨大家点进去看看GPT:https://chatgpt.com/......
  • JAVA基础: synchronized 和 lock的区别、synchronized锁机制与升级
    1synchronized和lock的区别synchronized是一个关键字,lock是一个接口,实际使用的是实现类synchronized通过触发的是系统级别的锁机制,lock是API级别的锁机制synchronized自动获得锁,自动释放锁。lock需要通过方法获得锁并释放锁synchronized可以修饰代码段和方法,lock......