簡介
本文檔介紹由ASR9000路由器記憶體不足引起的標籤分發協定(LDP)鄰居問題。
背景資訊
LDP是一種標籤分發協定,可幫助生成和共用IGP路由的標籤資訊。但在交換標籤之前,路由器首先形成LDP鄰居關係。 如您所知,LDP在UDP和TCP協定上工作。對於鄰居發現,LDP使用UDP協定,並使用TCP協定建立鄰居關係。
路由器必須有足夠的記憶體和CPU才能進行TCP連線。
問題摘要
顯而易見,您可以對ping和traceroute進行操作。
RP/0/RSP0/CPU0:R1#ping 192.168.12.6 so l14
Thu Jun 27 07:01:31.192 UTC
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.12.6 timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 2/2/3 ms
RP/0/RSP0/CPU0:R1# traceroute 192.168.12.6 so l14 numeric
Thu Jun 27 07:01:56.748 UTC
輸入要中止的逸出序列。
跟蹤到192.168.12.6的路由
1 192.168.99.220 [MPLS:標籤26664/75671擴展0] 3毫秒2毫秒2毫秒
2 192.168.96.8 [MPLS:標籤75671擴展0] 1毫秒1毫秒1毫秒
3 192.168.62.151 [MPLS:標籤24201擴展0] 2毫秒2毫秒2毫秒
4 192.168.12.6 2毫秒2毫秒2毫秒
所有ping和traceroute均正常工作,但沒有LDP成員資格。
RP/0/RSP0/CPU0:R1# show mpls ldp discovery 192.168.12.6 detail
Thu Jun 27 07:05:43.503 UTC
Local LDP Identifier: 192.168.248.84:0
Discovery Sources:
Targeted Hellos:
192.168.248.84 -> 192.168.12.6 (active), xmit/recv
Hello interval: 5 sec (due in 978 msec)
Quick-start: Enabled
LDP Id:192.168.248.84:0
Hold time: 45 sec (local:90 sec, peer:45 sec)
(expiring in 41.3 sec)
Established: Jun 26 12:02:16.216 (18:58:47 ago)
Session bringup fail reason:
waiting for tcp incall
您可以看到TCP失敗原因。
問題分析
選中Show mpls ldp trace error reverse | in 192.168.12.6 命令後,會注意到由於記憶體較低,沒有LDP鄰居。
Jun 27 07:08:29.742 mpls/ldp/err 0/RSP0/CPU0 t1 [ERR][MISC]:8201: VRF(0x60000000):
ldp_nbr_ok_to_connect: Call from 192.168.12.6 rejected - state=2, reason=''MPLS_LDP'
detected the 'resource not available' condition 'A low memory condition prevents new
LDP sessions'
此外,我們注意到RSP0上存在小型記憶體,但RSP1正常。
RP/0/RSP0/CPU0:R1#show watchdog memory-state
Thu Jun 27 06:16:13.033 UTC
Memory information:
Physical Memory: 6144 MB
Free Memory: 554.988 MB
Memory State: Minor
RP/0/RSP0/CPU0:R1#show watchdog memory-state location 0/RSP1/CPU0
Thu Jun 27 06:17:06.110 UTC
Memory information:
Physical Memory: 6144 MB
Free Memory: 1208.164 MB
Memory State: Normal
由於此問題與內存有關,因此您可以檢驗系統不同元件的記憶體消耗情況以及使用最高記憶體的ltrace,即使與其他RSP和裝置相比也是如此。發現RSP0使用最高容量的記憶體進行ltrace。
RP/0/RSP0/CPU0:R1#show shmem summary location 0/rSP0/CPU0
Thu Jun 27 07:24:48.601 UTC
Total Shared memory: 2345M
ShmWin: 349M
Image: 71M
LTrace: 690M
AIPC: 73M
SLD: 3M
SubDB: 528K
CERRNO: 148K
GSP-CBP: 165M
EEM: 0
XOS: 15M
CHKPT: 10M
CDM: 9M
XIPC: 4M
DLL: 64K
SysLog: 10M
Miscellaneous: 940M
LTrace usage details:
Used: 690M, Max: 3366M
Current: default(dynamic)
Configured: dynamic with scale-factor: 16 (changes take effect after reload)
您還可以看到Ltrace佔用了大量的記憶體。
因應措施:
1. 重新載入備用RP。
2. 等待同步。確認在sh shmem summary loc 0/RSP1/CPU0, 目前設定檔上是比例因子16。
3. 切換。
4. 確認記憶體正常。確認LDP已備份。
5. 使用sh shmem summary loc 0/RSP0/CPU0確認刻度因子16已應用於RSP0。
收集記錄:
show mpls ldp neighbor
show mpls ldp neighbor detail
show mpls ldp discovery 192.168.12.6 detail
show watchdog memory-state
show watchdog memory-state location 0/RSP1/CPU0
show shmem summ loc 0/RSP1/CPU0
show shmem summ loc 0/RSP0/CPU0
show redundancy
show tech-support mpls ldp
注意:請檢查具有相同配置的另一台路由器上的記憶體使用情況。