网络学习:MPLS标签与标签分配协议—LDP

news2024/11/24 19:35:25

目录

前言:

一、MPLS标签

1、定义:

2、标签结构:

3、标签识别:

二、标签分配协议---LDP(Lable Distribution Protocol)

1、定义:

2、标签分配协议的种类:

3、LDP消息类型

4、LDP会话建立和维护

5、LDP邻居状态机

6、标签转发表

7、LSP建立流程(标签分配的过程)

8、标签通告模式

9、标签控制模式

10、标签保持方式

11、带标签的MPLS报文转发流程


前言:

        在MPLS技术基础知识一文中,我们了解到MPLS、MPLS VPN、BGP MPLS VPN都是现在非常重要并且常见的技术,接下来我们将深入学习MPLS标签与它的分配协议—LDP。

一、MPLS标签

1、定义:

  • 一个短的、易于处理的、不包含拓扑信息、只具有局部意义的信息内容。Lable短是为了易于处理,通常可以用索引直接引用;只具有局部意义是为了便于分配。例如:一个路由器上的IN和OUT都是1500,并不会对转发产生啥影响。

  • 标签通常位于二层和三层的头部之间

  • LSR根据MPLS标签决定如何转发数据

2、标签结构:

image/png

image/png

标签只有4个字节,32个bits

分为4个区域:

(1)label:标签值,长度20bits,是标签转发的关键索引。

        0-15为保留标签:0表示该标签必须弹出,交给IPV4处理;2表示该标签必须弹出,交给IPV6处理;3表示倒数第二跳弹出;

        16-1024为静态标签;

        1024-65536位动态标签。

(2)TC位:Traffic Class field,流量类别字段,用于QOS标识优先级,长度3bits,数字越大,优先级越高。

        EXP ,Experimental Use,实验性使用字段,预期用途是作为“服务等级”(Class of Service,CoS) 字段;

        注意:TC和EXP所表示的意思是一样的,有的文档里用的EXP,有的文档里用的是TC,现在EXP”字段被重命名为“TC”字段

(3)S:栈底标识,长度1bits。

        S为1表示为最后一个标签;

        S为0表示后续还有标签。这就意味着我们可以多次封装标签,嵌套标签。这在MPLS VPN和BGP MPLS VPN中会被使用,如下图:

image/png

(4)TTL:存活时间,长度8bits,用于当网络出现环路时,防止标签报文被无限制转发。

        它有两种处理模式:

        1,Uniform:IP报文进入mpls网络时,拷贝IP头部的TTL至标签交换,每经过一次标签交换,标签TTL-1,经过出节点时,把标签TTL再次-1后替 换到原IP头部的TTL。

       2, pipe:IP头部进入MPLS时,IP头部TTL-1,MPLS标签中的TTL为固定值,每经过一次标签交换,标签TTL-1,直到经过出节点时,将IP头部TTL-1。

        这两种模式最大的区别在于Uniform可以使接收设备感到TTL值的变化,可以知道自己经过了几个路由器,而pipe做不到。

3、标签识别:

以太网帧中,通过Type字段对MPLS进行识别

Type=8847,代表承载的是MPLS报文

Type=0800,代表承载的是IP报文

image/png

二、标签分配协议---LDP(Lable Distribution Protocol)

1、定义:

用于LSR之间分配标签,建立LSP,简单可靠,是MPLS网络中应用最广泛的标签分配协议之一。

2、标签分配协议的种类:

LDP

RSVP-TE

MP-BGP----专门在BGP网络中,支持标签分配协议的,适合用IPV4

MP-BGP(BGP4+)----专门在BGP网络中,支持标签分配协议的,适合用IPV6

3、LDP消息类型

发现消息(discovery messages):用于LDP邻居的发现和维持。

会话消息(session messages):用于LDP邻居会话的建立、维持和中止。

通告消息(advertisement messages):用于LDP实体向LDP邻居宣告Label、地址等信息。

通知消息(Notification messages):用于向LDP邻居通知事件或错误。

4、LDP会话建立和维护

image/png

5、LDP邻居状态机

image/png

6、标签转发表

LDP会话建立完成后,路由器根据路由表进行标签分配,形成MPLS标签转发表

标签转发表包含入标签、出标签和出接口

入标签:接收到的报文携带的标签

出标签:转发数据把入标签替换为出标签

出接口:报文数据发出的接口

7、LSP建立流程(标签分配的过程)

上游与下游:

image/png

设备的上下游,与数据转发的方向相对,数据先到达的地方是上游,后到达的地方是下游。

流程:

image/png

注:标签分配的过程必须基于全网通的情况下

每台路由器是怎么知道自己是上游还是下游?假设用户A要和用户B通信,全网通,这3台路由器都已经配置了LDP协议,并且邻居已起来

过程描述:

  • 从A发出的数据包应该是这个样子:D:20.0.0.1+S:10.0.0.1,LSR1收到后会查看路由表,得知其下一跳是LSR2的左边接口,这也就意味是LSR1发现这个数据包的下一跳是自己的LDP邻居,于是LSR1就知道自己是这个数据包中去往目的地的上游,此时LSR1会向LSR2发起标签分配的请求,请求LSR2给LSR1分配一个去往20.0.0.1的标签。

  • LSR2收到数据包后也会查路由表寻找下一跳,也会向LSR3发起标签分配的请求,请求LSR3给LSR2分配一个去往20.0.0.1的标签。

  • LSR3收到数据包后也会查路由表,发现其下一跳不是自己的LDP邻居,这就意味着这个数据包的终点是自己,自己是最后一跳。

有一种复杂的情况:R1-R3都配置了LDP协议,唯独R4没有配置LDP协议

image/png

此时LSR3收到LSR2的数据包后,会查路由表找到目的地的下一跳,发现下一跳是LSR4,但LSR4不是自己的LDP邻居,这会让LSR3同样的认为自己就是这个数据包的终点,自己值最后一跳

  • 当LSR3知道自己是终点,是最后一跳时,LSR3会产生一个IN和OUT标签,但此时OUT标签是空的(因为它已经知道自己是最后一跳,就没必要给自己给标签了),IN标签是随机产生的,但是因为自己是最后一跳,所以,根据情况可以有三个选择:

0表示该标签必须弹出,交给IPV4处理;

2表示该标签必须弹出,交给IPV6处理;

3表示倒数第二跳弹出。

假设,这个图上配置的地址是IPV4地址,此时的IN标签应该为0,出接口没有(因为是最后一跳),最后LSR3会把自己的标签值通过标签通告报文(advertisement messages),传给自己的上游LSR2。

image/png

  • 当LSR2收到LSR3传的标签通告报文后,会将收到报文的接口S1/1作为自己的出接口,LSR3的IN标签作为自己的出标签,自身的IN标签可自动给出一个随机值,比如:IN=1200

    image/png

  • 当LSR1收到LSR2传的标签通告报文后,会将收到报文的接口S0/1作为自己的出接口,LSR2的IN标签作为自己的出标签,自身的IN标签可自动给出一个随机值,但因为自己是起点,所以没有IN标签

    image/png

  • 此时LSP的建立流程(标签分配的流程)就结束了。

总结:

(1)出节点LSR收到上游标签分配请求后,建立LSP

  • 出标签为空

  • 入标签设置为3或者0或者2,视情况而定

  • 出接口为IP路由表中目的网段的出接口

(2)出节点LSR向上游LSR发布标签映射消息,通告本机LSR的入标签

(3)上游LSR根据标签映射消息建立LSP

  • 出标签为下游LSR通告的入标签

  • 入标签随机产生

  • 出接口为收到标签映射消息的接口

(4)LSR继续向上游发布标签映射消息,直到入节点

(5)入节点LSR建立LSP

  • 出标签为下游LSR通告的入标签

  • 入标签为空

  • 出接口为收到标签映射消息的接口

8、标签通告模式

(1)DOD:downstream-on-demand,下游按需标记分配,默认模式

image/png

特征:上游LSR先向下游LSR发送标签请求信息;下游LSR收到标签请求消息后,为此FEC分配标签,并向上游逐层通告。

优点:没有访问需求的地址,不会建立LSP,减轻路由器的性能负担。

缺点:有访问需求才会触发建立LSP,会导致触发报文的前几个无法连通(LSP的建立需要过程,在每个路由器标签没有分配好前,有访问需求,会导致访问失败)。

(2)DU:downstream unsolicited,下游自主标记分配

image/png

特征:下游LSR在LDP会话建立后,主动向上游LSR通告标签映射消息,无需等待上游请求。

优点:无需统一访问请求触发,不会存在一组FEC前几个包不通的情况。

缺点:路由器会主动建立所有路由表中下一跳为非LDP邻居的网段的LSP,导致大量的LSP信息,而且很多可能是暂时无用的。

9、标签控制模式

有序:只有从最下游的LSR开始建立标签后,才能逐层通告

image/png

无序(独立):不管有没有收到下游的标签映射消息,都立即向上游发送标签映射消息(即使标签重复也无所谓)

image/png

10、标签保持方式

(1)保守模式:只保留最优路径的,来自下一跳邻居的标签,丢弃所有非下一跳邻居发来的标签;

如果IP路由表中存在等价路由,LSP会建立等价路径,做负载均衡。

image/png

特征:

增加LSP的收敛时间;(一旦主路故障了,需要启动备用路径,重新建立标签分配的过程)

节省内存空间和标签。

(2)自由模式:保留所有邻居标签

image/png

特征:

减少LSP收敛时间;

需要更多的内存和标签空间。

11、带标签的MPLS报文转发流程

  • 报文进入MPLS网络,入节点检查标签转发表,进行PUSH操作,如下图:

    image/png

  • 报文在Transilt LSR中传输时,路由器检查标签,并在标签转发表中匹配,进行标签SWAP操作

    image/png

  • 报文到达出节点,路由器弹出pop标签,并按照普通数据报文进行报文

    image/png

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

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

相关文章

C/C++平方和问题(蓝桥杯)

题目描述: 小明对数位中含有2、0、1、9 的数字很感兴趣,在1 到40 中这样的数包 括1、2、9、10 至32、39 和40,共28 个,他们的和是574,平方和是14362。 注意,平方和是指将每个数分别平方后求和。 请问&#…

从零开始学习Netty - 学习笔记 -Netty入门【协议设计和解析】

2.协议设计和解析 协议 在计算机中,协议是指一组规则和约定,用于在不同的计算机系统之间进行通信和数据交换。计算机协议定义了数据传输的格式、顺序、错误检测和纠正方法,以及参与通信的各个实体的角色和责任。计算机协议可以在各种不同的层…

第四十九回 吴学究双掌连环计 宋公明三打祝家庄-Python与HTTP服务交互

吴用请戴宗从梁山请来铁面孔目裴宣、圣手书生萧让、通臂猿侯健、玉臂匠金大坚来帮忙。又告诫扈家庄的扈成,打起来不要去帮祝家庄。 孙立把旗号改成“登州兵马提辖孙立”,来祝家庄找峦廷玉,被热情接待。 第三天,宋江派小李广花荣…

001 GUI编程简介

一个知识该怎么学? 这是什么该怎么玩能干什么 图形化程序应该包含并不限于如下组件 窗口弹窗面板文本框列表框按钮图片监听事件鼠标键盘事件 GUI介绍 核心技术:Swing与AWT 不流行原因:界面不美观、需要JRE环境 仍然学习的原因&#xf…

备战蓝桥杯---树形DP基础3

上一次我们讲了二叉苹果树,现在我们加一点难度,从二叉变成了多叉苹果树。 这样子我们就不可以直接按照上次的方法DP,我们其实可以发现,我们可以用类似背包的思想求解,这就是所谓的树上背包。 我们先加进第一个儿子来…

骨传导耳机哪个牌子好?六大选购窍门,帮你甩掉坑货!

很多用户对骨传导耳机的理解存在偏差,认为只要选择价格贵的、热度高的产品就能万事大吉,而实际却不是如此,要知道,随着骨传导耳机逐渐成为热门款式,目前的市场上的骨传导耳机品牌也变得五花八门,这其中就包…

springboot230基于Spring Boot在线远程考试系统的设计与实现

在线远程考试系统设计与实现 摘 要 信息数据从传统到当代,是一直在变革当中,突如其来的互联网让传统的信息管理看到了革命性的曙光,因为传统信息管理从时效性,还是安全性,还是可操作性等各个方面来讲,遇到…

数据库学习案例20240304-mysql数据库案例总结(碎片,统计信息)

1 表中的碎片 在InnoDB中删除行的时候,这些行只是被标记为“已删除”,而不是真正从物理存储上进行了删除,因而存储空间也没有真正被释放回收。InnoDB的Purge线程会异步地来清理这些没用的索引键和行。但是依然没有把这些释放出来的空间还给操…

ES核心概念(45-48)(56-62)(101-103)

ES集群 ES集群(Cluster)包含多个节点(服务器),整体提供服务 核心概念 索引Index:类似于mysql中的表 映射Mapping:数据的结构信息 文档:相当于表中的一条记录 分片: 将数据分成多片…

4、pod运维replicationCtroller、replicaSet、DeamonSet、Job、Cronjob

1、kubenetes 会自动重新运行失败的pod应用 pod运行失败,会自动重启,但是节点失败,pod会被移除, 除非配置了relicationController来管理资源 2、保持pod的健康存活 配置探针,发送http请求 3、查看前一个pod的运行日…

字节扣子 Bot | Bot 介绍

一、什么是 coze ? Coze 是一个由字节跳动开发的一个用于开发新一代 AI Chat Bot 的应用编辑平台。在这个平台上,即使是没有编程基础的小白,也能快速创建各种各样的聊天机器人,并将创建的机器人发布到多个社交平台和通讯软件上。 …

vue3 使用实现签到活动demo静态布局详解

文章目录 1. 实现效果2. 签到设置7天布局2.1 实现代码 3 签到设置15天布局3.1 思路分享 4 完整demo代码5. 总结 1. 实现效果 实现一个签到活动的h5页面布局,需求如下 签到活动天数可配置,可配置7天,15天,30天等默认天数要求展示2行…

利用Python自动化日常任务

在快节奏的现代生活中,时间就是一切。幸运的是,Python提供了一系列强大的库和工具,可以帮助我们自动化那些乏味且重复的任务,从而释放我们的时间,让我们可以专注于更有创造性和有意义的工作。下面,我们将探…

MySQL的初学者教程—Navicat的基本操作方法

MySQL的初学者教程—Navicat的基本操作方法 1、运行Navicat 双击桌面的Navicat 12 for MySQL。 2、新建MySQL连接 点击【测试连接】。 zyyMySQL的连接创建成功! 3、新建数据库 4、新建表 点击【保存】 表【usermanage】建好了。 点【usermanage】的鼠标右键&#…

chatgpt-next-web搭建教程,超低成本部署属于自己的ChatGPT

随着AI的应用变广,各类AI程序已逐渐普及,尤其是在一些日常办公、学习等与撰写/翻译文稿密切相关的场景,大家都希望找到一个适合自己的稳定可靠的ChatGPT软件来使用。 ChatGPT-Next-Web就是一个很好的选择。它是一个Github上超人气的免费开源…

06、MongoDB -- MongoDB 基本用法(删除文档、查询文档、查询运算符)

目录 MongoDB 基本用法演示前提:登录单机模式的 mongodb 服务器命令登录【admin】数据库的 mongodb 客户端命令登录【test】数据库的 mongodb 客户端命令 删除文档语法格式两个变体版本:1、remove:根据【name】字段删除一条文档2、deleteOne&…

pyqt程序打包成exe最新版保姆级教程

运行环境:win10、pycharm、pyqt5、pyinstaller 要求:将下面软件转换为可执行的exe文件,发送给别人使用。 操作步骤: 1、main.py为我们要转换的代码文件,icon中放着我们exe程序的图标(注意:图标…

Stable Diffusion 模型分享:3D Animation Diffusion(3D动漫)

本文收录于《AI绘画从入门到精通》专栏,专栏总目录:点这里。 文章目录 模型介绍生成案例案例一案例二案例三案例四案例五案例六案例七案例八 下载地址 模型介绍 3D Animation Diffusion 是 Lykon 大神的 3D 动漫模型。 作者述:在迪士尼、皮…

CentOS7配置静态IP地址以及主机名

配置静态IP [rootwyx ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33TYPE"Ethernet" PROXY_METHOD"none" BROWSER_ONLY"no" BOOTPROTO"static" #将dhcp修改为static DEFROUTE"yes" IPV4_FAILURE_FATAL"no"…

神经网络3-时间卷积神经网络

在深度学习的知识宝库中,卷积神经网络(CNN)广泛应用于视觉,视频等二维或者多维的图像领域。卷积网络具有深度,可并行等多种优良特性,那么这种技术是否可以应用于解单维度的时间序列问题呢?本文介…