Cisco APIC レイヤ 4 ~ 7 サービス導入ガイド
サービス グラフの設定
サービス グラフの設定

サービス グラフの設定

サービス グラフについて

サービス グラフは、端末セット間の順序付けられた一連の機能ノードで、アプリケーションが必要とする一連のネットワーク サービス機能を識別します。 グラフ内のサービス機能は、アプリケーションの要件に基づいたサービス デバイスに自動的にプロビジョニングされます。

機能ノードの詳細については、機能ノードについてを参照してください。

GUI、CLI、または Application Policy Infrastructure ControllerAPIC)を使用してサービス グラフを定義できます。 APIC を通じたサービス デバイスの設定では、サービス デバイスの変更は必要ありません。

機能ノードについて

機能ノードは、単一のサービス機能を表します。 機能ノードには、サービス機能のネットワーク要件を表す機能ノード コネクタがあります。 機能ノード コネクタの詳細については、機能ノード コネクタについて を参照してください。

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

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

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

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

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

端末ノードについて

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

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

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

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

サービス グラフの設定

デバイスを登録した後は、そのデバイスおよびそのデバイスが提示したすべての機能を使用してサービス グラフを作成できます。 サービス グラフはテナント共通またはテナント固有として作成できます。 これは、プロバイダー管理者またはテナント内のテナント管理者によって実行されます。


    ステップ 1   [Navigation] ペインで、[L4-L7 Services] > [Service Graphs] をクリックします。
    ステップ 2   [Action] > [Create L4-L7 Service Graph] を選択します。 [CREATE L4-L7 SERVICE GRAPH] ダイアログボックスが表示されます。 左側のペインには、Application Policy Infrastructure ControllerAPIC)が認識しているサービス デバイス、およびデバイスによって提供されるサービス機能が一覧表示されます。 APIC は、インポートしたデバイス パッケージからのこれらのデバイスを認識します。
    ステップ 3   次のフィールドに入力します。
    名前 説明
    [Name] フィールド サービス グラフの名前。
    [Description] フィールド サービス グラフの説明
    ステップ 4   左ペインから右ペインにサービス機能をドラッグ アンド ドロップして、その機能をサービス グラフに追加します。
    ステップ 5   デバイス パッケージに基づいて、機能コネクタ、int および ext をクリックして、メタ コネクタ、Inside および Outside にそれぞれマッピングします。 メタ コネクタ、Inside および Outside はデバイス固有です。
    ステップ 6   終端ノードをクリックして接続を機能のコネクタにドラッグすることで、終端ノードをサービス機能のコネクタに接続します。 機能に接続したい各終端ノードに対してこのアクションを繰り返します。 端末ノードはアプリケーション EPG の接続を表します。
    ステップ 7   機能をクリックします。 [Config Profile] ダイアログ ボックスが表示され、サービス ノードのプロファイルを選択するよう促されます。 サービス機能パラメータをこの時点で設定するか、グラフがコントラクトに関連付けられるときのグラフ アタッチメントの時点で設定できます。
    ステップ 8   サービス機能パラメータの設定が完了したら、[CREATE L4-L7 SERVICE GRAPH] ダイアログ ボックスに戻り、[Submit] をクリックしてグラフを作成します。 [Service Graph] ダイアログボックスは作成した新しいグラフを表示します。

    サービス グラフを作成するための 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>
    
    

    CLI コマンドを使用した設定

    # l4-l7-service-graph
    
    cd '/aci/tenants/asa_tenant1/l4-l7-services/service-graphs'
    mocreate 'g1'
    moconfig commit
    
    
    # consumer-terminal-node
    
    cd '/aci/tenants/asa_tenant1/l4-l7-services/service-graphs/g1/consumer-terminal-nodes'
    mocreate 'Input1'
    moconfig commit
    
    
    # terminal-connector
    
    cd '/aci/tenants/asa_tenant1/l4-l7-services/service-graphs/g1/consumer-terminal-nodes/Input1'
    mocreate terminal-connector
    cd 'terminal-connector'
    moset name 'C1'
    moconfig commit
    
    
    # provider-terminal-node
    
    cd '/aci/tenants/asa_tenant1/l4-l7-services/service-graphs/g1/provider-terminal-nodes'
    mocreate 'Output1'
    moconfig commit
    
    
    # terminal-connector
    
    cd '/aci/tenants/asa_tenant1/l4-l7-services/service-graphs/g1/provider-terminal-nodes/Output1'
    mocreate terminal-connector
    cd 'terminal-connector'
    moset name 'C6'
    moconfig commit
    
    
    # function-node
    
    cd '/aci/tenants/asa_tenant1/l4-l7-services/service-graphs/g1/function-nodes'
    mocreate 'ASA_FW'
    cd 'ASA_FW'
    moset function-name 'l4-l7-services/packages/CISCO-ASA-1.0.1.37/functions/Firewall'
    moconfig commit
    
    
    # device-config
    
    cd '/aci/tenants/asa_tenant1/l4-l7-services/service-graphs/g1/function-nodes/ASA_FW'
    mocreate device-config
    moconfig commit
    
    
    # function-connector
    
    cd '/aci/tenants/asa_tenant1/l4-l7-services/service-graphs/g1/function-nodes/ASA_FW'
    mocreate function-connector 'external'
    cd 'function-connector-external'
    moset meta-connector 'uni/infra/mDev-CISCO-ASA-1.0.1.37/mFunc-Firewall/mConn-external'
    moconfig commit
    
    
    # function-connector
    
    cd '/aci/tenants/asa_tenant1/l4-l7-services/service-graphs/g1/function-nodes/ASA_FW'
    mocreate function-connector 'internal'
    cd 'function-connector-internal'
    moset meta-connector 'uni/infra/mDev-CISCO-ASA-1.0.1.37/mFunc-Firewall/mConn-internal'
    moconfig commit
    
    
    # default-scope-to-term
    
    cd '/aci/tenants/asa_tenant1/l4-l7-services/service-graphs/g1/function-nodes/ASA_FW'
    mocreate default-scope-to-term
    cd 'default-scope-to-term'
    moset target-dn 'uni/tn-asa_tenant1/AbsGraph-g1/AbsTermNodeProv-Output1/outtmnl'
    moconfig commit
    
    
    # connection
    
    cd '/aci/tenants/asa_tenant1/l4-l7-services/service-graphs/g1/connections'
    mocreate 'CON2'
    moconfig commit
    
    
    # relation-from-abstract-connection-to-abstract-connectors
    
    cd '/aci/tenants/asa_tenant1/l4-l7-services/service-graphs/g1/connections/CON2'
    mocreate 'tenants/asa_tenant1/l4-l7-services/service-graphs/g1/function-nodes/ASA_FW/function-connector-internal'
    moconfig commit
    
    
    # relation-from-abstract-connection-to-abstract-connectors
    
    cd '/aci/tenants/asa_tenant1/l4-l7-services/service-graphs/g1/connections/CON2'
    mocreate 'tenants/asa_tenant1/l4-l7-services/service-graphs/g1/provider-terminal-nodes/Output1/terminal-connector'
    moconfig commit
    
    
    # connection
    
    cd '/aci/tenants/asa_tenant1/l4-l7-services/service-graphs/g1/connections'
    mocreate 'CON1'
    moconfig commit
    
    
    # relation-from-abstract-connection-to-abstract-connectors
    
    cd '/aci/tenants/asa_tenant1/l4-l7-services/service-graphs/g1/connections/CON1'
    mocreate 'tenants/asa_tenant1/l4-l7-services/service-graphs/g1/consumer-terminal-nodes/Input1/terminal-connector'
    moconfig commit
    
    
    # relation-from-abstract-connection-to-abstract-connectors
    
    cd '/aci/tenants/asa_tenant1/l4-l7-services/service-graphs/g1/connections/CON1'
    mocreate 'tenants/asa_tenant1/l4-l7-services/service-graphs/g1/function-nodes/ASA_FW/function-connector-external'
    moconfig commit
    admin@ifav15-ifc2:g1>