OpenStackディストリビューション「RDO」を用いて、実際に動作するOpenStack環境を構築しながら、OpenStackの利用方法や内部構造を学ぶ特集の第7回です。今回は、Neutronが仮想ネットワークを実現する仕組みを解説します。Neutronが標準で提供するOVSプラグインに加えて、外部のSDNコントローラーと連携する使い方も紹介します。

Neutronのプラグイン方式

 「基礎編」第4回の図1に示したように、Neutronが構成する仮想ネットワークには、大きくは、仮想ルーターと仮想スイッチの機能が含まれます。その他には、仮想マシンインスタンスにIPアドレスを割り当てるためのDHCPサーバーの機能もあります。Neutronは、これらの機能を個別の「エージェント」によって実現します(図1)。例えば、Neutronサービスが仮想ルーター作成のAPIリクエストを受け取ると、メッセージングサーバーを経由して、「L3エージェント」に仮想ルーターの作成を依頼します。同様に、仮想スイッチの作成は「L2エージェント」、DHCPサーバーの作成は「DHCPエージェント」が担当します。

図1●Neutronのエージェントによるプラグイン構造
[画像のクリックで拡大表示]

 そして、これらのエージェントが仮想ルーターや仮想スイッチを作成する方法は、使用するプラグインによって変わってきます。さらに、各エージェントが稼働するサーバーもプラグインによって変わります。図2は、OpenStackが標準で提供するOVS(Open vSwitch)プライグインの例になります。OVSプラグインでは、仮想ルーターとDHCPサーバーは、コンピュートノードとは別のネットワークノード上に用意されるため、L3エージェントとDHCPエージェントは、ネットワークノードに配置されます。仮想スイッチについては、各コンピュートノードとネットワークノードにまたがった形で作成する必要があるので、全てのノードにL2エージェントが配置されています。

図2●OVSプライグインのエージェント配置
[画像のクリックで拡大表示]

 図2では、物理ネットワークの構成にも注意が必要です。L2エージェントが作成する仮想スイッチは、プライベートネットワークを経由してパケットを送受信します。外部ネットワーク(パブリックネットワーク)と通信する際は、プライベートネットワークを経由してネットワークノードに到達した後、ネットワークノード上の仮想ルーターを通って、パブリックネットワークへと出ていきます。コンピュートノードから直接にパブリックネットワークに出られるわけではありません。

この先は会員の登録が必要です。有料会員(月額プラン)は初月無料!

日経 xTECHには有料記事(有料会員向けまたは定期購読者向け)、無料記事(登録会員向け)、フリー記事(誰でも閲覧可能)があります。有料記事でも、登録会員向け配信期間は登録会員への登録が必要な場合があります。有料会員と登録会員に関するFAQはこちら