エイリアス IP 範囲の構成

このドキュメントでは、Google Cloud Platform Console と gcloud コマンドライン ツールを使用して、エイリアス IP アドレスとエイリアス IP 範囲を設定する方法について説明します。これらのコマンドを実行する前に、エイリアス IP の概要ページをご確認ください。

制限事項

サブネット

  • サブネットごとに設定可能なセカンダリ IP 範囲は最大 5 つです。
  • セカンダリ範囲の追加と削除を同時に行うことはできません。追加と削除は別々のステップとして行う必要があります。
  • セカンダリ範囲では CIDR 展開はサポートされていません。

VM インスタンス

  • エイリアス IP 範囲は、すべての VM ネットワーク インターフェースでサポートされています。プライマリ ネットワーク インターフェースではエイリアス IP 範囲に対してルーティングが自動的に構成されますが、セカンダリ インターフェースでは構成されません。ネットワーク インターフェースが複数ある場合は、追加のインターフェースのポリシー ルーティングを構成する必要があります。
  • VM インスタンスの仮想インターフェースには、最大 10 個のエイリアス IP 範囲を割り当てることができます。
  • エイリアス IP 範囲は追加または削除できますが、更新することはできません。
  • エイリアス IP 範囲をある VM から削除して別の VM に割り当てると、転送が完了するまでに最長で 1 分かかることがあります。
  • ファイアウォール ソースタグはエイリアス IP アドレスではサポートされません。つまり、ファイアウォール ルールでソースタグを構成した場合、ソースタグは VM のプライマリ IP アドレスと一致しますが、エイリアス IP アドレスとは一致しません。ソース範囲は、エイリアス IP アドレスからの上りトラフィックを許可または拒否するために使用します。
  • 内部 DNS は VM 名をプライマリ IP に解決します。エイリアス IP に追加される名前は自動的には構成されませんが、手動で追加できます。

VPC ネットワーク

  • 1 つの VPC ネットワークには、すべての VM で最大 7,000 個のエイリアス IP 範囲を作成できます。
  • 多数のエイリアス IP 範囲を同時に追加または削除するには、長い時間がかかる可能性があります。たとえば、7,000 個のエイリアス IP 範囲の追加または削除には、最長で 10 分かかることがあります。
  • セカンダリ サブネット範囲が存在する場合、自動モード VPC ネットワークは削除できません。
  • 静的ルートでは、VM のネクストホップ IP アドレスはプライマリ IP アドレスとする必要があります。エイリアス IP アドレスはネクストホップ IP アドレスとしてサポートされません。
  • IPv6 アドレスはサポートされません。
  • エイリアス IP 範囲は VPC ネットワークでのみサポートされ、レガシー ネットワークではサポートされません。ネットワークの種類を確認するには、ネットワークを一覧表示します。VPC ネットワークには custom モードまたは auto モードがあり、レガシー ネットワークには legacy モードがあります。

サブネット コマンド

VM エイリアス IP 範囲は、VM が属するサブネットの所有範囲から割り当てる必要があります。すべてのサブネットにプライマリ範囲があり、それはサブネットを定義する内部 IP アドレスの標準範囲です。また、サブネットに内部 IP アドレスのセカンダリ IP 範囲をいくつか設定することもできます。エイリアス IP 範囲を割り当てる際はサブネットのプライマリ範囲とセカンダリ範囲のいずれかから割り当てます。

各セカンダリ範囲には、サブネットで一意の名前を付ける必要があります。エイリアス IP 範囲を VM に割り当てる場合、GCP はセカンダリ範囲の名前により、どのサブネット範囲からエイリアス IP を割り当てるかを把握します。

すべての範囲(プライマリとセカンダリの両方)は、VPC ネットワーク内のすべてのサブネットと、VPC ネットワーク ピアリング、VPN、または Interconnect を介して接続されているすべてのネットワークにおいて一意である必要があります。

このセクションでは、セカンダリ範囲を持つサブネットを作成する方法、既存のサブネットにセカンダリ範囲を追加する方法、またはサブネットからセカンダリ範囲を削除する方法を説明します。使用する範囲をサブネットに設定したら、VM インスタンス コマンドを参照して、範囲を VM に割り当てる方法を確認します。

セカンダリ CIDR 範囲を持つサブネットを作成する

このコマンドは、VPC ネットワークがすでに存在することを前提としています。そうでない場合は作成してください。

VM のプライマリ インターフェース用にサブネットを作成しているか、いずれかのセカンダリ インターフェース用にサブネットを作成しているかに関係なく、このコマンドは同じです。

エイリアス IP の割り当てにセカンダリ範囲を使用すると、VM でホストされているサービスの IP スペースを区切ることができ、VM 上で実行されているサービスにのみアクセスを許可し、VM のプライマリ IP アドレスへのアクセスをブロックするファイアウォール ルールを簡単に作成できます。

Console

  1. Google Cloud Platform Console で [VPC ネットワーク] ページに移動します。
    [VPC ネットワーク] ページに移動
  2. 既存のネットワークの名前をクリックします。
  3. [サブネットを追加] をクリックします。
  4. 新しいサブネットの名前を入力します。
  5. リージョンを指定します。
  6. IP アドレス範囲を CIDR 表記で入力します。(例: 10.65.61.0/24)
  7. [セカンダリ IP 範囲を作成する] をクリックします。
  8. サブネット範囲名を入力します。
  9. セカンダリ IP 範囲を CIDR 表記で入力します。(例: 10.9.0.0/24)
  10. セカンダリ IP 範囲を追加するには、追加する範囲ごとに [IP の範囲を追加] をクリックし、名前と範囲を入力します。
  11. [追加] をクリックします。

gcloud

gcloud compute networks subnets create s1 \
    --network [NETWORK_NAME] \
    --region [REGION] \
    --range 10.65.61.0/24 \
    --secondary-range [RANGE_NAME]=[RANGE_CIDR][,[RANGE_NAME]=[RANGE_CIDR]...]

ここで

  • [NETWORK_NAME] は、サブネットを作成するネットワークの名前です。
  • [REGION] は、サブネットを作成するリージョンです。
  • [RANGE_NAME]=[RANGE_CIDR] は、エイリアス IP 範囲の設定元となるセカンダリ範囲の名前と、エイリアス IP 範囲です。例: range1=10.9.0.0/24

完全な構文については、gcloud のドキュメントをご覧ください。

セカンダリ CIDR 範囲を既存のサブネットに追加する

この手順では、使用するサブネットをすでに所有し、セカンダリ範囲を追加する必要があることを前提とします。

VM のプライマリ インターフェース用にサブネットを作成しているか、いずれかのセカンダリ インターフェース用にサブネットを作成しているかに関係なく、このコマンドは同じです。

エイリアス IP の割り当てにセカンダリ範囲を使用すると、VM のプライマリ IP アドレスではなく、VM 上で実行されているサービスへのアクセスを許可するファイアウォール ルールを簡単に作成できます。

Console

gcloud コマンドを使用します。

gcloud

gcloud compute networks subnets update [SUBNET_NAME] \
    --region [REGION] \
    --add-secondary-ranges [RANGE_NAME]=[RANGE_CIDR],[[RANGE_NAME]=[RANGE_CIDR],...]

ここで

  • [SUBNET_NAME] は、セカンダリ範囲を追加するサブネットの名前です。
  • [REGION] は、サブネットを作成するリージョンです。
  • [RANGE_NAME]=[RANGE_CIDR] は、エイリアス IP 範囲の設定元となるセカンダリ範囲の名前と、エイリアス IP 範囲です。例: range1=10.9.0.0/24

完全な構文については、gcloud のドキュメントをご覧ください。

サブネットからセカンダリ CIDR 範囲を削除する

Console

gcloud コマンドを使用します。

gcloud

gcloud compute networks subnets update [SUBNET_NAME] \
    --region [REGION] \
    --remove-secondary-ranges [RANGE_NAME],[[RANGE_NAME],...]

ここで

  • [SUBNET_NAME] は、セカンダリ範囲を削除するサブネットの名前です。
  • [REGION] は、サブネットを作成するリージョンです。
  • [RANGE_NAME] は、エイリアス IP 範囲の設定元となるセカンダリ範囲の名前と、エイリアス IP 範囲です。例: range1=10.9.0.0/24

完全な構文については、gcloud のドキュメントをご覧ください。

1 つのインターフェースを持つ VM 用の VM インスタンス コマンド

VM インスタンス コマンドは、エイリアス IP 範囲を持つインスタンスを作成する方法、既存の VM インスタンスにエイリアス IP 範囲を追加する方法、または既存の VM インスタンスから範囲を削除する方法を示します。

プライマリ CIDR 範囲にエイリアス IP 範囲がある VM の作成

サブネットのプライマリ範囲からエイリアス IP 範囲を割り当てる場合は、この手順を使用します。VPC ネットワーク上の他のリソースによってすでに一部でも使用されている範囲は選択できません。

インスタンスのプライマリ インターフェースとエイリアス IP アドレスを同じ範囲にする場合は、この手順を使用します。

Console

  1. Google Cloud Platform Console の [VM インスタンス] ページに移動します。
    [VM インスタンス] ページに移動
  2. [インスタンスを作成] をクリックします。
  3. 新しいインスタンスの名前を入力します。
  4. ゾーンを指定します。
  5. [管理、セキュリティ、ディスク、ネットワーク、単一テナンシー] をクリックします。
  6. [ネットワーキング] タブをクリックします。
  7. [ネットワーク インターフェース] セクションのプライマリ インターフェースの横にある編集(鉛筆アイコン)ボタンをクリックします。
  8. [エイリアス IP 範囲を表示] をクリックします。
  9. [サブネット範囲] は [プライマリ] のままにします。
  10. エイリアス IP 範囲を CIDR 表記で入力します。この範囲は、プライマリ範囲の未使用の部分範囲である必要があります。
  11. [作成] をクリックします。

gcloud

gcloud compute instances create vm1 \
    --zone [ZONE] \
    --network-interface "subnet=[SUBNET_NAME],aliases=[RANGE_CIDR][;[RANGE_CIDR];...]"

ここで、

  • [ZONE] は、インスタンスを含むゾーンです。
  • [SUBNET_NAME] は、セカンダリ範囲を削除するサブネットの名前です。
  • [RANGE_CIDR] は、インターフェースに割り当てるプライマリ サブネットからの IP 範囲です。範囲は、特定の範囲(192.168.100.0/24)、単一の IP アドレス(192.168.100.1)、CIDR 形式のネットマスク(/24)にすることができます。IP 範囲がネットマスクのみで指定されている場合、IP アロケータは指定されたネットマスクで使用可能な範囲を選択して、それをネットワーク インターフェースに割り当てます。複数の範囲を指定するには、範囲をセミコロン(;)で区切ります。

完全な構文については、gcloud のドキュメントをご覧ください。

セカンダリ CIDR 範囲にエイリアス IP 範囲がある VM を作成する

サブネットのセカンダリ範囲から取得したエイリアス IP 範囲を割り当てる場合は、この手順を使用します。エイリアス IP 範囲をサブネットのプライマリ範囲とは別にすることで、VM のプライマリ IP アドレスではなく、VM 上で実行されているサービスへのアクセスを許可するファイアウォール ルールを簡単に作成できます。

Console

  1. Google Cloud Platform Console の [VM インスタンス] ページに移動します。
    [VM インスタンス] ページに移動
  2. [インスタンスを作成] をクリックします。
  3. 新しいインスタンスの名前を入力します。
  4. ゾーンを指定します。
  5. [管理、セキュリティ、ディスク、ネットワーク、単一テナンシー] をクリックします。
  6. [ネットワーキング] タブをクリックします。
  7. [ネットワーク インターフェース] セクションのプライマリ インターフェースの横にある編集(鉛筆アイコン)ボタンをクリックします。
  8. [エイリアス IP 範囲を表示] をクリックします。
  9. セカンダリ範囲があるサブネットワークを選択します。
  10. [サブネット範囲] で、使用するセカンダリ IP 範囲を選択します。
  11. エイリアス IP 範囲を CIDR 表記で入力します。この範囲は、セカンダリ IP 範囲の未使用範囲である必要があります。
  12. [作成] をクリックします。

gcloud

gcloud compute instances create vm3 \
    --zone [ZONE] \
    --network-interface subnet=[SUBNET_NAME],aliases=[RANGE_NAME]:[RANGE_CIDR]
 

ここで、

  • [ZONE] は、インスタンスを含むゾーンです。
  • [SUBNET_NAME] は、インスタンスを含むサブネットの名前です。
  • [RANGE_NAME] は、エイリアス IP 範囲の設定元となるサブネット セカンダリ範囲の名前です。
  • [RANGE_CIDR] は、インターフェースに割り当てる IP 範囲です。範囲は、特定の範囲(192.168.100.0/24)、単一の IP アドレス(192.168.100.1)、CIDR 形式のネットマスク(/24)にすることができます。IP 範囲がネットマスクのみで指定されている場合、IP アロケータは指定されたネットマスクで使用可能な範囲を選択して、それをネットワーク インターフェースに割り当てます。

完全な構文については、gcloud のドキュメントをご覧ください。

既存のインスタンスにエイリアス IP 範囲を追加する

実行中のインスタンスにエイリアス IP 範囲を追加できます。

Console

  1. Google Cloud Platform Console の [VM インスタンス] ページに移動します。
    [VM インスタンス] ページに移動
  2. 既存のインスタンスの名前をクリックします。
  3. [編集] をクリックします。
  4. ネットワーク インターフェース [nic0](または変更するネットワーク インターフェース)をクリックします。
  5. [エイリアス IP 範囲を表示] をクリックします。
  6. [Add Alias IP range] をクリックします。
  7. サブネット CIDR 範囲を指定します。
  8. エイリアス IP 範囲を入力します。
  9. [完了] をクリックします。
  10. [保存] をクリックします。

gcloud

gcloud compute instances network-interfaces update [INSTANCE_NAME] \
    --zone [ZONE] \
    [--network-interface [NETWORK_INTERFACE]; default="nic0"]
    --aliases "[RANGE_NAME]:[RANGE_CIDR];[[RANGE_NAME]:[RANGE_CIDR],...]"
  • [ZONE] は、インスタンスを含むゾーンです。
  • [RANGE_NAME] は、エイリアス IP 範囲の設定元となるサブネット セカンダリ範囲の名前です。サブネットのプライマリ範囲から範囲を割り当てる場合は、この値を省略します。
  • [RANGE_CIDR] は、インターフェースに割り当てる IP 範囲です。範囲は、特定の範囲(192.168.100.0/24)、単一の IP アドレス(192.168.100.1)、CIDR 形式のネットマスク(/24)にすることができます。IP 範囲がネットマスクのみで指定されている場合、IP アロケータは指定されたネットマスクで使用可能な範囲を選択して、それをネットワーク インターフェースに割り当てます。

完全な構文については、gcloud のドキュメントをご覧ください。

既存のインスタンスのエイリアス IP 範囲を変更する

既存のインスタンスにエイリアス IP 範囲を追加したり、範囲を削除したりすることができます。

  • 範囲を追加するには、コマンドを実行し、既存のエイリアス IP 範囲と新しいエイリアス IP 範囲をすべて指定します。ペアはセミコロンで区切ります。例: --aliases "[CURRENT_RANGE_NAME]:[CURRRENT_RANGE_CIDR];[NEW_RANGE_NAME]:[NEW_RANGE_CIDR]"

  • 範囲を削除するには、コマンドを実行し、維持するエイリアス IP 範囲のみを指定します。セカンダリ範囲を維持する場合、セカンダリ範囲の名前を指定する必要があります。CIDR 範囲は、特定の範囲(192.168.100.0/24)または単一の IP アドレス(192.168.100.1)にすることができます。例: --aliases "[RANGE_NAME]:[RANGE_CIDR];[RANGE_CIDR]"

  • すべての範囲を削除するには、コマンドを実行して --alias フラグを指定し、さらに引用符を使用して空白を指定します。例: --aliases ""

  • 同一の gcloud コマンドで範囲の追加と削除を行うことはできません。gcloud コマンドライン インターフェースで範囲を削除して他の範囲を追加するには、まずコマンドを実行して不要な範囲を削除してから、再度コマンドを実行して必要な範囲を追加します。

Console

  1. Google Cloud Platform Console の [VM インスタンス] ページに移動します。
    [VM インスタンス] ページに移動
  2. 既存のインスタンスの名前をクリックします。
  3. [編集] をクリックします。
  4. ネットワーク インターフェース [nic0](または変更するネットワーク インターフェース)をクリックします。
  5. [エイリアス IP 範囲を表示] をクリックします。
  6. エイリアス IP 範囲を追加するには、[Add Alias IP range] をクリックします。
  7. エイリアス IP 範囲を削除するには、エイリアス IP 範囲の横にある [X] をクリックします。
  8. [完了] をクリックします。
  9. [保存] をクリックします。

gcloud

gcloud compute instances network-interfaces update [INSTANCE_NAME] \
    --zone [ZONE] \
    --aliases "[RANGES_TO_RETAIN];[[NEW_RANGE_NAME]:[NEW_RANGE_CIDR];...]"
  • [ZONE] は、インスタンスを含むゾーンです。
  • [RANGES_TO_RETAIN] は保存する既存の範囲で、[CURRENT_RANGE_NAME]:[CURRRENT_RANGE_CIDR] の形式をとります。範囲がまったくないインスタンスに範囲を追加する場合、値は空白にします。インスタンスからすべての範囲を削除する場合、--alias フィールドは空白にします。
  • [NEW_RANGE_NAME] は、新しいエイリアス IP 範囲の設定元となるサブネット セカンダリ範囲の名前です。サブネットのプライマリ範囲から範囲を割り当てる場合は、この値を省略します。
  • [NEW_RANGE_CIDR] は、インターフェースに割り当てる IP 範囲です。範囲は、特定の範囲(192.168.100.0/24)、単一の IP アドレス(192.168.100.1)、CIDR 形式のネットマスク(/24)にすることができます。IP 範囲がネットマスクのみで指定されている場合、IP アロケータは指定されたネットマスクで使用可能な範囲を選択して、それをネットワーク インターフェースに割り当てます。

完全な構文については、gcloud のドキュメントをご覧ください。

複数のインターフェースを持つ VM 用の VM インスタンス コマンド

複数のインターフェースとエイリアス IP アドレスを持つ VM を作成する

この例では、2 つのネットワーク(それぞれ 1 つのサブネットを持つ)と、両方のネットワークにインターフェースを持つ 1 つの VM を作成します。すでに 2 つの VPC ネットワークがある場合は、「VM インスタンスを作成」ステップまでスキップできます。

Console

最初のネットワークとサブネットを作成します。

  1. Google Cloud Platform Console で [VPC ネットワーク] ページに移動します。
    [VPC ネットワーク] ページに移動
  2. [VPC ネットワークを作成] をクリックします。
  3. [名前] に「my-network1」と入力します。
  4. [サブネット作成モード] を [Custom] に設定し、サブネットの [名前] に「my-subnet1」を指定します。
  5. [リージョン] を指定します。
  6. [IP アドレス範囲] を「172.16.1.0/24」に設定します。
  7. [セカンダリ IP 範囲を作成する] をクリックします。
  8. [サブネット範囲の名前] を「range1」に設定します。
  9. [セカンダリ IP の範囲] を「10.1.0.0/16」に設定します。
  10. [完了] をクリックします。
  11. [作成] をクリックします。

2 番目のネットワークとサブネットを作成します。

  1. Google Cloud Platform Console で [VPC ネットワーク] ページに移動します。
    [VPC ネットワーク] ページに移動
  2. [VPC ネットワークを作成] をクリックします。
  3. [名前] に「my-network2」と入力します。
  4. [サブネット作成モード] を [Custom] に設定し、サブネットの [名前] に「my-subnet2」を指定します。
  5. [リージョン] には、最初のネットワークとサブネットに指定したのと同じものを指定します。
  6. [IP アドレス範囲] を「172.16.2.0/24」に設定します。
  7. [セカンダリ IP 範囲を作成する] をクリックします。
  8. [サブネット範囲の名前] を「range2」に設定します。
  9. [セカンダリ IP の範囲] を「10.2.0.0/16」に設定します。
  10. [完了] をクリックします。
  11. [作成] をクリックします。

両方のネットワークにインターフェースを持つ VM を作成します。

  1. Google Cloud Platform Console の [VM インスタンス] ページに移動します。
    [VM インスタンス] ページに移動
  2. [インスタンスを作成] をクリックします。
  3. ゾーンを、サブネットを作成したリージョンに設定します。
  4. [管理、セキュリティ、ディスク、ネットワーク、単一テナンシー] をクリックします。
  5. [ネットワーキング] をクリックします。
  6. 最初のネットワーク インターフェースをクリックします。
  7. [ネットワーク] を「my-network1」に設定します。
  8. [サブネットワーク] を「my-subnet1」に設定します。
  9. [エイリアス IP 範囲を表示] をクリックします。
  10. [Add Alias IP range] をクリックします。
  11. [サブネット範囲] を [Primary] に設定します。
  12. [エイリアス IP 範囲] を「/32」に設定します。
  13. [IP の範囲を追加] をクリックします。
  14. [サブネット範囲] を「range1」に設定します。
  15. [エイリアス IP 範囲] を「/24」に設定します。
  16. [完了] をクリックします。
  17. [ネットワーク インターフェースを追加] をクリックします。
  18. my-network2 を選択します。
  19. [サブネットワーク] を「my-subnet2」に設定します。
  20. [エイリアス IP 範囲を表示] をクリックします。
  21. [Add Alias IP range] をクリックします。
  22. [サブネット範囲] を [Primary] に設定します。
  23. [エイリアス IP 範囲] を「/32」に設定します。
  24. [IP の範囲を追加] をクリックします。
  25. [サブネット範囲] を「range2」に設定します。
  26. [エイリアス IP 範囲] に「/24」と入力します。
  27. [完了] をクリックします。
  28. [作成] をクリックします。

gcloud

  1. 最初のネットワークを作成します。

    gcloud compute networks create my-network1 --subnet-mode CUSTOM
    
  2. サブネットを追加します。

    gcloud compute networks subnets create my-subnet1 \
        --network my-network1 \
        --range 172.16.1.0/24 \
        --secondary-range range1=10.1.0.0/16
    
  3. 2 番目のネットワークを作成します。

    gcloud compute networks create my-network2 --subnet-mode CUSTOM
    
  4. サブネットを追加します。

    gcloud compute networks subnets create my-subnet2 \
        --network my-network2 \
        --range 172.16.2.0/24 \
        --secondary-range range2=10.2.0.0/16
    
  5. 両方のネットワークにインターフェースを持つ VM を作成します。リストにある最初のネットワーク インターフェース、つまり my-subnet1 のインターフェースがプライマリ インターフェースです。

    gcloud compute instances create multi-nic-alias-vm \
        --machine-type f1-micro \
        --network-interface "subnet=my-subnet1,aliases=/32;range1:/24" \
        --network-interface "subnet=my-subnet2,aliases=/32;range2:/24"
    
  6. 表示コマンドを使用して、インターフェースとそのアドレスを確認します。

    gcloud compute instances describe multi-nic-alias-vm
    
    ...
    networkInterfaces:
    - ...
      aliasIpRanges:
      - ipCidrRange: 172.16.1.2/32
      - ipCidrRange: 10.1.0.0/24
        subnetworkRangeName: range1
      name: nic0
      network: .../networks/my-network1
      networkIP: 172.16.1.3
      subnetwork: .../subnetworks/my-subnet1
      ...
    - ...
      aliasIpRanges:
      - ipCidrRange: 172.16.2.2/32
      - ipCidrRange: 10.2.0.0/24
        subnetworkRangeName: range2
      name: nic1
      network: .../networks/my-network2
      networkIP: 172.16.2.3
      subnetwork: .../subnetworks/my-subnet2
      

複数のインターフェースを持つ VM にエイリアス IP アドレスを追加する

Console

  1. Google Cloud Platform Console の [VM インスタンス] ページに移動します。
    [VM インスタンス] ページに移動
  2. 既存のインスタンスの名前をクリックします。
  3. [編集] をクリックします。
  4. ネットワーク インターフェース [nic0](またはエイリアス IP 範囲を追加するネットワーク インターフェース)をクリックします。
  5. [エイリアス IP 範囲を表示] をクリックします。
  6. [Add Alias IP range] をクリックします。
  7. [サブネット範囲] を指定します。
  8. エイリアス IP 範囲を入力します。
  9. [完了] をクリックします。
  10. [保存] をクリックします。

gcloud

対象がプライマリ インターフェースの場合:

gcloud compute instances network-interfaces update multi-nic-alias-vm \
    --aliases "range1:10.1.0.0/24;172.16.1.2/32;/32"

対象がセカンダリ インターフェースの場合:

gcloud compute instances network-interfaces update multi-nic-alias-vm \
    --aliases "range2:10.2.0.0/24;172.16.2.2/32;/32" \
    --network-interface nic1

複数のインターフェースを持つ VM からエイリアス IP 範囲を削除する

Console

  1. Google Cloud Platform Console の [VM インスタンス] ページに移動します。
    [VM インスタンス] ページに移動
  2. 既存のインスタンスの名前をクリックします。
  3. [編集] をクリックします。
  4. ネットワーク インターフェース [nic0](またはエイリアス IP 範囲を追加するネットワーク インターフェース)をクリックします。
  5. [エイリアス IP 範囲を表示] をクリックします。
  6. 削除するエイリアス IP 範囲の横にある [X] をクリックします。
  7. [完了] をクリックします。
  8. [保存] をクリックします。

gcloud

プライマリ インターフェースからの場合:

gcloud compute instances network-interfaces update multi-nic-alias-vm \
    --aliases ""

セカンダリ インターフェースからの場合:

gcloud compute instances network-interfaces update multi-nic-alias-vm \
    --aliases "" \
    --network-interface nic1

トラブルシューティング

エイリアス IP のある VM インスタンスを作成できない

  1. ネットワークが VPC ネットワークであることを確認します。エイリアス IP は、レガシー ネットワークではサポートされません。

    gcloud compute networks list --filter="name=[NETWORK_NAME]"
    

    ネットワーク MODE は、「auto」か「custom」である必要があります。

  2. サブネット範囲の名前が指定されている場合、次の点を確認します。

    gcloud compute networks subnets describe [SUBNET_NAME] --region=[REGION]
    
    • サブネットのセカンダリ範囲に対応する名前があること
    • リクエストしたエイリアス IP 範囲がこのセカンダリ範囲内にあるか、プライマリ範囲よりも小さい(ネットマスクを使用している場合)こと
  3. サブネット範囲の名前が指定されていない場合、リクエストしたエイリアス IP 範囲が、プライマリ サブネット範囲内にあるか、プライマリ範囲よりも小さいこと(ネットマスクを使用している場合)を確認します。

エイリアス IP に接続できない

  1. ファイアウォール ルールを確認します。

    1. すべてのファイアウォール ルールを一覧表示します。

      gcloud compute firewall-rules list --format=json
      
    2. エイリアス IP との間のトラフィックが許可されていることを確認します。

    3. 必要に応じて、エイリアス IP への ping を許可するファイアウォール ルールを追加します。

      gcloud compute firewall-rules create [FIREWALL_NAME1] \
        --network [NETWORK_NAME] --priority 0 --source-ranges [ALIAS_IP] \
        --allow icmp
      
      gcloud compute firewall-rules create [FIREWALL_NAME2] \
        --network [NETWORK_NAME] --priority 0 --direction out \
        --destination-ranges [ALIAS_IP] --allow icmp
      
  2. VM が IP エイリアス範囲をローカルとして認識していることを確認します。Debian などの Linux ディストリビューションでは、これは通常次の手順で行うことができます。

    1. インスタンスに接続し、次のコマンドを実行します。

      ip route show table local
      

      出力に次の内容が含まれているはずです。

      local [ALIAS_IP_RANGE] dev eth0  proto 66  scope host
      
    2. ローカルルートが存在しない場合は、次のコマンドを使用して構成します。

      ip route add to local [ALIAS_IP_RANGE] dev eth0 proto 66
      

セカンダリ IP 範囲が一覧表示されない

セカンダリ IP 範囲は通常のサブネットとして一覧表示されません。サブネットのセカンダリ IP 範囲が作成されたことを表示するには、gcloud compute networks subnets describe コマンドを使用します。

  1. サブネットを作成します。

    gcloud compute networks subnets create my-subnet \
        --region us-central1 \
        --network my-network \
        --range 10.9.0.0/16 \
        --secondary-range secondaryrange1=172.16.0.0/12
    
    Created [https://www.googleapis.com/compute/v1/projects/google.com:my-project/regions/us-central1/subnetworks/my-subnet].
    NAME       REGION       NETWORK     RANGE
    my-subnet  us-central1  my-network  10.9.0.0/16
    
  2. サブネットを一覧表示します。

    gcloud compute networks subnets list
    
    NAME       REGION       NETWORK     RANGE
    my-subnet  us-central1  my-network  10.9.0.0/16
    
  3. サブネットの詳細を取得して、セカンダリ範囲を確認します。

    gcloud compute networks subnets describe my-subnet --region us-central1
    
    ...
    ipCidrRange: 10.9.0.0/16
    ...
    secondaryIpRanges:
    - ipCidrRange: 172.16.0.0/12
      rangeName: secondaryrange1
    ...
    

指定したサブネット セカンダリ範囲が存在しない

VM を作成するときに、セカンダリ範囲が存在しないというエラーが表示された場合は、次の点を確認します。

  • サブネットに、指定した名前のセカンダリ範囲があること
  • セカンダリ範囲があるサブネット内に VM を作成していること

次のコマンドを実行すると、このエラーが表示されます。

  1. セカンダリ範囲のサブネットを作成します。

    gcloud compute networks subnets create my-subnet \
        --region us-central1 \
        --network my-network \
        --range 10.9.0.0/16 \
        --secondary-range secondaryrange1=172.16.0.0/12
    
    Created [https://www.googleapis.com/compute/v1/projects/google.com:my-project/regions/us-central1/subnetworks/my-subnet].
    NAME       REGION       NETWORK     RANGE
    my-subnet  us-central1  my-network  10.9.0.0/16
    
  2. 新しく作成したサブネット内でなく、デフォルト ネットワークなどの別のネットワークにインスタンスを作成します。

    gcloud compute instances create instance-1 \
        --zone us-central1-a \
        --network default
    
    Created [https://www.googleapis.com/compute/v1/projects/google.com:my-project/zones/us-central1-a/instances/instance-1].
    NAME        ZONE           MACHINE_TYPE   PREEMPTIBLE  INTERNAL_IP  EXTERNAL_IP    STATUS
    instance-1  us-central1-a  n1-standard-1               10.128.0.2     47.82.96.9  RUNNING
    
  3. 手順 1 で作成したサブネットからエイリアス IP 範囲を割り当てます。インスタンスとは異なるサブネットにセカンダリ範囲があるため、コマンドは失敗します。

    gcloud compute instances network-interfaces update instance-1 \
        --zone us-central1-a \
        --aliases secondaryrange1:172.16.0.10/32
    
    ERROR: (gcloud.compute.instances.network-interfaces.update) HTTPError 400: Invalid value for field 'resource.aliasIpRanges[0].subnetworkRangeName': 'secondaryrange'. The specified subnetwork secondary range does not exist.
    
  4. 手順 1 で作成したサブネット内にインターフェースがある、別のインスタンスを作成します。

    gcloud compute instances create instance-2 \
        --zone us-central1-a \
        --network-interface subnet=my-subnet
    
    Created [https://www.googleapis.com/compute/v1/projects/google.com:my-project/zones/us-central1-a/instances/instance-2].
    NAME        ZONE           MACHINE_TYPE   PREEMPTIBLE  INTERNAL_IP  EXTERNAL_IP    STATUS
    instance-2  us-central1-a  n1-standard-1               10.9.0.2     38.74.204.89  RUNNING
    
  5. エイリアス IP 範囲をインターフェースに追加します。今回は、インターフェースとセカンダリ範囲が同じサブネット内にあるため、コマンドは成功します。

    gcloud compute instances network-interfaces update instance-2 \
        --zone us-central1-a \
        --aliases secondaryrange1:172.16.0.10/32
    
    Updating network interface [nic0] of instance [instance-2]...done.
    

1 つのリクエストでセカンダリ IP 範囲の追加と削除を同時にできない

現在のところ、1 つのコマンドによるサブネットワーク セカンダリ IP 範囲の追加と削除はサポートされていません。セカンダリ範囲の追加と削除を行う gcloud コマンドを実行すると、変更されていない既存の範囲が保持されます。

範囲の追加と削除を行うには、2 つのコマンドを別々に実行します。

gcloud compute networks subnets update [SUBNET_NAME] \
    --add-secondary-ranges [RANGE_NAME]=[RANGE_CIDR],[[RANGE_NAME]=[RANGE_CIDR],...]
gcloud compute networks subnets update  [SUBNET_NAME] \
    --remove-secondary-ranges [RANGE_NAME],[[RANGE_NAME],...]

このコマンドの詳細を参照するには、gcloud compute networks subnets update --help を使用します。

エイリアス IP 範囲の追加と削除を同時にできない

現在のところ、1 つのリクエストによる VM エイリアス IP 範囲の追加と削除はサポートされていません。

エイリアス IP 範囲を更新する gcloud コマンドでは、既存の範囲は保持されません。そのため、範囲を省略すると、その範囲を削除するリクエストとして扱われます。

たとえば、現在の VM のエイリアス範囲が 10.9.27.0/24 で、新しくリクエストした範囲が /24 の場合、/24 をリクエストするコマンドを実行すると、10.9.27.0/24 の削除と /24 の追加として解釈されるため、拒否されます。新しい範囲を追加するには、まず既存の範囲を削除する必要があります。

例:

  1. エイリアス IP 範囲を作成します。

    gcloud compute instances create vm --network-interface "subnet=s1,aliases=10.9.27.0/24"
    
  2. 既存の範囲を指定せずに /24 を追加しようとすると、エラーが発生します。

    gcloud compute instances network-interfaces update vm --aliases "/24"
    ERROR: (gcloud.compute.instances.network-interfaces.update) HTTPError 400: Invalid value for field 'resource.aliasIpRanges': ''. Cannot simultaneously add and remove alias IP ranges.
    
  3. VM を更新してエイリアス IP 範囲をなくします。

    gcloud compute instances network-interfaces update vm --aliases ""
    Updating network interface [nic0] of instance [vm]...done.
    
  4. 新しいエイリアス IP 範囲を追加します。

    gcloud compute instances network-interfaces update vm --aliases "/24"
    Updating network interface [nic0] of instance [vm]...done.
    

このコマンドの詳細を参照するには、gcloud compute instances network-interfaces update --help を使用します。

ファイアウォール ルールのソースタグとソースサービス アカウント

ファイアウォール ソースサービス アカウントとソースタグは、一致するインスタンスのプライマリ ネットワーク IP にのみ展開され、一致するインスタンスのエイリアス IP には適用されません。したがって、ソースタグに基づくファイアウォール ルールは、インスタンス エイリアス IP アドレスからのトラフィックに影響を与えません。エイリアス IP アドレスは、送信元や送信先の範囲としてファイアウォール ルールに追加できます。

複数のインターフェースとエイリアス IP 範囲を持つ VM に関する問題

複数のインターフェースに関するトラブルシューティングをご覧ください。

次のステップ

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