サービス グラフの設定

サービス グラフについて

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

サービス グラフを使用すると、ASA ファイアウォールなどのサービスを一度インストールして、異なる論理トポロジで何度も展開できます。グラフを導入するたびに、ACI は新しい論理トポロジでの転送を行えるように、ファイアウォールで設定の変更を行います。

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

図 2. ブリッジ ドメインおよびサービス グラフの Vrf

(注)  

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


機能ノードについて

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

サービス グラフ内の機能ノードは、1 つ以上のパラメータが必要になる場合があります。パラメータは、エンドポイント グループ(EPG)、アプリケーション プロファイル、またはテナント VRF により指定できます。パラメータは、サービス グラフ定義時に割り当てることができます。パラメータ値は、変更がさらに加えられるのを防ぐためにロックできます。

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

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

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

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

端末ノードについて

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

サービス グラフ テンプレートのコンフィギュレーション パラメータについて

サービス グラフ テンプレートは、デバイス パッケージによって指定される、コンフィギュレーション パラメータを持つことができます。コンフィギュレーション パラメータは、EPG、アプリケーション プロファイルまたはテナント コンテキストでも指定できます。サービス グラフ テンプレート内の機能ノードでは、1 つ以上のコンフィギュレーション パラメータが必要になる場合があります。パラメータ値は変更がさらに加えられるのを防ぐためにロックできます。

サービス グラフ テンプレートを設定してコンフィギュレーション パラメータの値を指定すると、Application Policy Infrastructure ControllerAPIC)はデバイス パッケージ内のデバイス スクリプトにパラメータを渡します。デバイス スクリプトは、パラメータ データをデバイスにダウンロードされる設定に変換します。

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

GUI を使用して、サービス グラフ テンプレートを設定することができます。

サービス グラフ テンプレートを設定する手順については、GUI の使用方法を参照してください。

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>

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

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

bridge-domain tenant tenant_name name bridge_domain_name

パラメータ

説明

テナント

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

name

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

例:

apic1(config-connector)# bridge-domain tenant t1 name bd2
ステップ 7

(任意) コネクタの 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
ステップ 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