インスタンスに 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 ごとに、次の操作を行います。
親 vNIC の MAC アドレスを取得します。MAC アドレスを確認するには、次のコマンドを実行してメタデータ サーバーをクエリします。
curl http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/VNIC_NUMBER/mac -H "Metadata-Flavor: Google"
VNIC_NUMBER
は、親 vNIC の番号に置き換えます。たとえば、nic0
の場合は0
、nic1
の場合は1
です。インスタンスのゲスト 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 アドレス