前面我们学习了MPLS的基本概念,也了解了标签的概念,然后通过静态标签进行了简单实验,通过标签可以基于隧道进行标签转发。但是前面我们也知道了在进行标签转发前需要LSR对于LSP转发路径进行定义,而手工配置的任务比较繁琐,而且需要双向进行配置,那有没有方法进行自动生成呢?那就是通过标签分发协议(Label Distribution Protocol,LDP) 来实现。
一、LDP协议概述
LDP是MPLS的一种控制协议,相当于传统网络中的信令协议,负责FEC的分类、标签的分配以及LSP的建立和维护等操作。LDP规定了标签分发过程中的各种消息以及相关处理过程。
LDP的工作过程主要分为两部分:
- LSR之间建立LDP会话。
- LSR之间基于LDP会话动态交换标签与FEC的映射信息,并根据标签信息建立LSP。
1.1 LDP会话与对等体
LSR之间交互标签绑定消息之前必须建立LDP会话。LDP会话可以分为:
- 本地LDP会话(Local LDP Session):建立会话的两个LSR之间是直连的;
- 远程LDP会话(Remote LDP Session):建立会话的两个LSR之间可以是直连的,也可以是非直连的。
两台LSR之间交互Hello消息之后,即建立起**邻接体(Adjacency)**关系;
在建立邻接体关系的基础上,两台LSR之间交互LDP会话消息,建立起LDP会话,两台设备之间形成LDP对等体关系;
简单或就是在IP互联的基础上,LSR建通过建立LDP会话,交互Hello消息成为LDP对等体关系,类似与OSPF的邻居关系。
1.2 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:表示基于接口的标签空间。
前面学习我们知道LSR ID是在MPLS域内唯一标识一台设备的,然后LDP ID其实就是LSR ID + :XX标识符,在本次华为课程中都是采用基于设备也就是0的标签空间。
1.3 LDP消息类型
运行LDP协议的LSR之间通过交换LDP消息来实现邻居发现、会话建立与维护以及标签管理等功能。类似与OSPF、ISIS等路由协议,LDP也有对应的消息类型。
关于LDP(标签分发协议)的消息类型和承载方式。LDP消息分为四大类型:发现消息、会话消息、通告消息和通知消息。
- 发现消息:用于宣告和维护网络中LSR(标签交换路由器)的存在,比如Hello报文,帮助LSR之间发现彼此。
- 会话消息:用于建立、维护和终止LDP对等体之间的会话,例如Initialization报文和KeepAlive报文,确保会话的稳定性和可靠性。
- 通告消息:用于生成、改变和删除FEC(前向等价类)的标签映射,负责标签的分配和更新。
- 通知消息:用于宣告警报和错误信息,帮助网络管理员及时发现和处理问题。
LDP消息的承载方式是:发现消息用UDP,会话、通告和通知消息用TCP,端口号都是646。
1.4 LDP报文封装
LDP协议报文包括了LDP头部和LDP消息两部分。
- LDP头部中携带了LDP版本、报文长度等信息;
- LDP消息中携带了消息类型、消息长度等信息。
LDP头部长度为10Byte,包括Version,PDU Length和LDP Identifier三部分。
- Version占用2Byte,表示LDP版本号,当前版本号为1。
- PDU Length占用2Byte,以字节为单位表示除了Version和PDU Length以外的其他部分的总长度。
- LDP Identifier,即LDP ID,长度6Byte,其中前4Byte用来唯一标识一个LSR,后2Byte用来表示LSR的标签空间。
LDP消息包含五个部分。
- U占用1个bit,为Unknown Message bit。当LSR收到一个无法识别的消息时,该消息的U=0时,LSR会返回给该消息的生成者一个通告,当U=1时,忽略该无法识别的消息,不发送通告给生成者。
- Message Length占用2个bytes,以字节为单位表示Message ID、Mandatory Parameters和Optional Parameters的总长度。
- Message ID占用32个bit,用来标识一个消息。
- Mandatory Parameters和Optional Parameters分别为可变长的该消息的必须的参数和可选的参数。
- Message Type表示具体的消息类型,目前LDP定义的常用的消息有Notification,Hello,Initialization,KeepAlive,Address,Address Withdraw,Label Mapping,Label Request,Label Abort Request,Label Withdraw,Label Release。
总结:今天先简单了解下LDP的概念。LDP是用来动态建立和维护LSP的协议,类似于OSPF等协议也需要经过建立会话、交互报文,建立对等体关系的步骤,LDP消息分为四大类型:发现消息、会话消息、通告消息和通知消息。通过这些消息来建立和维护LDP对等体,然后就是LDP报文包含头部和LDP消息部分。