ネットワークサービス「Neutron」は、OpenStack環境でネットワークの機能を提供する。具体的には、L2/L3といった基本的なネットワーク機能に加えて、ロードバランサー/VPN/ファイヤーウォール機能も提供する。今回は、このNeutronについて説明しよう。

L2/L3ネットワーク機能の設定方法

Neutronはネットワークに関するさまざまな機能を有しているが、ここでは基本的なL2/L3ネットワーク機能を取り上げる。

Neutronではネットワークとサブネットが作成可能だ。ネットワークをNeutronで作成すると、VLAN/VXLAN/GREなどのテクノロジーによって、各ネットワークが仮想的に分割される。ネットワークを分割しないフラットなネットワーク構成も可能だが、一般的には分割することが多い。また、サブネットでは実際のIPアドレスレンジやデフォルトゲートウェイなどを設定できる。

インスタンスにはNeutronで作成したネットワークが添付される。また、インスタンス起動時に、Neutronによって提供されるDHCPサーバによって、IPアドレスをインスタンスに対して払い出すこともできる。インスタンスは起動時にデフォルトゲートウェイに対して自身の設定情報を問い合わせるが、NeutronはMetadata Proxy機能によって、このリクエストを正しい宛先に転送する。

ネットワーク作成時に、「外部ネットワーク」と指定しておくと、外部と接続されているネットワークと認識される。この外部ネットワークとは、社内のネットワークやインターネットといった「OpenStackの外側」のネットワークが想定されている。ルータはネットワーク間の接続機能を提供し、ネットワークを複数接続することができる。外部ネットワークをルータのゲートウェイとして設定することで、外部ネットワークがルータのデフォルトゲートウェイのネットワークとなる。

Neutronのネットワーク構成

ルーターに外部ネットワークを設定することで、このルーター配下のネットワークに接続されたインスタンスが外部のネットワークに接続できるようになる。これは、ルーターにSNAT (Source Network Address Translation)が自動的に設定され、インスタンスのアドレスがルーターの外部ネットワークのIPアドレスへ自動変換されるためである。この場合、内部のインスタンスから外部のネットワークへは接続可能だが、外部のネットワークからは内部のインスタンスに接続できない。

外部のネットワークから内部のインスタンスに接続したい場合は、Floating IP機能によって対象インスタンスに外部ネットワークのIPアドレスを振ることで対応する。Floating IPは、あらかじめ管理者が設定しておいたアドレスレンジから利用者が取得することで利用できる。ユーザーが無制限に外部ネットワークのIPアドレスを取得すると、アドレスが枯渇する可能性があるので、管理者はQuotaの機能でFloating IPとして取得できるIPアドレスの数を制限できる。

Neutronでは、サーバホスト内のネットワーク機能の提供は、Linux BridgeもしくはOpen vSwitchを利用できる。外部ネットワークとの連携に関しては、ネットワークベンダー各社が出しているプラグイン/ドライバを利用できる。

Floating IPの仕組み

ネットワークとサブネットを作成する画面

ネットワークとサブネットの作成について、実際の管理画面を用いて説明する。今回は、RedHat Enterprise Linux OpenStack Platform 6の画面を掲載する。[プロジェクト]-[ネットワーク]から、「ネットワークの作成」をクリックし、各項目に必要な値を入力した後、作成を選択すると、ネットワークとサブネットが同時に作成される。「ネットワーク名」には ネットワークの名前を入力する。

[ネットワーク]の作成画面

[ネットワーク]の次に表示される[サブネット]の画面では、以下の項目を入力する。

  • サブネット名 : サブネットの名前
  • ネットワークアドレス : サブネットを指定
  • IPバージョン : IPv4かIPv6を選択可能
  • ゲートウェイIP : ゲートウェイのIPを指定。指定しない場合は自動的に割り振られる。
  • ゲートウェイなし : ゲートウェイが必要ない場合はチェックを入れる。

[サブネット]の作成画面

[サブネット]の次に表示される[サブネット詳細]の画面では、以下の項目を入力する。

  • DHCP有効 : DHCPで自動的にIPアドレスを振る場合はチェックを入れる。
  • IPアドレス割当プール: DHCPで割り振るプールを指定。指定がない場合は空いているアドレスから振り出される。
  • DNSサーバー : インスタンスに DHCPでアドレスを配信した場合に設定される
  • 追加ルートの設定 : インスタンスに追加のルートを指定したい場合に入力

サブネットの詳細画面

上記の手順で設定したネットワークは、管理画面の[プロジェクト]-[ネットワーク]-[ネットワーク]の一覧で確認できる。

ネットワークの一覧画面

各サービスが提供する主な機能

最後に、ネットワークサービスであるNeutronに関わる各サービスが提供する主な機能を以下にまとめておく。

サービス名称 サービスが提供する機能
neutron-server Neutronを制御するためのAPIを提供
neutron-openvswitch-agent サーバホスト内のOpen vSwitchの設定を行う。Linux Bridgeを利用する場合はLinux Bridge agentを利用する
neutron-metadata-agent metadata情報の転送を行う
neutron-dhcp-agent DHCPサーバーの設定を行う
neutron-l3-agent 仮想ルータの設定を行う

今回はOpenStackコンポーネントの紹介として、ネットワークサービスのNeutronを紹介した。次回は、認証サービスとなるKeystoneを紹介する。

荒牧 大樹
ネットワンシステムズ株式会社 ビジネス推進本部 第2応用技術部 クラウドソフトウェアチーム
シスコシステムズの認定資格「CCIE #14716」を保持。OpenStackおよびCisco/VMwareなどのさまざまなクラウドソフトウェアを担当している。