LDP(Label Distribution Protocol)规定了标签分发过程中的各种消息以及相关的处理过程。LSR之间将依据本地转发表中对应于一个特定FEC的入标签、下一跳节点、出标签等信息联系在一起,从而形成标签交换路径LSP。
当一台LSR接收到对端发送过来的Hello消息后LDP邻接体建立。LDP邻接体存在两种类型:本地邻接体(Local Adjacency)和远端邻接体(Remote Adjacency)。
LDP对等体是指相互之间存在LDP会话、使用LDP来交换标签消息的两个LSR。
LDP对等体通过它们之间的LDP会话获得对方的标签。
LDP会话用于LSR之间交换标签映射、释放等消息。LDP会话分为两种类型:
建LDP会话就是用来交换标签的,使用的是TCP连接。LDP会话的hello和超时分别是60秒和180秒。如果LDP邻居关系丢失,那么LDP会话也会断开。
LDP协议主要使用四类消息:
为保证LDP消息的可靠发送,除了发现消息使用UDP外,LDP的会话消息、通告消息和通知消息都使用TCP传输。
用于标识特定LSR的标签空间范围。LDP标识符的格式为LSR ID:Label space ID,长度为六字节,其中:
当双方都收到对端的Keepalive消息后,LDP会话建立成功。
抓包过程如下:
LSP的建立过程实际就是将FEC和标签进行绑定,并将这种绑定通告LSP上相邻LSR的过程。
标签映射信息如下:
当LDP本地会话间的直连链路出现故障时,LDP的邻接关系将被拆除,对应LDP会话和标签也将被删除。直到此直连链路恢复后,LDP会话重新建立并分发标签,最终达到LDP LSP重新收敛。但在这期间会导致LDP LSP流量的丢失。
在LDP本地会话两端配置了LDP会话保护后,会话的双方都会向对方发送Link Hello建立LDP本地会话,同时发送Targeted Hello消息建立LDP远端会话,Targeted Hello建立的远端邻接关系将为Link Hello建立的本地邻接关系提供冗余备份,形成LDP本地会话保护。
但要做这样的保护,LSR之间必须得有备用链路,否则无效。
在存在主备链路的组网中,当主链路发生故障时,IGP和LSP均切换到备份链路上。但当主链路从故障中恢复时,由于IGP比LDP收敛速度快,IGP会先于LDP切换回主链路,而此时主链路的LSP还没有建立,因此造成LSP流量丢失。
LDP和IGP同步的基本原理是:通过设置IGP的cost(65535)值来推迟路由的回切,直至LDP完成收敛。也就是在主链路的LSP建立之前,先保留备份链路LSP,让流量继续从备份链路转发。直至主链路的LSP建立成功,再删除备份LSP。
在Hold-max-cost时间内,如果LDP邻居一直没建起来,IGP也会将cost值恢复为正常值,切换到原转发路径。
A11和B1直连链路恢复之后,LDP会话建立之前,A11和B1之间链路的cost值保持65535;
等A11和B1之间LDP会话重新建立之后,cost值恢复为正常值。