インスタンスに動的 NIC を追加する

このページでは、既存の VM インスタンスに動的ネットワーク インターフェース(NIC)を追加する方法について説明します。

新しいインスタンスの作成については、複数のネットワーク インターフェースを持つ VM を作成するをご覧ください。

始める前に

インスタンスに動的 NIC を追加する前に、次の操作を行います。

動的 NIC を追加する

このセクションでは、インスタンスに動的 NIC を追加する方法について説明します。

動的 NIC を追加すると、伝播の遅延が発生することがあります。通常は数秒ですが、まれに 1 分程度になることがあります。

gcloud

既存のインスタンスに動的 NIC を追加するには、gcloud beta compute instances network-interfaces add コマンドを使用します。

gcloud beta compute instances network-interfaces add INSTANCE_NAME \
   --zone=ZONE \
   --vlan=VLAN_ID \
   --parent-nic-name=PARENT_VNIC_NAME \
   --network=NETWORK \
   --subnetwork=SUBNET

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

  • INSTANCE_NAME: 動的 NIC を追加するインスタンスの名前
  • ZONE: インスタンスのゾーン
  • VLAN_ID: 動的 NIC の VLAN ID
  • PARENT_VNIC_NAME: 親 vNIC の名前(nic0 など)
  • NETWORK: Dynamic NIC が接続するネットワーク
  • SUBNET: 動的 NIC が接続するサブネット

または、インスタンスのプロパティを更新するときに、インスタンスに動的 NIC を追加することもできます。詳細については、インスタンス プロパティを更新するをご覧ください。

マネージド インスタンス グループ(MIG)に動的 NIC を追加するには、gcloud beta compute instance-groups managed set-instance-template コマンドをご覧ください。

API

既存のインスタンスに動的 NIC を追加するには、instances.addNetworkInterface メソッドを使用します。

POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/addNetworkInterface
{
  "subnetwork": "regions/REGION/subnetworks/SUBNET",
  "parentNicName": "PARENT_VNIC_NAME",
  "vlan": "VLAN_ID"
}

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

  • PROJECT_ID: インスタンスが含まれているプロジェクトの ID
  • ZONE: インスタンスを含むゾーン。
  • INSTANCE_NAME: 動的 NIC を追加するインスタンスの名前
  • REGION: インスタンスを含むリージョン
  • SUBNET: 動的 NIC が接続するサブネット
  • PARENT_VNIC_NAME: 親 vNIC の名前(nic0 など)
  • VLAN_ID: 動的 NIC の VLAN ID

または、インスタンスのプロパティを更新するときに、インスタンスに動的 NIC を追加することもできます。詳細については、インスタンス プロパティを更新するをご覧ください。

マネージド インスタンス グループ(MIG)に動的 NIC を追加するには、instanceGroupManagers.setInstanceTemplate メソッドをご覧ください。

ダイナミック NIC のゲスト OS を構成する

このセクションでは、新しいインスタンスまたは既存のインスタンスに動的 NIC を追加するときに必要な追加のゲスト OS 構成を完了する方法について説明します。

次のいずれかの構成オプションを選択します。

構成オプション 説明
動的 NIC の自動管理を構成する(推奨)

Google ゲスト エージェントを使用して、動的 NIC を自動的に管理します。

ゲスト環境には、Google ゲスト エージェントが含まれています。これは、 Google Cloud OS イメージの Linux ディストリビューションのルート名前空間で VLAN インターフェースのインストールと管理を自動化します。この機能は、Google ゲスト エージェント バージョン 20250204.02 以降でサポートされています。

ゲスト OS を手動で構成する

ゲスト OS でコマンドを実行して、動的 NIC をインストールします。

このオプションを使用する場合、インスタンスの再起動後に構成が自動的に保持されることはありません。再起動後に構成を保持するには、Linux ディストリビューションの永続ネットワーク インターフェースを構成するための推奨方法を使用します。たとえば、Debian の場合は NetworkConfiguration を、Ubuntu の場合は interfaces をご覧ください。

動的 NIC の自動管理を構成する

このセクションでは、Google ゲスト エージェントを使用して動的 NIC の自動管理を構成する方法について説明します。

この手順はインスタンスごとに 1 回だけ行います。これらの手順をすでに完了しているインスタンスに動的 NIC を追加した場合は、これらの手順を繰り返す必要はありません。

動的 NIC の自動管理を構成するには:

  1. SSH を使用してインスタンスに接続します。

  2. インスタンスで Google ゲスト エージェント バージョン 20250204.02 以降が実行されていることを確認します。

    1. インスタンスが Google ゲスト エージェントを実行しているかどうかを確認するには、ゲスト環境でインストールされるパッケージに記載されている適切なコマンドを実行します。

      1. インスタンスが Google ゲスト エージェントを実行していない場合は、ゲスト環境をインストールします。

      2. インスタンスで Google ゲスト エージェントを実行している場合は、ゲスト環境を更新します。

      ゲスト環境をインストールまたは更新すると、最新バージョンの Google ゲスト エージェントが使用されます。バージョンを確認するには、ゲスト環境の検証の手順に沿って操作します。

  3. 動的 NIC を管理するように Google ゲスト エージェントを構成します。

    1. ゲスト環境構成ファイルを開くか、作成します。

      edit /etc/default/instance_configs.cfg
      
    2. 次の内容を構成ファイルに追加し、変更を保存してエディタを終了します。

      [NetworkInterfaces]
      vlan_setup_enabled = true
      manage_primary_nic = true
      

      これらの設定の詳細については、以下をご覧ください。

      • vlan_setup_enabled = true: 動的 NIC をインストールして管理するように Google ゲスト エージェントを構成します。
      • manage_primary_nic = true: Google ゲスト エージェントが nic0 で作成された動的 NIC を管理するために必要な追加設定。

      ゲスト エージェントの構成ファイルの編集の詳細については、Google ゲスト エージェントのドキュメントの構成をご覧ください。

    3. 次のコマンドを実行してゲスト エージェントを再起動します。または、インスタンスを再起動することもできます。

      sudo systemctl restart google-guest-agent.service
      
  4. インスタンスのネットワーク インターフェースを一覧表示して、Google ゲスト エージェントが動的 NIC をインストールしたことを確認します。

    たとえば、次のコマンドは、ens4 インターフェースの子として作成された VLAN ID が 11 の動的 NIC の a-gcp.ens4.11 などの名前を表示します。

    sudo ip -d addr
    

ゲスト OS を手動で構成する

インスタンスのゲスト OS で動的 NIC を手動で構成するには:

  1. SSH を使用してインスタンスに接続します。

  2. インスタンスで Google ゲスト エージェントを実行している場合は、動的 NIC の自動管理を無効にします。インスタンスが Google ゲスト エージェントを実行しているかどうかを確認するには、ゲスト環境でインストールされるパッケージに記載されている適切なコマンドを使用します。

    動的 NIC の自動管理を無効にするには:

    1. ゲスト環境構成ファイルを開くか、作成します。

        edit /etc/default/instance_configs.cfg
        

    2. 次の内容を構成ファイルに追加し、変更を保存してエディタを終了します。

      [NetworkInterfaces]
      vlan_setup_enabled = false
      manage_primary_nic = false
      

      ゲスト エージェントの構成ファイルの編集の詳細については、Google ゲスト エージェントのドキュメントの構成をご覧ください。

    3. 次のコマンドを実行してゲスト エージェントを再起動します。または、インスタンスを再起動することもできます。

      sudo systemctl restart google-guest-agent.service
      
  3. 作成した動的 NIC ごとに、次の操作を行います。

    1. 親 vNIC の MAC アドレスを取得します。MAC アドレスを確認するには、次のコマンドを実行してメタデータ サーバーをクエリします。

      curl http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/VNIC_NUMBER/mac -H "Metadata-Flavor: Google"
      

      VNIC_NUMBER は、親 vNIC の数に置き換えます。たとえば、nic0 の場合は 0nic1 の場合は 1 です。

    2. インスタンスのゲスト OS でサブインターフェースを構成します。たとえば、Debian VM で次のコマンドを実行します。

      sudo modprobe 8021q
      sudo ip link add link VNIC_NAME name VNIC_NAME.VLAN_ID type vlan id VLAN_ID
      sudo ip addr add IP_ADDRESS dev VNIC_NAME.VLAN_ID
      sudo ip link set dev VNIC_NAME.VLAN_ID address MAC_ADDRESS
      sudo ip link set up VNIC_NAME.VLAN_ID
      

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

      • VNIC_NAME: オペレーティング システムによって割り当てられた親 vNIC の名前(eth1ens4 など)
      • IP_ADDRESS: 作成した動的 NIC の IP アドレス
      • VLAN_ID: 動的 NIC に割り当てた VLAN ID
      • MAC_ADDRESS: 前の手順で取得した MAC アドレス