MPLS LDP 知识要点

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

原文地址:https://www.cnblogs.com/cyrusxx/p/12824161.html