OSSのクラウド基盤「Eucalyptus」を使う(2)--仮想ネットワークの実装方式

箕浦真(VA Linux Systems Japan)
2009-06-16 11:00:00
  • このエントリーをはてなブックマークに追加
最新特集【一覧】

 この連載では、Amazon EC2互換のクラウド基盤であるOSS「Eucalyptus」を利用し、「自分たち専用」のクラウド環境を構築することを目標にしています。前回は、Eucalyptusの全体構成について見てみました。今回は、その構成を理解するために、Eucalyptusにおける仮想ネットワークの実装方式について解説していきます。用語や略語などで分からないものが出てきた場合には、前回の記事(OSSのクラウド基盤「Eucalyptus」を使う(1)--全体構成を理解する)を参照してください。

 Eucalyptus 1.5.1の仮想ネットワークには、「SYSTEM」「STATIC」「MANAGED」「MANAGED-NOVLAN」の4つのモードがあります。このうち実装されている全機能、特にEC2の特徴的な仕組みでもある「セキュリティグループ」の機能が利用できるのはMANAGEDモードのみです。そこで、まずはMANAGEDモードの実装方式を見てみたいと思います。

3.仮想ネットワークの実装方式

 EC2のセキュリティグループについて簡単に説明しておきます。すべてのインスタンスは1つ以上のセキュリティグループに属します(*1)。同じセキュリティグループに属するインスタンス間では、ネットワークを通じたやりとりは自由にできます(もちろんインスタンス内部でフィルタリングすれば別ですが)。

 各セキュリティグループには「イングレスフィルタルール(イングレスルール)」を定義できます。通信内容によってTCPのポート番号、UDPのポート番号、ICMPのタイプ/コードでパケットのフィルタリングができるほか、送信元としてセキュリティグループまたはIPアドレスが指定できます。既定ではすべてのパケットを遮断します。

 イングレスルールにおけるセキュリティグループの指定は、ユーザーとグループのペアで行うため、異なるユーザーの所有するインスタンス間での通信も可能になります。逆に言えば、明示的にルールを記述しなければ、他のユーザーのインスタンスとは隔離されている訳です(2-図1)。また送信元としてIPアドレスを指定するルールは、クラウド外との通信を制限するのに利用できます。

2-図1 【2-図1】EucalyptusのMANAGEDモードにおけるセキュリティグループ(画像クリックで拡大表示)

 Eucalyptusでは、これをどのように実装しているのでしょうか。まず、同一計算ノード内の同一セキュリティグループに属するインスタンスでは、各インスタンスの仮想NICに対応するvifがブリッジ接続されます。ブリッジには“eucabr10”“eucabr11”……、という名前が付けられます。

 次に、複数の計算ノードにまたがるセキュリティグループは、VLANで接続されます。各計算ノードのeucabrXXブリッジには、それぞれ eth0.XX(物理NICがeth0の場合)というVLANインターフェースが接続されており、インスタンス間のトラフィックはこの中を通ります。

 各セキュリティグループには、Eucalyptus用に割り当てられたIPアドレス空間を分割し、そこから適宜IPアドレス(ローカルIPアドレス)が配布されます。従って、ここで設定するIPアドレス空間はある程度広いものである必要があります。クラウド外(「前回記事の図2」の構成で言う「社内ネットワーク」)とのやり取りにはこのアドレスは使われませんので、RFC1918のプライベートアドレスから、社内で使われていない空間をごっそり使うのがよいと思います。

 さて、各VLANにはフロントエンドノード(正確にはCCの動作するノード)も参加します。CCは、各VLANのトラフィックが混ざらないよう、あるいは、イングレスルールを実施するために、VLANに対してiptablesによるフィルタリングの設定を行います。

 またフロントエンドノードでは、各インスタンスに対してプライベートIPアドレスを配布するためにCCが制御するDHCPサーバを動作させるため、各VLANインターフェースに対してフロントエンドノード自身のIPアドレスを持ちます。

(*1) EC2では複数のセキュリティグループに属することができますが、Eucalyptus 1.5.1では複数のグループに属させた場合、期待通りには動作しないようです。

  • 新着記事
  • 特集
  • ブログ