前回はSDNにおけるL4-7ネットワークサービスの位置づけと役割について簡単に紹介した。 L4-7ネットワークサービスを、その他のインフラサービス(L2-3ネットワーク、サーバ、ストレージなど)と連携させて自動化させる必要がある。これを実現するために、F5ネットワークスが提供しているのが「BIG-IQ」という製品だ。BIG-IQはL4-7ネットワークサービスの集中的管理およびコントロールを担っている。また、L4-7ネットワークサービスとオーケストレータ、あるいはL2-3サービスなど周辺のシステムと連動するためのインターフェイスの役割も担っており、自動化を実現するための中心的な存在だ。

BIG-IQと上位のオーケストレータとのインタフェースを「North Bound」、下位のADC(Application Delivery Controller)製品とのインタフェースを「South Bound」、L2-3レイヤとのインタフェースを「West Bound」、そして外部クラウドとのインタフェースを「East Bound」と、東西南北の方角になぞらえて表現される。今回はこれらのうち、北と南にあたるNorth BoundとSouth Boundの概要について紹介する。自動化の仕組みをぜひ理解いただきたい。

図1 オーケストレータ→BIG-IQ→ADC(BIG-IP)による設定自動化

オーケストレータとの間を取り持つ「North Bound」インタフェース

アプリケーションサービスにとって、単にネットワークをつなぐためのL2-3ネットワークサービスだけでは事足りない。アプリケーションの特性や要件に応じて、可用性やセキュリティを実現するロードバランシングやSSLの暗号化といったL4-7ネットワークサービスも合わせて実装する必要がある。これを行うには、ADCに対して適切な設定が必要になるが、これを管理者が個別に手動で行うようでは、手間や時間がかかって自動化のボトルネックとなってしまう。

そこで、オーケストレータにアプリケーションが必要とする要件をインプットしただけで、バックグラウンドでADCに対する適切な設定が自動で行われ、必要な可用性やセキュリティのサービスが立ち上がる仕組みが必要となる。この要件のインプットを受け入れ、ADCの設定として解釈するための仕組みが、オーケストレータとBIG-IQの連携だ。

管理者はまず、クラウドオーケストレータのGUIから、ロードバランスアルゴリズムやロードバランス対象のサーバのIPアドレスなど最低限の項目のみを入力する。するとオーケストレータはその設定情報をパラメータとして扱い、APIを使ってBIG-IQに引き渡す。このBIG-IQとオーケストレータとの間のインタフェースの APIのことを「North Bound API」と呼んでいる。

ちなみに、BIG-IQとオーケストレータとの間のNorth Bound APIをF5ネットワークスは「iControl」と呼び、REST APIとしてまとめ、その仕様はすべて公開されている。オーケストレータの開発者は、このAPIの仕様に従ってBIG-IQとの連携を開発すれば、L4-7ネットワークサービスの自動化を実現できるというわけだ。こうしたAPIはF5ネットワークス以外のADCベンダーからも公開されており、オーケストレータから自社製品を自動的に制御できるようになっている。オーケストレータからすると、ADCの具体的な設定情報などは一切意識する必要がないので、ADCの抽象度を上げてサービスとしてコントロールできる。

なお、F5ネットワークスでは主要なオーケストレータ製品のベンダーとの協業を通じて、BIG-IQとの間のインタフェースモジュールの共同開発を行っている。例えばシスコシステムズ社、ヴイエムウェア社、マイクロソフト社などのオーケスレータ製品から、iControl REST APIを通じてBIG-IQとやりとりするモジュールは、F5ネットワークスが開発に直接参画して作られている。また同様に、OpenStackのネットワーク管理を担うコンポーネントであるNeutronとBIG-IQとの間の開発にもF5ネットワークスは積極的に関与している。

BIG-IQとADCとの間を結ぶ「South Bound」インタフェース

こうしてオーケストレータから渡ってきたL4-7ネットワークサービスの具体的な要件は、BIG-IQに渡され、そして実際にL4-7サービスを担うADC製品であるBIG-IP固有の細かい設定へと変換された上で、BIG-IPに設定が実行される。このBIG-IQとBIG-IPとの間のインタフェースのことをSouth Bound APIと呼んでいる。

このSouth Bound APIも先ほど紹介したNorth Bound APIのiControlと同様、iControl REST APIと呼ばれ、仕様が公開されている。

BIG-IPに設定を実装する際には「iApps」と呼ばれる機能が利用されている。iAppsの中身とは、BIG-IPのCLIであるTMshellコマンドを含むシェルスクリプトのようなものだ。オーケストレータ、BIG-IQ、BIG-IPと渡ってきたパラメータをシェルスクリプトのパラメータとして渡し、TMShellコマンドが実行されることで、BIG-IPの設定が行われる。

図2 アプリケーション固有のiAppsを用意し、アプリケーション固有の設定を自動化

iAppsは実装されるアプリケーションに合わせてテンプレートを用意している。これが一般的なADC製品とはひと味違うものだ。なぜF5ネットワークスがiAppsを提供しているかというと、もともとL4-7ネットワークはL2-3ネットワークと異なり、設定の自動化が非常に難しい。L2-3サービスは基本的にネットワークをつなぐためのプロトコルであり、そこでやるべきことはどんなアプリケーションでもほぼ同じであり、標準化しやすい。したがって、個々のアプリケーションの要件を意識するケースは少ない。

しかし、L4-7サービスの要件はアプリケーションごとに異なる。例えばセッション管理一つを取ってみても、アプリケーションごとに実装が異なる。アプリケーションが100本あれば100通りのBIG-IPの設定方法があり得る。そのため、一律に同じ値を自動的に適用するというわけにはいかない。そのため自動化が困難だと言える。

ところが、iAppsでは「アプリケーション固有のテンプレート」という概念を取り入れることで、この制限を克服している。具体的にはアプリケーションの種別ごとにあらかじめBIG-IPの設定値を用意しておき、利用するアプリケーションに応じて対応するテンプレートを適用、設定することで自動化を実現するというものだ。一例を挙げると「iApps for VMware Horizon View」「iApps for Microsoft Exchange」といったアプリケーション種別ごとのテンプレートが相当数、用意されている。これは他社製品に見られない、BIG-IPならではの大変ユニークな機能である。

こうした仕組みがなければ、アプリケーション固有のADCの設定が必要な場合、自動化がうまくいかず、管理者は個別にADCへログオンして設定を行う事態となり、ネットワーク全体の自動化の妨げとなってしまう。

以上のように、BIG-IQを中心として見た場合、上位のオーケストレータとの間の「North Bound」、そして下位のBIG-IPとの間の「South Bound」を通じて、L4-7サービスの高度な自動化が実現されているのだ。残り2つのインタフェース、東西南北の「東西」に相当する「East Bound」と「West Bound」については、次回で詳しく紹介したい。