学习HCIP的day.12

news2024/11/15 15:48:30

目录

MPLS:多协议标签交换

一、协议的解释和意义

二、工作过程

1、控制层面:

2、数据层面:

三、标签号

四、MPLS的次末跳

五、MPLS的配置

六、使用mpls解决BGP的路由黑洞

七、MPLS  VPN

八、配置:

1、ISP部分


MPLS:多协议标签交换

一、协议的解释和意义

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

包交换:包为网络层的PDU(协议数据单元),故包交换是基于IP地址进行数据转发;也就是路由器的路由行为;

原始的包交换流程:数据包进入路由器后,路由器需要查询本地的路由表(RIB-路由信息数据库),再基于下一跳或者目标ip地址查询本地的ARP表,才能进行数据的转发;

快速的包交换流程:一次路由多次交换;每个数据流中的第一个包将基于原始包交换规则转发;过程中生成缓存列表,记录整个通讯过程,该数据流量剩余数据包仅查询缓存记录即可直接转发即可;

特快的包交换:无需路由,直接交换; CEF-cisco特快交换,为cisco私有技术;非cisco厂商设备均存在和CEF转发机制相同的技术;路由表、ARP表转换为 FIB(转发信息数据库)表,流量转发过程中仅查询FIB表即可;

FIB表的特点:在将路由器表转换过程中,存储递归查询结果;同时将新封装的二层地址进行绑定;

以下是查询FIB表的一条记录:

IP       fast0/0                   172.16.20.115(7)

       (递归后的出接口)           0 packets, 0 bytes

                                   epoch 0

                                   sourced in sev-epoch 357

                                   Encap length 14

                                   701CE7662A9768EFBD1D24C50800  新的二层封装

                                   目标MAC    源MAC      类型号

标签交换:数据包在进入到MPLS的域内后,将在第2层和3层中间压入标签号;使得域内的路由器在转发该数据包时,基于2.5层的标签号仅需要查询本地的一张LFIB表(标签转发信息数据库)

最初在包交换仅支持原始交换时,标签的意义在于更快的查询;但随着包交换的加速,使用标签交换失去了快速查表的优势;

但是MPLS在当下又有了新的意义:

1、解决BGP的路由黑洞       2、MPLS  VPN         3、MPLS  TE 流量工程

另外:随着包交换的加速,使得今天的MPLS技术也开始基于FIB表工作;来提高MPLS的工作效率

二、工作过程

工作过程分为两个层面:

1、控制层面:

控制层面:路由协议工作,生成RIB,流量的方向即为控制流量;

1)在没有MPLS时控制层面仅生成RIB(路由表)和FIB(转发信息数据库);FIB是基于RIB生成;

2)MPLS协议会启动TDP(cisco私有)或LDP(公有),直连设备间将建立邻居关系;

LDP:基于UDP和TCP的646端口工作;先使用udp发送组播hello包发现邻居,获取邻居ip地址,再和该直连邻居建立TCP的会话;邻居关系建立后;为了邻居关系间的稳定,一般使用设备的环回地址来建立tcp会话;建议设置环回地址为mpls协议的route-id,该id值将携带在组播收发的hello报文中,之后自动进行tcp会话建立;

总结:MPLS协议需要在直连邻居间使用router-id地址来进行TCP的会话;故前提条件为,route-id必须为设备真实使用的ip地址,建议为环回地址,因为稳定;组播hello包在直连的物理接口上收发,来获取对端的router-id,自然也要求router-id值间路由可达;

因此正常在建立LDP的邻居关系间,路由协议已经收敛完成,RIB和FIB表已经生成;

3)MPLS在建立邻居关系后,生成邻居表;LDP协议再基于本地FIB表中学习到的路由条目生成标签号;cisco设备默认基于FIB表中所有学习到的路由条目生成标签号,华为设备默认仅基于FIB表中32位掩码的主机路由生成标签号;原因在于正常32位主机路由为ospf学习的环回接口,正常工程中只有BGP和MPLS-VPN才会基于环回通讯,使用标签转发;其他普通流量还是基于特快包交换来进行;反观cisco在启动mpls以后,所有流量将基于标签转发,降低了转发效率(前提为默认)

4)标签号生成后,将存储于本地的LIB-标签信息数据库;LIB表将在邻居间共享;

   LIB表中装载本地及邻居为每条路由分发的标签号;

5)运行MPLS协议的设备,将LIB和FIB进行结合,将标签号和最佳路径的关系映射生成LFIB表(标签转发信息数据库)

注:控制层面生成的表格流程:

RIB ---> FIB ---> LIB ---> LFIB   前两张表为路由协议工作后生成,后两张表为MPLS的LDP协议生成;

2、数据层面:

数据层面:设备基于路由表访问目标,产生数据流量;与控制层面方向相反;

(1)没有MPLS协议,基于FIB表正常转发即可

(2)名词:MPLS domain --- MPLS的工作半径   

edge LSR(PE):边界标签交换路由器,工作mpls域的边缘,连接域外设备

LSR (P):标签交换路由器,整体工作MPLS域内 

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

存在标签号的流量,进入路由器时,入标签表应该为本地路由器分配的编号,出标签为本地的下游(下一跳)设备分配的标签号;  上下游的概念基于数据层面进行标定

三、标签号

标签被压入在2层与3层之间,称为2.5层

标签的格式为32位二进制,4个字节

前20位为标签号,2^20个标签号;其中1-15号保留,作为特殊编号;

第21-23位exp,3位8个数,为优先级,用于QOS策略使用;

第24位为栈底位,该位为1标识该标签为最后一层标签;MPLS最大可以在一个数据包中封装3层标签;

不同层次的标签用处:

普通的MPLS:一层标签

MPLS  VPN:两层     

MPLS  TE:3层

TTL-生存时间:在第一次压入标签时,将当前数据包中的3层TTL复制到标签中;之后查询一次标签TTL减一,在最后一跳设备弹出标签时将2.5层的TTL复制到3层报头中;

四、MPLS的次末跳

次末跳为倒数第二跳  默认执行,边界LSR将本地的直连网段传递给MPLS域内邻居后,LDP分配标签号为3,告知倒数第二跳设备它的身份;导致倒数第二跳设备在查询LFIB表后,已知转发路径的前提下提前弹出标签,使得最后一跳路由器均只需要查询FIB表; 否则最后一跳路由器在查询LFIB表后,弹出标签还需要查询FIB;

五、MPLS的配置

1、IP可达 --- 使用路由协议全网可达

2、配置MPLS – LDP

[r2]mpls lsr-id 2.2.2.2   

必须先定义mpls的router-id,要为本地设备的真实ip地址且邻居可达,因为该地址将用于建立TCP会话,建议使用环回地址

[r2]mpls             再开启mpls协议

[r2-mpls]mpls ldp      再激活LDP协议

[r2-mpls-ldp]q

之后需要在所有标签经过的接口上开启协议

[r2]interface GigabitEthernet 0/0/1

[r2-GigabitEthernet0/0/1]mpls    先开启MPLS

[r2-GigabitEthernet0/0/1]mpls ldp   再激活LDP协议

当启动配置完成后,邻居间使用UDP报文组播收发hello包;之后基于hello包中的router-id地址进行TCP会话的建立;

[r3]display tcp status

TCPCB    Tid/Soid Local Add:port        Foreign Add:port      VPNID  State

b4cf3d64 167/6    3.3.3.3:646           4.4.4.4:50858         0      Established

b4cf3adc 167/3    3.3.3.3:50806         2.2.2.2:646           0      Established

当tcp会话建立后,邻居间基于TCP会话再建立邻居关系,生成邻居表

[r3]display  mpls ldp peer     查看邻居表

再然后基于本地的FIB表,默认华为仅针对32位的主机路由生成标签号;存储于LIB表中,之后邻居间共享LIB表;

[r3]display  fib  查看FIB表

[r4]display  mpls ldp  lsp    查看LIB表,装载本地和邻居为各条路由分配的标签号

最后路由器将LIB和FIB集合,生成最佳路径的标签转发规则—LFIB

[r4]display mpls lsp  查看LFIB表

注:默认华为仅针对32位主机路由分配标签

[r3]mpls

[r3-mpls]lsp-trigger all   开启功能,将针对fib表中所有路由进行标签号的分配

[r2]tracert -v -a 2.2.2.2 56.1.1.2

六、使用mpls解决BGP的路由黑洞

MPLS协议并不会为通过BGP协议学习的路由条目分配标签号;而是在访问这些BGP路由目标网段时,在流量中压入到达这些网段的BGP下一跳设备地址的标签号;

例:R2从BGP邻居5.5.5.5 学习到6.6.6.0 网段的路由;R2在访问6.6.6.0 时,将在数据包中压入到达5.5.5.5ip地址的标签号,来穿越中间没有运行BGP协议的设备;实现打破路由黑洞;

注:华为设备默认不为BGP协议执行下一跳标签机制,cisco默认执行;

华为设备需要开启  route recursive-lookup tunnel   路由基于隧道进行递归查找  

七、MPLS  VPN

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空间;

八、配置:

1、ISP部分

(1)IGP路由  

(2)MPLS域

(3)配置MPLS VPN

[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空间

[r2-GigabitEthernet0/0/0]ip address 192.168.2.2 24   配置私有ip地址

注:在关联到vrf空间前不能配置接口ip,否则该地址的直连路由将进入公有路由表;

[r2]display  ip routing-table vpn-instance a    查看空间内的私有路由表

[r2]ping -vpn-instance  a  192.168.2.1  

正常测试将在公有路由表中查询记录;该命令为基于VRF空间a进行路由查询

(4)PE与PE间建立MP-BPG邻居关系

[r2]bgp 2

[r2-bgp]router-id 2.2.2.2

先和对端建立正常BGP邻居关系,可用于传递正常的公网路由

 [r2-bgp]pe 4.4.4.4 as-number 2

 [r2-bgp]pe 4.4.4.4 connect-interface LoopBack 0

 [r2-bgp]pe 4.4.4.4 next-hop-local    

 同时还需要再在IPV4的家族模式中,与对端建立一个VPNV4的关系,用于传递VPNV4路由

[r2-bgp]ipv4-family vpnv4

[r2-bgp-af-vpnv4]peer 4.4.4.4 enable

[r2-bgp]display bgp vpnv4 all peer  查看mp-bgp邻居关系

(5)CE端与PE端交互路由

静态路由:

CE端直接编写静态路由即可;

PE端编写到VRF空间内的静态路由

[r2]ip route-static vpn-instance  a 192.168.1.0 24 192.168.2.1

将本地vrf空间内的静态和直连路由重发布到BGP协议传递到对端的PE

[r2]bgp 2

[r2-bgp]ipv4 vpn-instance a

[r2-bgp-a]import-route direct

[r2-bgp-a]import-route static

<r4>display  bgp vpnv4 vpn-instance a routing-table  查看mp-bpg的BGP表

 OSPF动态路由协议

CE端正常启动OSPF即可

PE端,启动VPNV4专用的ospf协议

[r4]ospf 2 vpn-instance a

[r4-ospf-2]area  0

[r4-ospf-2-area-0.0.0.0]network 192.168.3.1 0.0.0.0

之后使用双向重发布,实现路由共享

BGP协议:

[r4]bgp 2

[r4-bgp]ipv4-family vpn-instance a

[r4-bgp-a]import-route ospf  2

重发布:

[r4]ospf 2 vpn-instance a

[r4-ospf-2]import-route bgp 

查看双层标记的内层标签号

[r4]display  mpls lsp vpn-instance a

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

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

相关文章

python+pyqt制作的可最小化到托盘的桌面图形应用代码实例

本篇文章主要讲解使用python、pyqt制作的可以最小化到托盘的桌面图形应用实例。 日期:2023年6月11日 作者:任聪聪 效果演示 说明:实现桌面应用显示窗口,关闭窗口缩小到托盘,点击托盘显示窗口,邮件图标显示退出按钮,点击退出按钮即可关闭应用。 动态演示: 实际情况:…

postgresql 服务的启动操作,不再是DBA的专属

专栏内容&#xff1a;postgresql个人主页&#xff1a;我的主页座右铭&#xff1a;天行健&#xff0c;君子以自强不息&#xff1b;地势坤&#xff0c;君子以厚德载物&#xff0e; 目录 前言 服务架构概述 服务启动流程 前提 流程 集群创建 集群介绍 数据库服务配置 数据…

202317读书笔记|《心寂犹似远山火:斋藤茂吉短歌300》——茫茫心海里,孤帆与谁同

202317读书笔记&#xff5c;《心寂犹似远山火&#xff1a;斋藤茂吉短歌300》——茫茫心海里&#xff0c;孤帆与谁同 很高兴周五这一天&#xff0c;之前很粉俳句的时候订阅的书都在今天都上架了&#xff0c;可以一饱眼福了。短歌是日本和歌一种诗体&#xff0c;是由三十一音节组…

YOLOv5/v7 添加注意力机制,30多种模块分析③,GCN模块,DAN模块

目录 一、注意力机制介绍1、什么是注意力机制&#xff1f;2、注意力机制的分类3、注意力机制的核心 二、GCN 模块1、GCN 模块的原理2、实验结果3、应用示例 三、DAN模块1、DAN模块的原理2、实验结果3、应用示例 大家好&#xff0c;我是哪吒。 &#x1f3c6;本文收录于&#xf…

扫雷——C语言实现

扫雷 文章目录 扫雷实现代码什么是扫雷基本功能实现显示选择菜单定义几个二维数组&#xff1f;确定数组大小初始化数组布置地雷打印展示数组排查地雷记录指定区域周围地雷的个数判断排雷成功排查地雷实现代码 基本功能的实现代码和效果展示 拓展功能简化游戏界面改变字体颜色实…

[创业之路-73] :如何判断一个公司或团队是熵减:凝聚力强、上下一心,还是,熵增:一盘散沙、乌合之众?

目录 前言&#xff1a; 一盘散沙、乌合之众&#xff1a; 凝聚力强、上下一心&#xff1a; 一、股权结构与利益分配 一盘散沙、乌合之众 凝聚力强、上下一心 二、组织架构与岗位职责 一盘散沙、乌合之众 凝聚力强、上下一心 三、战略目标 一盘散沙、乌合之众 凝聚力…

碳排放预测模型 | Python实现基于MLP多层感知机的碳排放预测模型(预测未来发展趋势)

文章目录 效果一览文章概述研究内容环境准备源码设计学习总结参考资料效果一览 ![1](https://img-blog.csdnimg.cn/34c113bde2 文章概述 碳排放预测模型 | Python实现基于MLP多层感知机的碳排放预测模型(预测未来发展趋势) 研究内容 这是数据集的链接:https://github.com/…

【伏羲八卦图】(PythonMatlab实现)

目录 1 与达尔文对话 2 与老子对话 2.1 Python实现 2.2 Matlab实现 1 与达尔文对话 140年前&#xff0c;1858年7月1日&#xff0c;达尔文在英伦岛发表了自己有关自然选择的杰出论文。他提出&#xff0c;生物的发展规律是物竞天择。经过物竞&#xff0c;自然界选择并存留最具…

【CAD】【动态块】CAD设置动态块

文章目录 1 CAD的动态块及应用2 块的相关概念2.1 块的相关命令2.1.1 创建块BLOCK2.1.2 插入块INSERT2.1.3 编辑块BEDIT2.1.4 重命名块RENAME 2.2 CAD组&#xff08;group&#xff09;和块&#xff08;block&#xff09;的区别2.3 “块”&#xff08;block&#xff09;和“写块”…

CMake学习(6): 打印日志信息及宏定义

1. message 打印日志 介绍CMake中的调试打印命令Message, 可以为用户显示一条消息&#xff0c;并在终端上打印显示。假如&#xff0c;我们通过File命令对文件进行了搜索&#xff0c;但是不能确定搜索到的文件就是我们需要的文件。此时&#xff0c;可以利用message将搜索到的变…

PS 套索选区工具(2) 多边形套索工具 磁性套索工具使用技巧

上文PS 套索选区工具(1) 套索工具基础使用带大家了解了套索工具的基本操作 这边 我们右键套索工具 它还有个 多边形套索工具 多边形套索工具是用来画直线的 我们选中它 然后 我们鼠标点击一下 然后 移动到指定位置 从你点的位置开始 到结束的地方 就会形成一个直线的选区 点…

SpringBoot项目编译运行时提示“程序包xxx不存在,找不到符号”

今天想要在虚拟机上部署自己的前后端项目&#xff0c;在系统打包时碰到了这个问题&#xff0c;记录一下 1. 项目结构&#xff0c;启动程序再pub-oa-web项目中 2、编译异常报错分析 编译中报错是在其他子项目中都配置了如下代码&#xff0c;导致项目每个子项目都是可执行的&am…

第五章数组

我们之前学习&#xff0c;如果我们存储一个值&#xff08;或者说只有一个值在改变&#xff09;那么我们使用变量&#xff1b; 但是如果我们需要存储多个值&#xff0c;因该怎么办呢&#xff01; 1 数组 1.1 概念 数组Array&#xff0c;标志是[ ] ,用于储存多个相同类型数据的集…

JDBC 连接池 详解(通俗易懂)

目录 一、前言 二、传统连接方式的弊端分析 1.局限性 : 2.几个弊端 : 三、数据库连接池 1.基本介绍 : 2.示意图如下 : 3.连接池种类 : 四、C3P0连接池 0.准备工作 : 1.方式一 —— 程序中指定相关参数 : 2.方式二 —— 通过配置文件 : 五、Druid&#xff08;德鲁伊…

Vue中如何进行路由懒加载

Vue中如何进行路由懒加载 路由懒加载是一种优化Vue应用程序性能的技术。它可以延迟加载路由组件&#xff0c;从而减少应用程序的初始加载时间&#xff0c;提高应用程序的性能。本文将介绍Vue中如何进行路由懒加载&#xff0c;包括使用Vue异步组件和Webpack代码分割。 使用Vue异…

Docker本地私有仓库、harbor私有仓库部署与管理

目录 一、本地私有仓库1、本地私有仓库简介2、搭建本地私有仓库3、容器重启策略介绍 二、harbor私有仓库部署与管理1、什么是harbor2、Harbor的特性3、Harbor的构成4、harbor部署及配置①部署docker-compose②部署Harbor服务③登录创建项目④登录仓库并上传镜像 5、客户端测试①…

Python 基于 Django 的学生成绩管理系统,可视化界面

1简介 对于学生成绩管理系统&#xff0c;充分运用现代化的信息技术手段&#xff0c;对于学生成绩信息管理发展的趋势就是信息化&#xff0c;信息化时代下的信息管理&#xff0c;需要深化信息管理体制与手段的改革&#xff0c;充分运用信息化手段来全方位的进行学生成绩管理系统…

Vue中如何进行数据响应式更新?

Vue中如何进行数据响应式更新&#xff1f; Vue是一款流行的JavaScript框架&#xff0c;它提供了数据响应式更新的能力&#xff0c;可以让我们轻松地更新数据&#xff0c;并自动更新视图。本文将介绍Vue中如何进行数据响应式更新&#xff0c;包括使用Vue的响应式系统、使用计算…

nacos-sdk-rust binding for Python

广告时间 nacos-sdk-rust-binding-py : nacos-sdk-rust binding for Python with PyO3. Tip: nacos-sdk-python 仓库暂未提供 2.x gRPC 交互模式&#xff0c;为了能升级它&#xff0c;故而通过 ffi 方式调用 nacos-sdk-rust py 包 -> https://pypi.org/project/nacos-sdk-r…

【Java代码的运行过程】 ——每天一点小知识

&#x1f4a7; J a v a 代码的运行过程 \color{#FF1493}{Java代码的运行过程} Java代码的运行过程&#x1f4a7; &#x1f337; 仰望天空&#xff0c;妳我亦是行人.✨ &#x1f984; 个人主页——微风撞见云的博客&#x1f390; &#x1f433; 《数据结构与算法》专栏…