内容

概要

ASR5500ノードへのログインの問題

トラブルシューティング手順

根本原因分析

提案するソリューション

関連情報

概要

このドキュメントでは、アグリゲーションサービスルータ(ASR5500/ASR 5000)の管理IPへのセキュアシェル(SSH)接続が失われた場合のシナリオをトラブルシューティングする方法について説明します。

ASR5500ノードへのログインの問題

ASR5500パケットコアノードにログインできません。SSH接続は、ログインプロンプトなしですぐに終了します。Telnet接続の動作は類似しています。

トラブルシューティング手順

ステップ1：コンソール接続を使用してノードにログインします。

ステップ2：ほとんどの場合、接続障害の原因を示す可能性のある特定のSimple Network Management Protocol(SNMP)トラップは発行されません。

ステップ3：ログインに関連するログは、常にsyslogに表示されます。

evlogd: [local-60sec55.607] [tacacs+ 37201 error] [5/0/8908 <vpnmgr:1> authen_events.c:598] [software internal system critical-info syslog] Authentication failed for user **** on tty /dev/pts/0, application ssh, remote IP address XX.XX.XX.XX

evlogd: [local-60sec55.623] [cli 30028 debug] [5/0/8908 <vpnmgr:1> luser_auth.c:1448] [context: local, contextID: 1]  [software internal system syslog] Login attempt failure for user **** IP address XX.XX.XX.XX - Access type ssh/sftp

evlogd: [local-60sec53.652] [tacacs+ 37201 error] [5/0/8908 <vpnmgr:1> authen_events.c:598] [software internal system critical-info syslog] Authentication failed for user **** on tty /dev/pts/0, application ssh, remote IP address XX.XX.XX.XX

evlogd: [local-60sec53.679] [cli 30028 debug] [5/0/8908 <vpnmgr:1> luser_auth.c:1448] [context: local, contextID: 1]  [software internal system syslog] Login attempt failure for user **** IP address XX.XX.XX.XX - Access type ssh/sftp#####

evlogd: [local-60sec2.942] [tacacs+ 37201 error] [5/0/8908 <vpnmgr:1> authen_events.c:598] [software internal system critical-info syslog] Authentication failed for user epcats on tty /dev/pts/0, application ssh, remote IP address YY.YY.YY.YY

ステップ4：コマンドshow crash list allは、最近のクラッシュを表示します。vpnmgrに関連するクラッシュが特に重要であることに注意してください。

ステップ5：コマンドshow task resources allを実行すると、vpnmgrおよびsshdプロセスが過状態でいないことを確認できます。vpnmgrは、IPアドレスプール管理を担当し、コンテキスト固有のすべての操作を実行します。sshdはStarOS CLIへのセキュアログインをサポートしています。

ステップ6:vpnmgrインスタンス1の再起動。は、場合によっては最小限の影響でSSH接続を取得するのに役立ちます。ただし、しばらくすると接続が終了する場合があります。

ステップ7:MIOスイッチオーバーによって問題が解決されます。プロセスがしきい値または過負荷状態に達する可能性があるシナリオでは、MIOバウンスが解決に役立つことがあります。

回避策は、MIOスイッチオーバーです。次のセクションでは、根本原因分析の手順について説明します。

根本原因分析

1. show administratorsコマンドを使用して、ノード上のアクティブな接続数を確認します。ただし、出力に過剰な数のアクティブセッションが表示されず、ノードへの接続が記録される可能性があります。

出力例：

[local]ASR5500-2# show administrators

Monday September 06 13:15:07 CDT 2021

Administrator/Operator Name    M Type    TTY            Start Time               Mode         Idle

------------------------------ - ------- -------------- ------------------------ ------------ ----

admin                            admin   /dev/pts/4     Mon Sep 06 13:14:38 2021 Context User 29

admin                            admin   /dev/pts/3     Mon Sep 06 12:21:13 2021 Context User 749

admin                            admin   /dev/pts/2     Thu Sep 02 11:03:57 2021 Context User 342206

[local]ASR5500-2#

2. さらに、次のコマンドを実行し、問題を掘り下げます。隠しモードからデバッグシェルに移動します。

cli test-command pass <password>

debug shell

debug shellで次のコマンドを実行します。

ps -ef

setvr 1 bash

netstat -n

ps：プロセスを一覧表示します。psコマンドを使用すると、システム上の現在のプロセスに関する技術情報を表示したり、そのステータスを確認したりできます。

-e：ユーザに関係なく、すべてのプロセスを表示します。

-f：プロセスを詳細な形式で表示します。

netstatコマンドは、ノードに存在するすべてのソケット接続を表示するために使用される、最も便利なコマンドラインオプションの1つです。UNIX接続だけでなく、すべてのtcpおよびudpソケット接続をリストする機能も備えています。このCLIを使用して、接続の確立を待ち続ける可能性のあるリスニングソケットをリストアップすることもできます。

出力例：

ASR5500-2:card5-cpu0# ps -eF

UID        PID  PPID  C    SZ   RSS PSR STIME TTY          TIME CMD

root         1     0  0   511   640   4 Aug20 ?        00:00:13 init [5]

root         2     0  0     0     0   2 Aug20 ?        00:00:00 [kthreadd]

root         3     2  0     0     0   0 Aug20 ?        00:00:00 [ksoftirqd/0]

root         6     2  0     0     0   0 Aug20 ?        00:00:00 [migration/0]

root         7     2  0     0     0   0 Aug20 ?        00:00:01 [watchdog/0]

root         8     2  0     0     0   1 Aug20 ?        00:00:00 [migration/1]

root        10     2  0     0     0   1 Aug20 ?        00:00:00 [ksoftirqd/1]

root        11     2  0     0     0   0 Aug20 ?        00:00:31 [kworker/0:1]

root        12     2  0     0     0   1 Aug20 ?        00:00:00 [watchdog/1]

root        13     2  0     0     0   2 Aug20 ?        00:00:00 [migration/2]

root        15     2  0     0     0   2 Aug20 ?        00:00:00 [ksoftirqd/2]

root        16     2  0     0     0   2 Aug20 ?        00:00:00 [watchdog/2]

root        17     2  0     0     0   3 Aug20 ?        00:00:00 [migration/3]

root        19     2  0     0     0   3 Aug20 ?        00:00:00 [ksoftirqd/3]

root        20     2  0     0     0   3 Aug20 ?        00:00:00 [watchdog/3]

root        21     2  0     0     0   4 Aug20 ?        00:00:00 [migration/4]

root        22     2  0     0     0   4 Aug20 ?        00:00:00 [kworker/4:0]

root        23     2  0     0     0   4 Aug20 ?        00:00:00 [ksoftirqd/4]

……………………………

ASR5500-2:card5-cpu0# setvr 1 bash

bash-2.05b# netstat -n

Active Internet connections (w/o servers)

Proto Recv-Q Send-Q Local Address           Foreign Address         State

tcp        0      0 10.201.211.23:22        10.227.230.222:51781    ESTABLISHED

tcp        0      0 10.201.211.23:22        10.24.28.55:49918       ESTABLISHED

tcp        0      0 10.201.211.23:22        10.99.10.148:54915      ESTABLISHED

tcp        0      0 10.201.211.23:22        10.227.230.222:51783    ESTABLISHED

Active UNIX domain sockets (w/o servers)

Proto RefCnt Flags       Type       State         I-Node Path

unix  2      [ ]         DGRAM                    39221385

unix  2      [ ]         DGRAM                     27056

bash-2.05b# exit

前述のレポートによると、サーバはASR55Kボックスへの接続を開始するスクリプトを実行しました。これらのサーバは、スタックまたはアイドル状態にあるこれらの接続の多くを開きましたが、閉じられませんでした。

TeleTypeWriter(TTY)接続が終了した後も、TCP接続はゲートウェイ上でアクティブなままです。

これらの接続の結果、ASR5500は許可されるSSH接続の最大数に達し、ボックスへの接続を妨げています。サーバにログインして親プロセスを強制終了すると、すべての接続が即座に解放され、SSHがすぐに復元されます。

これらのアイドル状態のSSH接続は、TeleTypeWriter(noTTY)接続として確立されます。このようなnoTTY接続は、出力が表示されないように接続されたプログラムで使用されます。

SSH admin@asr55k hostname "display version"などのコマンドは、ほとんどの場合、noTTY接続を確立します。

同様に、SSH:*@nottyは、シェルや擬似端末などのビジュアル端末が割り当てられていないゲートウェイ(GW)へのSSHログインがあることを示します。この問題は、スクリプト関連のさまざまな操作(特にFTP/Secure Copy(SCP)接続を使用している場合)で発生する可能性があります。

提案するソリューション

1. APIサーバに使用できるスクリプトにタイムアウトを実装します。複数のCLIを実行する複数のSSH接続は、すべてのsessmgrプロセスでメッセンジャー輻輳と重要なCPU使用率を生成する可能性があります。

2. トラブルシューティングを簡単にするには、次のオプションを設定します。

logging filter runtime facility cli level debug critical-info

3. この設定をノードに適用します。このコマンドは、アイドル状態のSSHセッションを5分後に終了するために使用されます。これは、サーバによって引き起こされる古いセッションに対する保護メカニズムとして使用されます。

Exec > Global Configuration > Context Configuration

configure > context context_name

administrator  encrypted password  timeout-min-absolute 300 timeout-min-idle 300

関連情報

- CLI情報

- Cisco ASR 5000シリーズコンフィギュレーションガイド

- テクニカル サポートとドキュメント – Cisco Systems