キャンセル
次の結果を表示 
次の代わりに検索 
もしかして: 
cancel
2698
閲覧回数
22
いいね!
0
コメント
hiryokoy
Cisco Employee
Cisco Employee

はじめに

IOS-XE 16.x ではアーキテクチャの大きな変更からdebug の取得方法が変わっています。
(例: debug radius しても何も出てこない。)

本投稿ではAAA 関連の問題のトラブルシューティングで使えそうな内容を中心に紹介します。
情報は

 Switch Ports Model              SW Version        SW Image              Mode
------ ----- -----              ----------        ----------            ----
*    1 40    C9300-24T          16.9.3            CAT9K_IOSXE           BUNDLE

から取得しています。

AAA関連動作はSMD(Session Manager Daemon)というprocessで動作しており、以降コマンドに出てきます。

debugの状態確認

IOS/IOS-XE 15.x ではdebugになっているコンポーネントの一覧は

c3560x#show debug
Radius protocol debugging is on
Radius packet protocol debugging is on

で取得していましたが、16.xでは show platform software trace level smd switch active r0を活用して

C9300#show platform software trace level smd switch active r0 | i Module|Debug
Module Name                     Trace Level
radius                          Debug
radius-acct                     Debug
radius-authen                   Debug
radius-brief                    Debug
radius-dbg-acco                 Debug
(snip)

で取得します。何もdebugになっていない場合は

C9300#show platform software trace level smd switch active r0 | i Module|Debug
Module Name                     Trace Level
C9300#

何も表示されず、特にfilterしない場合、

C9300#show platform software trace level smd switch active r0 
Module Name                     Trace Level
-----------------------------------------------
aaa                             Notice
aaa-acct                        Notice
aaa-admin                       Notice
(snip)

のようにSMDで変更可能な全moduleが一覧となって表示されます。
(Noticeはdefaultのlevelです))

debugの有効化

IOS/IOS-XE 15.x では

c3560x#debug radius
Radius protocol debugging is on
Radius protocol brief debugging is off
Radius protocol verbose debugging is off
Radius packet hex dump debugging is off
Radius packet protocol debugging is on
Radius elog debugging debugging is off
Radius packet retransmission debugging is off
Radius server fail-over debugging is off
c3560x#

と単純に debug xxxx で実施していましたが、16.xでは有効にしたいmoduleをset コマンドで指定します。

C9300#set platform software trace smd switch active r0 aaa-authen debug
C9300#
C9300#show platform software trace level smd switch active r0 | i Module|Debug
Module Name                     Trace Level
aaa-authen                      Debug
C9300#

上記ではaaa-authenのみdebugが有効になっています。

旧来のdebug xxxxx コマンドでもlevel変更は可能で、例えば何もdebugを有効にしていない状態でdebug dot1x allすると、

C9300#show platform software trace level smd switch active r0 | i Debug
C9300#
C9300#debug dot1x all
All Dot1x debugging is on
C9300#
C9300#show platform software trace level smd switch active r0 | i Debug
dot1x                           Debug
dot1x-redun                     Debug
dot1x-registry                  Debug
C9300#

のように変更されるので、以前の感覚でdebug コマンドを使用しshow platformで確認し、他に有効にしたいModuleがあればsetで追加すればよいかと思います。

undeb all を実行すると全ModuleのlevelがNoticeに戻ります(setコマンドでのnotice指定でも戻ります)。

どのdebug commandでどのModuleのTrace levelがDebugになるかは個別に確認下さい。

log確認/取得

IOS/IOS-XE 15.xでは show logging で確認できましたが、16.xではshow platform software trace messageで確認できます。

C9300#show platform software trace message smd switch active R0
.............
2019/09/26 10:45:31.720 {smd_R0-0}{1}: [auth-mgr] [21839]: UUID: 0, ra: 0, TID: 0 (ERR): [0000.0000.0000:unknown] data: 0x55a299f60698 sm ctx unlock: mac 3495.db2d.9d18, 0X0 label already freed
2019/09/26 10:44:20.194 {smd_R0-0}{1}: [radius] [21839]: UUID: 0, ra: 0, TID: 0 (info): RADIUS:  authenticator 82 8d d2 d4 a4 4f 77 27 - 85 1c 81 99 2d a6 d9 c2
2019/09/26 10:44:20.194 {smd_R0-0}{1}: [radius] [21839]: UUID: 0, ra: 0, TID: 0 (info): RADIUS: Received from id 1813/233 172.31.1.152:0, Accounting-response, len 20
2019/09/26 10:44:20.189 {smd_R0-0}{1}: [radius] [21839]: UUID: 0, ra: 0, TID: 0 (info): RADIUS: Started 5 sec timeout
2019/09/26 10:44:20.189 {smd_R0-0}{1}: [radius] [21839]: UUID: 0, ra: 0, TID: 0 (debug): RADIUS(00000000): Sending a IPv4 Radius Packet
2019/09/26 10:44:20.189 {smd_R0-0}{1}: [radius] [21839]: UUID: 0, ra: 0, TID: 0 (info): RADIUS:  Acct-Delay-Time     [41]     6  0     
(snip)

上記は新しい順ですが、reverse optionを使用すると

C9300#show platform software trace message smd switch active R0 reverse
.............
2019/09/26 04:46:33.861 {smd_R0-0}{1}: [radius] [21839]: UUID: 0, ra: 0, TID: 0 (debug): RADIUS(00000000): Route radius Pkt on vrf:0 for:Accounting-Request to 172.31.1.152:1813
2019/09/26 04:46:33.861 {smd_R0-0}{1}: [radius] [21839]: UUID: 0, ra: 0, TID: 0 (info): RADIUS: Send Accounting-Request to 172.31.1.152:1813 id 1813/195, len 313
2019/09/26 04:46:33.861 {smd_R0-0}{1}: [radius] [21839]: UUID: 0, ra: 0, TID: 0 (info): RADIUS:  authenticator 19 aa 06 7d 51 a2 7e 35 - e9 71 98 7a f3 1b 75 3f
2019/09/26 04:46:33.861 {smd_R0-0}{1}: [radius] [21839]: UUID: 0, ra: 0, TID: 0 (info): RADIUS:  Framed-IPv6-Address [168]   18  ...
2019/09/26 04:46:33.861 {smd_R0-0}{1}: [radius] [21839]: UUID: 0, ra: 0, TID: 0 (debug): RADIUS:  Framed-IPv6-Address [168]   18
RADIUS:   fe 80 00 00 00 00 00 00 c5 98 04 49 27 b2 39 91               [ I'9]
2019/09/26 04:46:33.861 {smd_R0-0}{1}: [radius] [21839]: UUID: 0, ra: 0, TID: 0 (info): RADIUS:  User-Name           [1]     19  "34-95-DB-2D-9D-18"
(snip)

古い順になります。

検証のログのみを取得する目的で開始直前に以前はclear loggingを実行していましたが、16.xではrequest platform software trace rotate コマンドを使用します。

C9300#request platform software trace rotate all
C9300#
C9300#show platform software trace message smd switch active r0 reverse
...
/tmp/rp/trace/smd_R0-0.21839_7.20191010020529.bin.copy: DECOD

Total messages : 0
C9300#

最後に**show platform software trace message smd switch active R0 | redirect flash:<任意のファイル名>**でflash上の任意のファイルに書き込むことも可能です。

注意点

SMDはあくまで実際の端末の有線接続の処理をしているため、test aaa コマンドによって発生したRADIUSのdebug等は従来の方法で取得可能です。

まとめ

set platform software trace smd switch active r0

でdebugを有効にし、

show platform software trace level smd switch active r0 | i Module|Debug

でdebug状況を確認し、

show platform software trace message smd switch active R0

で取得したログを表示します。

Getting Started

検索バーにキーワード、フレーズ、または質問を入力し、お探しのものを見つけましょう

シスコ コミュニティをいち早く使いこなしていただけるよう役立つリンクをまとめました。みなさんのジャーニーがより良いものとなるようお手伝いします