本投稿ではISEにNAD(Network Access Device)を登録する際のDevice名制限に伴うトラブル事例を紹介します。
特にSD-Access環境で気づきにくいものとなります。
ISEではNADのNameに使用できる文字は下の絵のように制限されます(英数字, -._)。
この絵では'#'を入力したことで赤字のmessageが表示されています。
SD-AccessではなくISE GUIで直接Device登録する場合はこのメッセージが表示されそもそも登録できないため、気づきやすく問題にはなりません。
SD-Access環境では基本設定をしたNADをDNA CenterでdiscoveryしDNAC-ISE連携後NADをprovisioingしてDNA CenterからISEにNADを登録します。
Discovery時NADのNameはDNA Centerがhostnameから取得しそれをNameとしてISEに登録しようとします。
一般的なIOS/IOS-XE deviceではhostname commandで'#'を含む文字列はWarningが出るものの
C9300#conf t
Enter configuration commands, one per line. End with CNTL/Z.
C9300(config)#hostname test#1
% Hostname contains one or more illegal characters.
test#1(config)#
*Jan 25 13:32:00 JST: %CNS-3-WARNING: CNS ID not changed: bad hostname -Process= "Exec", ipl= 0, pid= 369
*Jan 25 13:32:00 JST: %CNS-3-WARNING: CNS ID not changed: bad hostname -Process= "Exec", ipl= 0, pid= 369
*Jan 25 13:32:00 JST: %CNS-3-WARNING: CNS ID not changed: bad hostname -Process= "Exec", ipl= 0, pid= 369
test#1(config)#
のように設定できてしまいます。
DNA Centerもこのような名前を特に無効とは判断せずISEに登録しようとしますが、ISE側は登録を受け付けません。しかしながらその際DNA Center/ISE 共に操作者に見えるようなメッセージを出さないため、後でISEにNADが登録されていないように見えることになります(debug logを確認すればこの問題が発生していることはわかります)。
ここで述べている状態は
SD-Access ソリューション 1.2 シスコ検証済みデザイン導入ガイド - Cisco
のP.78のステップ7の画面でNetwork Devicesに何も登録されていない状態のことです。
SD-Accessで使用するDeviceのhostnameを決める際には予めご注意ください。
The valid name can contain alphanumeric, hyphen(-), period(.) and underscore(_)