目 录
本文档不严格和具体的软硬件版本对应。
LDP对等体之间无法建立LDP会话。
图1-1 无法建立LDP会话故障诊断流程
接收和发送Hello消息是LDP会话成功建立的基础。因此,首先需要检查LDP对等体之间是否可以收发Hello消息。
(1) 执行display mpls ldp interface verbose命令,通过Hello Message Sent/Rcvd字段查看接口上的Hello消息收发统计信息,确认LDP对等体之间是否能够接收和发送Hello消息。
<Sysname> display mpls ldp interface verbose
LDP Interface Information in Public Network
--------------------------------------------------------------
Interface Name : Ethernet1/1
LDP ID : 172.17.1.1:0 Transport Address : 172.17.1.1
Entity Status : Active Interface MTU : 1500
Configured Hello Timer : 15 Sec
Negotiated Hello Timer : 15 Sec
Configured Keepalive Timer : 45 Sec
Label Advertisement Mode : Downstream Unsolicited
Hello Message Sent/Rcvd : 591/1033 (Message Count)
-------------------------------------------------------------
(2) 如果Hello消息收发统计信息为0,则检查LDP对等体之间的网络连接是否正常,确保对等体之间可以ping通对端的接口地址。
(3) 如果对等体之间的网络连接正常,则根据网络状态,合理调整Hello保持定时器和Keepalive定时器的值。避免定时器的值过小,导致Hello报文到达前就过早地删除Hello邻接关系或结束LDP会话。
LDP会话建立在TCP连接之上,TCP连接由目的IP地址、目的端口、源IP地址和源端口标识,这里的源IP地址和目的IP地址称为传输地址。必须保证两端的传输地址互相可达,才能建立TCP连接,从而在TCP连接之上建立LDP会话。
通过以下方法,可以判断传输地址是否可达:
(1) 执行display mpls ldp interface命令,通过Transport-Address字段确认本端的传输地址。
<Sysname> display mpls ldp interface
LDP Interface Information in Public Network
-------------------------------------------------------------------
IF-Name Status LAM Transport-Address Hello-Sent/Rcv
-------------------------------------------------------------------
Ethernet1/1 Active DU 172.17.1.1 583/1017
Ethernet1/2 Active DU 172.17.1.1 578/1015
Serial2/0 Active DU 172.17.1.1 531/444
-------------------------------------------------------------------
LAM: Label Advertisement Mode IF-Name: Interface name
(2) 执行display mpls ldp peer命令,通过Transport-Address字段确认对端的传输地址。
<Sysname> display mpls ldp peer
LDP Peer Information in Public network
Total number of peers: 3
--------------------------------------------------------------
Peer-ID Transport-Address Discovery-Source
--------------------------------------------------------------
172.17.1.2:0 172.17.1.2 Ethernet1/1
168.1.1.1:0 168.1.1.1 Ethernet1/1
100.10.1.1:0 100.10.1.1 Serial2/0
--------------------------------------------------------------
只有收到对端的Hello消息后,才能通过display mpls ldp peer命令查看对端的传输地址。否则,只能通过了解对端设备LDP TCP传输地址配置的方式获得对端的传输地址。
(3) 分别在两台设备上用自己的传输地址作为源IP地址,ping对端的传输地址,从而确定两端的传输地址是否可达。
<Sysname> ping -a 172.17.1.1 172.17.1.2
PING 172.17.1.2: 56 data bytes, press CTRL_C to break
Reply from 172.17.1.2: bytes=56 Sequence=1 ttl=255 time=15 ms
Reply from 172.17.1.2: bytes=56 Sequence=2 ttl=255 time=16 ms
Reply from 172.17.1.2: bytes=56 Sequence=3 ttl=255 time=1 ms
Reply from 172.17.1.2: bytes=56 Sequence=4 ttl=255 time=16 ms
Reply from 172.17.1.2: bytes=56 Sequence=5 ttl=255 time=1 ms
--- 172.17.1.2 ping statistics ---
5 packet(s) transmitted
5 packet(s) received
0.00% packet loss
round-trip min/avg/max = 1/9/16 ms
如果传输地址不可达,则需要通过以下方法排除故障:
· 修改传输地址,使得两端的传输地址可达:缺省情况下,设备采用LSR ID作为传输地址,通过执行mpls ldp transport-address命令可以修改传输地址。
· 修改路由协议的配置,使得两端的传输地址可达。
为了提高LDP会话的安全性,可以为LDP使用的TCP连接配置MD5认证。要想在LDP对等体之间成功建立LDP会话,必须保证二者的MD5认证配置一致,即:
· 同时使能MD5认证功能,且配置的密码一致;
· 同时关闭MD5认证功能。
如果LDP对等体之间的MD5认证配置不一致,则LDP会话无法建立,需要修改MD5认证的配置。
只有LDP对等体上配置的标签发布方式一致时,LDP会话参数协商才能通过,才能建立LDP会话。对等体之间存在多条链路时,各链路上的标签发布方式也必须配置一致。
通过以下方法,可以查看两端的标签发布方式是否一致。
(1) 执行display mpls ldp interface命令,通过LAM字段可以查看本端的标签发布方式。目前,设备只支持DU(Downstream Unsolicited,下游自主)标签发布方式。
<Sysname> display mpls ldp interface
LDP Interface Information in Public Network
-------------------------------------------------------------------
IF-Name Status LAM Transport-Address Hello-Sent/Rcv
-------------------------------------------------------------------
Ethernet1/1 Active DU 172.17.1.1 583/1017
Ethernet1/2 Active DU 172.17.1.1 578/1015
Serial2/0 Active DU 172.17.1.1 531/444
-------------------------------------------------------------------
(2) 执行display mpls ldp peer verbose命令,通过Peer Label Advertisement Mode字段查看对端的标签发布方式。
<Sysname> display mpls ldp peer verbose
LDP Peer Information in Public network
---------------------------------------------------------------
Peer LDP ID : 172.17.1.2:0
Peer Max PDU Length : 4096 Peer Transport Address : 172.17.1.2
Peer Loop Detection : Off Peer Path Vector Limit : 0
Peer FT Flag : Off Peer Keepalive Timer : 45 Sec
Recovery Timer : ---- Reconnect Timer : ----
Peer Label Advertisement Mode : Downstream Unsolicited
Peer Discovery Source : Ethernet1/1
------------------------------------------------------------
如果两端的标签发布方式不一致,则需要修改一端的配置。
只有LDP对等体上同时使能或关闭环路检测功能时,LDP会话参数协商才能通过,才能建立LDP会话。一端使能了环路检测功能,另一端未使能环路检测功能时,LDP会话无法建立。
分别在两端设备上执行display mpls ldp命令,通过Loop Detection字段查看设备上是否使能环路检测功能,判断两端的环路检测使能状态是否一致。
<Sysname> display mpls ldp
LDP Global Information
------------------------------------------------------------------------------
Protocol Version : V1 Neighbor Liveness : 120 Sec
Graceful Restart : Off FT Reconnect Timer : 300 Sec
MTU Signaling : Off Recovery Timer : 300 Sec
Nonstop Routing : Off
LDP Instance Information
------------------------------------------------------------------------------
Instance ID : 0 VPN-Instance :
Instance Status : Active LSR ID : 3.3.3.9
Hop Count Limit : 32 Path Vector Limit : 32
Loop Detection : On
DU Re-advertise Timer : 30 Sec DU Re-advertise Flag : On
DU Explicit Request : Off Request Retry Flag : On
Label Distribution Mode : Ordered Label Retention Mode : Liberal
------------------------------------------------------------------------------
如果两端的环路检测使能状态不一致,则需要通过loop-detect命令修改一端的配置。
成功建立LDP会话后,通过display mpls lsp命令查看到已经建立部分LSP,但仍有部分LSP未建立。
图1-2 部分LSP无法建立故障诊断流程
LSP的建立依赖于路由。如果路由表中不存在指定前缀对应的路由表项,那么设备无法为该前缀所属的FEC建立LSP。
通过display ip routing-table命令可以查看是否存在指定前缀对应的路由表项。如果不存在,则需要配置静态路由或动态路由协议添加路由表项。
设备上,建立的LSP数目、接收和分发的标签数目都具有一定的规格限制,达到上限后,将无法建立新的LSP。
通过以下方法,查看LSP数目、接收和分发的标签数目是否达到上限:
(1) 执行display mpls lsp statistics命令可以查看已经建立的LSP统计数目,从而判断LSP数目是否达到上限。
(2) 执行debugging mpls ldp error命令打开LDP错误调试开关,如果出现如下调试信息,则表明接收或发送的标签数目已经达到上限。
Can’t Create DownStream Control Block: Up the Maximum Limitation
// 能够记录的、收到的标签个数已经达到上限
Can’t Create UpStream Control Block: Up the Maximum Limitation
// 能够记录的、发送的标签个数已经达到上限
如果未建立的LSP中存在希望建立的LSP,则可以通过accept-label和advertise-label命令配置标签接受和通告控制策略,对设备接收和通告的标签进行过滤。根据实际需要规划动态建立的LSP,并避免设备接收和通告大量的标签映射。
缺省情况下,只有本地32位掩码的环回地址能够触发LDP建立LSP,网段路由不触发建立LSP。如果LDP会话建立后,环回地址可以正常建立LSP,但是网段地址不能建立LSP,则故障原因可能是未配置lsp-trigger命令。
通过display mpls lsp命令查看已经建立的LSP。如果只有环回地址建立了LSP,则需要在MPLS视图下执行lsp-trigger all命令,配置所有环回地址和网段路由都会触发LDP建立LSP。
<Sysname> display mpls lsp
-----------------------------------------------------------------------
LSP Information: LDP LSP
-----------------------------------------------------------------------
FEC In/Out Label In/Out IF Vrf Name
8.8.8.8/32 3/NULL S2/0/-
7.7.7.7/32 NULL/3 -/S2/0
LSR接收到某一FEC的标签映射后,判断标签映射的发送者是否为该FEC目的地址的路由下一跳。若是,则可以为该FEC建立LSP。否则,无法建立LSP。
通过display ip routing-table命令查看FEC目的地址对应的路由下一跳。如果标签发送者不是路由的下一跳,则说明试图建立LSP的路径跟路由不一致,需要重新规划LSP的建立路径。
如果LSR上配置的标签分配控制方式为有序方式,则只有收到它的下游LSR为某个FEC分配的标签,或该LSR是此FEC的出口节点时,该LSR才会为该FEC分配标签,从而建立LSP。因此,某个FEC对应LSP建立失败的原因可能是设备未收到下游LSR为该FEC分配的标签。
在本地设备(Device A)上,执行display mpls ldp fec命令,通过Outgoing Label字段查看下游LSR(Device B)是否为FEC分配了标签。
<DeviceA> display mpls ldp fec 3.3.3.9 32
------------------------------------------------------------------------------
LDP FEC Information
------------------------------------------------------------------------------
Upstream Info:
------------------------------------------------------------------
No. : 1
Upstream Peer : 1.1.1.9
Stale : No
Label Request ID : NULL
Label Space ID : 0
FEC Type : Generic
Incomming Label : 1030
State : Established
Hop Count : 0
Path Vector Count : 0
Path Vector : NULL
Downstream Info:
------------------------------------------------------------------
No. : 1
Downstream Peer : NULL
Stale : No
Label Request ID : NULL
Label Type : Generic
Outgoing Label : NULL
State : Established
Hop Count : 1
Path Vector Count : 0
Path Vector : NULL
Received MTU : 65535
OutIfCount : 1
OutGoing Info : Interface Nexthop
Eth1/1 20.1.1.2
如果下游LSR没有为FEC分配标签,且本地设备不是出口节点,则需要通过以下方法解决下游LSR未分配标签的问题:
(1) 在下游LSR上,执行display mpls ldp fec命令查看下游LSR配置的标签通告控制策略,并执行display ip ip-prefix命令查看标签通告控制策略指定的前缀列表信息,从而判断下游是否允许向Device A通告FEC对应的标签。
<DeviceB> display mpls ldp fec 3.3.3.9 32
------------------------------------------------------------------------------
LDP FEC Information
------------------------------------------------------------------------------
Label Advertisement Policy:
------------------------------------------------------------------
FEC IP-prefix : abc
Peer IP-prefix : a
Upstream Info:
------------------------------------------------------------------
No. : 1
Upstream Peer : 2.2.2.9
Stale : No
Label Request ID : NULL
Label Space ID : 0
FEC Type : Generic
Incomming Label : 3
State : Established
Hop Count : 0
Path Vector Count : 0
Path Vector : NULL
Downstream Info:
------------------------------------------------------------------
No. : 1
Downstream Peer : NULL
Stale : No
Label Request ID : NULL
Label Type : Generic
Outgoing Label : NULL
State : Established
Hop Count : 1
Path Vector Count : 0
Path Vector : NULL
Received MTU : 65535
OutIfCount : 1
OutGoing Info : Interface Nexthop
InLoop0 127.0.0.1
<DeviceB> display ip ip-prefix
Prefix-list abc
Permitted 18
Denied 12
index: 10 permit 1.1.1.9/32
index: 20 permit 2.2.2.9/32
index: 30 permit 3.3.3.9/32
Prefix-list a
Permitted 0
Denied 0
index: 10 permit 5.5.5.0/24
(2) 如果标签通告控制策略为拒绝向Device A通告某FEC的标签,则修改标签控制策略,使得下游LSR为Device A通告FEC对应的标签后,Device A就可以收到下游LSR为该FEC通告的标签。
(3) 如果标签通告控制策略为允许向Device A通告某FEC的标签,则在下游LSR上,从1.2.3 1. 检查是否存在相应路由开始依次按照上述的故障排除方法解决下游LSR未分配标签的问题。
LDP会话不稳定,通过display mpls ldp session命令查看到LDP会话状态不断变化。
图1-3 LDP会话振荡故障诊断流程图
传输地址对应的路由振荡将会引起LDP会话振荡。
通过display ip routing-table查看传输地址对应的路由信息,确认该路由是否稳定,例如,路由是否时有时无、路由的出接口或下一跳是否变化。
如果传输地址对应的路由不稳定,则需要修改静态路由或动态路由协议配置,解决路由振荡问题。
LDP触发建立LSP后,报文通过MPLS进行转发,LDP协议报文也通过MPLS转发。如果MPLS转发不通,则即使IP路由没有问题,报文也不能正常转发,LDP协议的Keepalive报文也会因此而不能发送到对端。从而,使得对端Keepalive定时器超时,LDP会话down。但是由于IP转发没有问题,又会触发重新建立LDP会话,引起LDP会话持续振荡。
假设Device A和Device B之间的LDP会话振荡,则通过以下方式,可以对该问题进行定位和解决:
(1) LDP会话处于up状态时,在Device A上执行ping lsp –v命令,检查到达Device B传输地址的LSP是否可达,并查看返回的错误码。
(2) LDP会话处于up状态时,在Device A上执行tracert lsp命令,对到达Device B传输地址的LSP的故障进行定位。
(3) 如果出现故障的节点是Device A(入节点),则在Device A上通过如下方式判断MPLS转发表项是否存在问题:
· 通过display fib命令查看Device B传输地址对应FIB表项的Token值。Token值不能是Invalid。
<DeviceA> display fib 2.2.2.9
Destination count: 1 FIB entry count: 1
Flag:
U:Useable G:Gateway H:Host B:Blackhole D:Dynamic S:Static
R:Relay
Destination/Mask Nexthop Flag OutInterface InnerLabel Token
2.2.2.9/32 10.1.1.2 UDGH Eth1/1 Null 0
· 通过display mpls nhlfe命令查看是否存在Token值对应的NHLFE表项。设备上应该存在Token值对应的NHLFE表项。
<DeviceA> display mpls nhlfe 0
Out-Interface Token Oper Nexthop Deep Stack
------------------------------------------------------------------------
Eth1/1 0 PUSH 10.1.1.2 1 1024
(4) 如果出现故障的节点是Device B(出节点),且通过label advertise non-null命令配置在LDP对等体之间分配非空标签,则在Device B上通过如下方式判断MPLS转发表项是否存在问题:
· 通过display mpls ldp lsp命令查看本地传输地址所属FEC对应的入标签。
<DeviceB> display mpls ldp lsp 2.2.2.9 32
LDP LSP Information
------------------------------------------------------------------------------
SN DestAddress/Mask In/OutLabel Next-Hop In/Out-Interface
------------------------------------------------------------------------------
1 2.2.2.9/32 1024/NULL 127.0.0.1 -------/InLoop0
------------------------------------------------------------------------------
A '*' before an LSP means the LSP is not established
A '*' before a Label means the USCB or DSCB is stale
· 通过display mpls ilm命令查看入标签对应的ILM表项。设备上应该存在入标签对应的ILM表项,且ILM表项的操作类型(Oper)字段取值应为POP。
<DeviceB> display mpls ilm 1024
Inlabel In-Interface Token VRF-Index Oper LSP-Type Swap-Label
-----------------------------------------------------------------------------
1024 0 POP LDP LSP
(5) 如果MPLS转发表项正常,则执行debugging mpls packet命令打开MPLS报文调试信息开关,观察转发过程是否有异常信息输出。如果出现异常信息,则根据信息进行相应处理。
(6) 如果MPLS转发表项存在问题,请联系技术支持人员。
图1-4 故障组网环境
两台设备直连,在直连接口上使能MPLS和LDP。LDP会话建立在直连接口的地址上。在PE 1上发现到达PE 2环回接口地址2.2.2.2/32的LSP未建立。
通过display mpls ldp session和display mpls lsp命令判断LDP会话已经建立,但是LSP没有建立。
<PE1> display mpls ldp session
LDP Session(s) in Public Network
Total number of sessions: 1
----------------------------------------------------------------------
Peer-ID Status LAM SsnRole FT MD5 KA-Sent/Rcv
----------------------------------------------------------------------
2.2.2.2:0 Operational DU Passive Off Off 23/23
----------------------------------------------------------------------
LAM : Label Advertisement Mode FT : Fault Tolerance
<PE1> display mpls lsp
----------------------------------------------------------------------
LSP Information: LDP LSP
----------------------------------------------------------------------
FEC In/Out Label In/Out IF Vrf Name
1.1.1.1/32 3/NULL Eth1/1/-
(1) 查看路由表
<PE1> display ip routing-table
Routing Tables: Public
Destinations : 5 Routes : 5
Destination/Mask Proto Pre Cost NextHop Interface
1.1.1.1/32 Direct 0 0 127.0.0.1 InLoop0
10.10.1.0/24 Direct 0 0 10.10.1.1 Eth1/1
10.10.1.1/32 Direct 0 0 127.0.0.1 InLoop0
127.0.0.0/8 Direct 0 0 127.0.0.1 InLoop0
127.0.0.1/32 Direct 0 0 127.0.0.1 InLoop0
可以看出路由表中没有到2.2.2.2/32的路由。LSP无法建立的原因就是路由表中找不到对应的路由。PE 1从PE 2收到了标签映射,但是因为这个标签的发送者(PE 2)不是这个FEC对应的路由的下一跳(路由表中没有到2.2.2.2/32的路由),因此无法建立该标签对应的标签转发表项。
(2) 查询LDP中的标签分发情况
<PE1> display mpls ldp lsp
LDP LSP Information
------------------------------------------------------------------------
SN DestAddress/Mask In/OutLabel Next-Hop In/Out-Interface
------------------------------------------------------------------------
1 1.1.1.1/32 3/NULL 127.0.0.1 Eth1/1/InLoop0
*2 2.2.2.2/32 Liberal
------------------------------------------------------------------------
A '*' before an LSP means the LSP is not established
A '*' before a Label means the USCB or DSCB is stale
从显示信息中,可以看出到2.2.2.2/32的LSP未建立,标签处于Liberal状态。
(1) 在PE 2上发布路由2.2.2.2/32
<PE2> system-view
[PE2] ospf 1
[PE2-ospf-1] area 0.0.0.0
[PE2-ospf-1-area-0.0.0.0] network 2.2.2.2 0.0.0.0
[PE2-ospf-1-area-0.0.0.0] network 10.10.1.0 0.0.0.255
(2) 查看PE 1上的路由表信息,确认已经存在到2.2.2.2/32的路由
<PE1> display ip routing-table
Routing Tables: Public
Destinations : 6 Routes : 6
Destination/Mask Proto Pre Cost NextHop Interface
1.1.1.1/32 Direct 0 0 127.0.0.1 InLoop0
2.2.2.2/32 OSPF 10 10 10.10.1.2 Eth1/1
10.10.1.0/24 Direct 0 0 10.10.1.1 Eth1/1
10.10.1.1/32 Direct 0 0 127.0.0.1 InLoop0
127.0.0.0/8 Direct 0 0 127.0.0.1 InLoop0
127.0.0.1/32 Direct 0 0 127.0.0.1 InLoop0
(3) 查看LSP是否建立
<PE1> display mpls ldp lsp
LDP LSP Information
------------------------------------------------------------------------
SN DestAddress/Mask In/OutLabel Next-Hop In/Out-Interface
------------------------------------------------------------------------
1 1.1.1.1/32 3/NULL 127.0.0.1 Eth1/1/InLoop0
2 2.2.2.2/32 NULL/3 10.10.1.2 ------/Eth1/1
-------------------------------------------------------------------------
A '*' before an LSP means the LSP is not established
A '*' before a Label means the USCB or DSCB is stale
<PE1> display mpls lsp
----------------------------------------------------------------------
LSP Information: LDP LSP
----------------------------------------------------------------------
FEC In/Out Label In/Out IF Vrf Name
1.1.1.1/32 3/NULL Eth1/1/-
2.2.2.2/32 NULL/3 -/Eth1/1
从以上显示信息中可以看出,获得到达2.2.2.2/32的路由后,对应的LSP就能成功建立。
在DU方式下,对于自由的标签保留方式,通过display mpls ldp lsp命令可能会看到某个FEC的标签为Liberal,如上文所示。对于某个FEC,如下这些情况下会出现Liberal标签:
· 如果分配标签的LSR不是指定FEC的下一跳,那么其分配的标签就处于Liberal状态。
· 在多链路情况下,如果分配标签的LSR是路由的下一跳,但LDP会话未建立在接收该标签映射的接口上,那么该LSR分配的标签处于Liberal状态。
· 如果分配标签的下游LSR是路由的下一跳,且LDP会话建立在本地LSR接收该标签映射的接口上,但本地LSR没有与上游LSR建立LDP会话,且因为lsp-trigger策略的限制,本地LSR无法作为Ingress节点为FEC建立LSP,那么,下游LSR分配的标签将处于Liberal状态。
命令 | 说明 |
display current-configuration | include mpls | 查看当前的MPLS相关配置,包括LSR ID配置、是否使能MPLS和LDP功能等 |
display current-configuration interface loopback | 查看是否配置环回接口地址 设备要求LSR ID与本设备上一个32位掩码的接口地址相同,建议将LSR ID配置为一个环回接口的IP地址 |
display mpls ldp session verbose | 查看LDP会话的状态,会话状态为“Operational”时表示会话创建成功 通过查看LDP会话的状态可以将问题划分两大类:会话建立前的问题和会话建立后的问题。会话状态不是“Operational”时出现的问题为会话建立前的问题,可能是配置的问题、Hello报文收发的问题、TCP连接的问题、会话参数协商的问题等。会话状态为“Operational”时出现的问题为会话建立后的问题,可能是标签发布的问题,也可能是LSP建立的问题 |
display tcp status | 查看TCP连接的状态 确认LDP会话状态跟TCP连接的状态是否一致。正常情况下,LDP会话成功建立后,即LDP会话处于Operational状态时,TCP连接处于Established状态 |
display mpls ldp | 查看LDP相关信息 |
display mpls ldp interface | 查看接口的LDP相关信息 |
display mpls ldp lsp | 查看LDP创建的LSP相关信息 |
display mpls ldp peer | 查看LDP对等体的信息 |
display mpls ldp remote-peer | 查看LDP远端对等体的信息 |
display mpls lsp | 查看LSP信息 |
display mpls lsp statistics | 查看LSP的统计信息 |
display mpls ilm | 查看ILM表项信息 |
display fib | 查看FIB表项信息 |
display mpls nhlfe | 查看NHLFE表项信息 |
debugging mpls ldp | 打开LDP调试信息开关 |
debugging mpls packet | 打开MPLS报文调试信息开关 |
display ip routing-table | 查看路由表 |
display ip routing-table statistics | 查看路由统计信息 |
Copyright © 2013 杭州华三通信技术有限公司 版权所有,保留一切权利。
非经本公司书面许可,任何单位和个人不得擅自摘抄、复制本文档内容的部分或全部,并不得以任何形式传播。
本文档中的信息可能变动,恕不另行通知。