■ACI におけるL4-L7連携のふりかえり
ACIはリリース当初はDevice Packageを通じてL4-L7デバイスとの連携を提供しており、その後Unmanaged ModeとしてDevice Packageを利用しない組み合わせ利用もサポートしました。Device Packageを利用した連携においても、直接L4-L7デバイスと連携する構成や、L4-L7デバイスのコントローラと連携する構成など、様々なパターンへの対応がされていきました。
しかし、Device Packageによる連携は、ACIを通じてL4-L7デバイス側も構成することが可能となるメリットがありましたが、同時にDevice Packageとしてサポートするバージョンやモデルなどに要件がありました。また、Device Packageは各L4-L7デバイスベンダー側が作成・サポートするモジュール扱いとなっていたため、ベンダーによってどこまでの範囲をDevice Packageを通じた構成に対応するか等が異なっていました。
対して、Device Packageを利用しない連携は、L4-L7デバイス側は別途何らかの方法で適切に構成する必要性がありましたが、ベンダーやバージョンに一切の制限がない組み合わせが可能であったため、より汎用的な利用が可能です。
そのため、同じ構成を大量に横展開するケースが多いサービスプロバイダではDevice Package連携が、個別に構成が異なるパターンでのL4-L7デバイス利用が多いエンタープライズではUnmanaged Modeでの使い方が多く採用されていました。
■ACI と L4-L7デバイス間でのAppを通じた連携
現在では、ACIのコントローラであるAPICにアプリケーションとして独自機能を追加するAppがサポートされるようになったため、このAppを用いてACIとL4-L7デバイス間で連携する構成が可能となりました。2020/12現在では、dcappcenter.cisco.com を通じて F5 Networks BIG-IP 連携を可能とする「F5 ACI ServiceCenter」、Citrix ADC 連携を可能とする「Citrix ADC Manager」、そして ASA / Firepower 連携を可能とする「FMC Endpoint Update」 が提供されています。
もちろん、これらのAppを通じた連携構成の他に、最も汎用性が高く制限のないUnmanaged Modeも引き続き利用いただけます。…というか、このAppの利用は、L4-L7デバイス連携としてはUnmanaged Modeで構成しつつAppを利用するという組み合わせでの利用となります。
以下では、F5 ACI ServiceCenter を用いた連携について解説します。なお、F5 ACI ServiceCenter の詳細やサポート要件等については、F5 Networks のウェブサイトを参照ください。
■Service Graph の構成
Unmanaged Modeで対象BIG-IPをデバイスとして利用するService Graphを構成します。ここではBDにSVIとなるIPアドレスは構成せず、PBRも利用しない最もシンプルな構成で設定しています。F5デバイスの登録やUnmanaged ModeでのService Graphの作成手順の詳細については、他の説明ページ(ACI + F5、Unmanaged Mode Service Graph)を参照してください。
Device の構成
[Services] - [L4-L7] - [Devices]でL4-L7デバイスとしてBIG-IPを登録します。ここではBIG-IP VEを利用するため仮想アプライアンスとして指定していますが、物理アプライアンスの場合は適宜読み替えてください。

Service Graph Template の構成
[Services] - [L4-L7] - [Service Graph Templates]でContractにL4-L7 Deviceを組み込むためのService Graph Templateを構成します。ここでは 2 arm 構成のBIG-IP-VEをPBRなしで構成しています。


Service Graph Template の適用
[Services] - [L4-L7] - [Service Graph Templates]で構成したService Graph Templateを使って、EPG間に適用します。ここでは、合わせてContractを作成しています。


Contractとそこに含まれるService Graphの適用
指定したConsumer EPGおよびProvider EPGの間にContractが作成され、Service Graphとして指定したService Graph Templateに基づいて構成されたL4-L7連携が定義されていることを確認します。この時点においては、BIG-IP側が構成されていないためまだロードバランシングは動作しません。


■F5 ACI ServiceCenter の構成
APICに F5 ACI ServiceCenter をインストールします。F5 ACI ServiceCenter は dcappcenter.cisco.com において配布されています。

F5 ACI ServiceCenter にBIG-IPを登録します(IP, Username, Password)。

BIG-IPが直接Leafに接続され、LLDPで相互に隣接検出していた場合には候補となるBIG-IPのIPアドレスが自動的に表示されます。
また、Leafに対するBIG-IPの接続状態を示したトポロジ図を確認できます。


[L2-L3 Network Management] - [VLAN]で登録したBIG-IP論理クラスタを選択し、当該BIG-IP (この例ではBIG-IP-VEを利用) に紐づくVLAN からService Graphで利用している対象を選択します。

各VLANに対して紐づくInterfaceと、BIG-IP側の論理インターフェイスに割り当てるIPアドレス等を指定します。



F5 ACI ServiceCenter で構成したパラメータがBIG-IP側で正しく構成されていることを確認します。


■ロードバランシング設定の構成 (Basic Mode)
F5 ACI ServiceCenter の [L4-L7 App Services] - [Application] において、BIG-IPに構成するパーティション、アプリケーション、テンプレート(リアルサーバとVIPに関する登録)を設定します。

BIG-IP側でパーティションやVirtual Serverに関するパラメータが正しく構成されていることを確認します。






■ロードバランシング設定の削除
F5 ACI ServiceCenter の [L4-L7 App Services] - [Application] において、Application "DemoApplication" を指定後にゴミ箱アイコンをクリックしアプリケーションを削除します。


BIG-IP側でパーティションおよびアプリケーションが正しく削除されていることを確認します。

■ロードバランシング設定の構成 (Advanced Mode)
F5 ACI ServiceCenter の [L4-L7 App Services] - [Application] において、BIG-IPに構成するパーティションとアプリケーションに加え、APIを通じてBIG-IPを構成するためのJSONファイルを編集します。最低限、VIP及びPoolメンバーサーバを指定します。


■構成の確認
F5 ACI ServiceCenter の [Visibility] では、VLAN、Node、VIPの3つの視点で構成状態を確認することができます。



■VLANが変更された場合への対応
Service Graphを再構成したり割当先のContractを変更した場合、VLAN Poolから払い出されるVLANは変更される場合があります。こうした場合に、F5 ACI ServiceCenterは、ACI側とBIG-IP側で構成されているVLANのミスマッチを検出し、BIG-IP側の構成をACI側の構成に合わせて更新することができます。
以下は consumer 側が 1335→1169、provider 側が 1004→1336 に変更された場合の例となります。ACI側でService Graphを再適用した時点ではBIG-IP側のVLANは以前のVLAN設定のままとなっています。

F5 ACI ServiceCenterは、ACI側のステータスとBIG-IP側のステータスの両方を取得するため、不整合を認識します。

この状態で[MANAGE SELECTED]を指定すると、BIG-IP側のVLAN設定が変更されるため警告メッセージが表示されます。



逆に、BIG-IP側でVLANを変更した場合も、F5 ACI ServiceCenter はVLANのミスマッチを検出します。この場合、ACI側に合わせるかBIG-IP側に合わせるかを選択することが可能です。
以下ではVLAN 1169 → 1010 へBIG-IP側で変更した場合の例です。


BIG-IP側でVLANが変更されたことにより、F5 ACI ServiceCenter は管理対象としていたVLANが存在しないことを認識します。以下では、Visibility画面においてVLAN 1169 が表示されていない状態です。

VLAN管理の構成画面では、VLAN 1169 について "Out-of-sync" ステータスとなっていることが表示されます。

この "Out-of-sync" をクリックすると、[Sync the Vlan] 画面が表示され、App側で保持しているVLANをBIG-IP側にSyncするか、BIG-IP側のVLANをApp側にSyncするかを指定して実行することができます。

ここで [SYNC TO BIG-IP] をクリックすると、App側のVLAN情報が改めてBIG-IPに対して適用され、不整合が解消します。


■EPGに紐づくPoolへのEndpointの紐付け
F5 ACI ServiceCenter の [L4-L7 App Services] - [Application] において、BIG-IPに構成するパーティション、アプリケーション、テンプレートを設定する際に、Poolに含めるサーバアドレスを指定するのではなく、[MANAGE ENDPOINT MAPPING]を利用することで指定したEPGに含まれるEndpointをロードバランシング対象とするPoolに含めることができます。


これはEPGの紐付けを行った後でのEPGに対するEndpointの紐付けに関しても動的に反映されるため、EPGへのEndpointの追加・削除だけでVIPに紐づくPoolメンバーサーバを動的に変更することが可能です。
この例では、構成時点ではEPGにはEndpointは2サーバ(10.193.101.2および10.193.101.3)が構成されていました。

EPGにEndpointが追加された場合




EPGからEndpointが削除された場合




F5 ACI ServiceCenter の [L4-L7 App Services] - [Application Inventory] における状態の可視化


