インスタンスに Dynamic NIC を追加する
このページでは、既存の VM インスタンスに Dynamic Network Interface(NIC)を追加する方法について説明します。新しいインスタンスの作成については、複数のネットワーク インターフェースを持つ VM を作成するをご覧ください。
始める前に
インスタンスに Dynamic NIC を追加する前に、次の操作を行います。
- 複数のネットワーク インターフェースの概要で説明されているように、Dynamic NIC のプロパティと制限事項をよく理解しておいてください。
- 必要に応じて、インスタンスのネットワーク インターフェースを表示するの手順に沿って、インスタンスの既存のネットワーク インターフェースを確認します。
Dynamic NIC を追加する
このセクションでは、インスタンスに Dynamic NIC を追加する方法について説明します。
Dynamic NIC を追加すると、伝播遅延が発生することがあります。通常は数秒ですが、まれに 1 分程度になることがあります。
gcloud
既存のインスタンスに Dynamic 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: Dynamic NIC を追加するインスタンスの名前
- ZONE: インスタンスのゾーン
- VLAN_ID: Dynamic NIC の VLAN ID
- PARENT_VNIC_NAME: 親 vNIC の名前(- nic0など)
- NETWORK: Dynamic NIC が接続するネットワーク
- SUBNET: Dynamic NIC が接続するサブネット
また、インスタンスのプロパティを更新するときに、インスタンスに Dynamic NIC を追加することもできます。詳細については、インスタンス プロパティを更新するをご覧ください。
マネージド インスタンス グループ(MIG)に Dynamic NIC を追加するには、gcloud beta compute instance-groups managed set-instance-template コマンドをご覧ください。
API
既存のインスタンスに Dynamic 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: Dynamic NIC を追加するインスタンスの名前
- REGION: インスタンスが含まれるリージョン
- SUBNET: Dynamic NIC が接続するサブネット
- PARENT_VNIC_NAME: 親 vNIC の名前(- nic0など)
- VLAN_ID: Dynamic NIC の VLAN ID
また、インスタンスのプロパティを更新するときに、インスタンスに Dynamic NIC を追加することもできます。詳細については、インスタンス プロパティを更新するをご覧ください。
マネージド インスタンス グループ(MIG)に Dynamic NIC を追加するには、instanceGroupManagers.setInstanceTemplate メソッドをご覧ください。
Dynamic NIC 用にゲスト OS を構成する
このセクションでは、新しいインスタンスまたは既存のインスタンスに Dynamic NIC を追加するときに必要な追加のゲスト OS 構成を完了する方法について説明します。
次のいずれかの構成オプションを選択します。
| 構成オプション | 説明 | 
|---|---|
| Dynamic NIC の自動管理を構成する(推奨) | Dynamic NIC の自動管理には、Google ゲスト エージェントを使用します。 ゲスト環境には Google ゲスト エージェントが含まれています。このエージェントは、 Google Cloud OS イメージの Linux ディストリビューションのルート名前空間で VLAN インターフェースのインストールと管理を自動化します。この機能は、Google ゲスト エージェント バージョン 20250204.02 以降でサポートされています。 | 
| ゲスト OS を手動で構成する | ゲスト OS でコマンドを実行して、Dynamic NIC をインストールします。 このオプションを使用すると、インスタンスの再起動後に構成が自動的に保持されません。再起動後も構成を保持するには、Linux ディストリビューションの永続ネットワーク インターフェースを構成する推奨の方法を使用します。たとえば、Debian の NetworkConfiguration と Ubuntu の interfaces をご覧ください。 | 
Dynamic NIC の自動管理を構成する
このセクションでは、Google ゲスト エージェントを使用して Dynamic NIC の自動管理を構成する方法について説明します。
これらの手順は、インスタンスごとに 1 回だけ実行する必要があります。これらの手順をすでに完了しているインスタンスに Dynamic NIC を追加した場合は、これらの手順を繰り返す必要はありません。
Dynamic NIC の自動管理を構成するには:
- インスタンスで Google ゲスト エージェントがバージョン 20250204.02 以降で実行されていることを確認します。 - インスタンスが Google ゲスト エージェントを実行しているかどうかを確認するには、ゲスト環境でインストールされるパッケージに記載されている適切なコマンドを実行します。 - インスタンスが Google ゲスト エージェントを実行していない場合は、ゲスト環境をインストールします。 
- インスタンスで Google ゲスト エージェントが実行されている場合は、ゲスト環境を更新します。 
 - ゲスト環境をインストールまたは更新すると、最新バージョンの Google ゲスト エージェントがインストールされます。バージョンは、ゲスト環境を検証するの手順に沿って確認できます。 
 
- Dynamic NIC を管理するように Google ゲスト エージェントを構成します。 - ゲスト環境構成ファイルを開くか、作成します。 - edit /etc/default/instance_configs.cfg
- 次のものを構成ファイルに追加し、変更を保存してエディタを終了します。 - [NetworkInterfaces] vlan_setup_enabled = true manage_primary_nic = true - これらの設定については、以下をご覧ください。 - vlan_setup_enabled = true: Dynamic NIC をインストールして管理するように Google ゲスト エージェントを構成します。
- manage_primary_nic = true:- nic0で作成された Dynamic NIC を Google ゲスト エージェントが管理するために必要な追加設定
 - ゲスト エージェントの構成ファイルの編集の詳細については、Google ゲスト エージェントのドキュメントで構成をご覧ください。 
- 次のコマンドを実行して、ゲスト エージェントを再起動します。また、インスタンスを再起動することもできます。 - sudo systemctl restart google-guest-agent.service 
 
- インスタンスのネットワーク インターフェースを一覧表示して、Google ゲスト エージェントが Dynamic NIC をインストールしたことを確認します。 - たとえば、次のコマンドは、 - ens4インターフェースの子として作成された VLAN ID が- 11の Dynamic NIC の名前を表示します(- a-gcp.ens4.11など)。- sudo ip -d addr 
ゲスト OS を手動で構成する
インスタンスのゲスト OS で Dynamic NIC を手動で構成するには:
- インスタンスで Google ゲスト エージェントが実行されている場合は、Dynamic NIC の自動管理を無効にします。インスタンスが Google ゲスト エージェントを実行しているかどうかを確認するには、ゲスト環境でインストールされるパッケージに記載されている適切なコマンドを使用します。 - Dynamic NIC の自動管理を無効にするには: - ゲスト環境構成ファイルを開くか、作成します。 - edit /etc/default/instance_configs.cfg
- 次のものを構成ファイルに追加し、変更を保存してエディタを終了します。 - [NetworkInterfaces] vlan_setup_enabled = false manage_primary_nic = false - ゲスト エージェントの構成ファイルの編集の詳細については、Google ゲスト エージェントのドキュメントで構成をご覧ください。 
- 次のコマンドを実行して、ゲスト エージェントを再起動します。また、インスタンスを再起動することもできます。 - sudo systemctl restart google-guest-agent.service 
 
- 作成した Dynamic NIC ごとに、次の操作を行います。 - 動的 NIC の MAC アドレスを取得します。MAC アドレスを確認するには、次のコマンドを実行してメタデータ サーバーをクエリします。 - curl http://metadata.google.internal/computeMetadata/v1/instance/vlan-network-interfaces/VNIC_NUMBER/VLAN_ID/mac -H "Metadata-Flavor: Google" - VNIC_NUMBER/- VLAN_IDは、親 vNIC の番号と Dynamic NIC の VLAN ID に置き換えます。たとえば、- nic0.2は- 0/2、- nic1.4は- 1/4となります。
- インスタンスのゲスト 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 の名前(- eth1、- ens4など)
- IP_ADDRESS: 作成した Dynamic NIC の IP アドレス
- VLAN_ID: Dynamic NIC に割り当てた VLAN ID
- MAC_ADDRESS: 前の手順で取得した MAC アドレス