エイリアス IP 範囲の概要

Google Cloud Platform(GCP)エイリアス IP 範囲で、仮想マシン(VM)のプライマリ ネットワーク インターフェースのエイリアスとして一連の内部 IP アドレスを割り当てることができます。これは、VM 上で複数のサービスを実行し、各サービスに異なる IP アドレスを割り当てる場合に役立ちます。

概要

VM で実行しているサービスが 1 つだけの場合は、VM のプライマリ IP アドレスを使用してそのサービスを参照できます。VM で実行しているサービスが複数ある場合は、サービスごとに異なる内部 IP アドレスを割り当てることができます。これは、エイリアス IP 範囲を使用して行えます。

これらのエイリアス IP 範囲へのルーティングは自動的に行われます。手動でルートを構成する必要はありません。

エイリアス IP アドレスは、VM 上の単一のインターフェースに複数の IP アドレスを関連付ける必要がある場合に使用します。複数の VPC ネットワークに接続できるように、VM に追加のインターフェースが必要な場合は、複数のネットワーク インターフェースをご覧ください。

サブネットのプライマリおよびセカンダリ CIDR 範囲

すべてのサブネットにプライマリ CIDR 範囲があります。これは、サブネットを定義する内部 IP アドレスの範囲です。各 VM インスタンスは、この範囲からプライマリ内部 IP アドレスを取得します。また、追加のセカンダリ CIDR 範囲を使用して、サブネットを作成することもできます。

自動モードの VPC ネットワークでは、自動生成されるサブネットはプライマリ CIDR 範囲でのみ作成されます。自動モードの VPC ネットワークでセカンダリ CIDR 範囲が必要な場合、セカンダリ CIDR 範囲を設定した新しいサブネットを手動で作成する必要があります。

VM ネットワーク インターフェースに定義されたエイリアス IP 範囲

IP エイリアス設定を使用すると、独立したネットワーク インターフェースを定義せずに、VM にホストされているコンテナまたはアプリケーションを表す複数の内部 IP アドレスを構成できます。VM にエイリアス IP 範囲を割り当てる際は、サブネットのプライマリ範囲またはセカンダリ範囲のいずれかから割り当てます。

エイリアス IP 範囲の構成では、セカンダリ範囲を使用してサブネットを設定するコマンドと、エイリアス IP アドレスを VM に割り当てるコマンドを説明します。

以下の図には、基本的なプライマリおよびセカンダリ CIDR 範囲と、VM エイリアス IP 範囲が示されています。

プライマリおよびセカンダリ CIDR 範囲、および VM エイリアス IP 範囲(クリックして拡大)
プライマリおよびセカンダリ CIDR 範囲、および VM エイリアス IP 範囲(クリックして拡大)
  • プライマリ CIDR 範囲 10.1.0.0/16 はサブネットの一部として構成されています。
  • セカンダリ CIDR の範囲 10.2.0.0/20 は、サブネットの一部として構成されています。
  • VM プライマリ IP 10.1.0.2 はプライマリ CIDR 範囲 10.1.0.0/16 から割り当てられ、エイリアス IP 範囲 10.2.1.0/24 はセカンダリ CIDR 範囲 10.2.0.0/20 から VM に割り当てられています。
  • エイリアス IP 範囲のアドレスは、VM でホストされているコンテナの IP アドレスとして使用されます。

エイリアス IP 範囲の主な利点

エイリアス IP 範囲が構成されると、GCP はプライマリおよびエイリアス IP 範囲の VPC ネットワーク ルートを自動的にインストールします。コンテナのオーケストレーターで、これらのルートの VPC ネットワーク接続を指定する必要はありません。これにより、トラフィックのルーティングとコンテナの管理が簡略化されます。エイリアス IP 範囲の主な特徴で説明されているように、ゲストで構成を行う必要があります。

コンテナ IP アドレスが GCP によって割り当てられるときに、GCP の検証プロセスにより、コンテナポッド IP アドレスが VM IP アドレスと競合しないことが確認されます。

エイリアス IP アドレスが構成されている場合、トラフィックに対してなりすまし対策チェックが行われ、VM を出るトラフィックが VM IP アドレスとポッド IP アドレスをソースアドレスとして使用していることが確認されます。なりすまし対策チェックでは、VM が任意のソース IP アドレスを使用してトラフィックを送信していないかが検証されます。コンテナ ネットワーキングに静的ルートを使用すると、コンテナホスト VM 上でなりすまし対策チェックを無効にする必要があるため、IP エイリアス設定と比較して安全性が低くなります(IP 転送が有効な場合、なりすまし対策チェックは無効になります)。

エイリアス IP 範囲は、追加のルートを使用しなくても、GCP 仮想ネットワーク内でルーティングできます。IP エイリアスごとにルートを追加する必要はありません。また、ルートの割り当てを考慮する必要もありません。

エイリアス IP アドレスは、Cloud Router によって、VPN またはインターコネクト経由で接続されたオンプレミス ネットワークに通知できます。

セカンダリ CIDR 範囲からエイリアス IP 範囲を割り当てることには利点があります。プライマリ IP アドレスに使用されている範囲とは別個の範囲から割り当てることで、インフラストラクチャ(VM)をサービス(コンテナ)から分離できます。インフラストラクチャとサービスに別個のアドレス スペースを構成すると、VM のプライマリ IP アドレスに対するファイアウォール制御とは分離された状態で、VM エイリアス IP アドレスに対するファイアウォール制御をセットアップできます。たとえば、コンテナポッドに対する特定のトラフィックは許可し、VM のプライマリ IP アドレスに対する同様のトラフィックは拒否することができます。

GCP でのコンテナ アーキテクチャ

GCP でコンテナ化されたサービスを構成する必要があるというシナリオを検討してみましょう。サービスをホストし、さらに追加でコンテナをホストする VM を作成する必要があるとします。

このシナリオでは、VPN 経由で接続されたオンプレミスの場所に対して、コンテナを出入りするトラフィックをルーティングする必要があります。ただし、VPN を経由してプライマリ VM IP アドレスに到達できるようにしたくはありません。この構成を作成するには、VM プライマリ IP 範囲ではなく、VPN を介してコンテナ IP 範囲がルーティング可能になるようにする必要があります。VM の作成時に、コンテナに使用される IP アドレスプールが自動的に割り当てられるようにする必要もあります。

この構成を作成するには、以下のようにします。

  • サブネットを作成するときに、以下を設定します。
    • 1 つのプライマリ CIDR 範囲(たとえば、10.128.0.0/16
    • 1 つのセカンダリ CIDR 範囲(たとえば、172.16.0.0/16
  • インスタンス テンプレートを使用して VM を作成し、それぞれを以下に自動的に割り当てます。
    • 10.128.0.0/16 範囲にあるプライマリ IP
    • セカンダリ CIDR 172.16.0.0/16 スペースからのエイリアス範囲 /24(これにより /24 セカンダリ CIDR 範囲からの IP を VM 上の各ポッドに割り当てることができます)
  • 2 つのファイアウォール ルールを作成します。
    • オンプレミスから VPN を通過するトラフィックがサブネットのプライマリ CIDR 範囲に到達することを拒否するルール。
    • オンプレミスから VPN を通過するトラフィックがサブネットのセカンダリ CIDR 範囲に到達することを許可するルール。

例: エイリアス IP 範囲を使用したコンテナの構成

エイリアス IP 範囲を使用して、コンテナ IP アドレスをセカンダリ CIDR 範囲から割り当て、コンテナをホストしている VM 上のエイリアス IP アドレスとして構成できます。

エイリアス IP アドレスを使用したコンテナの構成(クリックして拡大)
エイリアス IP アドレスを使用したコンテナの構成(クリックして拡大)

上記の構成を作成するには、以下のようにします。

  1. VM IP アドレスの割り当て元となる CIDR 範囲 10.128.0.0/16 と、コンテナをホストしている VM でエイリアス IP 範囲として構成される、コンテナ専用に使用されるセカンダリ CIDR 範囲 172.16.0.0/20 で、サブネットを作成します。

    gcloud compute networks subnets create subnet-a \
        --network network-a \
        --range 10.128.0.0/16 \
        --secondary-range container-range=172.16.0.0/20
    
  2. 範囲 10.128.0.0/16 からのプライマリ IP と、VM のコンテナが使用するためのセカンダリ CIDR 範囲 172.16.0.0/20 にあるエイリアス IP 範囲 172.16.0.0/24 で、VM を作成します。

    gcloud compute instances create vm1 [...] \
        --network-interface subnet=subnet-a,aliases=container-range:172.16.0.0/24
    gcloud compute instances create vm2 [...] \
        --network-interface subnet=subnet-a,aliases=container-range:172.16.1.0/24
    
  3. コンテナの IP アドレスは、GCP でエイリアス IP アドレスとして構成されます。この設定では、プライマリ IP とエイリアス IP の両方に VPN トンネル経由で到達可能です。Cloud Router が構成されている場合、それにより自動的にセカンダリ サブネット範囲 172.16.0.0/20 がアドバタイズされます。VPN の使用の詳細については、VPN の作成動的ルートを使用したトンネルの作成をご覧ください。

この構成を作成するために使用するコマンドの詳細については、エイリアス IP アドレスと範囲の構成をご覧ください。

例: 単一の VM インスタンスに構成された複数のエイリアス IP 範囲

エイリアス IP 範囲を使用すると、コンテナなど、VM 内で実行されるアプリケーションの IP 割り当てを管理できます。

一部のコンテナは VM 間で移行可能で、一部のコンテナは移行できないデプロイがあるとします。移行可能なコンテナは /32 範囲を使用して設定することができ、これによって個別に移行することが容易になります。移行できないコンテナは、同時に存在するため、より広い範囲を使用して構成することができます。

このような種類のデプロイでは、VM インスタンスごとに複数のエイリアス IP 範囲が必要な場合があります。たとえば、移行できないコンテナに 1 つの /27、移行可能なコンテナに複数の /32 などです。

複数のエイリアス IP 範囲を持つ VM の構成(クリックして拡大)
複数のエイリアス IP 範囲を持つ VM の構成(クリックして拡大)

この例を構成するには、次の gcloud コマンドを使用します。

gcloud compute networks create vpc1 --mode custom
gcloud beta compute networks subnets create subnet1 --region us-central1 --network vpc1 --range 10.128.0.0/16 --secondary-range secondaryRange1=172.16.0.0/20
gcloud beta compute instances create vm1 --zone us-central1-a --network-interface "subnet=subnet1,aliases=r1:172.16.0.0/27;secondaryRange1:172.16.1.0/32"
gcloud beta compute instances create vm2 --zone us-central1-a --network-interface "subnet=subnet1,aliases=r1:172.16.0.32/27;secondaryRange1:172.16.1.1/32"

自動モード VPC ネットワークとサブネットのエイリアス IP アドレス

自動モードの VPC ネットワークでは、各リージョンにサブネットが存在します。これらの自動的に作成されたサブネットには、それぞれプライマリ CIDR 範囲が設定されますが、セカンダリ範囲は設定されません。これらのサブネットでエイリアス IP を使用するには、サブネットのプライマリ CIDR 範囲からエイリアス IP 範囲を割り当てる必要があります。また、リージョン内に新しいサブネットを作成し、同時にセカンダリ範囲を指定することもできます。

自動的に作成されたサブネットの場合:

  • セカンダリ CIDR 範囲はありません。ただし、プライマリ範囲に IP エイリアスを作成することができます。
  • 変更したり、手動で削除したりすることはできません。ただし、ネットワーク全体を自動モードからカスタムモードに変更することができます。ネットワーク モードの切り替えの詳細については、自動からカスタムへのネットワークの切り替えをご覧ください。
  • デフォルトのサブネットとみなされます。インスタンスの作成時にサブネットが指定されていない場合、対応するリージョンのデフォルトのサブネットが使用されます。

自動モードの VPC ネットワークに手動で作成されたサブネットの場合:

  • 1 つのプライマリ CIDR 範囲を設定する必要があります。また、必要に応じて 1 つのセカンダリ CIDR 範囲を設定することができます。セカンダリ CIDR 範囲には、ネットワークやゲートウェイ用に予約された IP アドレスは含まれません。これらは、プライマリ CIDR 範囲から取得されます。
  • サブネットのプライマリ CIDR 範囲とセカンダリ CIDR 範囲は、10.128.0.0/9 範囲と重複してはいけません。この範囲は GCP によって予約されています。この範囲を使用する必要がある場合、まず、仮想ネットワークのモードを自動モードからカスタムモードに切り替え、その後、RFC 1918 にあるプライベート IP スペース全体からサブネットを作成します。

ネットワークに新しいサブネットを作成する場合は、セカンダリ CIDR 範囲を持つサブネットを作成するをご覧ください。

カスタムモードのネットワークとサブネットのエイリアス IP アドレス

カスタムモードのネットワークの場合:

  • すべてのサブネットは手動で作成されます。
    • 1 つのプライマリ CIDR 範囲は必須です。
    • 必要に応じて、1 つのセカンダリ CIDR 範囲を作成できます。
  • カスタムモードのネットワークには、デフォルトのサブネットはありません。
    • カスタムモードのネットワークを削除するには、構成済みのすべてのサブネットを事前に削除しておく必要があります。

エイリアス IP 範囲の主な特徴

以下の特徴は、VM で構成されたエイリアス IP 範囲に該当します。

  • ゲスト OS の観点から、プライマリ IP アドレスとデフォルトのゲートウェイは通常 DHCP を使用して割り当てられます。エイリアス IP アドレスは、通常 Linux または Windows であるゲスト OS に、手動またはスクリプトを使用して構成できます。
  • エイリアス IP 範囲は、レガシー ネットワークではサポートされていません。
  • プライマリ VM IP アドレスは、プライマリ CIDR 範囲から構成する必要があります。
  • VM で構成されたエイリアス IP 範囲は、プライマリ CIDR 範囲またはセカンダリ CIDR 範囲のいずれからでも構成できます。エイリアス IP 範囲は、まだ使用されていないプライマリまたはセカンダリ範囲の任意のサブセットです。エイリアス IP 範囲は、GCP 仮想ネットワーク内でグローバルにルーティングできます。
  • サブネットごとに最大 5 つのセカンダリ IP 範囲を割り当てることができます。
  • インターフェースのプライマリ IP アドレスとエイリアス IP 範囲は、同じサブネットの一部として構成された CIDR 範囲から割り当てる必要があります。次の要件に注意してください。
    • プライマリ IP アドレスは、CIDR プライマリ範囲から割り当てる必要があります。
    • エイリアス IP 範囲は、同じプライマリ CIDR 範囲、または同じサブネットのセカンダリ CIDR 範囲のいずれからでも割り当てることができます。
    • プライマリ IP アドレスは、静的プライベート IP アドレスでユーザーが構成することも、エフェメラル静的 IP アドレスでシステムによって自動的に割り当てることもできます。
    • エイリアス IP 範囲はオプションであり、自動的には追加されません。エイリアス IP 範囲は、インスタンスの作成時、またはインスタンス テンプレートで、手動で構成する必要があります。
    • エイリアス IP 範囲は、明示的な CIDR 範囲(10.128.1.0/24 など)、単一の IP アドレス(10.128.7.29 など)、またはネットマスク(/24)として構成できます。エイリアス IP 範囲は、完全に指定することも、ネットマスクを指定することで自動的に割り当てることもできます。
    • 単一の VM では、エイリアス IP 範囲を割り当てるために使用されるセカンダリ CIDR 範囲は、プライマリ VM IP アドレスと同じサブネットの一部である必要があります。
    • VPC ネットワーク内のすべてのサブネットは単一のデフォルト ゲートウェイを共有しているため、インターフェース内のすべてのエイリアス IP アドレスは、プライマリ IP アドレスと同じデフォルト ゲートウェイを共有します。
インターフェース内のエイリアス IP はプライマリ IP アドレスと同じデフォルト ゲートウェイを共有(クリックして拡大)
インターフェース内のエイリアス IP はプライマリ IP アドレスと同じデフォルト ゲートウェイを共有(クリックして拡大)

エイリアス IP アドレスを使用する DNS

GCP は、すべての VM インスタンスのプライマリ インターフェースのプライマリ IP で、内部 DNS を自動的に設定します。これにより、インスタンスのホスト名がプライマリ インターフェースのプライマリ IP アドレスに関連付けられます。ただし、そのホスト名に対する DNS ルックアップは、プライマリ インターフェースを含むネットワークでのみ機能します。

GCP は他の IP アドレスとホスト名を自動的には関連付けません。GCP では、プライマリ インターフェースのエイリアス IP アドレスをホスト名に関連付けず、セカンダリ インターフェースの IP アドレスもホスト名に関連付けません。

他の IP アドレスを関連付けるには、手動で DNS を構成します。

ファイアウォール

ファイアウォール ソースタグはエイリアス IP アドレスではサポートされません。ファイアウォール ルールでソースタグを構成する場合、ソースタグは VM プライマリ IP アドレスと一致しますが、エイリアス IP アドレスとは一致しません。IP エイリアス アドレスからの入力トラフィックを許可または拒否するには、ソース範囲を使用します。

静的ルート

静的ルートでは、ネクストホップ IP アドレスは仮想マシン インスタンスのプライマリ IP アドレスである必要があります。エイリアス IP アドレスのエイリアス IP は、ネクストホップ IP アドレスとしてサポートされません。

VPC ネットワーク ピアリング

VPC ネットワーク ピアリングを使用すると、2 つのネットワーク内の VM が内部のプライベート IP アドレスを使用して通信できるように、2 つの VPC ネットワークをピアリングできます。

サブネットのプライマリ IP 範囲とセカンダリ IP 範囲の両方に、ピアリングされたネットワーク内の VM インスタンスで到達できます。

ピアリングされたネットワーク間でサブネットの重複を確認することで、プライマリ範囲とセカンダリ範囲がピアリングされた範囲と重複しないようにします。

ネットワーク ピアリングでの IP エイリアス設定(クリックして拡大)
ネットワーク ピアリングでの IP エイリアス設定(クリックして拡大)

次のステップ

このページは役立ちましたか?評価をお願いいたします。