目录

LDP的四类消息类型

LDP消息类型的协议报文

LDP消息头部

Discovery Message  建立维护LDP邻接体

Session Message   建立维护LDP会话

Advertisement Message   标签通告

Notification Message   向LDP对等体通知重要事件

LDP五种状态


LDP的四类消息类型

注意事项:

其中除了Hello使用UDP(端口646)外,LDP其余消息都是使用TCP(端口646)传输

  1. 发现消息(Discovery)----------用于通告和维护网络中LSR的存在,建立LDP邻接关系
  2. 会话消息(Session)-------------用于建立、维护和终止LDP邻接之间的会话
  3. 通告消息(Advertisement)-----用于创建、改变和删除FEC的标签映射
  4. 通知消息(Notification)---------用于提供建议性的消息和差错通知

消息类型

报文

消息类型

基本TLV类型

作用

Discovery Message

Hello

0x0100

0x0400

LDP发现机制中宣告LSR并发现邻居

Session Message

Initialization

0x0200

0x0500

在LDP Session建立过程中协商参数

KeepAlive

0x0201

-

监控LDP Session的TCP连接的完整性

Advertisement Message

Address

0x0300

0x0101

宣告接口IP地址

Address Withdraw

0x0301

0x0101

撤销接口IP地址

Label Mapping

0x0400

0x0100、0x0200

宣告FEC/Label映射信息

Label Request

0x0401

0x0100

请求FEC的标签映射

Label Abort Request

0x0404

0x0100

终止未完成的Label Request Message

Label Withdraw

0x0402

0x0100、0x0200

撤销FEC/Label映射

Label Release

0X0403

0x0100、0x0200

释放标签

Notification Message

Notification

0X0001

Status TLV

通知LDP Peer错误信息


LDP消息类型的协议报文

LDP协议信息(LDP PDU---LDP协议数据单元)都有一个LDP消息头部+一个/多个LDP消息内容组成。其中LDP消息内容又由多个TLV定义

LDP消息头部

MPLS ldp是控制平面还是转发平面 mpls ldp状态_MPLS ldp是控制平面还是转发平面

标签空间——决定本台设置的入标签如何产生(两种类型)

基于平台标签空间(全局标签空间)

整个LSR只能为特定FEC生成唯一标签(目前主要也是使用这种方式)

即LSR为同一条FEC在不同接口通告的标签是相同的

基于接口标签空间

LSR的每个接口都可以为特定FEC生成一个标签

即LSR为同一条FEC在不同接口通告的标签是不同的(小概率会相同)

Discovery Message  建立维护LDP邻接体

Hello消息  周期性的发送消息(5s),建立并维护LDP邻接体

MPLS ldp是控制平面还是转发平面 mpls ldp状态_映射关系_02

MPLS ldp是控制平面还是转发平面 mpls ldp状态_MPLS ldp是控制平面还是转发平面_03

MPLS ldp是控制平面还是转发平面 mpls ldp状态_映射关系_04

Session Message   建立维护LDP会话

Initialization消息  在建立LDP会话过程中协商参数

MPLS ldp是控制平面还是转发平面 mpls ldp状态_MPLS_05

MPLS ldp是控制平面还是转发平面 mpls ldp状态_MPLS_06

KeepAlive消息   用于维护LDP会话状态,不需要特别的内容,只需要对方知道自己存在就好

MPLS ldp是控制平面还是转发平面 mpls ldp状态_MPLS_07

MPLS ldp是控制平面还是转发平面 mpls ldp状态_MPLS ldp是控制平面还是转发平面_08

Advertisement Message   标签通告

Address消息  LSR发送地址消息到LDP对等体,宣告自身相关的所有接口IP地址

MPLS ldp是控制平面还是转发平面 mpls ldp状态_MPLS ldp是控制平面还是转发平面_09

MPLS ldp是控制平面还是转发平面 mpls ldp状态_网络_10

Address Withdraw消息  LSR发送地址消息到LDP对等体,撤销之前宣告的接口IP地址

报文格式

Address Withdraw消息与Address消息区别不大,只是消息类型不一样

Address Withdraw消息类型为0x3001

MPLS ldp是控制平面还是转发平面 mpls ldp状态_MPLS_11

Label Mapping消息——通告本地FEC与Label标签之间的映射关系

  • Label Mapping会携带转发等价类信息(将自身路由产生的标签传递给邻居互相学习)
  • 对于特定的FEC,下游使用Label消息为上游分配标签
  • Label Mapping消息的发送方式会因为标签分配方式和标签控制方式的不同而不同

报文格式

MPLS ldp是控制平面还是转发平面 mpls ldp状态_网络_12

MPLS ldp是控制平面还是转发平面 mpls ldp状态_网络_13

Label Request消息——请求相关FEC的标签信息

  • 此消息只能由作为Ingress的LSR向下游LSR发送
  • 下游收到此消息后,需要发送Label Mapping消息给上游(Label Mapping消息携带Label Reques 消息中的Message ID TLV)

以下情况,下游收到Label Request消息后不会向上游返回Label Mapping消息

  1. 下游找不到与Label Request中FEC TLV中对应的路由,此时返回No Route的Notification消息
  2. 下游没有足够的标签来分配,此时返回No Label Resource的Notification消息
  3. 下游检测到有环路发生,此时返回Loop Detected的Notification消息

报文格式——报文字段信息类似Label Mapping

MPLS ldp是控制平面还是转发平面 mpls ldp状态_MPLS_14

FEC(0x100)携带信息表明该标签是为哪个FEC而分配的

Label Abort Request消息——中止未完成的Label Request

当上游LSR向下游LSR发送Label Request消息后,在收到Label Mapping消息前,发现FEC对应的下一跳变化了等其它原因需要重新发送Label Request消息时,上游会向下游LSR发送此消息,终止未完成的Label Reques Messsage

报文格式——报文字段信息类似Label Mapping

MPLS ldp是控制平面还是转发平面 mpls ldp状态_MPLS_15

FEC(0x100)携带信息表明该标签是为哪个FEC而废弃的

Label Request Message ID TLV:携带的是要废弃的Label Request消息的Message ID

Label Withdraw消息——解除Label和FEC的映射关系

Label Withdraw消息一般是下游LSR发给上游LSR的,通知上游LSR之前通告的与某FEC对应的Label不再使用,上游需要解除Label和FEC的映射关系

以下情况下,才会发送Label Withdraw消息:

  1. 下游节点不再有某条FEC,如果已经为该FEC发送了Label Mapping消息,则发送Label Withdraw消息;
  2. 下游单方面的决定不再使用标签转发时也会发送Label Withdraw消息

报文格式——报文字段信息类似Label Mapping

MPLS ldp是控制平面还是转发平面 mpls ldp状态_映射关系_16

FEC(0x100)携带信息表明该标签是为哪个FEC而撤销的

Label TLV表示该FEC对应的标签

Label Release消息——解除Label与FEC的映射关系(与Label Withdraw方向相反)

Label Release消息一般是由上游发往下游,通知下游LSR撤销Label和FEC的绑定(相当于Label Reques消息的逆过程)

以下情况下,才会发送Label Release消息:

  1. 当上游LSR的标签保持方式是保守方式,发送Label Mapping消息的LSR不再是FEC的下一跳时,上游LSR需要发送Label Release消息来撤销Label和FEC的映射关系
  2. 当上游LSR的标签保持方式是保守方式,从不是FEC的下一跳收到Label Mapping消息后,上游LSR需要发送Label Release消息
  3. LSR收到Label Withdraw消息后需要发送Label Release消息。

报文格式

MPLS ldp是控制平面还是转发平面 mpls ldp状态_MPLS_17

FEC(0x100)携带信息表明该标签对应的FEC

Label TLV表示该FEC对应的标签

Notification Message   向LDP对等体通知重要事件

Notification消息  向LDP对等体通知重要事件(致命错误信息或提供咨询信息)

MPLS ldp是控制平面还是转发平面 mpls ldp状态_映射关系_18


LDP五种状态

MPLS ldp是控制平面还是转发平面 mpls ldp状态_映射关系_19

Non Existent

LDP初始状态,双发互发Hello消息,选举主动方并建立TCP连接

Initialized

TCP连接建立成功后,由Non Existent状态转为此状态

Opensent

  • 主动方发送Initialization消息,由Initialized状态转为Opensent状态。等待被动方回应应Initialization信息
  • 主动方如果等待超时或者收到的Initialization消息中包含的相关参数不接受,则断开TCP连接,由Opensent转向Non Existent状态

Openrec

  • 被动方等待主动方发给自己的Initialization消息,收到Inilization消息并接受相关参数,则发送Initialization消息和KeepAlive消息,则由Initialized状态转向Openrec状态
  • 主动方收到被动方的Initialization消息后,接受相关参数,则由Opensent状态转为Openrec状态
  • 如果被动方等待超时或不接受相关参数,则由Initialized状态转向Non Existent状态

Operational

  • 表明LDP会话已经建立,在此状态下可以发送或接受所有其它的LDP消息
  • 如果Keepalive超时或收到致命错误的Notification消息、或自己主动发送Shudown消息,都会结束会话,转为Non Existent状态