MPLS LDP概述

发布于:2025-08-09 ⋅ 阅读:(13) ⋅ 点赞:(0)

一、概述

        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消息中携带了消息类型、消息长度等信息。

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


网站公告

今日签到

点亮在社区的每一天
去签到