标签分发协议LDP(Label Distribution Protocol)是多协议标签交换MPLS的一种控制协议,相当于传统网络中的信令协议,负责转发等价类FEC(Forwarding Equivalence Class)的分类、标签的分配以及标签交换路径LSP(Label Switched Path)的建立和维护等操作。LDP规定了标签分发过程中的各种消息以及相关处理过程。其实除了LDP之外,思科还有自己私有的标签分发协议(TDP标记分配协议),但是在思科设备上,默认使用的却是LDP,这是极少出现在思科设备上的一种协议,可见LDP的强大。
LDP 定义了一组程序和消息,通过它们一个 LSR 可以通知另一个 LSR 其已经形成的标签捆绑。通过网络层路由信息与数据链路层交换路径之间的直接映射,LSR 可以使用 LDP 协议通过网络来建立标签交换路径。
利用 LDP 交换标签映射信息的两个标签交换路由器(LSR)作为 LDP 对等结点,并且它们之间有一个LDP标签分发协议会话。在一个单个会话中,每一个对等结点都能获得其它的标签映射,换句话说,这个协议是双向的。
工作机制:
LDP协议规定了标签分发过程中的各种消息以及相关的处理过程。通过LDP,LSR可以把网络层的路由信息映射到数据链路层的交换路径上,进而建立起LSP。
消息类型:
发现(Discovery)消息:用于通告和维护网络中LSR的存在,如Hello消息。
会话(Session)消息:用于建立、维护和终止LDP对等体之间的会话,如Initialization消息、Keepalive消息。
通告(Advertisement)消息:用于创建、改变和删除FEC的标签映射。
通知(Notification)消息:用于提供建议性的消息和差错通知。
为保证LDP消息的可靠发送,除了Discovery消息使用UDP(User Datagram Protocol)传输外,LDP的Session消息、Advertisement消息和Notification消息都使用TCP(Transmission Control Protocol)传输。
LDP发现过程中,LSR通过周期性地发送HELLO消息来通告自身的存在。HELLO消息以UDP分组的形式发往“所有路由器”的组播地址。通过相互发送会话消息,l两个LSP将那能够完成初始化国曾,成为LDP对等体。两个LDP对等体之间便可以通过交换通告消息执行标记的分发、收回等操作。而对LDP协议执行过程中出现的差错以及意外事件的报告则由通知消息传递。为了保证这些操作的正确可靠,LDP使用TCP协议传送会话、通告和通知消息。
LDP有两种模式:frame和cell,目前默认使用的是frame模式即帧模式
这关系到LDP的标签行为,主要是4个方面:标签的分配、标签的传递、标签的保存和标签空间。
1、 标签分配:设备给FEC分配标签的行为
a) 独立控制模式
只要本地通过IGP学习到了路由前缀就可以立刻为这些前缀分配标签
b) 有序控制模式
本地通过IGP学到路由前缀后不能立刻分配标签,需要等待该前缀的下一跳设备分配完并且将标签传递给当前设备才可以为其分配标签
A—B---C
A产生一条192.168.1.0/24的路由传递给B,B传递给C,在独立控制模式中,ABC只要学到就可以立马分配标签;而在有序控制模式中,C如果要给192.168.1.0/24分配标签,必须等待B分配完标签并且传递给C,C才可以分配,而B需要等待A分配完标签并且传递给B,是有严格顺序的,所以叫有序控制模式
2、 分发模式:设备分配完标签后是如何传递给邻居的
a) 下游主动模式
在这个模式中,当前设备分配完标签后,不管邻居需不需要某条前缀的标签,都会一起传递给邻居
b) 下游按需模式
在这个模式中,设备分配完标签后,不会主动把所有标签传递给邻居,只有当邻居发出请求时,才会传递请求的前缀所对应的标签
3、 保留模式:邻居传递标签过来后,我是如何保存这些标签的
a) 自由模式
在这个模式中,设备会将所有邻居传递过来的所有标签都保存在LIB中,不管是否是最优的
b) 保守模式
在这个模式中,设备只会保存最优邻居的标签,其他标签都会被删除;这会导致如果网络出现抖动,IGP收敛之后,如果下一跳发生变化,就需要重新向邻居请求标签,导致LDP收敛较慢
4、 标签空间
a) 基于接口
在这个模式下,同一条前缀192.168.1.0/24,从不同的接口传递给邻居时的标签都是不一样的,这会导致每个接口都需要保存一个标签信息表,非常占用资源
b) 基于平台(前面查看邻居表里的:0就是基于平台的标签空间)
在这个模式下,同一条前缀不管从哪个接口传递出去,其标签值都是一样的,这样只需保存和维护一个标签信息表即可,大大节省资源。
而现在的LDP默认使用的为帧模式,帧模式在这4个标签行为中使用的分别是:独立控制、下游主动、自由模式和基于平台,都是较为合理的模式。
安全机制:
为了提高LDP报文的安全性,MPLS提供了三种保护机制:LDP MD5认证、LDP Keychain认证和LDP GTSM。
LDP Keychain认证是比LDP MD5认证更安全的加密认证,对于同一邻居,只能选择其中一个加密认证;而LDP GTSM用来防止设备受到非法LDP报文的攻击,其可以与前面两个配合使用。
防环机制:
LDP其实只有一个防环机制,就是报头中的TTL字段,当TTL为0时丢弃报文
之所以这个简单是因为LDP的标签是根据IGP学到的路由来进行分配的,只要这些路由不出现环路那么LDP分配的标签页不会出现环路,IGP的防环机制已经非常健全,因此LDP防环机制就相对简单了。