Red Hat Training

A Red Hat training course is available for Red Hat OpenStack Platform

第2章 ネットワークに関する詳細

2.1. 基本的なネットワークの仕組み

ネットワークは、複数のコンピューター間で伝送される情報で構成されます。最も基本的なレベルでは、ネットワークインターフェースカード (NIC) が 1 枚ずつ搭載された 2 台のマシンをケーブルで接続することによって構成します。OSI ネットワークモデルでは、これはレイヤー 1 に相当します。

3 台以上のコンピューターを使用する場合には、スイッチというデバイスを追加してこの構成をスケールアウトする必要があります。スイッチとは、追加のマシンを結線するための複数のイーサネットポートが搭載された専用デバイスです。このような構成はローカルエリアネットワーク (LAN) と呼ばれています。

スイッチにより、OSI モデルのレイヤー 2 に上がり、下層のレイヤー 1 よりもインテリジェントな機能が適用されます。各 NIC には、ハードウェアに割り当てられる一意な MAC アドレス番号があり、この番号を使用することにより、同じスイッチに結線されたマシンが相互に認識できるようになります。

スイッチは、どの MAC アドレスがどのポートにプラグインされるかのリストを管理するので、コンピューター間でデータ送信を試みると、スイッチは各 NIC がどこに配置されているかを認識し、正しい宛先にネットワークトラフィックを伝送するための回路を調整します。

2.1.1. 複数の LAN の接続

2 つの別々のスイッチ上で 2 つの LAN を使用している場合には、以下の方法で、それらのスイッチを接続して相互に情報を共有するとができます。

トランクケーブル
トランクケーブルと呼ばれる物理ケーブルを 1 本使用して、2 つのスイッチを直接接続することが可能です。この構成では、トランクケーブルを各スイッチのポートに差し込んでから、それらのポートをトランクポートとして定義します。これで 2 つのスイッチが 1 つの大きな論理スイッチとして機能し、接続されているコンピューター同士が相互に検出できるようになります。このオプションはあまりスケーラブルではないため、より多くのスイッチを直接リンクすると、オーバーヘッドが問題となります。
ルーター

ルーターと呼ばれるデバイスを使用して、各スイッチからケーブルを接続します。これにより、ルーターは両スイッチで設定したネットワークを認識するようになります。ルーターに結線した各スイッチはインターフェースとなり、ネットワークのデフォルトゲートウェイとして知られる IP アドレスが割り当てられます。デフォルトゲートウェイの「デフォルト」とは、宛先のマシンがデータの送信元と同じ LAN 上にないことが明らかな場合のトラフィックの送信先のことです。

各コンピューターにデフォルトゲートウェイを設定すると、トラフィック送信のために、他のネットワーク上にある全コンピューターを認識する必要がなくなります。これで、デフォルトゲートウェイのみにトラフィックが送信されるようになり、そこからの処理はルーターが行います。ルーターは、どのネットワークがどのインターフェースに存在するかを把握しているため、指定の宛先に、問題なくパケットを送信することができます。ルーティングは、IP アドレスやサブネットなどの一般的に知られている概念と同様に、OSI モデルのレイヤー 3 で機能します。

注記

この概念は、インターネット自体の仕組みと同じです。さまざまな組織で稼働する多数の個別ネットワークはすべて、スイッチやルーターを使用して相互に接続しています。トラフィックは適切なデフォルトゲートウェイを辿っていくと、最終的に適切な宛先に到着します。

2.1.2. VLAN

仮想ローカルエリアネットワーク (VLAN) により、同じスイッチ上で実行されるコンピューターのネットワークトラフィックを分割することができます。ポートが別のネットワークのメンバーとなるように設定することで、スイッチを論理的に分割することができます。この構成では、ポートをミニ LAN 化することによって、セキュリティーの目的別にトラフィックを分離することができます。

たとえば、スイッチにポートが 24 個ある場合に、ポート 1 から 6 までは VLAN200 に所属し、ポート 7 から 18 までは VLAN201 に所属するように定義することができます。VLAN200 に接続されているコンピューターは、VLAN201 のコンピューターと完全に分離され、直接通信できなくなります。2 つの VLAN 間のトラフィックはすべて、2 つの別個の物理スイッチであるかのようにルーターを通過する必要があります。また、ファイアウォールを使用して相互通信可能な VLAN を決定することにより、セキュリティーを強化することも可能です。

2.1.3. ファイアウォール

ファイアウォールは、IP ルーティングと同じ OSI レイヤーで動作します。多くの場合、ファイアウォールはルーターと同じネットワークセグメントに存在し、全ネットワーク間で移動するトラフィックを制御します。ファイアウォールは、トラフィックがネットワークに出入りできるかどうかを規定する事前定義済みのルールを使用します。これらのルールは粒度を高くすることが可能で、たとえば「VLAN 200 上のサーバーは、Web (HTTP) トラフィックを一方向に転送している場合にのみ、木曜の午後に限り、VLAN 201 上のコンピューターのみと通信できるものとする」というように定義することができます。

このようなルールを適用するには、ファイアウォールの一部でステートフルパケットインスペクション (SPI) も実行し、パケットのコンテンツを検証して、パケットの実際の内容がパケットが主張する内容と同じであることを確認します。ハッカーは、トラフィックを実際の内容とは別のものとして転送して、密かにデータを抜き出すことが知られており、SPI はこのような脅威を軽減する手段の 1 つです。

2.1.4. ブリッジ

ネットワークブリッジは、基本的には OSI モデルのレイヤー 2 で動作するスイッチですが、唯一の機能はルーターと同じように別々のネットワークに同時に接続することが可能なことです。

2.2. OpenStack のネットワーク

サービスおよび設定によって定義されるネットワークを除いた、OpenStack クラウドにおけるすべての基本的なネットワークの概念。これはソフトウェア定義ネットワーク (SDN) として知られています。仮想スイッチ (Open vSwitch) とルーター (L3 エージェント) により、インスタンスは相互に通信することができます。また、物理ネットワークを使用した外部との通信も許可することも可能です。Open vSwitch のブリッジは、仮想ポートをインスタンスに割り当て、送受信トラフィックを物理ネットワークに橋渡しすることができます。

2.3. ネットワークバックエンドの選択

Red Hat OpenStack Platform では、Nova networking (nova-network) および OpenStack Networking (neutron) という 2 つの明らかに異なるネットワークバックエンドを提供しています。

Nova ネットワークは、OpenStack のテクノロジーロードマップでは廃止予定となっていますが、現在はまだ利用可能な状態です。OpenStack の将来のロードマップでは、OpenStack Networking はソフトウェア定義ネットワーク (SDN) の中核的なコンポーネントと考えられており、活発な開発が進められています。

重要

Nova ネットワークと OpenStack Networking の間には、現在移行パスが存在ません。このため、Nova ネットワークのデプロイして、後から OpenStack Networking に移行する予定の場合には、全ネットワークと設定を手動で移行する必要があります。このようなマイグレーションを行うと、ネットワークを停止しなければならなくなる可能性が高くなります。

2.3.1. OpenStack Networking (neutron) を選択する場合

  • オーバーレイネットワークソリューションが必要な場合。OpenStack Networking は、仮想マシントラフィックの分離に GRE または VXLAN トンネリングをサポートします。GRE または VXLAN を使用すると、ネットワークファブリック上で VLAN を設定する必要はありません。物理ネットワークからの唯一の要件は、ノード間の IP 接続性を提供することです。さらに、VXLAN または GRE により、理論上の拡張の上限は 1600 万の一意識別子まで可能となります。これは、802.1q VLAN ID の上限である 4094 をはるかに超えています。これに対して、Nova ネットワークのネットワーク分離は 802.1q VLAN をベースとしており、GRE または VXLAN によるトンネリングはサポートしていません。
  • テナント間で重複する IP アドレスが必要な場合。OpenStack Networking は、異なるテナントが重複や干渉のリスクなしに同じコンピュートノード上で同じサブネット範囲 (例: 192.168.100/24) を使用することができる、Linux カーネルのネットワーク名前空間の機能を利用します。これは大型のマルチテナントデプロイメントに推奨されます。これに対して、Nova ネットワークの場合は、全テナントが使用するサブネットに引き続き注意する必要があるフラットなトポロジーのみをサポートします。
  • Red Hat 認定のサードパーティー製 OpenStack Networking プラグインが必要な場合。デフォルトでは、Red Hat Enterprise Linux OpenStack Platform 5 以降のバージョンは、Open vSwitch (OVS) メカニズムドライバーとともにオープンソースの ML2 コアプラグインを使用します。物理ネットワークファブリックおよびその他のネットワーク要件に基づいて、デフォルトの ML2/Open vSwitch ドライバーの代わりにサードパーティー製の OpenStack Networking プラグインをデプロイすることができます。

    注記

    Red Hat では、Red Hat OpenStack Platform を対象とする OpenStack Networking のプラグインをさらに多く認定するために、常にパートナー認定プログラムの強化を図っています。認定プログラムに関する詳しい情報および認定済みの OpenStack Networking プラグインについては、http://marketplace.redhat.com を参照してください。

  • VPN-as-a-service (VPNaaS)、Firewall-as-a-service (FWaaS) または Load-Balancing-as-a-service (LBaaS) が必要な場合。これらのネットワークサービスは、OpenStack Networking のみで利用可能で、Nova ネットワークでは提供されていません。Dashboard により、テナントは、管理者が介入する必要なしにこれらのサービスを管理することができます。

2.3.2. Nova networking (nova-network) を選択する場合

  • デプロイメントにフラット (タグなし) または VLAN (802.1q タグ付き) ネットワークが必要な場合。理論上のスケーリング上限である 4094 VLAN ID は、通常物理スイッチの上限を超えるので、このようなタイプのデプロイメントは、スケーラビリティーが必要であることに加えて、管理とプロビジョニングが必要であることを意味します。また、ノード間で必要な VLAN のセットをトランキングするために物理ネットワーク上で固有の設定が不可欠です。
  • デプロイメントにテナント間で重複する IP アドレスが必要ない場合。これは通常、小型のプライベートデプロイメントのみに推奨されます。
  • ソフトウェア定義ネットワーク (SDN) ソリューションまたは物理ネットワークファブリックと対話する機能が必要ない場合。
  • セルフサービスの VPN、ファイアウォール、またはロードバランシングサービスが必要ない場合。

2.4. 高度な OpenStack Networking の概念

2.4.1. レイヤー 3 高可用性

OpenStack Networking は、仮想ネットワークコンポーネントをホストする機能に特化した物理サーバーである中央ネットワークノードで仮想ルーターをホストします。これらの仮想ルーターは、仮想マシンの送受信トラフィックを誘導するため、環境の接続性を維持するのに不可欠です。物理サーバーは多くの理由から停止する場合があるため、ネットワークノードが利用できなくなると仮想マシンがその影響を受けやすくなる可能性があります。

この問題を軽減するために、OpenStack Networking は、レイヤー 3 の高可用性 (L3 HA) を採用し、仮想ルーターと Floating IP アドレスを保護する業界標準の VRRP を実装しています。L3 HA を使用すると、テナントの仮想ルーターは複数の物理ネットワークノードに無作為に割り当てられます。その 1 つはアクティブなルーターとして指定され、それ以外のルーターは、アクティブなルーターをホストするネットワークノードがオフラインになった場合に引き継ぐ準備が整ったスタンバイの役割を果たします。

注記

「レイヤー 3」は、OSI モデルにおいてこの機能が動作する層で、ルーティングおよび IP アドレス指定の保護に役立ちます。

詳しい情報は、『ネットワークガイド』の「レイヤー 3 高可用性」の項を参照してください。

2.4.2. Load Balancing-as-a-Service (LBaaS)

Load Balancing-as-a-Service (LBaaS) により、OpenStack Networking は、指定のインスタンス間で受信ネットワーク要求を均等に分散できるようになります。この分散により、インスタンス間でワークロードが共有され、システムリソースをより効率的に使用できるようになります。受信要求は、以下の負荷分散メソッドのいずれかを使用して分散されます。

ラウンドロビン
複数のインスタンス間で要求を均等にローテーションします。
送信元 IP アドレス
同じ送信元 IP アドレスからの要求は常に同じインスタンスへ送信されます。
最小コネクション
アクティブな接続が最も少ないインスタンスに要求が割り当てられます。

詳しくは、『ネットワークガイド』の「Load Balancing-as-a-Service (LBaaS) の設定」の項を参照してください。

2.4.3. IPv6

OpenStack Networking は、テナントネットワークで IPv6 アドレスをサポートしているので、仮想マシンに IPv6 アドレスを動的に割り当てるのが可能です。OpenStack Networking は、既存の DHCP インフラストラクチャーから IPv6 アドレスを受け取ることができるように、物理ルーターで SLAAC と統合することも可能です。

詳しくは、『ネットワークガイド』の「IPv6」の項を参照してください。