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で動作しており、以降コマンドに出てきます。
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です))
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になるかは個別に確認下さい。
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
で取得したログを表示します。