はじめに
このドキュメントでは、ソフトウェア定義アクセス(SDA)でTrustSec(CTS)のallow-list(Default Deny IP)モデルを有効にする方法について説明します。 このドキュメントには、Identity Services Engine(ISE)、Digital Network Architecture Center(DNAC)、スイッチ(BorderおよびEdge)などの複数のテクノロジーとコンポーネントが含まれています。
次の2つのTrustSecモデルを使用できます。
- Deny-Listモデル(デフォルトのPermit IP):このモデルでは、デフォルトアクションはPermit IPであり、すべての制限はSecurity Group Access List(SGACL)を使用して明示的に設定する必要があります。 これは通常、ネットワーク内のトラフィックフローを完全に理解していない場合に使用されます。このモデルは実装が比較的簡単です。
- Allow-Listモデル(デフォルトのDeny IP):このモデルでは、デフォルトアクションは「Deny IP」であるため、必要なトラフィックはSGACLを使用して明示的に許可する必要があります。これは通常、ネットワーク内のトラフィックフローの種類を十分に理解している場合に使用されます。このモデルでは、コントロールプレーントラフィックの詳細な調査が必要です。また、有効になった時点ですべてのトラフィックをブロックできる可能性もあります。
前提条件
要件
次の項目に関する知識があることが推奨されます。
- Dot1x/MAC認証バイパス(MAB)
- Cisco TrustSec(CTS)
- セキュリティ交換プロトコル(SXP)
- Webプロキシ
- ファイアウォールの概念
- DNAC
使用するコンポーネント
このドキュメントの情報は、次のソフトウェアとハードウェアのバージョンに基づいています。
- Cisco IOS®リリース16.9.3を使用する9300 Edgeおよび9500 Border Node(スイッチ)
- DNAC 1.3.0.5
- ISE 2.6パッチ3(2ノード – 冗長導入)
- DNACとISEが統合されている
- ボーダーノードとエッジノードはDNACによってプロビジョニングされる
- SXPトンネルは、ISE(スピーカ)から両方の境界ノード(リスナー)に確立されます
- IPアドレスプールがホストオンボーディングに追加される
このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されました。このドキュメントで使用するすべてのデバイスは、クリアな(デフォルト)設定で作業を開始しています。本稼働中のネットワークでは、各コマンドによって起こる可能性がある影響を十分確認してください。
設定
ネットワーク図

コンフィギュレーション
Allow-List Model(Default Deny IP)を有効にする手順は次のとおりです。
- スイッチのセキュリティグループタグ(SGT)を不明デバイスからTrustSecデバイスに変更します。
- CTSロールベースの適用を無効にします。
- DNACテンプレートを使用した境界スイッチとエッジスイッチでのIP-SGTマッピング
- DNACテンプレートを使用したフォールバックSGACL
- Trustsec MatrixでAllow-List(デフォルトのDeny IP)を有効にします。
- エンドポイント/ユーザのSGTを作成します。
- エンドポイント/ユーザ用のSGACLの作成(実稼働オーバーレイトラフィック用)
ステップ 1:スイッチSGTをUnknownからTrustSec Devicesに変更します。
デフォルトでは、不明なSGTがネットワークデバイスの許可用に設定されます。TrustSecデバイスSGTに変更すると、可視性が向上し、スイッチ起動トラフィック専用のSGACLを作成しやすくなります。
Work Centers > TrustSec > Trustsec Policy > Network Device Authorizationの順に移動し、これをTrustsec_Devices from Unknownに変更します。

ステップ 2:CTSロールベースの適用を無効にします。
- Allow-Listモデル(デフォルトのDeny)が設定されると、アンダーレイマルチキャストと、Intermediate System-to-Intermediate System(IS-IS)、双方向フォワーディング検出(BFD)、セキュアシェル(SSH)トラフィックなどのブロードキャストトラフィックを含むすべてのトラフィックがファブリックでブロックされます。
- このコマンドを使用して、ファブリックエッジと境界に接続するすべてのTenGigポートを設定する必要があります。この設定では、このインターフェイスから開始され、このインターフェイスに到達するトラフィックは適用されません。
Interface tengigabitethernet 1/0/1
no cts role-based enforcement
注:これは、分かりやすくするためにDNACの範囲テンプレートを使用して完了できます。それ以外の場合は、すべてのスイッチについて、プロビジョニング中に手動で実行する必要があります。次のコードスニペットは、DNACテンプレートを使用してこれを行う方法を示しています。
interface range $uplink1
no cts role-based enforcement
DNACテンプレートの詳細については、ドキュメントのこのURLを参照してください。
https://www.cisco.com/c/en/us/td/docs/cloud-systems-management/network-automation-and-management/dna-center/2-3-5/user_guide/b_cisco_dna_center_ug_2_3_5/b_cisco_dna_center_ug_2_3_5_chapter_01000.html
ステップ 3:DNACテンプレートを使用した境界スイッチとエッジスイッチでのIP-SGTマッピング
これは、すべてのISEがダウンした場合でも、ローカルIP-SGTマッピングをスイッチで使用できるようにするという概念に基づいています。これにより、アンダーレイが起動し、重要なリソースへの接続が維持されます。
最初のステップは、重要なサービスをSGTにバインドすることです。たとえば、Basic_Network_Services/1000と入力します。これらのサービスの一部は次のとおりです。
- アンダーレイ/ISISサブネット
- ISE/DNAC
- 監視ツール
- OTTの場合のAPのサブネット
- ターミナルサーバ
- 重要なサービス(IP Phoneなど)
次に例を示します。
cts role-based sgt-map <ISE/DNAC Subnet> sgt 1000
cts role-based sgt-map sgt 2
cts role-based sgt-map <Wireless OTT Infra> sgt 1000
cts role-based sgt-map <Underlay OTT AP Subnet> sgt 2
cts role-based sgt-map <Monitoring Tool IP> sgt 1000
cts role-based sgt-map vrf CORP_VN <Voice Gateway and CUCM Subnet> sgt 1000
ステップ 4:フォールバックSGACLとDNACテンプレート
SGTマッピングは、SGTを使用して関連するSGACLが作成されるまで役に立ちません。そのため、次のステップでは、ISEノードがダウンした場合にローカルフォールバックとして機能するSGACLを作成します(ISEサービスがダウンすると、SXPトンネルがダウンし、SGACLとIP SGTマッピングは動的にダウンロードされません)。
この設定は、すべてのエッジノードと境界ノードにプッシュされます。
フォールバックロールベースACL/コントラクト:>
ip access-list role-based FALLBACK
permit ip
TrustSecデバイスからTrustSecデバイス:
cts role-based permissions from 2 to 2 FALLBACK
上記のSGACLファブリックスイッチ内の通信を確保し、IPをアンダーレイ
SGT 1000へのTrustSecデバイス:
cts role-based permissions from 2 to 1000 FALLBACK
上記のSGACLスイッチおよびアクセスポイントからISE、DNAC、WLC、モニタリングツールへの通信を確保
SGT 1000からTrustSecデバイス:
cts role-based permissions from 1000 to 2 FALLBACK
上記のSGACL:アクセスポイントからISE、DNAC、WLC、モニタリングツールからスイッチへの通信を確保
ステップ 5:TrustSec MatrixでAllow-Listモデル(デフォルトの拒否)を有効にします。
要件は、ネットワーク上のほとんどのトラフィックを拒否し、より少ない範囲を許可することです。その後、明示的な許可ルールでdefault denyを使用すると、必要なポリシーが少なくなります。
Work Centers > Trustsec > TrustSec Policy > Matrix > Defaultの順に移動し、最終キャッチルールでDeny Allに変更します。


注:この図は、(デフォルトでは、すべての列が赤色で表示される)Default Denyが有効になっており、SGACL作成後に許可できるのは選択トラフィックのみであることを示しています。
手順 6:エンドポイント/ユーザのSGTを作成します。
SDA環境では、ISE/DNACのSGTデータベースの不一致が原因でデータベースが破損するケースが多数あるため、新しいSGTはDNAC GUIからのみ作成する必要があります。
SGTを作成するには、DNAC > Policy > Group-Based Access Control > Scalable Groups > Add Groupsの順に選択すると、ページが表示され、ISE Scalable Groupにリダイレクトされます。次に、Addをクリックし、SGT名を入力して保存します。

同じSGTは、PxGrid統合を通じてDNACに反映されます。これは、今後のすべてのSGT作成で同じ手順です。
手順 7:エンドポイント/ユーザ用のSGACLの作成(実稼働オーバーレイトラフィック用)
SDA環境では、新しいSGTはDNAC GUIからのみ作成できます。
Policy Name: Domain_Users_Access
Contract : Permit
Enable Policy :√
Enable Bi-Directional :√
Source SGT : Domain Users (Drag from Available Security Group)
Destination SGT: Domain_Users, Basic_Network_Services, DC_Subnet, Unknown (Drag from Available Security Group)
Policy Name: RFC_Access
Contract : RFC_Access (This Contract contains limited ports)
Enable Policy :√
Enable Bi-Directional :√
Source SGT : Domain Users (Drag from Available Security Group)
Destination SGT: RFC1918 (Drag from Available Security Group)
コントラクトを作成するには、DNAC にログインし、Policy > Contracts > Add Contracts > Add required protocol の順に選択し、Saveをクリックします。

コントラクトを作成するには、DNACにログインし、Policy > Group-Based Access Control > Group-Based-Access-Policies > Add Policies > Create policy (with the given information)に移動し、SaveをクリックしてからDeployをクリックします。

SGACL/コントラクトがDNACから設定されると、自動的にISEに反映されます。次に、sgtの一方向matrxビューの例を示します。

次の図に示すように、SGACLマトリクスはAllow-list(デフォルトの拒否)モデルのビューの例です。


確認
このセクションでは、設定が正常に動作していることを確認します。
ネットワークデバイスSGT
ISEによって受信されたスイッチSGTを確認するには、show cts environmental-dataコマンドを実行します。

アップリンクポートでの適用
アップリンクインターフェイスでの適用を確認するには、次のコマンドを入力します。
- show run interface <アップリンク>
- show cts interface <アップリンクインターフェイス>

ローカルIP-SGTマッピング
ローカルに設定されたIP-SGTマッピングを確認するには、sh cts role-based sgt-map allコマンドを入力します。

ローカルフォールバックSGACL
フォールバックSGACLを確認するには、sh cts role-based permissionコマンドを実行します。

注:ISEによってプッシュされるSGACLは、ローカルSGACLよりも優先されます。
ファブリックスイッチでのAllow-List(デフォルトの拒否)の有効化
Allow-list(Default Deny)モデルを確認するには、sh cts role-based permissionコマンドを入力します。

ファブリックに接続されたエンドポイントのSGACL
ISEからダウンロードしたSGACLを確認するには、sh cts role-based permissionコマンドを実行します。

DNACによって作成された契約の確認
ISEからダウンロードしたSGACLを確認するには、show access-list <ACL/Contract Name> コマンドを実行します。


ファブリックスイッチのアンダーレイSGACLカウンタ
SGACLポリシーのヒットを確認するには、次のコマンドを実行します。Show cts role-based counter

トラブルシュート
このセクションでは、設定のトラブルシューティングに役立つ情報を紹介します。
問題 1.両方のISEノードがダウンしている場合。(境界ノードが南北のエンフォースメントポイントとして使用されている場合のみ)
両方のISEノードがダウンした場合、ISEが受信したIPからSGTへのマッピングは境界ノードで削除され、すべてのDGTは不明としてタグ付けされ、存在するすべてのユーザセッションは5 ~ 6分後に停止します。
注:この問題は、sgt(xxxx) -> unknown (0) SGACLアクセスがDHCP、DNS、およびWebプロキシポートに制限されている場合にのみ該当します。
ソリューション:
- SGTを作成(例:RFC1918)
- RFCプライベートIPの範囲を両方の境界にプッシュします。
- sgt(xxxx)からDHCP、DNS、およびWebプロキシへのアクセスを制限 – > RFC1918
- Create/modify sgacl sgt (xxxx) —> unknown with Permit IP contractが含まれています。
これで両方のiseノードがダウンした場合、SGACL sgt—>unknownヒット、および存在するセッションはそのまま残ります。
問題 2:IP-Phone One-Way VoiceまたはNo Voice。
IP変換への拡張はSIPで行われ、実際の音声通信はIP間のRTPを介して行われます。CUCMおよび音声ゲートウェイがDGT_Voiceに追加されました。
ソリューション:
- IP_Phone —> IP_Phoneからのトラフィックを許可することで、同じ場所または水平方向の音声通信を有効にできます。
- その他の場所は、DGT RFC1918のAllowing RTP protocol rangeで許可できます。IP_Phone —> Unknownにも同じ範囲を指定できます。
問題 3:重要なVLANエンドポイントにネットワークアクセスがない。
DNACはスイッチにデータ用の重要なVLANをプロビジョニングし、設定に従って、ISEの停止中に新しい接続が確立されると、Critical VLANとSGT 3999が適用されます。TrustsecポリシーのDefault Denyは、新しい接続がネットワークリソースにアクセスするのを制限します。
ソリューション:
DNACテンプレートを使用した、すべてのエッジスイッチと境界スイッチでの重要なSGTのプッシュSGACL
cts role-based permissions from 0 to 3999 FALLBACK
cts role-based permissions from 3999 to 0 FALLBACK
次のコマンドが設定セクションに追加されます。
注:すべてのコマンドを1つのテンプレートに結合でき、プロビジョニング中にプッシュできます。
問題 4:パケットドロップインの重要なVLAN。
ISEノードのダウンによりマシンが重要なVLANに入ると、重要なVLANのすべてのエンドポイントについて、3 ~ 4分ごとにパケットがドロップされます(最大10個のドロップが観察されます)。
観察:サーバがDEADになると認証カウンタが増加します。クライアントは、サーバがDEADとマークされたときにPSNによる認証を試みます。
ソリューションと回避策:
ISE PSNノードがダウンしている場合、エンドポイントからの認証要求がないことが理想的です。
DNACを使用してRADIUSサーバで次のコマンドをプッシュします。
automate-tester username auto-test probe-on
スイッチでは、このコマンドを使用して、RADIUSサーバに定期的なテスト認証メッセージを送信します。サーバからのRADIUS応答を探します。成功メッセージは不要です。認証の失敗は、サーバが機能していることを示すので十分です。
追加情報
DNAC最終テンプレート:
interface range $uplink1
no cts role-based enforcement
! .
cts role-based sgt-map <ISE Primary IP> sgt 1102
cts role-based sgt-map <Underlay Subnet> sgt 2
cts role-based sgt-map <Wireless OTT Subnet>sgt 1102
cts role-based sgt-map <DNAC IP> sgt 1102
cts role-based sgt-map <SXP Subnet> sgt 2
cts role-based sgt-map <Network Monitoring Tool IP> sgt 1102
cts role-based sgt-map vrf CORP_VN <Voice Gateway Subnet> sgt 1102
!
ip access-list role-based FALLBACK
permit ip
!
cts role-based permissions from 2 to 1102 FALLBACK
cts role-based permissions from 1102 to 2 FALLBACK
cts role-based permissions from 2 to 2 FALLBACK
cts role-based permissions from 0 to 3999 FALLBACK
cts role-based permissions from 3999 to 0 FALLBACK
注:エッジノードのすべてのアップリンクインターフェイスは適用されずに設定されており、アップリンクは境界ノードにのみ接続すると想定されています。境界ノードでは、エッジノードへのアップリンクインターフェイスを適用せずに設定する必要があります。この設定は手動で行う必要があります。