Cisco ACIを使ったネットワークの構築
Cisco ACIでは、ネットワークの構築手段として、ACIによるプロファイル設定、APIを利用した設定、クラウドOSからのネットワークを作成、といったことが可能だが、ここではプロファイルでのネットワーク構築を紹介していく。
ACIを制御する2つのプロファイル
Cisco ACIでは、ファブリックプロファイルとアプリケーションネットワークプロファイルという、2つのプロファイルを使ってネットワークを作成していく。
ファブリックプロファイルは、ACIファブリックを形成しているNexus9000シリーズの物理ネットワーク設定が含まれているプロファイルだ。従来のネットワークで言うところのL1-L2の設定に相当する。
もう1つのアプリケーションネットワークプロファイルは、Cisco ACIのコンセプトを実現した、最も特徴的な機能である。テナントという仮想ネットワークの設定と制御を行う項目が含まれているプロファイルだ。従来のネットワークで言うところのL3-L7の設定に相当する。また、このアプリケーションネットワークプロファイルには、エコパートナーのアプライアンス製品の設定を抽象化した内容を含めることができる。
この2つのプロファイルが、Cisco ACIのすべてといっても過言ではない。以下では、この2つのプロファイルについて、それぞれの機能や利点を紹介していこう。
ファブリックプロファイルの概要
ACIファブリックにサーバーやネットワーク機器を接続する場合、Leafスイッチの物理ポートに接続することになる。従来のネットワークであれば、サーバーやネットワーク機器をスイッチに接続する際、管理インターフェイスからログインし、CLIでポートプロパティの設定などを行っていた。しかし、Cisco ACIではAPICでスイッチポートのリンクスピード、STP、CDP、LLDPやチャネル、VLANなどの設定項目を抽象化し、ポリシーとして定める。そして、ポリシーをまとめたファブリックプロファイルを作り、ACIファブリックに対して適用することで、これらの設定が反映される。また、すでに作成したポリシーは使い回すことができるので、別のLeafスイッチやポートに対して同じ設定を迅速に行うことも可能だ。
ファブリックプロファイルの利点
ファブリックプロファイルの設定には、従来のネットワークのようにCLIを使用せず、APICのGUIを使って行えるため、わかりやすく、使いやすい。また、ポリシーやプロファイルは使い回して利用できるので、いったん設定したプロファイルを再利用することで、人的なオペレーションミスを軽減できる。さらに、ACIファブリックの物理ネットワーク設定をAPICで一元的に行うことができるという点では、設定作業やメンテナンスのコスト削減にも繋がるといえる。
アプリケーションネットワークプロファイルの概要
通常、ネットワークはサービスを行うためのアプリケーションによって、どのようなネットワークが必要になるのかが決まる。従来であれば、アプリケーションエンジニアからの要件を受け取り、その要件に従って、ネットワークエンジニアがネットワーク機器に対して必要な設定を行っていた。しかし、Cisco ACIのアプリケーションネットワークプロファイルを用いれば、アプリケーションエンジニアの要件をダイレクトにプロファイルへ落とし込むことができる。ネットワークエンジニアでなくとも、視覚的な操作でプロファイルを作成することができる。以下では、アプリケーションネットワークプロファイルを作成するための、仮想的なコンポーネントを紹介していく。
テナント
すでに、他社製のSDN製品や何かしらのクラウドサービスを利用している方には馴染みがある言葉かもしれないが、テナントとは、1顧客、1企業に提供する仮想ネットワークの単位になる。大企業の環境であれば、部門毎のネットワークの単位とする場合もある。Cisco ACIでは、このテナントの中にさまざまなネットワークを作成していく。
コンテキスト
テナントの中には、コンテキストという仮想的なL3ルーターが存在する。
ブリッジドメイン
コンテキストというL3ルーターの下には、仮想的なL2サブネットが存在している。ブリッジドメインを分ければ、VLANのようにブロードキャストドメインを分割することができる。また、ブリッジドメインの中には、サーバーをグループ化したEPG(End Point Group)が存在している(EPGについては、後述)。
従来のネットワークとの比較
上記のように、テナントの中にはコンテキストがあり、ブリッジドメインがあり、EPGが存在している。少し難しいように思われるが、従来のL1-L3の構成とテナントを比較してみると、構成イメージというのはほぼ同じであるということが理解できる。
テナントのイメージ
あくまでもテナントというのは仮想的なネットワークの単位であるが、実際には複数の物理的なNexus9000シリーズのスイッチが、1つのACIファブリックとして存在しており、その上に、仮想的なネットワークであるテナントが複数存在している。これによりマルチテナントを実現している。分かりやすいイメージとしては、複数台のサーバーを1つの論理的なコンピューティングリソースとし、その上に複数の仮想サーバーが存在しているハイパーバイザーの環境に類似していえる。
EPG(End Point Group)
ブリッジドメインの下には、実際にACIファブリックに接続されるサーバーを仮想的なオブジェクトとして定める必要がある。これをEPGと呼ぶ。EPGとは同じ役割のサーバーの集まり、いわゆるグループ化させた単位だ。たとえば、Webサーバー、Applicationサーバー、DBサーバーなどは1つのEPGとしてまとめることが可能になる。また、グループ化する前提として、同じ制御をかけたいサーバー同士をグループ化する必要がある。たとえば、Webサーバーをファイアウォールで制御させる際、一般的にはポート80、ポート443のみ「Permit」にし、その他はすべて「Deny」にする。この場合、同じEPGとしてWebサーバーをまとめることができる。Cisco ACIでは制御を適用させたい単位をEPGとすることで、個々のサーバーに対して制御を適用するのではなく、グループ化して、まとめて制御をかけることに重点を置いている。
また、Cisco ACIではEPGの通信を認識する際、パケットの通信で判断しているところも注目したいポイントだ。EPGを設定する際、Leafスイッチ、ポートナンバー、VLAN IDなどを定義する必要がある。これらの定義はレンジで設定することも可能だ。事前にこの定義を行っておくことで、ACIファブリック内に入ってきたパケットは、定義にマッチしたEPGとして認識される。これにより、新規にサーバーを追加する際、ネットワーク設定を追加する必要がなくなるため、物理結線だけで通信することができる。また、vMotionで仮想サーバーが動的に移動することを想定し、適切にEPGの定義を施しておけば、仮想サーバーの移動に合わせて設定を行う必要がなくなる。そして何より、パケットでEPGを判断するので、物理サーバーも仮想サーバーも意識することなく、一元的に設定を行うことが可能になる。
※EPGの定義は、サーバーの役割、Leafポート、VLAN、VXLAN、IPアドレス、MACアドレス、VMアトリビュート、ポートグループなどで行うことが可能
フィルタ
フィルタには、ACLの制御を行う設定が抽象化されている。通常、ACLは1つのドメイン内にある全てのスイッチで、ネットワークフローやサービスに関わるセキュリティを考えながら、さまざまな制御をかけている。 そのため、大規模な環境のACLは膨大な量となり、追加・削除のメンテナンスコストが問題となっているケースもある。 しかし、Cisco ACIでは、1つのテナント内のEPG間で制御をかけているため、ACLをシンプルに管理することができる。 また、別のテナントのACLとは管理が分かれているため、ACLの追加・削除などのメンテナンスを行ったとしても、別のテナントのACLに影響を与えることが無い。 また、ここでエコパートナーのアプライアンス製品の設定も抽象化し、フィルタとして定義することも可能だ。従来のネットワーク設定では、制御を行う各レイヤの機器に対して別々に設定を行う必要があった。 しかし、Cisco ACIではこのフィルタの設定を行うだけで、簡潔にネットワークの制御を行うことができる。
コントラクト
コントラクトとは、EPGとEPGを通信させるために必要な定義である。要するに、サーバー間通信を実現するためのものだ。また、コントラクトとは契約という意味があり、通信するEPGに対してProvider(提供者)とConsumer(消費者)という役割を意識しながら、APICで設定する必要がある。といっても、ProviderのEPGからConsumerのEPGに対して矢印の線を引くだけだ。また、コントラクトには上記のフィルタを組み込むことができる。これにより、APICのGUIで直観的に操作するだけで、セキュアなネットワークを容易に作成することができるのだ。
アプリケーションネットワークプロファイルの利点
ファブリックプロファイルと同様に、アプリケーションネットワークプロファイルも、APICのGUIを利用して視覚的に設定していく。テナントを構成している各コンポーネントを容易に設定していくことができ、エコパートナーのアプライアンス製品との連携も可能なため、ユーザー側がAPICのGUIを操作し、自らセキュアなネットワークを作成していくことができる。これにより、ワークフローなどにかかわるコストを削減することができる。また、迅速にポリシーベースのマルチテナント環境を構築することができるので、クラウドのように俊敏性を求められるサービスのネットワークとして期待できる。しかし、詳細なネットワークの設定が含まれる部分に関しては、いまだネットワークエンジニアが対応しなければならない点もある。所感としては、事前にプロファイルやポリシーを準備しておくのがエンジニアのメインの業務となるが、プロファイルベースで運用を行っていけば、エンジニアの負担軽減につながるため、全体的なコスト削減が見込めると考えている。
Cisco ACIの機器
Cisco ACIを実現するためには、Nexus9000シリーズのSpineスイッチ、Leafスイッチ、ACIライセンス、そして、コントローラーであるAPICが必要だ。ここからは、これらの製品について紹介していきたい。
Spineスイッチ
SpineスイッチはACIモードでしか動作しない、ACI専用のスイッチだ。また、ACIファブリックを形成する場合、最低2台必要になる。
Leafスイッチ
LeafスイッチはACIモードとNX-OSモードで稼動するため、まずは通常のNexusとして稼動させておき、後にSpineスイッチとAPICを追加する、といった段階的なCisco ACIの導入も可能だ。また、ACIファブリックを形成する場合、最低2台必要になる。
ライセンス体系
Cisco ACIのライセンスは、非常にシンプルだ。ライセンスはLeafスイッチのサーバーポートに対しての課金になる。また、ワンタイム方式なので、従来のNexusスイッチのFabric PathやL3ライセンスと同様のイメージだ。
APIC
APICは、UCS C220M3をベースとした物理アプライアンスで提供される。また、冗長化のため3台でクラスタリングを構成する。クラスタリングを含む初期設定は、ウィザードで容易に行える。また、Spineスイッチ、Leafスイッチで構成するACIファブリックに関しても、APICのGUI上から数クリックするだけで構成できるため、スケールアウトする際もLeafスイッチを迅速、かつ容易に台数を増やすことができる。
まとめ
Cisco ACIの特徴を概括的に紹介してきたが、要点としては以下になる。
- サービスを提供するアプリケーションの要件を抽象化してダイレクトにネットワークを設定
- プロファイルベースのネットワークで迅速なネットワーク構築、設定変更が可能
- APIを利用することで瞬時にネットワークを構築
- クラウドOS、オートメーションツールとの連携
- エコパートナーのアプライアンス製品との連携でセキュアなネットワークを実現
- Spine-Leafのシンプルなネットワークデザイン
- 迅速かつ、容易にスケールアウトを実現
- 物理と仮想のネットワークをAPICで一元的に制御
- 高度な視認性による物理と仮想ネットワークの管理
- マルチテナント対応
- ACLのメンテナンスコストを削減
このように、Cisco ACIはエンタープライズやクラウドプロバイダのデータセンターネットワークと非常に相性が良い、理想的なSDNソリューションだ。しかし、すべての環境にマッチするとはお世辞にもいえない。中小規模の環境であれば、従来通り、筐体跨ぎのポートチャネル技術であるvPCやSpine-Leafのイーサネットファブリック技術によるFabric Pathで十分対応できる。また、サービスプロバイダやキャリアのデータセンターネットワークでは、ホワイトボックススイッチ(ベアメタルスイッチ)をChefやPuppetで管理・制御する方が現実的であろう。このようなさまざまな技術を、導入する環境に合ったソリューションとして柔軟に提案していくことが今後のシステムインテグレーターに求められている。
ネットワールドからのお知らせ
株式会社ネットワールドではF5 BIG-IP、Citrix NetScalerなどのエコパートナー製品を組み合わせた「Cisco ACIソリューション」を提供中である。
これに併せて、「Cisco ACI 座学セミナー」や「Cisco ACI ハンズオンセミナー」も不定期で開催しているのでCisco ACIに興味があればぜひ参加して頂きたい。
また、Cisco ACIのLeafスイッチ、または単体のNexus9000として利用可能な、「Nexus 9372PX/TX」のディスカウントキャンペーンを2015年7月15日まで実施中だ。
Cisco ACIの段階的な導入の一歩として、また、Virtual PortChannel(vPC)、APIに対応した高品質な10Gのイーサネットスイッチとしても推奨できる。また、VXLANにも対応しているため、VMware社のNSXやCisco Nexus 1000Vなど、オーバーレイ型のSDNと物理環境を繋ぐエンドポイントとしての利用も期待できる。
そして、Nexus9000はプログラマブルに対応している点にも注目して頂きたい。例えば、Puppetを利用することでNexus9000の導入・設定・更新を自動化することができる。ネットワールドでは商用版Puppet Enterpriseの取り扱いを開始しており、NexusとPuppet Enterpriseを一括して提供することが可能だ。