第6章 IP アドレス使用のプランニング
OpenStack のデプロイメントでは、予想以上の数の IP アドレスが使用される可能性があります。本項は、必要な数のアドレスを適切に予測できるようにサポートすることを目的とし、さらに IP アドレスがどこで使用されるかを説明します。
VIP (別称: 仮想 IP アドレス): 仮想 IP アドレスとは HA サービスをホストし、基本的に複数のコントローラーノード間で共有される IP アドレスです。
6.1. 複数の VLAN の使用
OpenStack のデプロイメントを計画する際には、デプロイメントに使用するサブネットの数から開始します。この数に基づいて、各アドレスをどのように使用していくかを割り当てることができるはずです。複数のサブネットを使用すると、システム間のトラフィックを VLAN に分割することができます。たとえば、通常は、管理または API トラフィックは、Web トラフィックにサービスを提供するシステムと同じネットワークを共有しないようにする必要があります。また VLAN 間のトラフィックは、ルーター経由で伝送する必要があります。この構成では、ファイアウォールを設置してトラフィックフローをさらに制御することができます。
6.2. VLAN トラフィックの分離
通常、異種のネットワークトラフィックをホストする場合には、別個の VLAN をトラフィックに割り当てます。たとえば、各種ネットワークごとに別の VLAN を指定します。この中で、外部ネットワークだけは外部の物理ネットワークにルーティングが可能でなければなりません。本リリースでは、DHCP サービスは director により提供されます。
本項で説明するすべての分離 VLAN が、すべての OpenStack デプロイメントで必要な訳ではありません。たとえば、クラウドユーザーがアドホックの仮想ネットワークをオンデマンドで作成する必要がない場合には、テナントネットワークが必要ない可能性があります。各仮想マシンを他の物理システムと同じスイッチに直接接続する必要があるだけの場合には、コンピュートノードをプロバイダーネットワークに直接接続し、インスタンスがプロバイダーネットワークを直接使用するようにするだけでよいでしょう。
- プロビジョニングネットワーク: この VLAN は、PXE ブートで director を使用して新規ノードをデプロイするためだけに特化されています。OpenStack Orchestration (heat) は、OpenStack をオーバークラウドのベアメタルサーバーにインストールします。これらのサーバーは、物理ネットワークにアタッチされており、アンダークラウドのインフラストラクチャーから OpenStack Platform のインストールイメージを取得します。
内部 API ネットワーク: 内部 API ネットワークは、API 通信、RPC メッセージ、データベース通信経由で OpenStack のサービス間の通信を行う際に使用します。さらに、このネットワークは、コントローラーノード間の稼働メッセージの通信にも使用されます。IP アドレスの割り当てを計画する際には、各 API サービスには独自の IP アドレスが必要である点を念頭に置いてください。具体的には、以下のサービスごとに IP アドレスが必要です。
- vip-msg (ampq)
- vip-keystone-int
- vip-glance-int
- vip-cinder-int
- vip-nova-int
- vip-neutron-int
- vip-horizon-int
- vip-heat-int
- vip-ceilometer-int
- vip-swift-int
- vip-keystone-pub
- vip-glance-pub
- vip-cinder-pub
- vip-nova-pub
- vip-neutron-pub
- vip-horizon-pub
- vip-heat-pub
- vip-ceilometer-pub
- vip-swift-pub
高可用性を使用する場合には、Pacemaker による仮想 IP アドレスの物理ノード間の移動が可能でなければなりません。
- ストレージ: Block Storage、NFS、iSCSI など。理想的には、これはパフォーマンスの関係上、別の物理イーサネットリンクに分離します。
- ストレージ管理: OpenStack Object Storage (swift) は、参加するレプリカノード間でデータオブジェクトを同期するために、このネットワークを使用します。プロキシーサービスは、ユーザー要求と下層のストレージレイヤーの間の仲介インターフェースとして機能します。プロキシーは、受信要求を受け取り、必要なレプリカの位置を特定して要求データを取得します。Ceph バックエンドを使用するサービスは、Ceph と直接対話せずにフロントエンドのサービスを使用するため、ストレージ管理ネットワーク経由で接続を確立します。RBD ドライバーは例外で、このトラフィックは直接 Ceph に接続する点に注意してください。
- テナントネットワーク: Neutron は、VLAN 分離 (各テナントネットワークがネットワーク VLAN) または VXLAN か GRE によるトンネリングを使用した独自のネットワークを各テナントに提供します。ネットワークトラフィックは、テナントのネットワークごとに分離されます。テナントネットワークには IP サブネットが割り当てられており、複数のテナントネットワークが同じアドレスを使用する場合があります。
- 外部: 外部ネットワークは、パブリック API エンドポイントと Dashboard (horizon) への接続をホストします。オプションでこれと同じネットワークを SNAT に使用することもできますが、必須ではありません。実稼働環境のデプロイでは、大抵の場合、Floating IP アドレスと NAT に別のネットワークが使用されます。
- プロバイダーネットワーク: これらのネットワークでは、インスタンスを既存のネットワークインフラストラクチャーにアタッチすることができます。フラットネットワークまたは VLAN タグでデータセンターの既存の物理ネットワークに直接マッピングするために、プロバイダーネットワークを使用することができます。これにより、インスタンスは、OpenStack Networking インフラストラクチャー外部のシステムと同じレイヤー 2 ネットワークを共有することができます。
6.3. IP アドレスの消費
以下のシステムは割り当てられた範囲からの IP アドレスを消費します。
- 物理ノード: 物理 NIC ごとに IP アドレスが 1 つ必要です。物理 NIC に固有の機能を割り当てるのが一般的な慣習です。たとえば、管理トラフィックと NFS トラフィックは、それぞれ 1つずつ物理 NIC が割り当てられます (時には複数の NIC を使用して冗長化の目的で異なるスイッチ間を接続します)。
- 高可用性の仮想 IP (VIP): コントローラーノード間で共有されるネットワーク 1 つにつき 1 - 3 個程度割り当てられることが予想されます。
6.4. 仮想ネットワーク
これらの仮想リソースは、OpenStack Networking の IP アドレスを消費します。これらはクラウドインフラストラクチャーではローカルとみなされ、外部の物理ネットワークにあるシステムから到達可能である必要はありません。
- テナントネットワーク: 各テナントネットワークには、IP アドレスをインスタンスに割り当てるためのサブネットが必要です。
- 仮想ルーター: サブネットに結線する各ルーターのインターフェースには IP アドレス が 1 つ必要です (DHCP が有効化されている場合には追加でもう 1 つアドレスが必要です)。
- インスタンス: 各インスタンスには、ホストされるテナントのサブネットからのアドレスが必要です。受信トラフィックが必要な場合には、指定の外部ネットワークから、追加の Floating IP アドレスを確保する必要があります。
- 管理トラフィック: OpenStack サービスと API トラフィックを含みます。Red Hat OpenStack Platform 10 では、仮想 IP アドレスに対する要件が軽減され、代わりにすべてのサービスが少数の仮想 IP を共有するようになりました。API、RPC、データベースサービスは、内部 API の仮想 IP で通信します。
6.5. ネットワークプランの例
以下の例には、複数のサブネットに対応する、さまざまなネットワークを示しています。各サブネットには IP アドレスの範囲が 1 つ割り当てられます。
サブネット名 | アドレス範囲 | アドレス数 | サブネットマスク |
---|---|---|---|
プロビジョニングネットワーク | 192.168.100.1 - 192.168.100.250 | 250 | 255.255.255.0 |
内部 API ネットワーク | 172.16.1.10 - 172.16.1.250 | 241 | 255.255.255.0 |
ストレージ | 172.16.2.10 - 172.16.2.250 | 241 | 255.255.255.0 |
ストレージ管理 | 172.16.3.10 - 172.16.3.250 | 241 | 255.255.255.0 |
テナントネットワーク (GRE/VXLAN) | 172.19.4.10 - 172.16.4.250 | 241 | 255.255.255.0 |
外部ネットワーク (Floating IP など) | 10.1.2.10 - 10.1.3.222 | 469 | 255.255.254.0 |
プロバイダーネットワーク (インフラストラクチャー) | 10.10.3.10 - 10.10.3.250 | 241 | 255.255.252.0 |