この製品のマニュアルセットは、偏向のない言語を使用するように配慮されています。このマニュアルセットでの偏向のない言語とは、年齢、障害、性別、人種的アイデンティティ、民族的アイデンティティ、性的指向、社会経済的地位、およびインターセクショナリティに基づく差別を意味しない言語として定義されています。製品ソフトウェアのユーザーインターフェイスにハードコードされている言語、RFP のドキュメントに基づいて使用されている言語、または参照されているサードパーティ製品で使用されている言語によりドキュメントに例外が存在する場合があります。シスコのインクルーシブランゲージに対する取り組みの詳細は、こちらをご覧ください。
このドキュメントは、米国シスコ発行ドキュメントの参考和訳です。リンク情報につきましては、日本語版掲載時点で、英語版にアップデートがあり、リンク先のページが移動/変更されている場合がありますことをご了承ください。あくまでも参考和訳となりますので、正式な内容については米国サイトのドキュメントを参照ください。
このトピックでは、新しいテナントの基本的なプロビジョニングにおける次の手順について説明します。
次に、セキュリティ ドメインへの割り当て、コントラクトと VRF の作成、ブリッジ ドメインの作成を含むテナントの基本設定の例を示します。
apic1# configure apic1(config)# tenant exampleCorp apic1(config-tenant)# security domain exampleCorp_dom1 apic1(config-tenant)# vrf context exampleCorp_v1 apic1(config-tenant-vrf)# contract enforce apic1(config-tenant-vrf)# contract provider web apic1(config-tenant-vrf)# contract consumer db apic1(config-tenant-vrf)# contract provider icmp apic1(config-tenant-vrf)# contract consumer icmp apic1(config-tenant-vrf)# exit apic1(config-tenant)# bridge-domain exampleCorp_b1 apic1(config-tenant-bd)# vrf member exampleCorp_v1 apic1(config-tenant-bd)# exit apic1(config-tenant)# interface bridge-domain exampleCorp_b1 apic1(config-tenant-interface)# ip address 172.1.1.1/24 apic1(config-tenant-interface)# ipv6 address 2001:1:1::1/64 apic1(config-tenant-interface)# exit
次に、リーフに特有の VRF 設定の例を示します。
apic1# configure apic1(config)# leaf 101 apic1(config-leaf)# vrf context exampleCorp_v1 tenant exampleCorp apic1(config-leaf-vrf)# ip route 1.2.3.4 5.6.7.8
次に、リーフ インターフェイスに特有の VRF 設定の例を示します。
apic1# configure apic1(config)# leaf 101 apic1(config-leaf)# int eth 1/1 apic1(config-leaf-if)# vrf member exampleCorp_v1 tenant exampleCorp
アプリケーション プロファイルを追加し、アプリケーション エンドポイント グループ(EPG)を作成し、ブリッジ ドメインに EPG を関連付けます。
この項では、ブリッジ ドメインの次の設定について説明します。
apic1# configure apic1(config)# tenant exampleCorp apic1(config-tenant)# interface bridge-domain exampleCorp_bd1 apic1(config-tenant-interface)# mac-address 1234.5678.abcd apic(config-tenant-interface)# ip dhcp relay address 192.0.20.1 tenant exampleCorp application app1 epg epg1 apic1(config-tenant-interface)# ip shared address 1.2.3.4/24 provider application any apic1(config-tenant-interface)# ip shared address 3.2.3.4/24 consumer application any epg any apic1(config-tenant-interface)# exit apic1(config-tenant)# exit apic1(config)# tenant my_dhcp_provider apic1(config-tenant)# interface bridge-domain bd_dhcp apic1(config-tenant-interface)# ip shared address 7.8.9.1/24 provider application app2 epg epg2
このトピックでは、スタティック アプリケーション EPG の基本的なプロビジョニングにおける次の手順について説明します。
アプリケーション プロファイルおよびアプリケーション エンドポイント グループ(EPG)を作成する前に、VLAN ドメイン、テナント、VRF、およびブリッジ ドメインを作成する必要があります。
次に、レイヤ 2 ポートに導入されるアプリケーション EPG を作成する例を示します。
apic1# configure apic1(config)# tenant exampleCorp apic1(config-tenant)# application OnlineStore apic1(config-tenant-app)# epg exampleCorp_webepg1 apic1(config-tenant-app-epg)# bridge-domain member exampleCorp_b1 apic1(config-tenant-app-epg)# exit apic1(config-tenant-app)# exit apic1(config-tenant)# exit apic1(config)# leaf 101 apic1(config-leaf)# interface eth 1/2 apic1(config-leaf-if)# switchport apic1(config-leaf-if)# vlan-domain member dom1 apic1(config-leaf-if)# switchport trunk allowed vlan 10 tenant exampleCorp application OnlineStore epg exampleCorp_webepg1
次に、ポート チャネルに EPG を導入する例を示します。
apic1(config)# leaf 101 apic1(config-leaf)# interface port-channel po1 apic1(config-leaf-if)# switchport apic1(config-leaf-if)# vlan-domain member dom1 apic1(config-leaf-if)# switchport trunk allowed vlan 10 tenant exampleCorp application OnlineStore epg exampleCorp_webepg1
ポートの VLAN を EPG にマッピングします。
レガシーの転送モードでは、コントラクトまたは EPG を使用せずにスイッチングとルーティングを行うことができます。このモードでは、ポートの VLAN はブリッジ ドメインに直接マッピングされます。legacy forwarding vlan コマンドは EPG 関連の設定を必要としないため、必要なすべてのオブジェクトを自動的に作成します。
コマンドまたはアクション | 目的 | |
---|---|---|
ステップ 1 | configure 例: configure |
コンフィギュレーション モードに入ります。 |
ステップ 2 | tenanttenant-name 例: apic1(config)# tenant exampleCorp |
テナント コンフィギュレーション モードを開始します。 |
ステップ 3 | bridge-domainbd-name 例: apic1(config-tenant)# bridge-domain exampleCorp_b1 |
テナント インターフェイス コンフィギュレーション モードを開始してブリッジ ドメインを設定します。 |
ステップ 4 | [no]legacy forwardingvlanvlan-idvlan-domainvlan-domain-name 例: apic1(config-tenant-bd)# legacy-forwarding vlan 50 vlan-domain dom1 |
ブリッジ ドメインに VLAN をマッピングします。 |
ステップ 5 | exit 例: apic1(config-tenant-bd)# exit |
テナント コンフィギュレーション モードに戻ります。 |
ステップ 6 | exit 例: apic1(config-tenant)# exit |
グローバル コンフィギュレーション モードに戻ります。 |
ステップ 7 | leafnode-id 例: apic1(config)# leaf 101 |
設定するリーフを指定します。 |
ステップ 8 | interfacetype 例: apic1(config-leaf)# interface eth 1/1 |
設定するインターフェイスを指定します。イーサネット ポートの場合は、ethernetslot/port を使用します。 |
ステップ 9 | [no]switchport trunk allowedvlanvlan-idtenanttenant-namelegacy-forwarding 例: apic1(config-leaf-if)# switchport trunk allowed vlan 50 tenant exampleCorp legacy-forwarding |
インターフェイスで VLAN を有効にして、レガシーの転送モードで VLAN を使用するテナント ブリッジ ドメインにこれを関連付けます。 |
次に、ブリッジ ドメイン間の転送にレガシーの転送モードを設定する例を示します。
apic1# configure apic1(config)# tenant exampleCorp apic1(config-tenant)# bridge-domain exampleCorp_b1 apic1(config-tenant-bd)# legacy-forwarding vlan 50 vlan-domain dom1 apic1(config-tenant-bd)# exit apic1(config-tenant)# bridge-domain exampleCorp_b2 apic1(config-tenant-bd)# legacy-forwarding vlan 60 vlan-domain dom1 apic1(config-tenant-bd)# exit apic1(config-tenant)# exit apic1(config)# leaf 101 apic1(config-leaf)# interface eth 1/1 apic1(config-leaf-if)# vlan-domain member dom1 apic1(config-leaf-if)# switchport trunk allowed vlan 50 tenant exampleCorp legacy-forwarding apic1(config-leaf-if)# exit apic1(config-leaf)# interface eth 1/2 apic1(config-leaf-if)# vlan-domain member dom1 apic1(config-leaf-if)# switchport trunk allowed vlan 60 tenant exampleCorp legacy-forwarding
コントラクトは次のタスクでテナントの下に設定します。
タスクは、この順序に従う必要はありません。たとえば、コントラクトを定義する前に、EPG にコントラクト名をリンクすることができます。
(注) |
APIC のフィルタ(ACL)は、従来の NX-OS ACL の permit | deny の代わりに、match を使用します。フィルタ エントリの目的は、特定のトラフィック フローを一致させることだけです。トラフィックは、ACL にコントラクトまたはタブー コントラクトが適用されると、許可または拒否されます。 |
コマンドまたはアクション | 目的 | |
---|---|---|
ステップ 1 | configure 例: apic1# configure |
コンフィギュレーション モードに入ります。 |
ステップ 2 | tenanttenant-name 例: tenant exampleCorp |
テナント(存在しない場合)を作成し、テナント コンフィギュレーション モードを開始します。 |
ステップ 3 | access-listacl-name 例: apic1(config-tenant)# access-list http_acl |
コントラクトで利用できるアクセス リスト(フィルタ)を作成します。 |
ステップ 4 | match {arp | icmp | ip} 例: apic1(config-tenant-acl)# match arp |
(任意) 選択したプロトコルのトラフィックに一致するルールを作成します。 |
ステップ 5 | match {tcp | udp} [srcfrom[-to]] [destfrom[-to]] 例: apic1(config-tenant-acl)# match tcp dest 80 apic1(config-tenant-acl)# match tcp dest 443 |
(任意) TCP または UDP トラフィックに一致するルールを作成します。 |
ステップ 6 | matchrawoptions 例: apic1(config-tenant-acl)# |
(任意) Raw vzEntry に一致するルールを作成します。 |
ステップ 7 | exit 例: apic1(config-tenant-acl)# exit |
テナント コンフィギュレーション モードに戻ります。 |
ステップ 8 | contractcontract-name 例: apic1(config-tenant)# contract web80 |
コントラクトを作成し、コントラクト コンフィギュレーション モードを開始します。 |
ステップ 9 | subjectsubject-name 例: apic1(config-tenant-contract)# subject web80 |
コントラクト サブジェクトを作成し、サブジェクト コンフィギュレーション モードを開始します。 |
ステップ 10 | [no]access-groupacl-name [in | out | both] 例: apic1(config-tenant-contract-subj)# access-group http_acl both |
(任意) 一致するトラフィックの方向を指定し、コントラクトからアクセス リストを追加(削除)します。 |
ステップ 11 | [no]label namelabel-name {provider | consumer} 例: apic1(config-tenant-contract-subj)# |
(任意) サブジェクトにプロバイダーまたはコンシューマのラベルを追加(削除)します。 |
ステップ 12 | [no]label match {provider | consumer} [any | one | all | none] 例: apic1(config-tenant-contract-subj)# |
(任意) 次のプロバイダーまたはコンシューマのラベルの一致タイプを指定します。 |
ステップ 13 | exit 例: apic1(config-tenant-contract-subj)# exit |
コントラクト コンフィギュレーション モードに戻ります。 |
ステップ 14 | exit 例: apic1(config-tenant-contract)# exit |
テナント コンフィギュレーション モードに戻ります。 |
ステップ 15 | applicationapp-name 例: apic1(config-tenant)# application OnlineStore |
アプリケーション コンフィギュレーション モードを開始します。 |
ステップ 16 | epgepg-name 例: apic1(config-tenant-app)# epg exampleCorp_webepg1 |
コントラクトにリンクする EPG のコンフィギュレーション モードを開始します。 |
ステップ 17 | bridge-domainmemberbd-name 例: apic1(config-tenant-app-epg)# bridge-domain member exampleCorp_bd1 |
この EPG のブリッジ ドメインを指定します。 |
ステップ 18 | contract providerprovider-contract-name 例: apic1(config-tenant-app-epg)# contract provider web80 |
この EPG のプロバイダー コントラクトを指定します。この EPG との通信は、このプロバイダー コントラクトに従う通信である限り、その他の EPG から開始することができます。 |
ステップ 19 | contract consumerconsumer-contract-name 例: apic1(config-tenant-app-epg)# contract consumer rmi99 |
この EPG のコンシューマ コントラクトを指定します。この EPG のエンドポイントは、このコントラクトを提供する EPG の任意のエンドポイントとの通信を開始することができます。 |
この例では、EPG にコントラクトを作成し適用する方法を示します。
apic1# configure apic1(config)# tenant exampleCorp # CREATE FILTERS apic1(config-tenant)# access-list http_acl apic1(config-tenant-acl)# match tcp dest 80 apic1(config-tenant-acl)# match tcp dest 443 apic1(config-tenant-acl)# exit # CREATE CONTRACT WITH FILTERS apic1(config-tenant)# contract web80 apic1(config-tenant-contract)# subject web80 apic1(config-tenant-contract-subj)# access-group http_acl both apic1(config-tenant-contract-subj)# exit apic1(config-tenant-contract)# exit # ASSOCIATE CONTRACTS TO EPG apic1(config-tenant)# application OnlineStore apic1(config-tenant-app)# epg exampleCorp_webepg1 apic1(config-tenant-app-epg)# bridge-domain member exampleCorp_bd1 apic1(config-tenant-app-epg)# contract consumer rmi99 apic1(config-tenant-app-epg)# contract provider web80 apic1(config-tenant-app-epg)# exit apic1(config-tenant-app)#exit apic1(config-tenant)#exit # ASSOCIATE PORT AND VLAN TO EPG apic1(config)#leaf 101 apic1(config-leaf)# interface ethernet 1/4 apic1(config-leaf-if)# switchport trunk allowed vlan 102 tenant exampleCorp application OnlineStore epg exampleCorp_webepg1
この例では、コントラクト自体のフィルタ インラインを宣言してコントラクトを定義するためのシンプルな方法を示します。
apic1# configure apic1(config)# tenant exampleCorp apic1(config-tenant)# contract web80 apic1(config-tenant-contract)# match tcp 80 apic1(config-tenant-contract)# match tcp 443
1 つのテナントからコントラクトをエクスポートし、別のテナントにインポートできます。コントラクトをインポートするテナントでは、コントラクトはコンシューマ コントラクトとしてのみ適用できます。コントラクトはエクスポート時に名前を変更できます。
コマンドまたはアクション | 目的 | |
---|---|---|
ステップ 1 | configure 例: apic1# configure |
コンフィギュレーション モードに入ります。 |
ステップ 2 | tenanttenant-name 例: apic1(config)# tenant RedCorp |
エクスポートするテナントのテナント コンフィギュレーション モードを開始します。 |
ステップ 3 | contractcontract-name 例: apic1(config-tenant)# contract web80 |
エクスポートするコントラクトのコントラクト コンフィギュレーション モードを開始します。 |
ステップ 4 | scope {application | exportable | tenant | vrf} 例: apic1(config-tenant-contract)# scope exportable |
コントラクトの共有方法を設定します。スコープは次のようになります。 |
ステップ 5 | export totenantother-tenant-nameasnew-contract-name 例: apic1(config-tenant-contract)# export to tenant BlueCorp as webContract1 |
他のテナントにコントラクトをエクスポートします。同じコントラクト名を使用することも、名前を変更することもできます。 |
ステップ 6 | exit 例: apic1(config-tenant-contract)# exit |
テナント コンフィギュレーション モードに戻ります。 |
ステップ 7 | exit 例: apic1(config-tenant)# exit |
グローバル コンフィギュレーション モードに戻ります。 |
ステップ 8 | tenanttenant-name 例: tenant BlueCorp |
インポートするテナントのテナント コンフィギュレーション モードを開始します。 |
ステップ 9 | applicationapp-name 例: apic1(config-tenant)# application BlueStore |
アプリケーション コンフィギュレーション モードを開始します。 |
ステップ 10 | epgepg-name 例: apic1(config-tenant-app)# epg BlueWeb |
コントラクトにリンクする EPG のコンフィギュレーション モードを開始します。 |
ステップ 11 | contract consumerconsumer-contract-nameimported 例: apic1(config-tenant-app-epg)# contract consumer webContract1 imported |
この EPG にインポートされたコンシューマ コントラクトを指定します。この EPG のエンドポイントは、このコントラクトを提供する EPG の任意のエンドポイントとの通信を開始することができます。 |
次に、テナント RedCorp から、コンシューマ コントラクトになるテナント BlueCorp にコントラクトをエクスポートする例を示します。
apic# configure apic1(config)# tenant RedCorp apic1(config-tenant)# contract web80 apic1(config-tenant-contract)# scope exportable apic1(config-tenant-contract)# export to tenant BlueCorp as webContract1 apic1(config-tenant-contract)# exit apic1(config-tenant)# exit apic1(config)# tenant BlueCorp apic1(config-tenant)# application BlueStore apic1(config-tenant-application)# epg BlueWeb apic1(config-tenant-application-epg)# contract consumer webContract1 imported