VPC ネットワークの MTU 設定を変更する
Google Cloud では、VPC ネットワークごとに MTU を設定します。そのネットワークを使用する仮想マシン(VM)インスタンスは、インターフェースに同じ MTU 設定を使用するように構成する必要があります。
公開 OS イメージに基づく Linux VM は、DHCP サーバーから VPC ネットワークの MTU 設定を受け取ります。DHCP オプション 26 に MTU 設定が含まれています。
Windows VM では、MTU の構成に DHCP を使用しません。VPC ネットワークの MTU を変更する場合は、VM の MTU を変更する必要があります。
VM と MTU の設定の詳細については、VM と MTU の設定をご覧ください。
MTU 設定が異なる VPC ネットワークの使用を開始するには、次の 2 つの方法があります。
既存の VPC ネットワークの MTU 設定を変更します。この場合、ネットワーク内のすべての VM を同時にシャットダウンする必要があります。
別の MTU 設定で新しい VPC ネットワークを作成し、VM をそのネットワークに移行します。
ネットワークの MTU を変更する
各 VPC ネットワークには MTU があります。VM の実行中はネットワーク MTU を変更しないでください。変更すると、VM の MTU が異なるため、ネットワーク接続が不安定になる場合があります。
ネットワークの MTU の変更に関する詳細な考慮事項については、最大伝送単位の概要をご覧ください。
ネットワーク MTU を更新するには、実行中の VM インスタンスをすべて停止し、ネットワーク MTU を変更してから、すべてのインスタンスを起動することをおすすめします。公開 Linux イメージに基づいた VM は、起動時に接続している VPC ネットワークの MTU を使用するように、各ネットワーク インターフェースを自動的に構成します。ネットワーク MTU の構成向けに DHCP に依存しないカスタム イメージに基づいて、Windows VM と VM の MTU を手動で更新する必要があります。
コンソール
ネットワーク MTU の更新は Google Cloud コンソールでサポートされていません。Google Cloud CLI または API の手順をご覧ください。
gcloud
すべての VM を停止します。
ネットワーク内の各ゾーンで、そのゾーン内のすべての VM を停止します。
gcloud compute instances stop INSTANCE_NAMES... \ --zone=ZONE
ネットワーク MTU を更新します。
gcloud compute networks update NETWORK \ --mtu=MTU
すべての VM を起動します。
ネットワーク内の各ゾーンで、そのゾーンのすべての VM を起動します。
gcloud compute instances start INSTANCE_NAMES... \ --zone=ZONE
プレースホルダを有効な値に置き換えます。
INSTANCE_NAMES...
は、インスタンスのスペース区切りリストです。NETWORK
は、動的ルーティング モードを変更する必要がある VPC ネットワークの名前です。MTU
は、ネットワークの MTU が1460
(デフォルト)、1500
、8896
のいずれであるかを指定します。MTU を1460
より高く設定する前に、最大伝送単位の概要を確認してください。
API
既存の VPC ネットワークの MTU を変更します。
PATCH https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/NETWORK { "mtu": MTU }
プレースホルダを有効な値に置き換えます。
- PROJECT_ID は、変更する VPC ネットワークを含むプロジェクトの ID です。
- NETWORK は、変更する VPC ネットワークの名前です。
MTU
は、ネットワークの最大伝送単位です。MTU は、1300
から8896
までの範囲の値に設定できます(デフォルト:1460
)。MTU を1460
より大きい値に設定する前に、最大伝送単位の概要を確認してください。
詳細については、subnetworks.patch
メソッドをご覧ください。
Windows VM の MTU 設定を変更する
公開 OS イメージに基づく Windows VM には、固定の MTU 1460
が構成されています。カスタムの Windows VM では、MTU 設定が異なる場合があります。
Windows VM が異なる MTU を使用するように設定するには、各 VM で次の操作を行います。
コマンド プロンプト
- 管理者としてコマンド プロンプト(cmd.exe)を開きます。
次のコマンドを実行して、更新するインターフェースのインデックスを判定します。
netsh interface ipv4 show interface
インターフェースを更新します。
netsh interface ipv4 set interface INTERFACE_INDEX mtu=MTU store=persistent
デバイス ドライバの構成を更新します。
- 次のコマンドを使用してデバイス マネージャーを開きます。
devmgmt.msc
- [ネットワーク アダプター] カテゴリを開きます。
- [Google VirtIO イーサネット アダプター] または [Google イーサネット アダプター] デバイスを右クリックします。
- [プロパティ] をクリックします。
- [詳細設定] タブをクリックします。
- [Init.MTUSize] フィールドに MTU の設定値を入力します。
- [OK] をクリックします。
レジストリ エントリが変更されるとドライバが自動的に再起動するため、インスタンスは一時的に切断されます。
- 次のコマンドを使用してデバイス マネージャーを開きます。
PowerShell
- 管理者として PowerShell を開きます。
次のコマンドを実行します。
Set-NetIPInterface -InterfaceAlias INTERFACE_NAME -AddressFamily IPv4 -NlMtu MTU
次のコマンドを実行して、デバイス ドライバの設定を更新します。
Set-NetAdapterAdvancedProperty -Name "Ethernet" -RegistryKeyword MTU -RegistryValue MTU
レジストリ エントリが変更されるとドライバが自動的に再起動するため、VM への接続が一時的に切断されます。
VM を別の MTU ネットワークに移行する
既存のネットワークの MTU を変更する代わりに、新しいネットワークの新しい VM にサービスを移行することもできます。その場合、移行中にすべての VM からアクセス可能なサーバー(データベース サーバーなど)が必要になります。次の一般的な方法を使用すると、移行を適切に行うことができます。
- 新しい MTU で新しいネットワークを作成します。
- 新しいネットワークで必要なファイアウォール ルールとルートを作成します。
- 古いネットワークで複数のネットワーク インターフェースを持つ VM を作成します。1 つのインターフェースは新しい MTU を使用して新しいネットワークに接続し、もう 1 つは古い MTU を使用して古いネットワークに接続します。
- この新しい VM を既存の VM のセカンダリ サーバーとして構成します。
- プライマリ サーバーをセカンダリ サーバーにフェイルオーバーします。
- VM を新しいネットワークに移行するか、新しいネットワークで新しい VM を作成します。新しい VM を作成する場合は、VM を最初から作成することも、既存のイメージから作成することもできます。また、既存の VM のスナップショットを作成して、新しい永続ディスクで使用することもできます。
- そのネットワークで稼働しているサーバーを使用するように、これらの VM を構成します。
- トラフィックを新しい VM に移行します。
- 古いネットワークを削除する場合は、新しいネットワークで新しいサーバーを作成し、それを既存のサーバーと同期してフェイルオーバーします。
- 古いサーバーと古いネットワークを削除します。
使ってみる
Google Cloud を初めて使用する場合は、アカウントを作成して、実際のシナリオでの VPC のパフォーマンスを評価してください。新規のお客様には、ワークロードの実行、テスト、デプロイができる無料クレジット $300 分を差し上げます。
VPC 無料トライアル