Cisco ACI の Tenant を CLI で設定する
Cisco ACI は GUI や REST API など、様々な方法で設定することが出来ます。 今回は CLI で設定する方法をメモしておきます。 尚、実際の検証は 5.0(2h) で行いました。
設定モードへの移行方法¶
ACI 環境において、CLI であっても「設定は全て APIC で行う」というのは同じです。 CLI の設定モードへ移行するには APIC で configure terminal を実行します。
| 1 |  | 
conf t では無く) configure でも同じく、設定モードへ移行することが可能です。
| 1 |  | 
Tenant¶
Tenant の作成時、特に注意事項はありません。
| 1 2 |  | 
VRF¶
VRF の作成時、特に注意事項はありません。
| 1 2 3 4 |  | 
BD (Bridge Domain)¶
GUI と CLI でデフォルト値に以下の差があります。
| 項目 | GUI デフォルト値 | CLI デフォルト値 | 
|---|---|---|
| ARP Flooding | enable | disable | 
その為、CLI から BD を作成する場合、必要に応じて arp flooding を設定しておきます。
| 1 2 3 4 5 6 |  | 
尚、bridge-domain Bd1 で BD を作成すると必ず同時に interface bridge-domain Bd1 も定義されます。
| 1 2 3 4 5 6 7 8 9 10 11 12 13 |  | 
この設定は連動しており、例えば no interface bridge-domain Bd1 で削除すると bridge-domain Bd1 も削除されます。
| 1 2 3 4 5 6 7 8 9 10 11 |  | 
BD Subnet¶
GUI と CLI でデフォルト値に以下の差があります。
| 項目 | GUI デフォルト値 | CLI デフォルト値 | 
|---|---|---|
| Make this IP address primary | disable | enable | 
その為、CLI から BD を作成する場合、ip address ~ secondary のように secondary を設定します。
| 1 2 3 4 5 |  | 
以下のように secondary を指定せずに設定すると Make this IP address primary が Enable になります。
| 1 2 3 4 5 6 7 8 9 |  | 

Application Profile¶
Application Profile の作成時、特に注意事項はありません。
| 1 2 3 4 |  | 
AppEpg (Application EPG)¶
GUI と CLI でデフォルト値に以下の差があります。
| 項目 | GUI デフォルト値 | CLI デフォルト値 | 
|---|---|---|
| QoS | Level3 | Unspecified | 
その為、CLI から設定する時は必要に応じて明示的に set qos-class level3 を設定します。 尚、今回は VMM Domain で設定しています。
| 1 2 3 4 5 6 7 8 9 10 |  | 
L3Out¶
L3Out は設定量が多いで若干、長くなります。 最低限の設定は概ね以下のようになろうかと思います。 ここでは OSPF で設定しています。 show running-config で表示されるコンフィグ順序上は「router ospf default が先 (上位)」なのですが、router ospf default で定義している VRF が存在しない場合、この順序で設定するとエラーになってしまいます。 そこで (show running-config 通りのコンフィグ順序では無く) router ospf default より先に vrf context を設定しています。
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |  | 
Filter¶
Filter の作成時、特に注意事項はありません。
| 1 2 3 4 5 |  | 
Contract 及び Subject¶
contract で Contract を作成します。 type オプションには以下の値を指定可能です。 type オプションを指定しない場合は Standard Contract が作成されます。
| No. | type | 作成される Contract 種別 | 備考 | 
|---|---|---|---|
| 1 | permit | Standard | - | 
| 2 | deny | Taboo | - | 
| 3 | oob-mgmt | Out-Of-Band Contracts | mgmt' Tenant でしか作成出来ない (他 Tenant で作成するとエラー) | 
Out-Of-Band Contracts とは mgmt Tenant で OoB 接続の管理に利用する特殊な Contract です。

GUI で Subject を設定する場合、デフォルトで Apply Both Direction が true に設定されますが、CLI では access-group Filter1 both のように、明示的に both を指定する必要があります。
| 1 2 3 4 5 6 7 |  | 
Apply Both Direction を false に設定する場合は in オプションを指定する必要があります。
| 1 2 3 4 5 6 7 |  | 
access-group Filter1 設定はオプションとして以下の 3 値から指定することが出来ます。
| No. | access-group 設定 | Apply Both Direction | Filter Chain For Consumer to Provider | Filter Chain For Provider to Consumer | 
|---|---|---|---|---|
| 1 | both | true | - | - | 
| 2 | in | false | ○ | X | 
| 3 | out | false | X | ○ | 
尚、CLI に限った話ではありませんが、both な Filter が存在する Subject に in や out な設定を追加することは出来ません。 実際に試してみると Cannot add in if both is present というエラーになります。
| 1 2 3 4 5 6 7 8 |  | 
both Filter を含まないのであれば in と out を混在させることは可能です。 以下で例示している Contract2 や Contract3 はいずれも正しく設定可能です。
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |  | 
L3Out と AppEpg を Contract する¶
L3Out と AppEpg を Contract してみます。
L3Out (Provider) ~ AppEpg (Consumer)¶
以下の設定になります。
| 1 2 3 4 5 6 7 8 9 10 |  | 
AppEpg (Provider) ~ L3Out (Consumer)¶
Provider と Consumer を逆に設定する場合、以下の設定になります。
| 1 2 3 4 5 6 7 8 9 10 |  | 
BD Subnet を L3Out から広報する¶
BD Subnet を L3Out から広報するには下記の設定が必要です。
- BD の L3 Configurations で Associated L3 Outsへ適切な L3Out を関連付ける
- BD Subnet の Scope を Advertised Externallyに設定する
これを CLI で設定すると下記の通りです。
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |  | 
leaf の match bridge-domain Bd1 に一致する設定は、GUI 上では下記です。

Tenant の ip address 10.0.1.254/24 scope public に一致する設定は、GUI 上では下記です。

ExtEpg Subnet¶
ExtEpg Subnet の External EPG Classification が External Subnets for External EPG をチェックした状態にするには以下のように設定します。
| 1 2 3 4 5 |  | 
ExtEpg の Route Control / External EPG Classification 設定ごとの設定を一覧にすると以下の通りです。 Route Control に関連する設定は leaf で、External EPG Classification に関する設定は tenant で実施します。

全体の設定¶
(Application Profile や Subject, Filter などを除き) 今回設定した主要コンポーネントを図示すると以下の通りです。

この構成を CLI から設定する場合、コンフィグは以下の通りです。
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 |  |