エイリアス IP 範囲の概要

Google Cloud Platform(GCP)のエイリアス IP 範囲を使用すると、仮想マシン(VM)のネットワーク インターフェースに内部 IP アドレスの範囲をエイリアスとして割り当てることができます。VM で複数のサービスを実行している場合、各サービスに異なる IP アドレスを割り当てると便利です。エイリアス IP 範囲は GKE ポッドでも動作します。

概要

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

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

すべてのサブネットプライマリ CIDR 範囲があります。これは、サブネットを定義する内部 IP アドレスの範囲です。各 VM インスタンスは、この範囲からプライマリ内部 IP アドレスを取得します。プライマリ範囲からエイリアス IP 範囲を割り当てることも、サブネットにセカンダリ範囲を追加して、セカンダリ範囲からエイリアス IP 範囲を割り当てることもできます。エイリアス IP 範囲を使用するうえで、セカンダリ サブネット範囲は必須ではありません。これらのセカンダリ サブネット範囲は編成のためのツールにすぎません。

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

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

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

以下の図には、基本的なプライマリおよびセカンダリ CIDR 範囲と、VM のプライマリ インターフェースの 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 または Interconnect 経由で接続されたオンプレミス ネットワークに通知できます。

セカンダリ 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 とコンテナ専用に使用されるセカンダリ CIDR 範囲 172.16.0.0/20 でサブネットを作成します。後者はコンテナをホストしている VM でエイリアス IP 範囲として構成されます。

    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 がアドバタイズされます。Cloud Router での VPN の使用方法については、動的ルーティングを使用する VPN トンネルの作成をご覧ください。

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

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

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

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

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

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

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

gcloud compute networks create vpc1 --subnet-mode custom
gcloud 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 compute instances create vm1 --zone us-central1-a --network-interface "subnet=subnet1,aliases=secondaryrange1:172.16.0.0/27;secondaryrange1:172.16.1.0/32"
gcloud compute instances create vm2 --zone us-central1-a --network-interface "subnet=subnet1,aliases=secondaryrange1:172.16.0.32/27;secondaryrange1:172.16.1.1/32"

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

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

また、自動モード VPC ネットワークで、セカンダリ範囲を持つ新しいサブネットを作成することもできます(ただし、範囲が 10.128.0.0/9 と重ならないようにします)。その後、新しいサブネットに VM インスタンスを作成し、そのサブネットの任意の範囲からエイリアス IP 範囲を割り当てることができます。

サブネットにセカンダリ範囲を追加する場合は、セカンダリ CIDR 範囲を既存のサブネットに追加するをご覧ください。

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

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

  • すべてのサブネットは手動で作成されます。
  • 1 つのプライマリ CIDR 範囲は必須です。
  • 必要に応じて、セカンダリ CIDR 範囲を作成できます。

エイリアス IP 範囲の主なプロパティ

以下のプロパティは、VM で構成されたエイリアス IP 範囲に該当します。

  • VM OS の観点から、プライマリ IP アドレスとデフォルト ゲートウェイは通常、DHCP を使用して割り当てられます。エイリアス IP アドレスは VM OS(通常は Linux または Windows)に、手動またはスクリプトを使用することで構成できます。
  • インターフェースのプライマリ IP アドレスとエイリアス IP 範囲は、同じサブネットの一部として構成された CIDR 範囲から割り当てる必要があります。次の要件に注意してください。
    • プライマリ IP アドレスは、CIDR プライマリ範囲から割り当てる必要があります。
    • エイリアス IP 範囲は、プライマリ CIDR 範囲から割り当てることも、同じサブネットのセカンダリ CIDR 範囲から割り当てることもできます。
    • VM ネットワーク インターフェースの場合、エイリアス IP は、プライマリ ネットワーク インターフェースの IP アドレスを提供する同じサブネット リソースからのものである必要があります。他のサブネット リソースからプライマリまたはセカンダリ CIDR 範囲を選択することはできません。
    • プライマリ IP アドレスは、静的プライベート IP アドレスでユーザーが構成することも、エフェメラル静的 IP アドレスでシステムによって自動的に割り当てることもできます。
    • エイリアス IP 範囲はオプションであり、自動的には追加されません。エイリアス IP 範囲は、インスタンスの作成中または変更中に構成できます。
    • エイリアス IP 範囲は、明示的な CIDR 範囲(10.128.1.0/24 など)、単一の IP アドレス(10.128.7.29 など)、またはネットマスク(/24)として構成できます。エイリアス 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 アドレスとしてサポートされません。

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

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

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

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

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

次のステップ

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