LDP标签分发协议
由于MPLS标签分配的配置相较而言复杂度高且配置繁琐,而LDP就能很好解决这个问题,为对应的FEC生成对应标签从而实现标签交互引导流量正确转发,LDP是MPLS的一种控制协议,相当于传统网络中的信令协议,负责FEC的分类、标签的分配以及LSP的建立和维护等操作,LDP规定了标签分发过程中的各种消息以及相关处理过程
相关概念
LDP会话:LSR之间交互标签绑定消息前必须建立LDP会话,会话分为本地会话(地址采用组播地址,必须直连)与远程会话(地址采用单播地址,可直连也可不直连)
LDP邻接体(Adjacency):两台LSR设备交互hello报文后互相称为邻接体
LDP对等体:在上述基础上搭建会话形成的关系叫做LDP对等体
LSR ID 与LDP ID
LDP ID 自动生成,仅需配置LSR ID(必须确保这里的ID能互通),包含32bit的LSR ID和标签空间标识符(Label Space ID),如果其Lable Space ID为0则代表该标签基于设备分发,一台设备不会存在标签复用,如果不为0则说明该设备能够支持标签复用
报文封装
version:版本,目前1个版本,为1
LDP Identifier:4BytesLSR-id+2Bytes Label Space ID
U:置1标识将忽略设备未知的消息
Type:类型,具体的消息类型
Message ID:用于标识一个消息
消息分为4大类:Discovery Message,Session Message,Advertisement Message,Notification Message
状态机
UDP发现
双方采用UDP互发Hello报文用于发现对方,当收到对方报文进入Non-Exittent准备进行TCP连接
会话建立与保持
Hello报文中包含传输地址(router-id),传输地址大的设备主动发起TCP连接请求,正常完成三次握手进入Opensent状态,开始由传输地址大的设备附带Initalization初始化报文,对端接收到后如果发现参数能够接受则回送Keepalive报文进行应答确认同时发送自己的Initialzation,本端收到能接受同样回送Keepalive报文,至此会话搭建完毕
工作方式
默认采用DU+Ordered+Liberal形式
特性
PHP倒数第二跳弹出机制
由于MPLS的特性,当数据来到最后一跳的设备,该设备需要通过查找ILM表项来确定对标签的行为,而还原为IP报文后,该设备还需查找IP路由表进行转发,这对于转发效率来说是较为致命的,因此现在在倒数第二跳设备将标签换为ID为3的隐式空标签,以实现数据在最后一跳设备仅查询路由表
显式空标签
由于EXP字段中可能存在相关数据对于流量有QOS的作用,这是当仍然采用刚才的方式会将QOS信息丢失从而导致QOS配置失效,流量无法被正确处理