概要およびコンポーネント

概要およびコンポーネント

OpenStack Networking により、ネットワーク、サブネット、ポートなどのネットワークオブジェクトを作成、管理でき、これらのネットワークオブジェクトは他の OpenStack サービスも利用できます。プラグインにより様々なネットワーク装置やネットワークソフトウェアを収容することができ、 自由度のある OpenStack アーキテクチャーやデプロイメントが実現できます。

Networking サービス、コード名 neutron、は、ユーザーがクラウドにおけるネットワーク接続性やアドレス割り当てを定義できる API を提供します。Networking サービスを使うと、オペレーターはクラウドネットワークを支えるネットワーク技術として様々な技術を活用できます。 Networking サービスは、 L3 転送や NAT から負荷分散、境界 ファイアウォール (perimeter firewall)、 仮想プライベートネットワーク (VPN) などまで様々なネットワークサービスを設定、管理するための API も提供しています。

以下のコンポーネントを含みます。

API サーバー

OpenStack Networking API は、レイヤー 2 ネットワークと IP アドレス管理 (IPAM) をサポートしています。また、レイヤー 3 ルーター用の API 拡張もサポートしており、これによりレイヤー 2 ネットワーク間のルーティング、および外部ネットワークへのゲートウェイが提供されます。 OpenStack Networking に対応するプラグインは増え続けており、ルーター、スイッチ、仮想スイッチ、SDN コントローラーなどの様々な製品やオープンソースのネットワーク技術で相互運用性が実現されています。

OpenStack Networking プラグインとエージェント

ポートの接続と抜去、ネットワークとサブネットの作成、IP アドレスの割り当てを行います。選択したプラグインは、そのクラウドで使用されるベンダーや技術により異なります。大事なのは、同時には 1 つのプラグインしか使用できないことです。

メッセージングキュー

API 操作を完了するためにエージェント間でやり取りされる RPC 要求を受信し宛先に届けます。 ML2 プラグインで Open vSwitchLinux bridge の ML2 メカニズムドライバーを使う場合、 neutron サーバーと各ハイパーバイザー上で動作する neutron エージェント間の RPC にメッセージキューが使用されます。

OpenStack Networking の概念

様々なネットワークトポロジーを作るには、ネットワークやサブネットの作成、設定を行い、Compute などの他の OpenStack サービスに仮想デバイスをこれらのネットワークのポートに接続するように指示します。 OpenStack Networking の主要な利用者は OpenStack Compute で、 Networking を使ってインスタンスに対する接続性を提供します。特に、 OpenStack Networking では、各テナントは複数のプライベートネットワークを所有でき、テナント自身の IP アドレス割り当てスキームを使うことができます。他のテナントが使用する IP アドレスと重複する IP アドレスも使用できます。テナントネットワークとプロバイダーネットワークという 2 種類のネットワークがあります。ネットワーク作成時に指定すれば、どちらのネットワークもテナント間で共有させることができます。

テナントネットワーク

ユーザーはプロジェクト内の接続性を提供するテナントネットワークを作成できます。デフォルトでは、テナントネットワークは完全に分離されており、他のプロジェクトとは共有できません。 OpenStack Networking は以下の種類のネットワーク分離技術、オーバーレイ技術をサポートしています。

Flat

すべてのインスタンスが同じネットワークにあります。これは、ホストとも共有できます。VLAN タギングや他のネットワーク分割が行われません。

VLAN

ユーザーは、 VLAN ID (802.1Q タグ) を使って、物理ネットワークに存在する VLAN に対応するプロバイダーネットワークやテナントネットワークを作成できます。これにより、インスタンスは環境内で互いに通信できます。また、インスタンスは、同じレイヤー 2 VLAN 上にある、専用のサーバー、ファイアウォール、ロードバランサー、その他のネットワーク基盤と通信することもできます。

GRE と VXLAN

VXLAN と GRE は、オーバーレイプロトコルで、オーバーレイネットワークを作成し、コンピュートインスタンス間の通信を実現します。 トラフィックが GRE や VXLAN のテナントネットワーク外と通信するには、Networking ルーターが必要です。直接接続されたテナントネットワークを、インターネットなどの外部ネットワークと接続するためにも、ルーターは必要です。ルーターは Floating IP を使って外部ネットワークから直接インスタンスに接続できるようにするためにも必要です。

プロバイダーネットワーク

OpenStack 管理者がプロバイダーネットワークを作成します。プロバイダーネットワークは、データセンター内の既存の物理ネットワークにマッピングされます。プロバイダーネットワークで役に立つネットワーク種別は、フラット (タグなし) と VLAN (802.1Q タグ) です。

Tenant and provider networks

様々なネットワークトポロジーを作るには、ネットワークやサブネットの作成、設定を行い、Compute などの他の OpenStack サービスがこれらのネットワークに接続するには、仮想ポートを要求します。特に、 OpenStack Networking では、各テナントは複数のプライベートネットワークを所有でき、テナント自身の IP アドレス割り当てスキームを使うことができます。他のテナントが使用する IP アドレスと重複する IP アドレスも使用できます。

サブネット

IP アドレスブロックと関連する設定です。サブネットは、テナントネットワークとプロバイダーネットワークの両方に networking サービスが提供する元々の IPAM (IP アドレス管理) として知られています。新しいポートがネットワークに作成された際に、 IP アドレスを割り当てるのにサブネットは使用されます。

ポート

ポートは、仮想サーバーの NIC などの 1 つのデバイスを、仮想ネットワークに接続する接続点です。ポートは、そのポートで使用される MAC アドレスや IP アドレスなどの関連するネットワーク設定の表現でもあります。

ルーター

ネットワーク間でデータパケットを転送する論理コンポーネントです。また、テナント上の VM に対して外部ネットワークへアクセスするための L3 と NAT 機能を提供します。特定のプラグインだけで必要です。

セキュリティーグループ

セキュリティーグループは、コンピュートインスタンスに対する仮想ファイアウォールとして振る舞い、インスタンスの入出力トラフィックを制御します。セキュリティーグループは、サブネットのレベルではなく、ポートのレベルで動作します。したがって、サブネットのポート毎に異なるセキュリティーグループ群を割り当てることができます。起動時に特定のセキュリティーグループを指定しなかった場合、インスタンスにはそのネットワークのデフォルトのセキュリティーグループが割り当てられます。

セキュリティーグループとセキュリティーグループルールを通じて、管理者やテナントは、ポートを通過できるトラフィック種別や方向 (入力/出力) を指定できます。セキュリティーグループは、セキュリティーグループルールの入れ物です。ポートが作成された際、ポートにはセキュリティーグループが関連付けられます。セキュリティーグループが指定されなかった場合、そのポートには「デフォルト」セキュリティーグループが関連付けられます。デフォルトでは、このグループはすべての入力トラフィックを廃棄し、すべての出力トラフィックを許可します。このグループにルールを追加して、動作を変更できます。

API 拡張

OpenStack Networking サービスは拡張性があります。API 拡張は 2 つの目的で使用されます。 API に新しい機能をバージョンの変更なしに追加できます。ベンダー固有の特定の機能を追加できます。アプリケーションは、 URI /extensions に GET を行うことで、利用可能な API 拡張の一覧を取得できます。 API 拡張はバージョン毎であることに注意してください。ある API バージョンで利用できた API 拡張は別の API バージョンでは利用できないかもしれません。

Creative Commons Attribution 3.0 License

Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.