サービス グラフの設定

サービス グラフについて

Cisco Application Centric InfrastructureACI)はアプリケーションの重要部分としてサービスを見なします。必要なサービスは、Cisco Application Policy Infrastructure ControllerAPIC)からの Cisco ACI ファブリックでインスタンス化されたサービス グラフとして処理されます。ユーザは、アプリケーションに対してサービスを定義し、サービス グラフはアプリケーションが必要とする一連のネットワークまたはサービス機能を識別します。

サービス グラフは、次の要素を使ってネットワークを表します。

  • 機能ノード:機能ノードは、トランスフォーム(SSL ターミネーション、VPN ゲートウェイ)、フィルタ(ファイアウォール)、または端末(侵入検知システム)など、トラフィックに適用される機能を表します。サービス グラフ内の 1 つの機能は 1 つ以上のパラメータを必要とし、1 つまたは複数のコネクタを持っている場合があります。

  • 端末ノード:端末ノードはサービスグラフからの入出力を有効にします。

  • コネクタ:コネクタはノードからの入出力を有効にします。

  • 接続:接続によって、ネットワーク経由でトラフィックを転送する方法が決定されます。

グラフが Cisco APIC に設定されると、Cisco APIC はサービス グラフに明記されたサービス機能の要件に従って、サービスを自動的に設定します。Cisco APIC はまた、サービス グラフで指定されるサービス機能のニーズに応じてネットワークを自動的に設定しますが、これによってサービス デバイスでの変更は要求されません。

サービス グラフは、アプリケーションの複数の階層として表され、適切なサービス機能が間に挿入されます。

サービス アプライアンス(デバイス)は、グラフ内でサービス機能を実行します。1 つ以上のサービス アプライアンスが、グラフに必要なサービスをレンダリングするために必要になることがあります。1 つ以上のサービス機能が単一のサービス デバイスで実行できます。

サービス グラフおよびサービス機能には、次の特性があります。

  • エンドポイント グループで送受信されたトラフィックはポリシーに基づいてフィルタリングでき、トラフィックのサブセットはグラフ内の異なるエッジにリダイレクトできます。

  • サービス グラフのエッジには方向性があります。

  • タップ(ハードウェア ベースのパケット コピー サービス)は、サービス グラフの異なるポイントに接続できます。

  • 論理機能は、ポリシーに基づいて適切な(物理または仮想)デバイスでレンダリングできます。

  • サービス グラフでは、エッジの分割と結合がサポートされ、管理者は線形サービス チェーンに制限されません。

  • トラフィックは、サービス アプライアンスが発信した後にネットワーク内で再度分類できます。

  • 論理サービス機能は、要件に応じて、拡張や縮小が可能で、クラスタ モードまたは 1:1 アクティブ/スタンバイ ハイアベイラビリティ モードで展開できます。

次の図は、サービスグラフの導入の例を示しています:

図 1. サービス グラフの展開の例

サービスグラフを展開するには、次の図に示すようにブリッジドメインと VRF インスタンスが必要です。

図 2. サービスグラフのブリッジドメインと VRF インスタンス

(注)  


使用すると、その他のテナント内のエンドポイント グループに関連付けられているサービス グラフの脚の一部があるかどうか、 グラフ テンプレートの関連のオブジェクトを削除 GUI で、機能、 Cisco APIC 以外のテナントからインポートされた契約は削除されませんサービス グラフが存在します。Cisco APICもサービス グラフよりも異なるテナントにあるエンドポイント グループ契約のクリーニングはありません。手動で異なるテナントではこれらのオブジェクトを削除する必要があります。


機能ノードについて

機能ノードは、単一のサービス機能を表します。機能ノードには、サービス機能のネットワーク要件を表す機能ノード コネクタがあります。

Cisco Application Policy Infrastructure Controller (APIC) は、ネットワークリソースを割り当てて、ファブリック側で VLAN/VXLAN のプログラミングのみを実行します。

次の設定は必要ありません。

  • MFunc の関係

  • サポートされる機能タイプ(go-through、go-to)に関する情報

Cisco APIC は、機能ノードのネットワーク情報(LIF、CIF)を把握する必要があります。この情報は、Cisco APIC がリーフスイッチでネットワークを適切にプログラムするためと、Cisco APIC がこの情報をトラブルシューティング ウィザードの目的で使用するために必要です。

さらに、次の設定が必要です。

  • グラフ インスタンス化時に LDevVip の選択を可能にする LDevCtx

  • グラフ インスタンス化時に LIf の選択を可能にする LIfCtx

  • LIfCtx 内のブリッジ ドメイン

  • LIfCtx でのルート ピアリング

  • LIfCtx 内のサブネット


(注)  


Cisco ACI マルチサイト 構成の場合、サービスグラフに最大 2 つのノードを展開できます。非 Cisco ACI マルチサイト 構成の場合、サービスグラフに最大 5 つのノードを展開できます。


機能ノード コネクタについて

機能ノード コネクタは、サービス グラフに機能ノードを接続し、グラフのコネクタ サブネットに基づいて適切なブリッジ ドメインと接続と関連付けられます。各コネクタは、VLAN または Virtual Extensible LAN(VXLAN)に関連付けられます。コネクタの両側がエンドポイント グループ(EPG)として扱われ、ホワイトリストがスイッチにダウンロードされ、2 つの機能ノード間の通信がイネーブルになります。

サービス グラフ接続について

サービス グラフ接続は、1 つの機能ノードを別の機能ノードに接続します。

端末ノードについて

端末ノードはサービス グラフとコントラクトを接続します。コントラクトに端末ノードを接続することにより、2 台のアプリケーション エンドポイント グループ(EPG)間のトラフィックにサービス グラフを挿入できます。接続されると、コントラクトのコンシューマ EPG とプロバイダー EPG 間のトラフィックはサービス グラフにリダイレクトされます。

サービスの注意事項と制限事項

サービスグラフの設定に関する注意事項と制限事項を以下に示します。

  • 以下のようなサービスグラフ関連の構成

    • ブリッジドメイン(サービスグラフで使用する場合)およびサービスグラフテンプレートには、その名前の一部に文字列「C-」を含めることができません。

    • 論理デバイスは、その名前の一部に文字列「N-」を含めることができません。

GUI でサービスグラフテンプレートを構成する

サービスグラフテンプレートは、レイヤ 4 ~ レイヤ 7 サービス機能、レイヤ 4 ~ レイヤ 7 サービス デバイス、またはコピーデバイスとそれらに関連する一連の設定です。サービスグラフテンプレートは、レイヤ 4 ~ レイヤ 7 サービスデバイスまたはコピーデバイス、およびファブリック上で「レンダリング済み(rendered)」または設定されるコントラクトに関連付けられている必要があります。

始める前に

テナントを作成しておく必要があります。

手順


ステップ 1

メニュー バーで、[テナント(Tenants)] > [すべてのテナント(ALL Tenants)] の順に選択します。 >

ステップ 2

作業ウィンドウで、テナントの名前をダブルクリックします。

ステップ 3

ナビゲーションウィンドウで、[テナント(Tenant)] [テナント名(tenant_name) ] > [サービス(Services)] > [L4-L7] > [サービスグラフテンプレート(Service Graph Templates)] の順に選択します。

ステップ 4

ナビゲーション ウィンドウで、Service Graph Templates を右クリックして、Create a L4-L7 Service Graph Template を選択します。

Create L4-L7 Service Graph Template ダイアログボックスが表示されます。

ステップ 5

必要に応じて、1 つまたは複数のレイヤ 4 ~ レイヤ 7 サービスデバイスまたはコピーデバイスを作成します。

  1. Device Clusters ペイン (Create L4-L7 Service Graph Template ダイアログボックス) でドロップダウン矢印をクリックして、Create L4-L7 Devices または Create Copy Devices を選択します。

    対応するダイアログボックスが表示されます。
  2. ダイアログボックスに従い、ダイアログボックスに表示される適切な値を入力して Next をクリックし、完了するまで続けます。

    (注)  

     

    ダイアログボックス内のフィールドの説明については、右上隅のヘルプ アイコンをクリックして、ヘルプ ファイルを表示してください。

  3. 完了したら、Finish をクリックします。

    Create L4-L7 Service Graph Template ダイアログボックスに戻ります。

ステップ 6

Create L4-L7 Service Graph Template ダイアログボックスに適切な値を入力します。

(注)  

 

ダイアログボックス内のフィールドの説明については、右上隅のヘルプ アイコンをクリックして、ヘルプ ファイルを表示してください。

ステップ 7

(任意) (既存のサービス グラフ テンプレートを複製場合のみ) 複製したサービス グラフ テンプレートからノードを削除する場合は、ノードを右クリックして、Remove Node を選択します。

ステップ 8

サービスノードを作成するには、レイヤ 4 ~ レイヤ 7 サービスデバイスを [デバイスクラスタ(Device Clusters)] セクションからドラッグし、コンシューマー エンドポイントグループとプロバイダー エンドポイントグループの間にドロップします。コピー ノードを作成するには、コピー デバイスをドラッグ アンド ドロップします。既存のサービス グラフ テンプレートを複製し、それにサービス グラフ テンプレートに使用するすべてのノードが含まれている場合には、この手順はオプションです。

複数のデバイスをドラッグ アンド ドロップして、複数のノードを作成することができます。サービス ノードの最大数は 3 ですが、他のデバイスはそれ以上ドラッグ アンド ドロップできます。

コピー デバイスをドロップした場所が、データ フローの中で、コピー デバイスがトラフィックをコピーする場所になります。

ステップ 9

1 つまたは複数のサービスノードを作成した場合は、各レイヤ 4 ~ レイヤ 7 サービスデバイスの [デバイス名(device_name)情報] セクションで、フィールドに入力します。フィールドは、デバイスのタイプによって異なります。

(注)  

 

フィールドの説明については、右上隅のヘルプ アイコンをクリックして、ヘルプ ファイルを表示してください。

ステップ 10

完了したら、Submit をクリックします。

ステップ 11

(任意) Navigation ウィンドウで、サービス グラフ テンプレートをクリックします。

作業ウィンドウには、そのサービス グラフ テンプレートのグラフィック トポロジが表示されます。

REST API を使用したサービス グラフ テンプレートの設定

次の REST API を使用してサービス グラフ テンプレートを設定できます。

<polUni>
  <fvTenant name="acme">
    <vnsAbsGraph name="G1">
      <vnsAbsTermNodeCon name="Input1">
        <vnsAbsTermConn name="C1">
            </vnsAbsTermConn>
      </vnsAbsTermNodeCon>
      <vnsAbsNode name="Node" funcType="GoTo">
        <vnsRsDefaultScopeToTerm
          tDn="uni/tn-acme/AbsGraph-G1/AbsTermNodeProv-Output1/outtmnl"/>
        <vnsAbsFuncConn name="inside">
          <vnsRsMConnAtt
            tDn="uni/infra/mDev-Insieme-Generic-1.0/mFunc-SubnetFunc/mConn-external"/>
        </vnsAbsFuncConn>
        <vnsAbsFuncConn name="outside">
          <vnsRsMConnAtt
            tDn="uni/infra/mDev-Insieme-Generic-1.0/mFunc-SubnetFunc/mConn-internal"/>
        </vnsAbsFuncConn>
        <vnsAbsDevCfg>
          <vnsAbsFolder key="oneFolder" name="f1">
            <vnsAbsParam key="oneParam" name="p1" value="v1"/>
          </vnsAbsFolder>
        </vnsAbsDevCfg>
        <vnsAbsFuncCfg>
          <vnsAbsFolder key="folder" name="folder1" devCtxLbl="C1">
            <vnsAbsParam key="param" name="param" value="value"/>
          </vnsAbsFolder>
          <vnsAbsFolder key="folder" name="folder2" devCtxLbl="C2">
            <vnsAbsParam key="param" name="param" value="value"/>
          </vnsAbsFolder>
        </vnsAbsFuncCfg>
        <vnsRsNodeToMFunc tDn="uni/infra/mDev-Insieme-Generic-1.0/mFunc-SubnetFunc"/>
      </vnsAbsNode>
      <vnsAbsTermNodeProv name="Output1">
        <vnsAbsTermConn name="C6">
            </vnsAbsTermConn>
      </vnsAbsTermNodeProv>
      <vnsAbsConnection name="CON1">
        <vnsRsAbsConnectionConns
          tDn="uni/tn-acme/AbsGraph-G1/AbsTermNodeCon-Input1/AbsTConn"/>
        <vnsRsAbsConnectionConns tDn="uni/tn-acme/AbsGraph-G1/AbsNode-Node/AbsFConn-inside"/>
      </vnsAbsConnection>
      <vnsAbsConnection name="CON3">
        <vnsRsAbsConnectionConns tDn="uni/tn-acme/AbsGraph-G1/AbsNode-Node/AbsFConn-outside"/>
        <vnsRsAbsConnectionConns
          tDn="uni/tn-acme/AbsGraph-G1/AbsTermNodeProv-Output1/AbsTConn"/>
      </vnsAbsConnection>
    </vnsAbsGraph>
  </fvTenant>
</polUni>

GUI を使用したエンドポイント グループへのサービス グラフ テンプレートの適用

次の手順で、エンドポイント グループへのサービス グラフ テンプレートの適用法を説明します。

始める前に

次を作成しておく必要がります。

  • アプリケーション エンドポイント グループ

  • サービス グラフ テンプレート

手順


ステップ 1

メニュー バーで、[Tenants] > [All Tenants] の順に選択します。

ステップ 2

[Work] ペインで、テナントの名前をダブルクリックします。

ステップ 3

[Navigation] ウィンドウで、Tenant tenant_name > Services > L4-L7 > Service Graph Templates > template_name を選択します。

ステップ 4

[Navigation] ウィンドウで、EPG を適用する template_name を右クリックし、Apply L4-L7 Service Graph Template を選択します。

Apply L4-L7 Service Graph Template To EPGs ダイアログボックスが表示されます。レイヤ 4 ~ レイヤ 7 サービス グラフ テンプレートをコンシューマ エンドポイント グループとプロバイダー エンドポイント グループに関連付けます。

ステップ 5

[Apply L4-L7 Service Graph Template To EPGS STEP 1] > [Contract] ダイアログボックスで、適切な値を入力して契約を設定します。

  1. EPG 内契約を設定する場合は、[Configure an Intra-EPG Contract] チェックボックスをオンにして、[EPG / Network] ドロップダウンリストから EPG とネットワークの組み合わせを選択します。

  2. 標準契約を設定する場合は、該当するドロップダウンリストでコンシューマ/プロバイダー EPG とネットワークの組み合わせを選択します。

  3. [Contract] フィールドで適切なオプション ボタンをクリックして、新しい契約を作成するか既存の契約を選択します。[Create A New Contract] を選択した場合、フィルタを設定するには、[No Filter (Allow All Traffic)] チェックボックスをオフにします。[+] をクリックしてフィルタ エントリを追加し、完了したら [Update] をクリックします。

    (注)  

     

    コピーサービスグラフの場合、L3Out EPG に適用される場合に限りコントラクトを複数回使用できます。内部 EPG には非共有コントラクトが必要です。

ステップ 6

[次へ] をクリックします。

[STEP 2] > [Graph] ダイアログが表示されます。

ステップ 7

[device_name Information] セクションで、赤色のボックスで示された必須フィールドを設定します。

(注)  

 
優先グループ(契約なしのエンドポイント間通信)にコネクタを含めるには、[Service EPG Policy] ドロップダウンリストから設定済みポリシーを選択します。

ステップ 8

[次へ] をクリックします。

[STEP 3] > [device_name Information] ダイアログが表示されます。

ステップ 9

[Finish] をクリックします。

サービス グラフ テンプレートがアクティブになりました。

GUI を使用したエンドポイントセキュリティ グループへのサービスグラフテンプレートの適用

次の手順では、サービスグラフテンプレートをエンドポイントセキュリティ グループ (ESG) に適用する方法について説明します。

始める前に

次を作成しておく必要がります。

  • ESG

  • サービス グラフ テンプレート

手順


ステップ 1

メニュー バーで、[テナント(Tenants)]> > [すべてのテナント(ALL Tenants)] の順に選択します。

ステップ 2

[Work] ペインで、テナントの名前をダブルクリックします。

ステップ 3

ナビゲーションウィンドウで、[テナント(Tenant)] [テナント名(tenant_name)] > [ サービス(Services)] > [L4-L7] > [サービスグラフテンプレート(Service Graph Templates) > テンプレート名(template_name)] の順に選択します。

ステップ 4

[Navigation] ウィンドウで、EPG を適用する template_name を右クリックし、Apply L4-L7 Service Graph Template を選択します。

Apply L4-L7 Service Graph Template To EPGs ダイアログボックスが表示されます。レイヤ 4 ~ レイヤ 7 サービスグラフテンプレートを、コンシューマーおよびプロバイダーのエンドポイントセキュリティ グループに関連付けます。

ステップ 5

[Apply L4-L7 Service Graph Template To EPGS STEP 1] > [Contract] ダイアログボックスで、適切な値を入力して契約を設定します。

  1. エンドポイントセキュリティ グループタイプとして、[エンドポイントセキュリティ グループ(Endpoint Security Group)] を選択します。

  2. 標準コントラクトを構成する場合、適切なドロップダウンリストでコンシューマー/プロバイダー ESG とネットワークの組み合わせを選択します。

  3. [Contract] フィールドで適切なオプション ボタンをクリックして、新しい契約を作成するか既存の契約を選択します。[Create A New Contract] を選択した場合、フィルタを設定するには、[No Filter (Allow All Traffic)] チェックボックスをオフにします。[+] をクリックしてフィルタ エントリを追加し、完了したら [Update] をクリックします。

ステップ 6

[次へ] をクリックします。

[STEP 2] > [Graph] ダイアログが表示されます。

ステップ 7

[device_name Information] セクションで、赤色のボックスで示された必須フィールドを設定します。

ステップ 8

[次へ] をクリックします。

[STEP 3] > [device_name Information] ダイアログが表示されます。

ステップ 9

[Finish] をクリックします。

サービス グラフ テンプレートがアクティブになりました。

NX-OS スタイルの CLI を使用したコントラクトによるサービスグラフテンプレートの適用

次の手順では、NX-OS スタイルの CLI を使用して、コントラクトでサービスグラフテンプレートを適用します。

手順


ステップ 1

コンフィギュレーション モードを開始します。

例:

apic1# configure

ステップ 2

テナントのコンフィギュレーション モードを開始します。

tenant tenant_name

例:

apic1(config)# tenant t1

ステップ 3

サービス グラフを追加します。

l4l7 graph graph_name [contract contract_name]

パラメータ

説明

グラフ

サービス グラフの名前。

contract

このサービス グラフ インスタンスに関連付けられたコントラクトの名前。サービス グラフ インスタンスを作成する場合にのみ、コントラクトを指定します。インスタンス化せずに(サービス グラフ テンプレートと同様に)簡単にサービス グラフを設定できます。

例:

apic1(config-tenant)# l4l7 graph G2 contract C2

ステップ 4

サービス グラフにノード(サービス)を追加します。

service node_name [device-cluster-tenant tenant_name] [device-cluster device_name] [mode deployment_mode]

パラメータ

説明

service

追加するサービス ノードの名前。

device-cluster-tenant

デバイス クラスタのインポート元のテナント。これは、デバイスクラスタが、グラフが構成されているテナントと異なる場合にのみ指定します。

device-cluster

このサービス ノードに使用するデバイス クラスタの名前。

mode

導入モード。値は次のとおりです。

  • ADC_ONE_ARM:ワンアームモードを指定します。

  • ADC_TWO_ARM:ツーアームモードを指定します。

  • FW_ROUTED:ルーテッド(GoTo)モードを指定します

  • FW_TRANS:トランスペアレント (GoThrough) モードを指定します。

  • OTHERS:その他の展開モードを指定します。

モードを指定しないと、導入モードは使用されません。

例:

次に、ノード N1 をテナント t1 からデバイス クラスタ D4 に追加する例を示します。

apic1(config-graph)# service N1 device-cluster-tenant t1 device-cluster D4

次に、ノード N1 をテナント t1 からデバイス クラスタ D4 に追加し、ルーテッド導入モードを使用する例を示します。

apic1(config-graph)# service N1 device-cluster-tenant t1 device-cluster D4 mode FW_ROUTED

ステップ 5

コンシューマ コネクタを追加します。

connector connector_type [cluster-interface interface_type]

パラメータ

説明

コネクタ

サービス グラフ内のコネクタのタイプ。値は次のとおりです。

  • provider

  • consumer

cluster-interface

デバイス クラスタ インターフェイスのタイプ。値は次のとおりです。

  • provider

  • consumer

テナント Common 内のサービス グラフ テンプレートの場合は、このパラメータを指定しないでください。

例:

apic1(config-service)# connector consumer cluster-interface consumer

ステップ 6

サービスインターフェイスがブリッジドメインにある場合は、次のサブステップを実行します。

  1. ブリッジ ドメイン情報と、そのブリッジ ドメインが存在するテナントを指定し、コネクタにブリッジ ドメインを設定します。

    bridge-domain tenant tenant_name name bridge_domain_name

    パラメータ

    説明

    tenant

    ブリッジ ドメインを所有するテナント。同じテナントまたはテナント Common からのみ、ブリッジを指定できます。たとえば、テナント t1 の場合、テナント t2 からのブリッジ ドメインは指定できません。

    name

    ブリッジ ドメインの名前。

    例:

    apic1(config-connector)# bridge-domain tenant t1 name bd2
  2. コネクタの Direct Server Return(DSR)仮想 IP アドレス(VIP)を設定します。

    dsr-vip ip_address

    DSR VIP を指定した場合、Application Policy Infrastructure ControllerAPIC)は VIP を取得しません。

    パラメータ

    説明

    dsr-vip

    コネクタの DSR の仮想 IP アドレス。

    例:

    apic1(config-connector)# dsr-vip 192.168.10.100

ステップ 7

サービスインターフェイスが L3Out にある場合は、次のサブステップを実行します。

  1. テナントをコネクタに関連付け、コネクタ コンフィギュレーション モードを終了します。

    l4l7-peer tenant tenant_name out L3OutExternal epg epg_name
      redistribute redistribute_property
    exit

    パラメータ

    説明

    tenant

    コネクタに関連付けるテナントの名前。

    out

    レイヤ 3 Outside の名前。

    epg

    エンドポイント グループの名前。

    redistribute

    再配布プロトコルのプロパティ。

    例:

    apic1(config-connector)# l4l7-peer tenant t1 out L3OutExternal epg L3ExtNet
      redistribute connected,ospf
    apic1(config-connector)# exit
  2. プロバイダーに対して手順 5 と 7a を繰り返します。

    例:

    apic1(config-service)# connector provider cluster-interface provider
    apic1(config-connector)# l4l7-peer tenant t1 out L3OutInternal epg L3IntNet
      redistribute connected,ospf
    apic1(config-connector)# exit
  3. (任意) ルータを追加し、ノード コンフィギュレーション モードを終了します。

    rtr-cfg router_ID
    exit

    パラメータ

    説明

    rtr-cfg

    ルータの ID。

    テナント Common でサービス グラフ テンプレートを作成する場合は、この手順をスキップします。

    例:

    apic1(config-service)# rtr-cfg router-id1
    apic1(config-service)# exit

ステップ 8

コンシューマとプロバイダーに対する接続を設定して、サービス グラフ コンフィギュレーション モードを終了します。

connection connection_name {terminal terminal_type service node_name connector connector_type} |
  {intra_service service1 node_name connector1 connector_type service2 node_name connector2 connector_type}
exit

パラメータ

説明

connection

接続の名前。

terminal

サービス ノードを端末に接続します。端末のタイプを指定します。値は次のとおりです。

  • provider

  • consumer

service

service1

service2

追加するサービスノード名です。serviceterminal でのみ使用します。service1service2 は、intra_service でのみ使用します。

コネクタ

connector1

connector2

コネクタのタイプ。値は次のとおりです。

  • provider

  • consumer

connectorterminal でのみ使用し、connector1connector2intra_service でのみ使用します。

intra_service

別のノードにサービス ノードを接続します。

例:

次に、単一ノード グラフの接続を設定する例を示します。

apic1(config-graph)# connection CON1 terminal consumer service N1 connector consumer
apic1(config-graph)# connection CON2 terminal provider service N2 connector provider
apic1(config-graph)# exit

次に、2 ノード グラフの接続を設定する例を示します。

apic1(config-graph)# connection CON1 terminal consumer service N1 connector consumer
apic1(config-graph)# connection CON2 intra_service service1 N1 connector1 provider service2 N2 connector2 consumer
apic1(config-graph)# connection CON3 terminal provider service N2 connector provider
apic1(config-graph)# exit

ステップ 9

コンフィギュレーション モードを終了します。

例:

apic1(config-tenant)# exit
apic1(config)# exit