LDP:Label Distribution Protocol
MPLS体系有多种标签发布协议,LDP(Label Distribution Protocol)是其中使用较广的一种标签发布协议。
LDP规定了标签分发过程中的各种消息以及相关的处理进程,主要用于 LSR 之间协商标签的分配,进而建立起标签交换路径(LSP) 。LSR 之间将依据本地转发表中对应于一个特定 FEC 的入标签、下一跳节点、出标签等信息连接在一起,从而形成跨越整个MPLS域的标签交换路径。
LDP是基于UDP 646和TCP 646端口(TDP/Tag Distribution Protocol,Cisco私有的,LDP是基于TDP的标准化),以下是LDP邻居建立过程:
Peer discovery(发现阶段):用UDP 646端口来发现邻居(发送hello消息224.0.0.2)
LDP session(建立阶段):用TCP 646端口来分配和分发标签(TCP is used to establish the session)
邻居关系是在一对路由器之间形成的(例:1.1.1.1 --> 2.2.2.2),而不是在单个的接口之间形成的(例:12.1.1.1 --> 12.1.1.2)
LDP不同厂商之间最重要的就是hello时间间隔不同
R1(config)#mpls ldp holdtime ?
<15-2147483> Holdtime in seconds
只能修改holdtime时间,因为默认holdtime时间为hello的3倍
LDP默认情况下是用router-id来填充transport IP address,也可以使用以下命令来手工指定传输地址,而不使用router-id来填充(注:其中小的IP地址去开启646端口,如下例所示是1.1.1.1去开启646端口)
R3#show mpls ldp discovery detail
mpls ldp discovery transport-address 12.1.1.2
当两个LSR之间存在的链路超过1条时,如果链路被绑定到VPN实例,缺省的传输地址将是这个接口的IP地址,而不是LSR的LSR ID。
传输地址是用来与Peer建立TCP连接的,因此Peer需存在到此传输地址的路由。通常使用LSR ID(Loopback接口地址)作为传输地址,这个Loopback接口的地址可能是公网地址。通过为LSR配置不同的传输地址,可以使对等体能够使用私网IP地址建立连接。
当两个LSR之间存在的链路超过1条时,对于一个有多个邻接关系的LDP会话,只有当所有链路使用相同的传输地址时,会话才能正确建立。
根据实际需要,传输地址可以被设置为某个接口地址,这在MPLS的Carrier’s Carrier组网应用中可能会用到。
r1(config)#int e0/0.12
r1(config-subif)#mpls ldp discovery transport-address interface r1#show mpls ld neighbor
Peer LDP Ident: 2.2.2.2:0; Local LDP Ident 1.1.1.1:0
TCP connection: 2.2.2.2.12622 - 1.1.1.1.646
State: Oper; Msgs sent/rcvd: 47/47; Downstream
Up time: 00:30:48
LDP discovery sources:
Ethernet0/0.12, Src IP addr: 12.1.1.2
Addresses bound to peer LDP Ident:
12.1.1.2 23.1.1.2 2.2.2.2
下游指的是数据流的方向(Data Plane)
Cell-mode标签分配和分发:只有的当本地设备没有去往目的地标签,才会向其上游设备返回本地标签
Cell-mode标签保留只保留用于数据转发的标签
Cell-mode标签分配过程(按需分配):
Frame-mode只会将本地标签(bindings local)信息同步给邻居,而接收到的标签信息不会发给邻居
本地的LIB表针对于某一个前缀的标签信息条数 = 邻居个数 + 1
独立控制分配方式中(使用帧模式MPLS时的缺省模式),则无论是否已经从下一跳LSR那里接收到标签,都会给FEC分配一个标签
收敛性:链路从有效到失效Frame-mode比Cell-mode的收敛速度更快(但是链路从失效到有效差不多)
环路避免机制:
Frame-mode:(1)Control plane依靠路由协议;(2)Data plane使用TTL
Cell-mode:(1)Conrol plane使用Path-Vector(记录每一个路由器的router-id);(2)Data plane:hop-count
以下截图的:0代表是Frame-mode的基于平台
R1#show mpls ldp neighbor
Peer LDP Ident: 2.2.2.2:0; Local LDP Ident 1.1.1.1:0
TCP connection: 2.2.2.2.47656 - 1.1.1.1.646
State: Oper; Msgs sent/rcvd: 55/54; Downstream
Up time: 00:42:56
LDP discovery sources:
Ethernet0/0.12, Src IP addr: 12.1.1.2
Addresses bound to peer LDP Ident:
2.2.2.2 12.1.1.2
使用 R1#show mpls ldp bindings local 查看标签分配其中bindings就是LIB
R1#show mpls ldp bindings neighbor 2.2.2.2
MPLS基本排错
(1)先看绑定表LIB:R1#show mpls ldp bindings (LIB表中每个路由器绑定表条目为n+1,其中本地一个)
(2)再看邻居关系:R1#show mpls ldp neighbor (查看router-id和传输地址)
2.1 >Ta地址之间路由不可达
2.2 >LDP hold-time时间是否匹配
2.3 >接口MPLS协议是否匹配:R1#show mpls interfaces
(3)紧接着查看CEF是否正常或者标签过滤:R1#show ip cef summary