
目次
はじめに
今回はCisco ACI ESG(Endpoint Security Group。以下「ESG」とする)機能と仮想基盤連携によるマイクロセグメンテーションについてご紹介いたします。
元々ACIではμEPGやIntra-EPG Isolation/Contract等の機能でマイクロセグメンテーションを実現していました。
ACI version 5.0(1)から新しくESGと呼ばれる機能が実装されています。
このESG機能と仮想基盤連携の組み合わせによって、従来よりも柔軟にエンドポイントの通信制御が可能になります。
ACI ESG概要
本題に入る前にACIのESG機能をご存じない方向けに簡単にESGについてご説明いたします。
ACIでは配下に接続されるエンドポイントをEPG(Endpoint Group。以下「EPG」とする)と呼ばれる単位でグルーピングし、このEPG単位で通信を制御します。
このEPGはインターフェースとVLANによって識別されるため、本来通信制御の単位として分ける必要があるエンドポイントも場合によっては同一EPGとしてグルーピングされることがありました。
またEPGは1つのBridge Domainとしか紐づけられずL2 Domainを超えることができないため、複数L2 Domainに跨って共通のポリシーで制御したいエンドポイントが存在する場合には、共通のポリシーで制御するにもかかわらずDomain毎に個別のEPGを構成する必要がありました。(※Network Centricの場合)
ACIに新しく登場したESGではエンドポイントをIPアドレスや仮想基盤のタグ等で識別し、L2 Domainを跨いでグルーピングすることが可能となりました。
これによりセグメントに縛られない柔軟なトラフィック制御を実現します。
ESGと仮想基盤連携によるマイクロセグメンテーション
先程ご説明した通り、ACIのESGによって従来よりも柔軟にエンドポイントをグルーピングすることが可能になりました。
しかしエンドポイントをIPのようなネットワークの属性によってグルーピングすると、ネットワーク部分を意識させず抽象化されたポリシーで必要なネットワークを定義するといったACIのメリットを十分に活かしきれません。
そこでESGを仮想基盤と組み合わせて使用することで、エンドポイントを仮想基盤のタグに基づいてグルーピング可能になり、ネットワーク部分を意識させずに通信制御することが可能になります。
ACI論理構成図
今回のACI論理構成図は下記の通りです。
本記事では仮想マシンclientをグルーピングするESG clientとwebserverをグルーピングするESG webを構成し、それぞれにclientとwebのタグを割り当てます。
ESG構成後にclient1からwebserver1,2へのICMPとHTTPの通信を確認します。

仮想基盤連携
仮想基盤側のタグでエンドポイントをグルーピングするために仮想基盤と連携を行います。
※仮想基盤連携の手順は省略しています。
図1.APICでの仮想基盤連携の設定画面
仮想マシンの分類に使用するカテゴリとタグの作成
ACI側で仮想マシンをESGに分類する際の識別子として、今回は仮想基盤のタグを使用して識別させます。
今回はカテゴリとして「uSeg」、タグとして「web」を作成します。
図2.vCenterでのカテゴリとタグの設定画面
仮想マシンへのタグ割り当て
先程作成したタグを通信制御したい仮想マシンへ割り当てます。
これでこの仮想マシンの通信はACI上でESG webとして制御することが可能になります。
図3.vCenterでの仮想マシンへのタグ割り当て確認画面
ACI ESG作成
仮想基盤連携により先程作成したカテゴリとタグをAPIC側でも認識できていることを確認します。
図4.APICでの仮想基盤のタグ確認画面
webserver用のESGを作成します。
図5.APICでのESG作成画面
先程作成したカテゴリ「uSeg」をTag Key、タグ「web」をTag Valueに指定しValue OperatorをEqualsとします。
これで仮想基盤のuSegカテゴリのwebタグが割り当てられた仮想マシンはACI上でESG webとして識別することができます。
図6.APICでのESG識別子設定画面
仮想マシンからpingを実施すると、webserver1がACI上でESG webとして認識されていることが確認できます。
図7.APICでのESG web確認画面
webserverと同様の手順をclient1に対しても実施し、client1がACI上でESG clientとして認識されていることを確認します。
図8.APICでのESG client確認画面
最後にEPGと同様にESGもESG同士を通信させるためにContractが必要なため、ESG同士でContractを結びます。
図9.APICでのContract確認画面
今回使用するContractではHTTP通信のみを許可する内容に設定します。
図10.APICでのSubject確認画面
ESGによるマイクロセグメンテーションの確認
それでは実際にESGによるマイクロセグメンテーションで通信制御ができているのかを確認します。
まずEPGのみで構成した場合にどのような動作になるかを見てみます。
EPGのみで構成すると仮想マシンclient1とwebserver1はACI上では同一EPG同士であるため、デフォルトで通信が許可されてしまいます。
※webserver2は別EPGであるためデフォルトで通信は許可されていません。
図11.ESG構成前のclient1からwebserver1へのICMP疎通確認結果
ESGを構成するとclient1とwebserver1は同一EPGではありますが、ESGとしては別となるためContractで定義された通信しか許可されません。
今回のContractではHTTPのみしか許可していないため、先程は通信できていたpingもESG構成後は通信できなくなっています。
元々通信できないwebserver2宛のpingも同様に通信できない状態のままです。

図12.ESG構成後のclient1からwebserver1,webserver2へのICMP疎通確認結果
逆にContractで許可したHTTPはwebserver1,2どちら宛でも問題なく通信ができます。
図13.ESG構成後のclient1からwebserver1,webserver2へのHTTP疎通確認結果
以上の結果からESGによるマイクロセグメンテーションが実現できていることが確認できます。
まとめ
今回はACI ESGと仮想基盤連携によるマイクロセグメンテーションについてご紹介いたしました。
ESGの登場により従来よりも柔軟にエンドポイントをグルーピングして通信制御することが可能になりました。
ESGだけでも非常に便利ですが冒頭でも述べたように仮想基盤連携と組み合わせることで、ネットワーク部分を意識させず抽象化されたポリシーで必要なネットワークを定義するといったACIのメリットを十分に活かすことができます。
ただし、ESGは比較的新しく実装された機能であるため従来のμEPGやIntra-EPG Isolation/Contractと比べても成熟度はまだ低いです。
既存で使用している機能との互換性も考慮に入れなければならないため直ちにESGに移行とはならないかもしれませんが、今後ACIを導入していくのであれば基本的にESGを使用することになっていくのではと考えています。
これを機にCisco ACIにご興味を持っていただければ幸いです。
※本記事の内容は執筆者個人の見解であり、所属する組織の見解を代表するものではありません。