単一のインスタンスに大きなネットマスクを構成する

このページでは、カスタム イメージを構成して、サブネットのネットマスクと同じサイズの大きなネットマスクを持つ Compute Engine インスタンスを作成する方法について説明します。

別の方法として、サブネットに接続されているすべてのコンピューティング インスタンスに対して、より大きなネットマスクを構成するサブネットを作成することもできます。メンテナンスを容易にし、セカンダリ範囲のサポートを受けるには、カスタム イメージを作成するのではなく、サブネットを介してインスタンスの大きなネットマスクを構成することをおすすめします。

ユースケースでサブネットの作成が機能しない場合は、カスタム イメージを作成し、このイメージを使用して、より大きなネットマスクを持つコンピューティング インスタンスを作成できます。DHCP サーバーは、/32 ではなくサブネットのネットマスクでインスタンス インターフェースを構成します。インスタンスは、サブネットのプライマリ IPv4 範囲に接続されている他のインスタンスと直接通信できます。セカンダリ IPv4 範囲は影響を受けません。

コンピューティング インスタンスのネットマスクの詳細については、コンピューティング インスタンスのネットマスクをご覧ください。

始める前に

  1. Compute Engine イメージに関する次のガイドをご覧ください。
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. If you're using an existing project for this guide, verify that you have the permissions required to complete this guide. If you created a new project, then you already have the required permissions.

  4. Verify that billing is enabled for your Google Cloud project.

  5. Enable the Compute Engine API.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.

    Enable the API

必要なロール

カスタム イメージとインスタンスの作成に必要な権限を取得するには、プロジェクトに対する Compute インスタンス管理者(v1)(role/compute.instanceAdmin.v1)IAM ロールを付与するよう管理者に依頼してください。ロールの付与については、プロジェクト、フォルダ、組織へのアクセスを管理するをご覧ください。

必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。

MULTI_IP_SUBNET オプションを構成するカスタム イメージを作成する

カスタム イメージを作成するときに、ソースイメージを指定する方法は複数あります。次の例は、イメージ ファミリーに基づいてカスタム イメージを作成する方法を示しています。カスタム イメージの作成の詳細については、カスタム イメージを作成するをご覧ください。

gcloud CLI

gcloud compute images create IMAGE_NAME \
    --source-image-family=SOURCE_IMAGE_FAMILY \
    --source-image-project=PROJECT \
    --guest-os-features=MULTI_IP_SUBNET

次のように置き換えます。

  • IMAGE_NAME: カスタム イメージの名前。
  • SOURCE_IMAGE_FAMILY: このイメージの作成に使用するソースイメージ ファミリー。例: debian-13
  • PROJECT: イメージ ファミリーが配置されているソース プロジェクト(例: debian-cloud またはプロジェクト URI)。

MULTI_IP_SUBNET カスタム イメージからコンピューティング インスタンスを作成する

カスタム イメージを使用するコンピューティング インスタンスを作成するには、作成したイメージを指定します。インスタンスの作成の詳細については、カスタム イメージからインスタンスを作成するをご覧ください。

gcloud CLI

gcloud compute instances create INSTANCE_NAME \
    --image=IMAGE_NAME \
    --zone=ZONE \
    --subnet=SUBNET_NAME

次のように置き換えます。

  • INSTANCE_NAME: インスタンスの名前。
  • IMAGE_NAME: 作成したカスタム イメージの名前。
  • ZONE: インスタンスを作成するゾーン。
  • SUBNET_NAME: インスタンスの接続先のサブネットの名前。

構成を確認する

コンピューティング インスタンスを作成したら、DHCP サーバーがインスタンスに正しいネットマスクを構成し、インスタンスが ARP 応答を受信することを確認できます。Google Cloud はサブネットの範囲内の IP アドレスに対して常に返信を送信するため、1 つのインスタンスのみを使用して ARP 応答を確認できます。

次の手順では、Linux インスタンスで構成を確認する方法について説明します。

  1. SSH を使用してインスタンスに接続します。
  2. ネットワーク インターフェースの構成を確認して、ネットマスクがサブネットのネットマスク(/32 ではない)と一致していることを確認します。

    ip addr show
    

    出力で、ネットワーク インターフェースの inet 行(ens4 など)を探します。

  3. インスタンスがサブネット内の別の IP アドレスの ARP 応答を受信できることを確認します。ping コマンドを使用して ARP リクエストをトリガーできます。使用されていない IP アドレスを選択できます。ping リクエストに対する応答がない場合でも、Google Cloud は ARP 応答を送信します。

    ping -c 3 OTHER_IP_ADDRESS_IN_SUBNET
    

    OTHER_IP_ADDRESS_IN_SUBNET は、同じサブネットの IP アドレスに置き換えます。この IP アドレスは使用されている必要はありません。

  4. ARP テーブルを調べて、他の IP アドレスに関連付けられている MAC アドレスを確認します。

    ip neighbor
    

    出力に、もう一方の IP アドレスの MAC アドレスが表示されます。