昨日は、OpenStackにおいて最も核となるコンポーネントであるKeystoneについて紹介しましたが、本日は筆者がOpenStackの中で最も複雑だと考えているコンポーネント、Neutronを紹介します。これはOpenStackでネットワークサービスを提供するコンポーネントです。
目次
Neutronのアーキテクチャ
OpenStack Networking (Neutron) を使用すると、ネットワークインターフェースを作成し、Nova VMなどの他のOpenStackコンポーネントが管理するサービスに接続して、ネットワークへの接続を可能にします。さまざまなバックエンドプラグインを通じて、異なるネットワーク機器やソフトウェアに対応できるため、OpenStackのアーキテクチャとデプロイに柔軟性をもたらします。
これには以下のコンポーネントが含まれます:
Neutron-server
APIリクエストを受け取り、適切なOpenStack Networkingプラグインにルーティングして操作を実行します。
OpenStack Networking バックエンドプラグインとエージェント
ポートの挿抜、ネットワークやサブネットの作成、およびIPアドレスの割り当てを行います。これらのプラグインやエージェントは、クラウドで使用されるベンダーや技術によって異なります。一般的なプラグインにはOVS、Linux Bridge、OVNがあり、そのアーキテクチャについては後ほど紹介します。
一般的なエージェントには、L3(レイヤー3)、DHCP(動的ホストIPアドレス割り当て)、およびプラグインエージェントがあります。
メッセージキュー
Novaや他のほとんどのサービスと同様に、コンポーネント間の通信はメッセージキュー(Message Queue)を介して行われます。OpenStack Networkingはこれを利用して、neutron-serverと各種エージェントの間でルーティング情報を交換します。また、特定のプラグインのネットワーク状態を保存するためのデータベースとしても機能します。
OpenStack Networkingは主にOpenStack Computeと併用され、インスタンス(Nova VM)にネットワーク接続を提供します。
Neutronが提供するサービス
Neutronはネットワーク仮想化サービスを提供し、OpenStack上にオーバーレイネットワーク(overlay network)を構築する機能を持ち、主に以下のサービスを提供します。
- スイッチ:同一セグメント内の VM L2 接続性を提供
- ルーター:L3 ネットワーク機能(SNAT、DNAT など)を提供
- ファイアウォール:基本的なファイアウォール(ポートブロッキングなど)を提供
- ロードバランシング:ロードバランサーを提供。ただし、この機能は現在 Octavia を通じて実装されるよう移行されており、Queens バージョンで非推奨(deprecated)としてマークされています。
その概念は主に一般的な物理機器と同じですが、OpenStack内ではソフトウェアによって実現されています。
まとめ
今回はNeutronのコンポーネントと提供される機能について紹介しました。次回の記事では、Neutronにおけるいくつかの基本概念と用語について紹介します。
著作権表示:このブログのすべての記事は、特記のない限りCC BY-NC-SA 4.0ライセンスの下で提供されています。

