ASR5000/5500(以下、ASR と呼びます)では TACACS+ による管理ユーザの認証をサポートしています。このドキュメントでは、
TACACS+ 認証でログインできない場合のトラブルシューティング手法について説明します。
1.状況の把握
まずは、以下の観点で発生している事象を正しく把握することが重要です。
- 今までは正常にログインできていたのにある時点からできなくなったのか
- もしある時点からの場合、思い当たるトリガー
- 常にログインできない、あるいはログインできない場合がある、どちらなのか
- 特定のユーザのみログインできないのか、全てのユーザでログインできないのか
2.TACACS+ サーバとのやり取りを確認する
TACACS+ サーバとやり取りがされているか、正しく認証されているか、をまずは確認します。
この点を確認するには、以下のような方法があります。
- TACACS+ サーバ側のログを確認する
- TACACS+ サーバとの通信のキャプチャを確認する
- ASR 上で TACACS+ のデバッグを有効にして確認する
ここでは、ASR 上でのデバックを確認する方法について説明します。この方法の場合、コンソールや Telnet などで ASR にログイン
できることが前提です。
Active Log で、facility tacacsplus を debug レベルに設定し、Active Log を有効にします。Active Log の使用方法については、
以下のドキュメントを参考にしてください。
Active log の使い方
TACACS+ サーバから認証をはじかれている場合、以下のようなログが出力されます。
(以下の例では時系列が下から上になっています。)
TACACS+ login state = LOGIN_FAIL
TACACS+ login state = LOGIN_PWDREP
TACACS+ login state = LOGIN_PWDREQ
TACACS+ login state = LOGIN_USRREP
TACACS+ login state = LOGIN_USRREQ
TACACS+ login state = START_REPLY
TACACS+ login state = START_REQ
TACACS+ サーバによって正常に認証されている場合、以下のようなログになります。
TACACS+ login state = LOGIN_OK
TACACS+ login state = LOGIN_PWDREP
TACACS+ login state = LOGIN_PWDREQ
TACACS+ login state = LOGIN_USRREP
TACACS+ login state = LOGIN_USRREQ
TACACS+ login state = START_REPLY
TACACS+ login state = START_REQ
もし認証がサーバ側からはじかれている場合、サーバ側の設定を確認ください。
3.最大セッションに到達していないか確認する
ASR の TACACS+ による最大セッション数は、32 (*)です。
* Version によっては変更される可能性があるのでご注意ください。
ソフトウエアの不具合によりセッションが残ってしまっていたり、単純に同時に多くのユーザがログインしている場合は最大セッション数に
到達してしまう場合があります。その場合、以下のエラーログが出力されます。
Localuser subsystem internal error: Unable to setup AAA session. MAX sessions reached/0
その場合、show tacacs コマンドで実際には既に存在していないセッションが残っていないか、あるいは実際にログインしているユーザが
多すぎるのか、確認してください。
<出力例>
[local]asr5000# show tacacs
active session #3:
task id : 3
login username : cisco
login tty : /dev/pts/2
time of login : Fri May 3 01:30:18 2013
login server priority : 1
current login status : pass
current session state : user login complete
current privilege level : 15
remote client application : telnet
実際に使用しているユーザが多い場合、不要なセッションは抜けてください。もし実際には既に存在していないセッションが
残ってしまっていた場合、ASR を再起動してセッションをクリアしてください。
4.異常なセッションが残っていないか確認する
上記の3とも似ていますが、セッションが32に達していない状態でも、なんらかの問題により異常なセッションが残ってしまい、
それが影響してその後異常セッションが残ってしまったユーザがログインできない、という事象が発生する場合があります。
その場合、show tacacs コマンドでその異常セッションの状態を確認します。
[local]asr5000# show tacacs
active session #4:
task id : 4
login username : cisco
login tty : /dev/pts/1
time of login : Sun Apr 7 23:31:01 2013
login server priority : 1
current login status : pass
current session state : authentication passed
上記の例では、authentication passed という状態でスタックしていることが分かります。通常であれば、user login complete
という状態になるはずです。
対処方法としては上記の3と同じで、ASR を再起動してセッションをクリアしてください。
必要なログのまとめ
最後に必要な情報およびログをまとめます。
- 状況把握の結果
- show tacacs
- facility tacacsplus の debug を有効にした Active Log(必要に応じて)
- SSD (show support details)