はじめに
このドキュメントでは、ASR9000ルータでのメモリ不足が原因の、ラベル配布プロトコル(LDP)ネイバーの問題について説明します。
背景説明
LDPは、IGPルートのラベル情報の生成と共有を支援するラベル配布プロトコルです。ただし、ラベルを交換する前に、ルータは最初にLDPネイバーシップを形成します。 ご存知のように、LDPはUDPおよびTCPプロトコルで動作します。ネイバー探索のために、LDPはUDPプロトコルを使用し、TCPプロトコルを使用してネイバーシップを作成します。
TCP接続を行うには、ルータに十分な量のメモリとCPUが搭載されている必要があります。
問題の概要
明らかなように、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
中止するにはエスケープ文字列を入力します
Tracing the route to 192.168.12.6
1 192.168.99.220 [MPLS:ラベル26664/75671 Exp 0] 3ミリ秒2ミリ秒2ミリ秒
2 192.168.96.8 [MPLS: Label 75671 Exp 0] 1 msec 1 msec 1 msec
3 192.168.62.151 [MPLS:Label 24201 Exp 0] 2 msec 2 msec 2 msec
4 192.168.12.6 2 msec 2 msec 2 msec
すべての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 Failの理由を確認できます。
問題の分析
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
この問題はメモリに関連するため、システムのさまざまなコンポーネントのメモリ消費を確認し、他の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で、RSP0にスケールファクタ16が適用されていることを確認します。
ログの収集:
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
注:同じ設定の別のルータでメモリ使用量を確認します。