华为数通HCIP-MPLS

传统ip转发

路由器根据流量的dip查找路由表进行转发;

缺陷:查找路由表需要消耗一定CPU开销;(可以通过FIB表解决)

        安全性低,中间转发设备可以看到网络层ip信息;

FIB(转发信息库)

定义:精简版路由表,只将路由表中的转发信息(目的网段、掩码、下一跳、出接口)提取出来,下载到每个接口板中,当路由器需要查表接口板fib表,无需调用CPU;

特点:新增tunnel id

display fib    //查看fib表

MP-BGP

MP-BGPMultiprotocol Extensions for BGP-4)在RFC4760中被定义,用于实现BGP-4的扩展以允许BGP携带多种网络层协议(例如IPv6L3VPNEVPN等)。这种扩展有很好的后向兼容性,即一个支持MP-BGP的路由器可以和一个仅支持BGP-4的路由器交互。

 BGP-4扩展

BGP-4中IPv4特有的三个信息是NEXT_HOP属性、AGGREGATOR和IPv4 NLRI。因此为了支持多种网络层协议,BGP-4需要增加两种能力:
        关联其他网络层协议下一跳信息的能力。
        关联其他网络层协议NLRI的能力。
这种两种能力被互联网数字分配机构(IANA)统称为地址族(Address Family,AF)。
为了实现后向兼容性,协议规定MP-BGP增加两种新的属性,MP_REACH_NLRI和MP_UNREACH_NLRI,分别用于表示可达的目的信息和不可达的目的信息。这两种属性都属于可选非过渡(optional and non-transitive)。

 BGP-4规定IPv4的NEXT_HOP和AGGREGATOR属于Path attributes字段,IPv4的NLRI中携带IPv4的路由条目。
MP-BGP新增Path attributes的字段,将对应的网络层协议的NEXT_HOP字段和NLRI归属于MP_REACH_NLRI。MP_REACH_NLRI为Path attributes的新增字段。

MP_REACH_NLRI

MP_REACH_NLRI被携带于BGP Update报文中,有以下作用:
        通告可达的路由给BGP邻居
        通告可达路的路由的下一跳给BGP邻居
其详细字段如下:

 SAFI字段中1表示单播,2表示组播。值由IANA分配,其分配原则被定义于RFC2434(Guidelines for Writing an IANA Considerations Section in RFCs)。
本章节后续学习EVPN的AFI为25 (L2VPN) ,SAFI为70 (EVPN)。 

MP_UNREACH_NLRI

MP_UNREACH_NLRI被携带于BGP Update报文中,用于撤销不可达的路由。
其详细字段如下:
 

 例如EVPN的AFI为25 (L2VPN) ,SAFI为70 (EVPN)。 

MPLS简介

MPLSMultiprotocol Label Switching,多协议标记交换)

定义:在数据包的网络层以及数据链路层之间压入一层mpls层,其中会包含标签,中间设备根据标签查找标签转发表进行转发,不在查看路由表;

作用:

1、可以在转发过程中保护网络层头部;

2、减轻设备负担,加快转发速率(中间设备无需查看fib);
3、实现mpls vpn广域互联;
4、解决BGP路由黑洞的问题;

位于TCP/IP协议栈中的数据链路层和网络层之间,在两层之间增加了额外的MPLS头部。报文转发直接基于MPLS头部。MPLS头部又被称为MPLS标签(Label)。
MPLS以标签交换替代IP转发,实现了基于标签的快速转发。

 MPLS起源于IPv4(Internet Protocol version 4),其核心技术可扩展到多种网络协议,包括IPv6(Internet Protocol version 6)、IPX(Internet Packet Exchange)、Appletalk、DECnet、CLNP(Connectionless Network Protocol)等。MPLS中的“Multiprotocol”指的就是支持多种网络协议。
MPLS以标签交换替代IP转发。标签是一个短而定长的、只具有本地意义的连接标识符,与ATM的VPI/VCI以及Frame Relay的DLCI类似。
MPLS域(MPLS Domain):一系列连续的运行MPLS的网络设备构成了一个MPLS域。

LFIB(标签转发信息表)

内容:入标签、出标签、出接口、下一跳、FEC、tunnel id;
FEC:转发等价类,指具有相同转发特性的路由,可以直接看作为一条路由;

设备角色

入节点(ingress):入标签为null,负责根据出标签为数据包压入(push)标签;
中间节点(transit):负责根据收到数据包的标签,匹配入标签,并且将标签转换(swap)为出标签,再根据标签转发表中的出接口下一跳转发数据包;
出节点(egress):出标签为null,负责根据收到数据包的标签,匹配入标签,并且将对应标签弹出(pop),看到网络层头部,并且根据网络层头部的dip进行转发;

MPLS层

大小:4个字节(4B)

内容:

1、标签(label)20bit

        0~2的20次方-1

        0~15:保留标签,有固定用途;

                0:显式空标签

                3:隐式空标签

        16~1023为静态LSP的专属标签;(其中入标签范围为16~1023,出标签范围为16~2的20次方-1)

        1024~2的20次方-1:动态LSP专属;

2、EXP(实验位) 3bit

        0~7,代表数据包的优先级,类似于IPV4头部中的DSCP,提供给QOS使用;

3、S(栈底位) 1bit

        0 1,代表本层标签是否为最后一层;

        是----1

        否----0

4、TTL
        用于在mpls网络中防止流量无限转发;
        每经过一台设备的标签转发后会减1;

        TTL计算模式:
     (1)管道模式(华为默认)
              不管mpls网络多大,网络层头部的TTL值,只会在进入mpls域时以及离开mpls域时减1;
              优势:可以保护mpls网络的隐秘性;
              缺陷:出现故障时不好排查;
     (2)普通模式
              数据包在mpls网络中转发的过程中,mpls头部与ip头同步减少;
              优势:方便排障;
              缺陷:不安全;

LSP(标签交换路径)

定义:指从入节点到出节点,某一条FEC的完成标签交换路径;
构建方式:静态(手动配置)、动态(LDP)

LSR-ID

格式、大小:跟router id一致;
   作用:唯一标识一台mpls设备;
             作为传输地址(动态);
   特点:只能手工配置;
             必须可达(动态);

静态配置LSP:
[R1]mpls lsr-id 1.1.1.1         //指定LSR ID
[R1]mpls                             //全局下开启mpls

入节点:
[R1]static-lsp ingress 1 destination 4.4.4.4 32 nexthop 10.1.12.2 out-label 1000        //为4.4.4.4/32路由构建LSP,设置tunnel id为1,并且设置下一跳为10.1.12.2,出标签为1024

中间节点
[R2]static-lsp transit 1 incoming-interface GigabitEthernet 0/0/0 in-label 1000 nexthop 10.1.23.3 out-label 1001                    //注意下游设备的入标签需要跟上游设备的出标签一致,才能确保标签转发没有问题;

出节点
[R4]static-lsp egress 1 incoming-interface GigabitEthernet0/0/0 in-label 1002

所有物理接口下调用mpls;
interface GigabitEthernet0/0/0
mpls

优势:不交互报文,节省链路资源;

缺陷:配置量大;

        无法动态适应网络变化;

display mpls lsp verbose        //查看LFIB表

动态建立LSP

mpls ldp(标签分发协议)

[R1]mpls lsr-id 1.1.1.1           //指定LSR ID,必须可达
[R1]mpls                               //全局下开启mpls
      mpls ldp                         //全局下开启mpls ldp

所有物理接口下开启mpls以及mpls ldp;
interface GigabitEthernet0/0/0
 mpls
 mpls ldp

ldp报文:LDP——传输层头部——网络层头部——数据链路层头部
  LDP hello报文工作在UDP之上;
  其余的LDP报文工作在TCP之上;
  端口号:646
  hello报文的发送方式:组播发送(使用dip 224.0.0.2,代表网段内的所有路由器)
  其余报文的发送方式:单播发送;

mpls ldp工作过程


 1、发现阶段
      双方组播发送hello报文,用于发现邻居;
      告知对端自身的传输地址(默认为LSR ID)
      确认TCP连接的主动端,传输地址大的为主动端;

 2、建立TCP连接
      由主动端发起TCP三次握手连接请求,其中sip为自身的传输地址,dip为对方的传输地址;

 3、会话阶段
      由主动端发起,发送init报文,请求建立会话;
      协商参数:
     (1)LSR ID不能冲突;
     (2)标签空间id要一致;
      被动端收到init报文,会回应keepalive+init组合报文,其中keepalive部分用于确认建立主动端到被动端的会话,init部分用于请求建立被动端到主动端的会话;
      主动端收到后,回应keepalive报文,确认建立会话;
      双向会话建立完成;

      display mpls ldp peer         //查看ldp邻居

 4、通告阶段
      会话建立完成后,双方会交互address报文,用于告知对端自身有什么ip地址;
      每台LDP设备都会为自身的32位直连路由,由下游往上游逐跳分发标签;
      产生一个标签作为对应路由的入标签,并且通过mapping报文,发送给上游设备,上游设备收到后,会将该标签作为对应路由的出标签,并且产生一个入标签,继续向上游发送,直至入节点收到为止;
      
     当一台ldp设备收到一份mapping报文后,会做出以下检查:
      1、对应的FEC在本地FIB中是否存在路由;
      2、接收到该mapping报文的接口,是否为去往该路由的最优出接口;
      3、该mapping报文的发送者,是否为本设备去往该路由的最优下一跳;
     只有上述三个条件均满足,才能说明该标签是有效且最优的,才能作为出标签使用;

        4.1标签的分发方式:

         (1)DU(下游自主),华为默认

                会话建立完成后,所有LDP设备会为自身的32直连路由分配标签;

                缺陷:会产生无意义的隧道;

                优势:分配的效率高;

         

         (2)DOD(下游按需)

                下游设备需要等收到上游设备发送的label request报文,才会分配标签;

                缺陷:分配标签速率慢

                优势:按需分配标签,不会产生无意义的隧道;

        4.2 标签控制方式

        (1)有序模式(ordered),华为默认

                上游设备需要收到下游设备标签,才会继续向上游分发;

                优势:LSP的完整性能得到保障;

                缺陷:效率低;

        (2)独立模式(independent)

                上游设备无须收到下游设备的标签,即可向上游发送;

                优势:效率高;

                缺陷:可能会导致隧道不完整;

                如果mpls是用于解决BGP路由黑洞或者用于VPN时,可能会导致丢包;

        4.3 标签保持方式

        (1)自由模式(默认)

                对于次优标签,路由器也会接收,作为备份使用;

                优势:主备切换效率高;

                缺陷:设备需要维护多条LSP,开销较大;

        (2)保守模式

                对于次优标签,不接收

                优势:节省设备开销;

                缺陷:主备切换效率低;

display mpls ldp lsp //查看LDP建立的LSP的摘要信息;

 5、通知阶段(可选)
        如果LDP会需要关闭时(人为关闭MPLS,超过时间内没收到对方的keepalive......),则进入该阶段。进行TCP四次挥手拆除TCP连接;

**一台设备上一条FEC,出入标签可以一致的;

**一个出标签以及入标签,只能对应一条FEC,在一台设备上标签不能重复用于多条路由;

PHP(倒数第二跳弹出机制)

作用:减轻最后一跳设备的负担(正常标签转发过程中,最后一跳路由器需要先查看标签转发表,弹出标签,再根据dip查找fib,转发流量);

机制:ldp设备为自身的32位直连路由分配标签时,默认分配3号标签;

倒数第二跳路由器将标签swap成3号标签后,直接将mpls层剥离,然后根据标签转发表的出接口、下一跳进行发送,最后一跳路由器收到后,直接根据dip查找fib表转发;

[R4]route recursive-lookup tunnel //迭代隧道,如果一条路由的下一跳存在lsp隧道,那么可以将下一跳的隧道给该路由使用,前提是下一跳必须是32位的路由;一般用于解决BGP路由黑洞;

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

intellij 编辑器内性能提示

介绍 IntelliJ IDEA已经出了最新版的2023.2,最耀眼的功能无法两个 AI Assistant编辑器内性能提示 AI Assistant 已经尝试过了是限定功能,因为是基于open ai,所以限定的意思是国内无法使用,今天我们主要介绍是编辑器内性能提示 IntelliJ Pr…

都2023年了还不会Node.js爬虫?快学起来!

爬虫简介 什么是爬虫 爬虫(Web Crawler)是一种自动化程序,可以在互联网上自动抓取网页,并从中提取有用的信息。 爬虫可以模拟人类浏览器的行为,自动访问网站、解析网页、提取数据等。 通俗来说,爬虫就像…

x3daudio1 7.dll丢失怎么修复,哪个修复方法更推荐使用

最近我的电脑出现了一个错误提示,说缺少一个名为x3daudio1_7.dll的文件。这个错误导致我无法运行一些游戏和应用程序。为了解决这个问题,我开始寻找修复方法,在这个过程中,我了解到x3daudio1_7.dll是一个与音频相关的库文件&#…

vs2013 编译wxwidgets界面库

首先进入官网下载,本人再git上下载的基本都编译失败 https://www.wxwidgets.org/ 在网站里面找最新的就可以,下载之后放在一个目录,找到vs的目录 然后找到wx_vc12.sln,打开编译即可 Debug、Release编译出来的是静态库 DLL Deb…

【C++】【自用】选择题 刷题总结

文章目录 【类和对象】1. 构造、拷贝构造的调用2. 静态成员变量3. 初始化列表4. 成员函数:运算符重载5. 友元函数、友元类55. 特殊类设计 【细节题】1. 构造 析构 new \ deletet、new[] \ delete[] 【类和对象】 1. 构造、拷贝构造的调用 #include using namespace…

Python GDAL为具有多个波段的大量栅格图像绘制像素随时间变化走势图

本文介绍基于Python中的gdal模块,对大量长时间序列的栅格遥感影像文件,绘制其每一个波段中、若干随机指定的像元的时间序列曲线图的方法。 在之前的文章Python中GDAL批量绘制多时相栅格遥感影像的像元时间序列曲线图(https://blog.csdn.net/z…

C++,类和对象-多态,制作饮品

#include<iostream> using namespace std;//多态案例&#xff0c;制作饮品class AbstractDrinking { public://煮水virtual void Boil() 0;//冲泡virtual void Brew() 0;//倒入茶杯virtual void PourInCup() 0;//加入辅料virtual void PutSomething() 0;//制作饮品vo…

Codeforces Round 886 (Div. 4)F题解

文章目录 [We Were Both Children](https://codeforces.com/contest/1850/problem/F)问题建模问题分析1.分析到达的点与跳跃距离的关系2.方法1倍数法累计每个点所能达到的青蛙数代码 方法2试除法累计每个点能到达的青蛙数代码 We Were Both Children 问题建模 给定n个青蛙每次…

文本预处理——文本数据分析

目录 文本数据分析中文酒店评价语料获得训练集和验证集的标签数量分布获取训练集和验证集的句子长度分布获取训练集和验证集的正负样本长度散点分布获得训练集和验证集不同词汇总数统计获得训练集上正负的样本的高频形容词词云获得验证集上正负的样本的形容词词云 文本数据分析…

【Java】Spring关于Bean的存和取、Spring的执行流程以及Bean的作用域和生命周期

Spring项目的创建普通的存和取存储Bean创建Bean将Bean注册到容器中 获取并使用Bean获取Spring上下文获取并使用 更简单的存和取存储Bean配置扫描路径添加注解类注解Bean的命名规则五大注解的区别方法注解Bean方法注解要配合类注解使用重命名 Bean有参数的方法 获取Bean属性注入…

Redis三种模式——主从复制,哨兵模式,集群

目录 一、主从复制 1.1主从复制的概念 1.2Redis主从复制作用 1.2.1数据冗余 1.2.2故障恢复 1.2.3负载均衡 1.2.4高可用基石 1.3Redis主从复制流程 1.4部署Redis 主从复制 1.4.1.环境部署 1.4.2.所有服务器都先关闭防火墙 1.4.3.所有服务器都安装Redis 1.4.4修改Master主节点R…

【C#】微软的Roslyn 是个啥?

一、说明 Roslyn 是微软重写的C#编译器并开源。 Roslyn 是 C# 和 Visual Basic.NET 开源编译器的代号。以下是它如何在过去十年企业Microsoft的最黑暗中开始&#xff0c;并成为所有C#&#xff08;和VB&#xff09;的开源&#xff0c;跨平台&#xff0c;公共语言引擎&#xff0c…

el-upload上传图片和视频,支持预览和删除

话不多说&#xff0c; 直接上代码&#xff1a; 视图层&#xff1a; <div class"contentDetail"><div class"contentItem"><div style"margin-top:5px;" class"label csAttachment">客服上传图片:</div><el…

教育新花样?看智慧教育如何出“花样”

智慧教育是物联化、智能化、感知化、泛在化的新型教育形态和教育模式。数字孪生可视化作为智慧教育的应用之一&#xff0c;优化了教育发展形态。本文以智慧教育浙江大学项目为例&#xff0c;介绍智慧教育的具体应用场景。 一、项目背景 &#xff08;一&#xff09;政策背景 …

springboot自动装配

SPI spi &#xff1a; service provider interface &#xff1a; 是java的一种服务提供机制&#xff0c;spi 允许开发者在不修改代码的情况下&#xff0c;为某个接口提供实现类&#xff0c;来扩展应用程序 将实现类独立到配置文件中&#xff0c;通过配置文件控制导入&#xff…

基于Ko-time的Springboot单体化调用链追踪实践

目录 前言 一、关于Ko-Time 1、是什么&#xff1f; 2、ko-time更新时间线 二、Ko-time怎么用&#xff1f; 1、依赖引入 2、配置集成 3、权限放行 三、链路追踪 1、系统运行 2、链路追踪 3、长时间调用模拟 总结 前言 熟悉微服务的老司机一定了解&#xff0c;在微服务模…

【C++】特殊类的设计 | 类型转换

文章目录 1. 特殊类的设计单例模式饿汉模式具体代码 懒汉模式具体代码 懒汉模式和饿汉模式的优缺点 2. C的类型转换C语言的类型转换C的类型转换static_castreinterpret_castconst_castdynamic_cast 1. 特殊类的设计 单例模式 设计模式是 被反复使用 多数人知晓 经过分类的、代…

React之生命周期

React之生命周期 旧版本&#xff0c;函数组件是没有生命周期的。新版本中通过useEffect触发函数的生命周期 一、基于类组件的生命周期 React的组件生命周期分为挂载阶段、更新阶段和销毁阶段。因为React的state不具有Vue的响应式&#xff0c;所以并没有create阶段 1、挂载阶段&…

第八章:list类

系列文章目录 文章目录 系列文章目录前言list的介绍及使用list的介绍list的使用list的构造函数list的迭代器list的容量list的成员访问list的增删改查 list与vector的对比总结 前言 list是STL的一种链表类&#xff0c;可以在常数范围内在任意位置进行插入和删除的序列式容器。 …

专访伊士曼中国区高管赵志伟:以创新应对新能源汽车后市场变化

受访人&#xff1a;伊士曼高性能膜事业部中国区商务总监赵志伟 新能源汽车发展至规模化阶段&#xff0c;以贴膜、保养维修为主的后市场产业迎来快速崛起&#xff0c;新能源消费者在汽车贴膜、改装和养护领域也表现出比燃油车更高频的需求度。 作为一家全球特种材料公司&#x…