MPLS LDP概述

一、概述

LDP是MPLS的一种控制协议,相当于传统网络中的信令协议,负责FEC的分类、标签的分配以及LSP的建立和维护等操作。LDP规定了标签分发过程中的各种消息以及相关处理过程。

1、基本概念

LDP对等体是指相互之间存在直接的LDP会话、可直接使用LDP来 交换标签消息(包括标签请求消息和标签映射消息)的两个 LSR。比 如,BGP 路由协议和 IKE(因特网密钥交换)中的对等体,其实它们 的基本设计思想是一样的,尽管它们所实现的功能不一样。在LDP对等 体中,通过它们之间的LDP会话可获得下游对等体为某FEC分配的MPLS 入标签,以此作为本端对应FEC的出标签。LDP对等体之间可以是直连的,也可以是非直连的,这点与IBGP中的对等体类似(MP-EBGP中的 对等体也可以是非直连的)。

如图1-1所示,LSR_1下面连接了一台二层交换机SW,然后在这台 二层交换机下又连接多个LSR路由器,LSR_1与LSR_2、LSR_3和LSR_4 之间则可以看成是直连的对等体关系;同理,LSR_5与LSR_2、LSR_3 和LSR_4之间也是直连对等体关系,但LSR_1与LSR_5之间也可以建立 对等体关系,它们之间是非直连对等体关系。

图1-1 LSR对等体示例

2.LDP邻接体

当一台LSR接收到对端发送的Hello消息后,两端之间就建立了LDP 邻接体关系(也就是邻居关系),这种LDP邻接体存在两种类型。

本地邻接体(Local Adjacency):通过组播形式(目的IP地址为 224.0.0.2,代表本地子网中的所有路由器)发送Hello消息(称为"链路 Hello消息")发现的邻接体叫作本地邻接体。

当一个源路由器通过一接口以组播方式发送一条 Hello 消息后,则 在这条链路下的所有直连路由器都会收到,然后这些路由器就是这个 源路由器的本地邻接体。如图 1-1中的LSR_1以组播方式发送一条Hello 消息,则LSR_2、LSR_3和LSR_4都可以收到,它们都是LSR_1的本地 邻接体。

远端邻接体(Remote Adjacency):以单播形式发送 Hello 消息 (称之为"目标Hello消息")发现的邻接体叫作远端邻接体。

远端邻接体通常被认为是非直连的,但也可以是直连的。如图 1-1 中的 LSR_1 向LSR_5以单播方式发送一条Hello消息,则LSR_5就是 LSR_1的远端邻接体。

LDP 通过邻接体来维护对等体的存在,对等体的类型取决于维护 它的邻接体的类型。一个对等体可以由多个邻接体来维护,如果同时 包括本地邻接体和远端邻接体,则该对等体类型为本远共存对等体。

二、LDP会话

LSR之间交互标签绑定消息之前必须建立LDP会话。LDP会话可以分为:

  • 本地LDP会话(Local LDP Session):建立会话的两个LSR之间是直连的;
  • 远程LDP会话(Remote LDP Session):建立会话的两个LSR之间可以是直连的,也可以是非直连的。

两台LSR之间交互Hello消息之后,即建立起邻接体(Adjacency)关系;

在建立邻接体关系的基础上,两台LSR之间交互LDP会话消息,建立起LDP会话,两台设备之间形成LDP对等体关系;

三、LSR ID与LDP ID

每一台运行了LDP的LSR除了必须配置LSR ID,还必须拥有LDP ID。

  • LDP ID的长度为48bit,由32bit的LSR ID与16bit的标签空间标识符(Label Space ID)构成。
  • LDP ID以"LSR ID : 标签空间标识"的形式呈现。例如2.2.2.2:0。

标签空间标识一般存在两种形态:

  • 值为0:表示基于设备(或基于平台)的标签空间;基于平台的方式分配标签的时候是全局一致的,同一条路由分配给不同的设备的标签都是一致的。
  • 值非0:表示基于接口的标签空间:基于接口的标签分配方式的话,可以为不同的路由分配相同的标签,那么如果收到的是同一条路由怎么去分配标签呢?那么就看是从哪个接口收到的路由假如是从1号接口发出1.1.1.1的路由就分配1029的标签,如果是从2号接口发出1.1.1.1的路由就分配1030标签。

四、LDP消息类型

运行LDP协议的LSR之间通过交换LDP消息来实现邻居发现、会话建立与维护以及标签管理等功能。

1、Hello报文:仅仅用来发现邻居的,不用来建立邻居,组播报文目的地址为:224.0.0.2(所有路由器都会监听并接收的地址),使用的是UDP协议端口号为646,该报文中有一个重要的内容---用来建立LDP会话的地址transport地址 。此外该报文中还有一个关键内容:LSR-ID, 有点类似于OSPF中的Router-id,而我们前面介绍的transport地址就默认等于LSR-ID ,双方都拿到了对方的地址了之后,就会建立TCP会话,在LDP会话、通告和通知消息中,主动方(对等体间IP地址大的一 方)发送的消息中的源端口为任意TCP端口,目的端口为 TCP 646(LDP协议端口号),被动方发送的消息中的源端口为TCP 646端口,目的端口为任意TCP端口 。,建立完成了之后就会开始发送我们的会话消息session其中有两个报文分别为init报文以及keepalive报文。

注意:既然需要建立TCP的会话,那么就必须保证双方的LSR-ID的路由可达。

举个例子:比如以下两台路由器相互发送了Hello报文,那么双方就知道了对方的地址,此时就可以去建立TCP会话了

2、init报文:用来协商参数,例如:标签的分发方式等。假如双方的分发方式不一致则无法正常建立LDP会话。

3、KeepAlive报文:用来维护LDP的会话,此时我们的LDP会话就建立完成了。

4、Advertisement消息:用于创建、改变和删除特定的FEC-标签绑定。

5、label mapping报文:为非物理接口的32位主机路由分配标签(为环回口分配标签)

6、notification消息:

五、LDP报文封装

LDP协议报文包括了LDP头部和LDP消息两部分。

  • LDP头部中携带了LDP版本、报文长度等信息;
  • LDP消息中携带了消息类型、消息长度等信息。

以上就是本章的全部内容了,文章若有错误或疑问可联系博主删除更改,感谢大家的浏览观看!

相关推荐
WG_173 分钟前
Linux:基础IO(18+19)+文件描述符
linux·运维·服务器
fiveym11 分钟前
解析Debian 10安装Intel Xeon Silver 4510卡住问题及Debian 11/12支持改进
运维·debian
开利网络13 分钟前
从“流量”到“留量”:长效用户运营的底层逻辑
大数据·运维·人工智能·自动化·云计算
别动哪条鱼16 分钟前
SDL 函数对各对象缓冲区的影响
网络·数据结构·ffmpeg
嘻哈baby27 分钟前
管理100台服务器是什么体验?Python一行代码搞定
运维
十六年开源服务商29 分钟前
怎样做好WordPress网站数据分析与运维服务
运维·数据挖掘·数据分析
莫白媛30 分钟前
浅谈Linux部分语法(从基础操作到自动化编程的三个层次)
linux·运维·自动化
云计算练习生33 分钟前
渗透测试行业术语扫盲(第十六篇)—— 红蓝对抗与演练类
网络·安全·网络安全·信息安全·渗透测试术语
快解析34 分钟前
内网穿透快解析注册后添加配置端口教程
linux·服务器·网络
tianyuanwo37 分钟前
Linux密码管理深度解析:passwd与chpasswd的底层机制对比
linux·运维·passwd·chpasswd