定义
标签分发协议LDP(Label Distribution Protocol)是多协议标签交换MPLS的一种控制协议,负责转发等价类FEC的分类、标签的分配以及标签交换路径LSP的建立和维护等操作。LDP规定了标签分发过程中的各种消息以及相关处理过程
术语
LDP会话:LDP会话用于LSR之间交换标签映射、释放等消息。(两种可以共存)
1、远端LDP会话(Remote LDP Session):建立会话的两个LSR之间可以是直连的,也可以是非直连的
2、本地LDP会话(Local LDP Session):建立会话的两个LSR之间是直连的。
LDP邻接体 :两台LSR之间交互Hello消息之后,即建立起邻接体(Adjacency)关系
两种邻接体:
1、本地邻接体(Local Adjacency):以组播形式发送Hello消息(即链路Hello消息)发现的邻接体叫做本地邻接体。
2、远端邻接体(Remote Adjacency):以单播形式发送Hello消息(即目标Hello消息)发现的邻接体叫做远端邻接体
LDP对等体 :指相互之间存在LDP会话、使用LDP来交换标签消息的两个LSR
LSR ID与LDP ID
每一台运行了LDP的LSR除了必须配置LSR ID,还必须拥有LDP ID。
- LDP ID的长度为48 bit,由32 bit的LSR ID与16 bit的标签空间标识符(Label Space ID)构成。
- LDP ID以“LSR ID : 标签空间标识”的形式呈现。例如2.2.2.2:0。
标签空间标识一般存在两种形态:
- 值为0:表示基于设备(或基于平台)的标签空间;(现在都是用这个)
- 值非0:表示基于接口的标签空间
LDP工作机制
LDP消息类型
- 发现(Discovery)消息:用于通告和维护网络中LSR的存在,如Hello消息。
- 会话(Session)消息:用于建立、维护和终止LDP对等体之间的会话,如Initialization消息、Keepalive消息。
- 通告(Advertisement)消息:用于创建、改变和删除FEC的标签映射。
- 通知(Notification)消息:用于提供建议性的消息和差错通知。
LDP会话建立
基本发现机制:用于发现链路上直连的LSR。
LSR通过周期性地发送LDP链路Hello消息(LDP Link Hello),实现LDP基本发现机制,建立本地LDP会话。
LDP链路Hello消息使用UDP报文,目的地址是组播地址224.0.0.2。如果LSR在特定接口接收到LDP链路Hello消息,表明该接口存在LDP对等体。建立连接阶段
Hello报文中携带传输地址,双方后续将使用传输地址建立LDP会话。
传输地址较大的一方作为主动方,主动发起建立TCP连接。
经过TCP三次握手之后,两者建立起TCP连接
1、传输地址较大的一方作为主动方,主动方发送初始化消息,协商建立LDP会话参数
LDP会话的相关参数包括LDP协议版本、标签分发方式、Keepalive保持定时器的值、最大PDU长度和标签空间等
2、被动方收到初始化报文后,若接受的相关参数,则回应Keepalive报文作为确认,为了提高发送效率同时发送自己的初始化报文。如果被动方不能接受相关参数,则发送Notification消息终止LDP会话的建立
3、当主动方收到被动方的初始化报文后,若接受相关参数,则回复Keepalive报文给被动方
4、双方都收到对端的Keepalive报文后,会话建立成功,后续通过周期性发送的Keepalive报文保持会话
LDP标签分发
发布方式
下游自主方式DU:对于一个特定的FEC,LSR无需从上游获得标签请求消息即进行标签分配与分发。
下游按需方式DoD:对于一个特定的FEC,LSR获得标签请求消息之后才进行标签分配与分发。
特别说明:
标签发布方式为DU时,系统默认支持LDP为所有对等体分标签,即每个节点都可以向所有的对等体发送标签映射消息,不再区分上下游关系。因为在只给上游对等体分标签情况下,发送标签映射消息的时候,要根据路由信息对会话的上下游关系进行确认。如果发生路由变化,上下游关系倒换,新的下游需要重新给上游节点发送标签映射消息,收敛比较慢。
两种发布方式如图所示:
标签分配控制方式
独立标签分配控制方式(Independent):本地LSR可以自主地分配一个标签绑定到某个FEC,并通告给上游LSR,而无需等待下游的标签。(不使用)
有序标签分配控制方式(Ordered):对于LSR上某个FEC的标签映射,只有当该LSR已经具有此FEC下一跳的标签映射消息、或者该LSR就是此FEC的出节点时,该LSR才可以向上游发送此FEC的标签映射。(现使用)
组合方式:
DU + Independent:LSR(Transit)无需等待下游(Egress)的标签,就会直接向上游(Ingress)分发标签。
DoD+Independent:发送标签请求的LSR(Ingress)的直连下游(Transit)会直接回应标签,而不必等待来自最终下游(Egress)的标签。
DU + Ordered:LSR(Transit)只有收到下游(Egress)的标签映射消息,才会向上游(Ingress)分发标签。
DoD + Ordered:发送标签请求的LSR(Ingress)的直连下游(Transit)只有收到最终下游(Egress)的标签映射消息,才会向上游(Ingress)分发标签。
标签保留方式
自由模式:对于从邻居LSR收到的标签映射,无论邻居LSR是不是自己的下一跳都保留。
保守模式:对于从邻居LSR收到的标签映射,只有当邻居LSR是自己的下一跳时才保留。
说明:
使用自由标签保持方式,LSR可以直接利用原来非下一跳邻居发来的标签,迅速重建LSP,但需要更多的内存和标签空间。
使用保守标签保持方式,LSR只保留来自下一跳邻居的标签,节省了内存和标签空间,但LSP的重建会比较慢。
保守标签保持方式通常与DoD方式一起,用于标签空间有限的LSR目前设备支持如下组合方式:
下游自主方式(DU)+ 有序标签分配控制方式(Ordered)+ 自由标签保持方式(Liberal,该方式为缺省方式。
下游按需方式(DoD)+ 有序标签分配控制方式(Ordered)+ 保守标签保持方式(Conservative)。