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 に依存しないカスタム イメージに基づいた VM と、Windows VM の MTU の更新を手動で行う必要があります。

Console

ネットワーク MTU の更新は Google Cloud コンソールではサポートされていません。Google Cloud CLI または API の手順をご覧ください。

gcloud

  1. すべての VM を停止します。

    ネットワーク内の各ゾーンで、そのゾーン内のすべての VM を停止します。

    gcloud compute instances stop INSTANCE_NAMES... \
        --zone=ZONE
    
  2. ネットワーク MTU を更新します。

    gcloud compute networks update NETWORK \
        --mtu=MTU
    
  3. すべての VM を起動します。

    ネットワーク内の各ゾーンで、そのゾーンのすべての VM を起動します。

    gcloud compute instances start INSTANCE_NAMES... \
        --zone=ZONE
    

    プレースホルダを有効な値に置き換えます。

    • INSTANCE_NAMES... は、インスタンスのスペース区切りリストです。
    • NETWORK は、動的ルーティング モードを変更する必要がある VPC ネットワークの名前です。
    • MTU は、ネットワークの MTU が 1460(デフォルト)、15008896 のいずれであるかを指定します。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 で次の操作を行います。

コマンド プロンプト

  1. 管理者としてコマンド プロンプト(cmd.exe)を開きます。
  2. 次のコマンドを実行して、更新するインターフェースのインデックスを判定します。

    netsh interface ipv4 show interface 
  3. インターフェースを更新します。

    netsh interface ipv4 set interface INTERFACE_INDEX mtu=MTU store=persistent 
  4. デバイス ドライバの構成を更新します。

    1. 次のコマンドを使用してデバイス マネージャーを開きます。
      devmgmt.msc
      
    2. [ネットワーク アダプタ] カテゴリを開きます。
    3. [Google VirtIO イーサネット アダプター] または [Google イーサネット アダプター] デバイスを右クリックします。
    4. [プロパティ] をクリックします。
    5. [Advanced] タブをクリックします。
    6. [Init.MTUSize] フィールドに MTU の設定値を入力します。
    7. [OK] をクリックします。

    レジストリ エントリが変更されるとドライバが自動的に再起動するため、インスタンスは一時的に切断されます。

PowerShell

  1. 管理者として PowerShell を開きます。
  2. 次のコマンドを実行します。

    Set-NetIPInterface -InterfaceAlias INTERFACE_NAME -AddressFamily IPv4 -NlMtu MTU 
  3. 次のコマンドを実行して、デバイス ドライバの設定を更新します。

    Set-NetAdapterAdvancedProperty -Name "Ethernet" -RegistryKeyword MTU -RegistryValue MTU 

    レジストリ エントリが変更されるとドライバが自動的に再起動するため、VM への接続が一時的に切断されます。

VM を別の MTU ネットワークに移行する

既存のネットワークの MTU を変更する代わりに、新しいネットワークの新しい VM にサービスを移行することもできます。その場合、移行中にすべての VM からアクセス可能なサーバー(データベース サーバーなど)が必要になります。次の一般的な方法を使用すると、移行を適切に行うことができます。

  1. 新しい MTU で新しいネットワークを作成します。
  2. 新しいネットワークで必要なファイアウォール ルールとルートを作成します。
  3. 古いネットワークで複数のネットワーク インターフェースを持つ VM を作成します。1 つのインターフェースは新しい MTU を使用して新しいネットワークに接続し、もう 1 つは古い MTU を使用して古いネットワークに接続します。
  4. この新しい VM を既存の VM のセカンダリ サーバーとして構成します。
  5. プライマリ サーバーをセカンダリ サーバーにフェイルオーバーします。
  6. VM を新しいネットワークに移行するか、新しいネットワークで新しい VM を作成します。新しい VM を作成する場合は、VM を最初から作成することも、既存のイメージから作成することもできます。また、既存の VM のスナップショットを作成して、新しい永続ディスクで使用することもできます。
  7. そのネットワークで稼働しているサーバーを使用するように、これらの VM を構成します。
  8. トラフィックを新しい VM に移行します。
  9. 古いネットワークを削除する場合は、新しいネットワークで新しいサーバーを作成し、それを既存のサーバーと同期してフェイルオーバーします。
  10. 古いサーバーと古いネットワークを削除します。

使ってみる

Google Cloud を初めて使用する場合は、アカウントを作成して、実際のシナリオでの VPC のパフォーマンスを評価してください。新規のお客様には、ワークロードの実行、テスト、デプロイができる無料クレジット $300 分を差し上げます。

VPC 無料トライアル