インスタンスに動的 NIC を追加する
このページでは、既存の VM インスタンスに動的ネットワーク インターフェース(NIC)を追加する方法について説明します。新しいインスタンスの作成については、複数のネットワーク インターフェースを持つ VM を作成するをご覧ください。
始める前に
インスタンスに動的 NIC を追加する前に、次の操作を行います。
- 複数のネットワーク インターフェースの概要で説明されている動的 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 IDPARENT_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
: インスタンスが含まれているプロジェクトの IDZONE
: インスタンスを含むゾーン。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 の自動管理を構成するには:
SSH を使用してインスタンスに接続します。
インスタンスで Google ゲスト エージェント バージョン 20250204.02 以降が実行されていることを確認します。
インスタンスが Google ゲスト エージェントを実行しているかどうかを確認するには、ゲスト環境でインストールされるパッケージに記載されている適切なコマンドを実行します。
インスタンスが Google ゲスト エージェントを実行していない場合は、ゲスト環境をインストールします。
インスタンスで Google ゲスト エージェントを実行している場合は、ゲスト環境を更新します。
ゲスト環境をインストールまたは更新すると、最新バージョンの Google ゲスト エージェントが使用されます。バージョンを確認するには、ゲスト環境の検証の手順に沿って操作します。
動的 NIC を管理するように Google ゲスト エージェントを構成します。
ゲスト環境構成ファイルを開くか、作成します。
edit /etc/default/instance_configs.cfg
次の内容を構成ファイルに追加し、変更を保存してエディタを終了します。
[NetworkInterfaces] vlan_setup_enabled = true manage_primary_nic = true
これらの設定の詳細については、以下をご覧ください。
vlan_setup_enabled = true
: 動的 NIC をインストールして管理するように Google ゲスト エージェントを構成します。manage_primary_nic = true
: Google ゲスト エージェントがnic0
で作成された動的 NIC を管理するために必要な追加設定。
ゲスト エージェントの構成ファイルの編集の詳細については、Google ゲスト エージェントのドキュメントの構成をご覧ください。
次のコマンドを実行してゲスト エージェントを再起動します。または、インスタンスを再起動することもできます。
sudo systemctl restart google-guest-agent.service
インスタンスのネットワーク インターフェースを一覧表示して、Google ゲスト エージェントが動的 NIC をインストールしたことを確認します。
たとえば、次のコマンドは、
ens4
インターフェースの子として作成された VLAN ID が11
の動的 NIC のa-gcp.ens4.11
などの名前を表示します。sudo ip -d addr
ゲスト OS を手動で構成する
インスタンスのゲスト OS で動的 NIC を手動で構成するには:
SSH を使用してインスタンスに接続します。
インスタンスで Google ゲスト エージェントを実行している場合は、動的 NIC の自動管理を無効にします。インスタンスが Google ゲスト エージェントを実行しているかどうかを確認するには、ゲスト環境でインストールされるパッケージに記載されている適切なコマンドを使用します。
動的 NIC の自動管理を無効にするには:
ゲスト環境構成ファイルを開くか、作成します。
edit /etc/default/instance_configs.cfg
次の内容を構成ファイルに追加し、変更を保存してエディタを終了します。
[NetworkInterfaces] vlan_setup_enabled = false manage_primary_nic = false
ゲスト エージェントの構成ファイルの編集の詳細については、Google ゲスト エージェントのドキュメントの構成をご覧ください。
次のコマンドを実行してゲスト エージェントを再起動します。または、インスタンスを再起動することもできます。
sudo systemctl restart google-guest-agent.service
作成した動的 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
: 作成した動的 NIC の IP アドレスVLAN_ID
: 動的 NIC に割り当てた VLAN IDMAC_ADDRESS
: 前の手順で取得した MAC アドレス