MPLS实验

news2024/11/16 0:34:35

目录

  • 实验要求
  • mpls简介
  • mpls工作过程
  • 实验的配置
  • 环回的配置
  • R1和R5之间
    • 公网的ospf配置
    • 配置mpls-ldp
    • 配置R1和R5间的mplsvpn
    • 私网的rip及ospf的宣告配置
    • 公网mp-bgp的建立
    • R2和R4上面的双向重发布
  • R7和R8之间
  • 创建R7和R8间的mplsvpn
    • 配置静态路由及环回
    • 重发布

实验要求

如图
要求:
R1与R5 用mplsvpn,R1这个私网用rip协议跑通,R5用ospf获取路由
R7和R8 用mplsvpn,R7写静态路由到R8,R8也用静态路由写到R7
R8可以访问R2/3/4环回
在这里插入图片描述

mpls简介

MPLS:是多协议标签交换
多协议:可以基于多种不同的3层协议来生成2.5层的标签信息;

包交换
原始的包交换:数据包进入路由器后,路由器需要查询本地的路由表(RIB-路由信息数据库),再基于下一跳或者目标ip查询本地的ARP表,才能进行数据的转发。
快速的包交换:一次路由多次交换;每个数据流中的第一个包将被基于原始包交换规则转发;过程中生成缓存列表,记录整个通讯过程,该数据流量剩余数据包仅查询缓存记录即可。
特快的包交换:无需路由,直接交换; CEF-cisco特快交换,为cisco私有技术;非cisco厂商设备均存在和cef转发机制相同的技术。

标签交换
数据包在进入到的MPLS的域内后,将在第2层和3层中间压入标签号;使得域内的路由器在转发该数据包时,基于2.5层的标签号仅需要查询本地的一张LFIB表(标签转发信息数据库)
最初在包交换仅支持原始交换时,标签的意义在于更快的查询;但随着包交换的加速,使用标签交换失去了快速查表的优势;

当下MPLS存在的意义:
1、解决BGP的路由黑洞
2、MPLS VPN
3、MPLS TE 流量工程

mpls工作过程

控制层面
1)在没有MPLS时控制层面仅生成RIB(路由表)和FIB(转发信息数据库);FIB是基于RIB生成;
2)MPLS协议会启动TDP(cisco私有)或LDP(公有),直连设备间将建立邻居关系;
3)MPLS在建立邻居关系后,生成邻居表;LDP协议再基于FIB表中学习到的路由条目生成标签号
4)标签号生成后,将存储于本地的LIB表-标签信息数据库;LIB表将在邻居间共享; LIB表中装载本地及邻居为每条路由分发的标签号;
5)运行MPLS协议的设备,将LIB和FIB进行结合,将标签号和最佳路径的关系映射生成LFIB表(标签转发信息数据库)

数据层面
1)当流量进入到第一台pe设备时, 在没有特快交换之前,路由器基于目标IP地址查询本地的RIB;
在LIB表中对应确定流量是否应该压入标签,需要两张表的查询;
2)在存在特快交换时,流量进入第一pe时,直接查询FIB表,表中关联标签号,将直接确定是否压入标签;
3)流量再到P路由器,接收到流量中若存在标签基于LFIB表转发,若没有标签基于FIB表即可;流量从最后一台边界离开MPLS 域时将弹出标签;

实验的配置

基本的ip配置,环回配置均已经完成,不再写上,地址全部为192.168…/24的,图中对应的已经标出。R1 R2 R3 R4 R5环回分别为:
192.1681.1/24, 2.2.2.2/24, 3.3.3.3/24, 4.4.4.4/24, 192.168.4.1/24

环回的配置

[R1]int LoopBack 0     R1的
[R1]ip address 192.168.1.1 24
[R2]int LoopBack 0   R2的
[R2-LoopBack0]ip add 2.2.2.2 24
[R3]int LoopBack 0   R3的
[R3-LoopBack0]ip ad 3.3.3.3 24
[R4]int LoopBack 0   R4的
[R4-LoopBack0]ip address 4.4.4.4 24
[R5]int LoopBack 0    R5的
[R5-LoopBack0]ip address 192.168.4.1 24

R1和R5之间

大概总体思路:
1,先将公网基本ip配置配好,再用ospf让公网互通
2,R2和R4设备作为pe设备,也是EBGP设备,运行bgp协议建立邻居
3,在标签经过的接口运行mpls-ldp协议
4,创建对应vrf空间,并且将rip路由和bgp,ospf路由两两双向重发布

公网的ospf配置

[R4]ospf 1
[R4-ospf-1]area 0
[R4-ospf-1-area-0.0.0.0]network 4.4.4.4 0.0.0.0
[R4-ospf-1-area-0.0.0.0]network 34.1.1.2 0.0.0.0

[R3]ospf 1
[R3-ospf-1]area 0
[R3-ospf-1-area-0.0.0.0]network 3.3.3.3 0.0.0.0
[R3-ospf-1-area-0.0.0.0]network 23.1.1.2 0.0.0.0
[R3-ospf-1-area-0.0.0.0]network 34.1.1.1 0.0.0.0

[R2]ospf 1
[R2-ospf-1]area 0
[R2-ospf-1-area-0.0.0.0]network 2.2.2.2 0.0.0.0
[R2-ospf-1-area-0.0.0.0]network 23.1.1.1 0.0.0.0

配置mpls-ldp

配置成功的前题是公网部分已经通了。
只需要在贴标签的路由接口上开启对应的mpls即可,该实验需要开启的接口是下面的四个:
R2-g/0/0/1
R3-g/0/0/0
R3-g/0/0/1
R4-g/0/0/0

配置:
[r2]mpls lsr-id 2.2.2.2 先用真实环回建立,且邻居可达,因为该地址用于建立tcp会话,建议用环回
[r2]mpls 开启mpls协议
[r2-mpls]mpls ldp 再激活ldp协议
之后需要在所有标签经过的接口上开启协议
[r2]interface GigabitEthernet 0/0/1 进入标签要经过的接口
[r2-GigabitEthernet0/0/1]mpls 先开启mpls协议
[r2-GigabitEthernet0/0/1]mpls ldp 再激活ldp协议

[r3]mpls lsr-id 3.3.3.3
[r3]mpls
[r3-mpls]mpls ldp
[r3]interface GigabitEthernet 0/0/1
[r3-GigabitEthernet0/0/1]mpls
[r3-GigabitEthernet0/0/1]mpls ldp
[r3]interface GigabitEthernet 0/0/0
[r3-GigabitEthernet0/0/0]mpls
[r3-GigabitEthernet0/0/0]mpls ldp

[r4]mpls lsr-id 4.4.4.4
[r4]mpls
[r4-mpls]mpls ldp
[r4]interface GigabitEthernet 0/0/0
[r4-GigabitEthernet0/0/0]mpls
[r4-GigabitEthernet0/0/0]mpls ldp

如下,查看建立tcp会话后的tcp状态
在这里插入图片描述

配置R1和R5间的mplsvpn

1、 CE将私有路由传递到PE端

2、 PE端在收到不同CE发送过来的相同网段路由时,使用RD值进行区分—格式X:X 32位

3、 PE端将附上RD的私有路由不能直接装载于本地公有路由表中,需要放置到对应的VRF(虚拟路由转发)空间内;之后再路由付RT值,用于传递到对端PE设备,对端区分信息;VPNV4路由=普通IPV4路由+RD+RT

4、 VPNV4路由需要MP-BGP来进行传递;对端基于RT值,将路由装载到对应的VRF空间内,再共享给对应的CE;

5、 控制层面工作完成后,数据层面需要基于MPLS来工作,由于数据层面不能携带RD/RT值;
故mpls将在数据包中压入两层标签,外层标签用于穿越中间设备,打破BGP路由黑洞;内层标签用于对应VRF空间;

配置:
[R2]ip vpn-instance a 创建名为a的vrf空间
[R2-vpn-instance-a]ipv4-family 进入IPV4的家族配置模式下
[R2-vpn-instance-a-af-ipv4]route-distinguisher 1:1 RD值
[R2-vpn-instance-a-af-ipv4]vpn-target 1:1 RT值 必须对端的PE端一致
[r2]interface GigabitEthernet 0/0/0 进入链接CE端的接口
[r2-GigabitEthernet0/0/0]ip binding vpn-instance a 关联到vrf空间a

[R4]ip vpn-instance a
[R4-vpn-instance-a]ipv4-family
[R4-vpn-instance-a-af-ipv4]route-distinguisher 1:1
[R4-vpn-instance-a-af-ipv4]vpn-target 1:1
[r4]interface GigabitEthernet 0/0/1
[r4-GigabitEthernet0/0/1]ip binding vpn-instance a

此时pe R2上直接ping192.168.2.1ping不通,因为,R2作为的是公网不会直接存储192.168.2.1这个网段地址,而是存在vrf空间的。需要用在空间a里面的路由表ping
在这里插入图片描述
用空间a里面的来ping
在这里插入图片描述

私网的rip及ospf的宣告配置

在R1上面正常配置即可:
[R1]rip 1
[R1-rip-1]version 2
[R1-rip-1]network 192.168.1.1 0.0.0.0
[R1-rip-1]network 192.168.2.1 0.0.0.0

[R2]rip 1 vpn-instance a
[R2-rip-1]v 2
[R2-rip-1]network 192.168.2.0
这时R2 vrf空间学习到了rip路由

[R5]ospf 2
[R5-ospf-2]area 0
[R5-ospf-2-area-0.0.0.0]network 192.168.4.1 0.0.0.0
[R5-ospf-2-area-0.0.0.0]network 192.168.3.2 0.0.0.0

[r4]ospf 2 vpn-instance a 在空间a中配置
[r4-ospf-2]area 0
[r4-ospf-2-area-0.0.0.0]network 192.168.3.1 0.0.0.0
这时R4 vrf空间学习到了ospf路由

公网mp-bgp的建立

[r2]bgp 1
[r2-bgp]router-id 2.2.2.2
[r2-bgp]pe 4.4.4.4 as-number 2 和对端R4建立邻居
[r2-bgp]pe 4.4.4.4 connect-interface LoopBack 0 用环回作为源
[r2-bgp]pe 4.4.4.4 next-hop-local 为了传递路由时条目优秀,将下一跳改为本地
同时还需要再在IPV4的家族模式中,与对端建立一个VPNV4的关系,用于传递VPNV4路由(mp-bgp关系)
[r2-bgp]ipv4-family vpnv4
[r2-bgp-af-vpnv4]peer 4.4.4.4 enable

[r4]bgp 1
[r4-bgp]router-id 4.4.4.4
[r4-bgp]pe 2.2.2.2 as-number 2
[r4-bgp]pe 2.2.2.2 connect-interface LoopBack 0
[r4-bgp]pe 2.2.2.2 next-hop-local
[r4-bgp]ipv4-family vpnv4
[r4-bgp-af-vpnv4]peer 2.2.2.2 enable

查看mp-bgp邻居关系
在这里插入图片描述

R2和R4上面的双向重发布

为了将R1和5通,需要将rip重发布到bgp,bgp重发布到rip,ospf重发布到bgp,bgp重发布到ospf。
重发布后EBGP会将自己通过任何协议学习到的路由条目传递到邻居

[R2]rip 1 vpn-instance a 到空间a里面导入bgp路由
[R2-rip-1]import-route bgp
[R2-rip-1]q
[R2]bgp 1
[R2-bgp]ipv4-family vpn-instance a 到空间里面导入rip
[R2-bgp-a]import-route rip 1

[R4]ospf 2 vpn-instance a
[R4-ospf-2]import-route bgp
[R4-ospf-2]q
[R4]bgp 1
[R4-bgp]ipv4-family vpn-instance a
[R4-bgp-a]import-route ospf 2

查看vrf空间里面的路由表发现R4有到1.0 和2.0 的路由了
在这里插入图片描述
测试:用R1pingR5环回成功
在这里插入图片描述

R7和R8之间

大概总体思路:
1,前面公网bgp环境配置已经好了。只需要在以上操作中做出一些添加就可以了,过程相似

创建R7和R8间的mplsvpn

[R2]ip vpn-instance b 再创建名为b的vrf空间用于R7和R8建立mpls-vpn
[R2-vpn-instance-a]ipv4-family 进入IPV4的家族配置模式下
[R2-vpn-instance-a-af-ipv4]route-distinguisher 2:2 RD值
[R2-vpn-instance-a-af-ipv4]vpn-target 2:2 RT值 必须对端的PE端一致
[r2]interface GigabitEthernet 0/0/2 进入链接CE端的接口
[r2-GigabitEthernet0/0/2]ip binding vpn-instance b 关联到vrf空间b

[R4]ip vpn-instance b
[R4-vpn-instance-a]ipv4-family
[R4-vpn-instance-a-af-ipv4]route-distinguisher 2:2
[R4-vpn-instance-a-af-ipv4]vpn-target 2:2
[r4]interface GigabitEthernet 0/0/2
[r4-GigabitEthernet0/0/2]ip binding vpn-instance b

配置静态路由及环回

[R7]ip route-static 192.168.4.0 24 192.168.5.2 手写去往R8的ip
[R7]ip route-static 192.168.6.0 24 192.168.5.2
[R7]int LoopBack 0
[R7-LoopBack0]ip ad 192.168.2.1

[R2]ip route-static vpn-instance b 192.168.2.0 24 192.168.5.1 在空间b中手写到R7的环回ip

[R8]ip route-static 192.168.2.0 24 192.168.6.1
[R8]ip route-static 192.168.5.0 24 192.168.6.1
[R7]int LoopBack 0
[R8-LoopBack0]ip ad 192.168.4.2

[R4]ip route-static vpn-instance b 192.168.4.0 24 192.168.6.2

重发布

[R2]bgp 1
[R2-bgp]ipv4-family vpn-instance b 在空间b中将直连路由和静态路由重发布到bgp
[R2-bgp-b]import-route direct
[R2-bgp-b]import-route static

[R4-bgp]bgp 1
[R4-bgp]ipv4-family vpn-instance b
[R4-bgp-b]import-route direct
[R4-bgp-b]import-route static

最后R2和R4的vrf b空间就有到R7 R8的路由了

pingR8的环回测试成功
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/193015.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【C++修炼之路】15.C++继承

每一个不曾起舞的日子都是对生命的辜负 继承C继承一. 继承的概念及定义1.1 继承的引出1.2 继承的概念1.3 继承的定义二.基类和派生类对象赋值转换三.继承中的作用域3.1 作用域的概念3.2 举例说明同名冲突四.派生类的默认成员函数4.1 派生类的构造函数4.2 派生类的拷贝构造函数4…

【python学习笔记】:数据科学库操作(二)

接上一篇: 4、PIL Python Imaging Library(PIL) 已经成为 Python 事实上的图像处理标准库了,这是由于,PIL 功能非常强大,但API却非常简单易用。但是由于PIL仅支持到 Python 2.7,再加上年久失修,于是一群志…

如果写不好 SQL,有没有好用的报表软件?

业务和技术在做报表这件事情上,究竟有多大差别? 一家企业、一个组织,只要一直在经营和运作,因为税务和其他原因就需要通过数据报表来反映当期的经营管理状况。而“做报表”这个事情,在企业内部不管是业务人员还是技术人…

HTTP之Referrer和Referrer-policy

目录 HTTP之Referrer和Referrer-policy Referer Referrer-policy 如何设置referrer 盗链 防盗链的工作原理 绕过图片防盗链 利用https网站盗链http资源网站,refer不会发送 设置meta 设置referrerpolicy"no-referrer" 利用iframe伪造请求refe…

C语言指针变量的运算

指针变量保存的是地址&#xff0c;而地址本质上是一个整数&#xff0c;所以指针变量可以进行部分运算&#xff0c;例如加法、减法、比较等&#xff0c;请看下面的代码&#xff1a;#include<stdio.h>intmain(){ int a 10,*pa &a,*paa &a; double b 99.9,*pb &a…

JTAG和SWD调试器

文章目录一、调试器二、JTAG三、SWD三、各自优缺点一、调试器 当我们开发单片机程序时&#xff0c;通常是在Windows或Linux上进行代码编写和编译&#xff0c;但是单片机并不直接集成在电脑上&#xff0c;怎么验证我们的单片机程序是否正确并烧录到单片机中&#xff0c;此时就需…

某游戏平台检测加速辅助案例分析

加速类辅助会对游戏平衡造成极大的破坏&#xff0c;这类辅助会通过HOOK api的方式来达到修改游戏对时间判断的目的&#xff0c;一般情况下&#xff0c;在R3层&#xff0c;这类辅助会在 QueryPerformanceCounter TimeGetTime GettickCount这三个API上HOOK&#xff0c;修改他们的…

Java-黑马Java学习作业-day15面向对象进阶(抽象类接口内部类)

学习视频链接&#xff1a;https://www.bilibili.com/video/BV17F411T7Ao 文章目录第一题&#xff1a;&#xff08;抽象类求面积和周长&#xff09;第二题&#xff1a;&#xff08;接口实现新旧手机功能&#xff09;第三题&#xff1a;&#xff08;使用子类和匿名内部类调用接口…

大厂高薪测试在线讲解Jmeter全套性能测试

Jmeter进行性能测试基本包含如下基本过程&#xff1a;1&#xff09;新增线程组创建测试线程组&#xff0c;并设置线程数量及线程初始化启动方式。2&#xff09;新增 JMeter 元组创建各种默认元组及测试元组&#xff0c;填入目标测试静态资源请求和动态资源请求参数及数据。3&am…

Task9:Excel数据透视表

文章目录一 Excel数据透视表1 数据透视表2 切片器3 数据透视的注意事项4 透视表常用法二 Excel数据透视图一 Excel数据透视表 1 数据透视表 什么是透视表&#xff1a;把明细表分类汇总的过程&#xff0c;可以按照不同的组合方式进行数据计算使用场景&#xff1a; 1.大量数据&…

QT入门Buttons之QCheckBox

目录 一、界面布局介绍 1、布局器中的位置及使用 2、常用属性 二、属性功能介绍 1、常用信号 2、测试信号stateChanged(int) 3、组合框效果 三、Demo展示 此文为作者原创&#xff0c;转载标明出处&#xff01; 一、界面布局介绍 1、布局器中的位置及使用 QCheckBox复选…

除了console.log,你还用过console其它的属性么?

目录前言console.infoconsole.debugconsole.errorconsole.warnconsole.time 和 console.timeEndconsole.group 和 console.groupEndconsole.table前言 刚学习前端的时候&#xff0c;vue还没用vue-devtools&#xff0c;react还没用 React Developer Tools&#xff0c;我们经常通…

fastjson 1.2.47 RCE漏洞保姆级复现

1.漏洞概述 Fastjson提供了autotype功能&#xff0c;允许用户在反序列化数据中通过“type”指定反序列化的类型&#xff0c;Fastjson自定义的反序列化机制时会调用指定类中的setter方法及部分getter方法&#xff0c;那么当组件开启了autotype功能并且反序列化不可信数据时&…

Sklearn中的算法效果评估手段

我们曾在《算法效果评估&#xff1a;均方根误差&#xff08;RMSE&#xff09;/ 标准误差》一文中介绍过评估算法效果使用的主要方法&#xff1a;均方根误差&#xff08;RMSE&#xff09;&#xff0c;但在实际应用中&#xff0c;评估算法效果还有更多内容&#xff0c;本文我们以…

VsCode安装及修改插件存储位置

【官网】&#xff1a; https://code.visualstudio.com/ 【修改插件仓库】&#xff1a; 创建名为VSCODE_EXTENSIONS的环境变量&#xff0c;内容指向自定义的文件夹即可&#xff08;位置无需限制&#xff09;。 【需要安装的插件】&#xff1a;

SBOM的介绍与syft和grype的使用

文章目录SBOM介绍工具syftgrypeSBOM介绍 SBOM&#xff08;软件物料清单&#xff09;是给定产品的中所有软件组件&#xff08;专有和开源代码&#xff09;、开源许可证和依赖项的清单。它提供了对软件供应链以及可能存在的任何许可证合规性、安全性和质量风险的可见性。 SBOM可…

Hystrix如何达到高可用

小型电商网站的页面展示采用页面全量静态化的思想。数据库中存放了所有的商品信息,页面静态化系统,将数据填充进静态模板中,形成静态化页面,推入Nginx服务器。用户浏览网站页面时,取用一个已经静态化好的html页面,直接返回回去,不涉及任何的业务逻辑处理。 用户每次浏览…

python输出不重复的字符

项目场景&#xff1a; 输入一个字符串&#xff0c;把最左边的10个不重复的字符&#xff08;大小写算不同字符&#xff09;挑选出来。 如不重复的字符不到10个&#xff0c;则按实际数目输出。问题描述 输出一个字符串&#xff0c;包含字符串s最左边10个不重复的字符。不到10个…

Canal与Kafka数据传输协议protocol buffer

1.写在前面 实时数仓开发中&#xff0c;利用Canal伪装slave获取MySQL的增量数据&#xff0c;获取后的数据由Kafka生产者接收&#xff0c;交由Flink实时流计算。传输数据量较大时&#xff0c;会占用内存及带宽&#xff0c;所以考虑将数据序列化和反序列化操作&#xff0c;这里介…

KNN(K-近邻)算法

1、概述 KNN(K−NearestNeighbor)KNN \left( K-Nearest Neighbor \right)KNN(K−NearestNeighbor)是机器学习中最基础的算法之一。既可以用于分类也可以用于回归&#xff0c;KNNKNNKNN通过测量不同特征值之间的距离来进行分类。 2、实例理解 如果k3k 3k3&#xff0c;绿色圆点…