Cisco ACI のイベントをリアルタイムで検知する Python サンプルスクリプト
以前に Cisco ACI のイベントをリアルタイムで検知する Node.js サンプルスクリプト というメモを書きました。 このメモの Python バージョンを作ったので、改めてメモしておきます。
以前に Cisco ACI のイベントをリアルタイムで検知する Node.js サンプルスクリプト というメモを書きました。 このメモの Python バージョンを作ったので、改めてメモしておきます。
Cisco ACI で Contract Preferred Groups を使うと EPG を優先グループ / 非優先グループに分けることが出来ます。 Preferred Group 設定には「include」と「exclude」があり、各々以下のように「通信する際に Contract を必要とするか? 否か?」という違いがあります。
設定 | 意味 | 説明 |
---|---|---|
include | 優先グループ | 優先グループ同士は Contract が無くても通信可能 |
exclude | 非優先グループ | 通信するには Contract が必要 |
今回は Preferred Group を設定した場合 / していない場合で「実際に Zoning-Rule がどう見えるか?」を確認してみました。 検証は 5.0(2h) 環境で実施しています。
Cisco ACI で ExtEpg (External EPG) と AppEpg (Application EPG) を Contract した場合に作成される Zoning-Rule は AppEpg 同士を Contract した場合と、特に変わりありません。 今回は実際に ExtEpg と AppEpg を Contract し、作成される Zoning-Rule を確認してみます。 検証は 5.0(2h) 環境で実施しました。
Cisco ACI では Quota 設定を行うことにより、「特定のオブジェクトの作成上限数を制限する」ことが可能です。
例えば、Tenant1 の VRF 数の上限を「3」に設定するには下記のように設定します。
この状態で VRF を 3 以上、設定しようとするとエラーになり、設定することが出来ません。
Cisco ACI ではログインバナーをカスタマイズすることが可能です。 設定は System
→ System Settings
→ System Alias and Banners
から実施することが可能です。 今回はバージョン 5.0(2h) 環境で「何を設定すると → どこに反映されるか?」を確認してみました。
Cisco ACI では Policy CAM の消費量は「SrcEPG 数 x DstEPG 数 x Filter Entry 数 x 1 (both direction なら 2)」で算出出来る、とされています。 ですが、Filter Entry は TCP/UDP のポートを Range (範囲) 設定することが可能です。 幾つかのパターンで Range 設定を実施し、各々の状態における Policy Count 数や Zoning-Rule、Zoning-Filter の状態を見ていきます。
Cisco ACI で EPG 間の通信許可/拒否ルールを定義するには Contract 設定が必要になります。 Contract は「Contract → Subject → Filter」という三階層構造を取ります。
Contract の配下に作成する Subject には以下、ふたつの設定が存在します。
Apply Both Directions
Reverse Filter Ports
「Apply Both Directions
を無効にすると Reverse Filter Ports
も無効になる」特性上、取りうる組み合わせは以下の 3 パターンのみです (Apply Both Directions
が無効なのに Reverse Filter Ports
が有効、という設定は出来ません。 CLI から無理やり設定することは出来ますが、Apply Both Directions
がアンチェックだと Reverse Filter Ports
の設定有無による動作の差はありません)。
No. | Apply Both Directions | Reverse Filter Ports |
---|---|---|
1 | ○ | ○ |
2 | ○ | X |
3 | X | X |
今回は各々のパターンで Zoning-Rule がどのように表示されるか、確認していきます。 検証は 5.0(2h) 環境で実施しました。
Cisco ACI では Contract に同じ接続をする EPG が複数存在する場合、Master と呼ばれる「親 EPG」を作成し、「子 EPG」からは Master を参照させる、という機能があります。 この機能は EPG Contract Inheritance と呼ばれています。 EPG Contract Inheritance (コントラクトの継承) にも記載がありますが、EPG Contract Inheritance は Policy CAM のリソース消費量削減にはなりません。 今回は実際に EPG Contract Inheritance 設定を行い、Zoning-Rule がどのように展開されているか、確認しようと思います。 検証は ACI 5.0(2h) 環境で実施しました。
Cisco ACI では同一 VRF 内での通信時に「Contract 設定が必要か?」「不必要か?」を定義する Policy Control Enforcement Preference
という設定があります。 この設定はプライベート ネットワークの設定パラメータ に下記と記載されています。
Policy Control Enforcement Preference:優先ポリシー制御。値は [enforced] または [unenforced] です。[enforced] を選択した場合は、トラフィックを許可するエンドポイント グループ間のコントラクトが必要です。[unenforced] を選択した場合は、プライベート ネットワーク内のすべてのトラフィックが許可されます。デフォルトは [enforced] です。
Policy Control Enforcement Preference
は Enforced
または Unenforced
を設定出来ます。 今回は各々の値を設定した際に Policy CAM がどのように変化するのか、比較してみます。 テストは 5.0(2h) で実施しました。
Cisco ACI に関する情報を読んでいると「EPG 同士は Contract されていない限り、通信出来ない」という記載を目にすることがあります。 VRF の Policy Control Enforcement Preference
設定が Unenforced
で無い限り、この記載は概ね正しいのですが、厳密には「暗黙的に ARP は許可される」という振る舞いをします。