Project Calico v1.0 'レイヤ3' 仮想ネットワークソリューションがリリース

Project CalicoはCalico 1.0をリリースした。VMとコンテナを対象に,オーバーレイネットワークを必要とせず,柔軟性と拡張性を兼ね備えたIPベースのセキュアな通信を実現する,仮想化レイヤ3ソリューションである。今回のリリースは,OpenStackである‘Neutron'ネットワークスタックとの統合(VMライブ・マイグレーションのサポートを含む)だけでなく,DockerKubernetesといったコンテナ管理システムあるいはオーケストレーションシステムなど他の関連技術とも,‘概念実証(proof of concept)レベル’で統合されている。

CalicoはIPv4およびIPv6トラフィックをサポートし,通信を許可するホワイトリストと‘ブックエンド型’のアクセス管理リスト(ACL)を併用した,フレキシブルなセキュリティポリシを提供する。同プロジェクトのブログには,このテクノロジが大規模システムに展開可能であることを確認するために,Calicoチームが広範なテストを展開中であると記されている。詳細な結果は数週間以内に,同じブログ上で公開の予定だ。

InfoQはプロジェクトのエバンジェリストを務めるMetaswitch CTOのMartin Taylor氏に会って,仮想ネットワーキングやProject Calico,および先日リリースされたバージョン1.0についての話を聞くことにした。

InfoQ: Project Calicoについて,少し説明して頂けますか。仮想ネットワークの中心となる概念や,レイヤ2とレイヤ3ネットワークの違いについても説明をお願いします。

Taylor: Calicoは,ハイパバイザ上で動作する仮想マシン,Dockerやrkt, runcといったコンテナソリューション上で動作するコンテナなど,クラウド環境で動作するあらゆる種類の仮想化ワークロードを対象として,セキュアなネットワーク接続を提供する,オープンソースのソフトウェアソリューションです。

現在,仮想化ワークロードを対象とするネットワークソリューションの大半は,ワークロード同士を接続する基盤として,レイヤ2ネットワークなどのイーサネットセグメントをソフトウェアエミュレーションで提供する,という概念に基づいています。このエミュレーションは,データセンタ内の物理ホスト同士を接続する,IPルーティングされた物理ネットワーク(つまりレイヤ3ネットワーク)上で動作します。IP L3物理ネットワーク上でイーサネットL2セグメントをエミュレートする方法は“オーバーレイ”と呼ばれていて,異なるホスト上のワークロード間でイーサネットパケットを送信するための,トンネル網を構築するソフトウェアで構成されます。オーバーレイネットワークは複雑でトラブル対応が難しく,スケールアップ的にも大きな制限があります。さらにアプリケーション開発者は,L2セグメントや仮想ルータ,ネットワークアドレス変換といったネットワークの概念を意識せざるを得ません。

Calicoの採用したアプローチはもっとシンプルです。すべての仮想ワークロードが各コンピュータノード内のソフトウェアベースのルータを介して,IPルーティングされたデータセンタ内のL3ネットワークファブリックに直接接続されるのです。クラウド上のテナント同士のアイソレーションは,各コンピュータノード内のルータソフトウェアにあるファイアウォールのルール設定で実現しています。インターネットをベースとしたものと同じ設計原理と制御プレーン技術を適用することで,Calicoはほぼ無制限のスケールアップが可能です。さらにワークロード同士がIPを介して直接する構造のため,pingやtracerouteといった一般的な診断ツールもすべて動作します。また,アプリケーション開発者が望むワークロード間の接続方法も,これまでよりはるかに自然に記述することが可能です。ポリシやルールも詳細に記述できるので,アプリケーション毎のニーズに正確に合わせて,ワークロード間の接続をセキュアにロックダウンすることができます。

InfoQ: オーバーレイネットワークについては,コンテナやクラスタマネージャ(Mesos, Kubernetesなど)のコンテキストでよく耳にしますが,パフォーマンス上の影響についてもよく聞きます。これについては,どのように思われますか?

Taylor: オーバレイは現在,OpenStackやVMwareなど仮想マシンを志向するクラウド技術における代表的なソリューションとなっています。コンテナのネットワーク技術の候補として考えられるのも無理はありません。私たちの見解では,オーバーレイベースのネットワークアプローチは,コンテナにはあまり適していません。このアプローチでは,通常VMで行う場合より,各ノードコンピュータにたくさんのコンテナを積み込むのが一般的なのですが,これがオーバーレイネットワークのスケーリングの問題を悪化させているのです。しかもコンテナには,VMよりもはるかに頻繁に生成,削除を繰り返す傾向があります。オーバーレイネットワークの複雑なコントロールプレーンにとってこれは大きな負担になり,その維持が難しくなります。コンテナはワークロード仮想化のライトウェイトなアプローチですから,仮想化ワークロードのネットワークのためのライトウェイトな技術であるCalicoは,コンテナの理念に非常によくマッチするのです。Calicoは極めて大規模で振幅の激しいコンテナ(例えば,毎秒20コンテナの設定率の50,000個のコンテナ)のネットワークを処理可能であることが証明されているので,コンテナやコンテナオーケストレーションに関するコミュニティから多くの支持を集めています。

InfoQ: Project Calicoは仮想ネットワークの完全なL3アプローチだということですが, これによるメリットあるいはデメリットは何なのでしょう?

Taylor: CalicoのL3アプローチのメリットについては,すでにいくつも述べてきましたが,要約すると,

  • インターネット形式のアーキテクチャの具現化であるため,スケール性が高い
  • ワークロードがトンネル上ではなくIPでネイティブに通信することにより,トラブルシュートが容易である
  • オーバーレイソリューションよりもセットアップや設定が容易である
  • オーバーレイソリューションに比べて,仮想ワークロードに必要な接続性を定義する上で,よりシンプルで自然な抽象化をアプリケーション開発者に提供する
  • 物理的マシンや外部インターネットアクセスとの接続に関して,オーバーレイソリューションのようなネットワークアドレス変換を必要としないため,相互運用性に優れる
  • 分散型ファイアウォール機能の内蔵により,セキュリティが高い

CalicoのL3アプローチによるデメリットはごくわずかです。明らかに問題なのは,仮想化されたワークロードが特にL2接続を必要とするような場合です。IPアドレススワッピングのような旧式のフォールトトレランス機能をサポートする場合などがその例です。ですが,私たちが重視しているのは,コンテナのような新しい技術,マイクロサービスなどの現代的なアプリケーションアーキテクチャを取り入れた,新しいアプリケーション開発を伴った,新しいデータセンタの登場なのです。Calicoはこのような環境に,完璧にマッチします。

InfoQ: 仮想ネットワークを使うことで,セキュリティにはどのような影響があるのでしょう?

Taylor: クラウド環境の仮想ネットワークが,セキュリティに非常に大きな影響を与えることは間違いありません。L2中心のオーバーレイアプローチでは,物理的に隔離されたL2セグメントやルータ,ファイアウォールといったものを,仮想世界で再現することが主眼となっていますが,セキュリティを実現する上で,これは不完全で不効率な方法だと思います。Calicoはワークロード単位の,きめ細かな接続ポリシをサポートしています。これらのポリシはファイアウォールのルールとして表現され,すべてのワークロードと物理的なネットワークファブリックの両方に対して,それぞれが適用されます。これにより,クラウド内で個々に独立したファイアウォール機能を通じた,オーバーレイL2セグメント間ではパケット転送によって必然的に生じる非効率性のない,最大限のネットワークセキュリティが提供されるのです。

InfoQ: 今後12ヶ月間で,ネットワーク技術はどのように発展すると思われますか?

Taylor: OpenStackのアーリーアダプタたちがオーバーレイネットワークの問題で苦労を重ねているのを,私たちはこれまで数多く見てきました。Calicoは彼らの多くに対して,そのシンプルさとスケーラビリティ,トラブルシュートの容易さで強くアピールします。今後12ヶ月の間に,CalicoのようなL3ネットワークアプローチは,オーバーレイモデルへの有効な代替手段として広く認知されるようになるでしょう。また,DockerやCoreOS,Kubernetes,Mesosphereなどに代表されるコンテナ技術には現在,膨大な関心が集まって,非常にホットになっています。今後12ヶ月間でこれらのテクノロジが十分に成熟して,製品レベルのクラウドを提供できるようになるものと期待しています。このような展開において,CalicoのようなL3ネットワークアプローチは非常に有望だと私たちは考えています。

InfoQ: Project Calicoを使ってみたいと思った時,最良の方法は何でしょうか?

Taylor: まずはhttp://projectcalico.orgで,Calicoの詳しい情報にアクセスしてください。詳細かつ完全なドキュメントや,Calicoソフトウェアのダウンロードが可能です。

InfoQ: 今日はお時間を頂いて,ありがとうございました。 他に何か,InfoQ読者に伝えておきたいことがありますか?

Taylor: 技術的な問題には時として,後で考えてみると疑問の余地のないような,まったく新しいアプローチが現れることがあります。それまで誰も,この方法で問題を解決しようとしなかったのが不思議な位です。Calicoは仮想ネットワークの世界での,まさにそのようなソリューションです。新たにデータセンタを設計するのであれば,オーバーレイ仮想ネットワークが本当に必要なのか,自問するべきです。オーバレイを必要とする強力かつ明確な理由がなければ,CalicoのようなL3ベースのアプローチが,あなたの人生をずっと楽なものにしてくれるでしょう。

Project Calicoのコア開発者でエバンジェリストのEd Harrison氏は,先日のDocker London Meetupで,Calicoの高レベルの概要についてプレゼンテーションを行った。この講演の様子はビデオ録画されていて,Docker YouTubeチャネルで見ることができる。Project Calicoに関する詳しい情報はCalicoのWebサイトで,バージョン1.0リリースについての詳細はブログ記事‘Announcing Calico v1.0’で,それぞれ確認可能だ。