インスタンスに 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 IDPARENT_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: インスタンスが含まれているプロジェクトの IDZONE: インスタンスを含むゾーン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 IDMAC_ADDRESS: 前の手順で取得した MAC アドレス