Amazon EC2 インスタンスの MTU を設定する - Amazon Elastic Compute Cloud

Amazon EC2 インスタンスの MTU を設定する

ネットワーク接続の最大送信単位 (MTU) とは、接続を介して渡すことができる最大許容パケットサイズ (バイト単位) です。すべての Amazon EC2 インスタンスで標準フレーム (1500 MTU) がサポートされており、すべての現行世代のインスタンスタイプでジャンボフレーム (9001 MTU) がサポートされています。

Amazon EC2 インスタンスの MTU を表示したり、インスタンスと別のホストの間のパス MTU を表示したり、標準フレームまたはジャンボフレームを使用するようにインスタンスを設定したりできます。

2 つのホスト間のパス MTU の確認

EC2 インスタンスと別のホストとの間のパス MTU を確認できます。宛先として DNS 名または IP アドレスを指定できます。宛先が別の EC2 インスタンスの場合、そのセキュリティグループによりインバウンド UDP トラフィックが許可されていることを確認します。

使用する手順は、インスタンスのオペレーティングシステムによって異なります。

インスタンスで tracepath コマンドを実行して、EC2 インスタンスと指定された宛先の間のパス MTU を確認します。このコマンドは iputils パッケージの一部であり、多くの Linux ディストリビューションでデフォルトで使用できます。

次の例では、EC2 インスタンスと amazon.com との間のパス MTU を確認しています。

[ec2-user ~]$ tracepath amazon.com

この出力例では、パス MTU は 1500 となっています。

1?: [LOCALHOST] pmtu 9001 1: ip-172-31-16-1.us-west-1.compute.internal (172.31.16.1) 0.187ms pmtu 1500 1: no reply 2: no reply 3: no reply 4: 100.64.16.241 (100.64.16.241) 0.574ms 5: 72.21.222.221 (72.21.222.221) 84.447ms asymm 21 6: 205.251.229.97 (205.251.229.97) 79.970ms asymm 19 7: 72.21.222.194 (72.21.222.194) 96.546ms asymm 16 8: 72.21.222.239 (72.21.222.239) 79.244ms asymm 15 9: 205.251.225.73 (205.251.225.73) 91.867ms asymm 16 ... 31: no reply Too many hops: pmtu 1500 Resume: pmtu 1500
mturoute を使用してパス MTU を確認するには
  1. http://www.elifulkerson.com/projects/mturoute.php から EC2 インスタンスに mturoute.exe をダウンロードします。

  2. コマンドプロンプトウィンドウを開いて、mturoute.exe をダウンロードしたディレクトリに移動します。

  3. 次のコマンドを使用して、EC2 インスタンスと指定した宛先との間のパス MTU を確認します。次の例では、EC2 インスタンスと www.elifulkerson.com との間のパス MTU を確認しています。

    .\mturoute.exe www.elifulkerson.com

    この出力例では、パス MTU は 1500 となっています。

    * ICMP Fragmentation is not permitted. * * Speed optimization is enabled. * * Maximum payload is 10000 bytes. * + ICMP payload of 1472 bytes succeeded. - ICMP payload of 1473 bytes is too big. Path MTU: 1500 bytes.

インスタンスの MTU を確認する

インスタンスの MTU 値を確認できます。一部のインスタンスでは、ジャンボフレームを使用し、それ以外のドライバには標準フレームサイズを使用するように設定されています。

使用する手順は、インスタンスのオペレーティングシステムによって異なります。

Linux インスタンス上の MTU 設定を確認するには

EC2 インスタンスで次の ip コマンドを実行します。プライマリネットワークインターフェイスが eth0 でない場合は、eth0 を使用しているネットワークインターフェイスに置き換えます。

[ec2-user ~]$ ip link show eth0

この出力例で、mtu 9001 はこのインスタンスにジャンボフレームが使用されていることを示しています。

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9001 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000 link/ether 02:90:c0:b7:9e:d1 brd ff:ff:ff:ff:ff:ff

使用する手順は、インスタンスのドライバーによって異なります。

ENA driver
バージョン 2.1.0 以降

MTU 値を取得するには、EC2 インスタンスで次の Get-NetAdapterAdvancedProperty コマンドを使用します。ワイルドカード (アスタリスク) を使用して、すべてのイーサネット名を取得します。インターフェイス名 *JumboPacket の出力を確認します。値 9015 は、ジャンボフレームが有効であることを示します。ジャンボフレームはデフォルトで無効化されています。

Get-NetAdapterAdvancedProperty -Name "Ethernet*"
バージョン 1.5 以前

MTU 値を取得するには、EC2 インスタンスで次の Get-NetAdapterAdvancedProperty コマンドを使用します。インターフェイス名 MTU の出力を確認します。値 9001 は、ジャンボフレームが有効であることを示します。ジャンボフレームはデフォルトで無効化されています。

Get-NetAdapterAdvancedProperty -Name "Ethernet"
Intel SRIOV 82599 driver

MTU 値を取得するには、EC2 インスタンスで次の Get-NetAdapterAdvancedProperty コマンドを使用します。インターフェイス名 *JumboPacket のエントリを確認します。値 9014 は、ジャンボフレームが有効であることを示します。(MTU のサイズには、ヘッダーとペイロードが含まれる点に注意してください)。ジャンボフレームはデフォルトで無効化されています。

Get-NetAdapterAdvancedProperty -Name "Ethernet"
AWS PV driver

MTU 値を取得するには、EC2 インスタンスで次のコマンドを使用します。インターフェイスの名前は異なる場合があります。出力では、「Ethernet」、「Ethernet 2」、または 「Local Area Connection」 という名前のエントリを探してください。ジャンボフレームを有効または無効にするには、インターフェイス名が必要です。値 9001 は、ジャンボフレームが有効であることを示します。

netsh interface ipv4 show subinterface

インスタンスの MTU を設定する

VPC 内のネットワークトラフィックにジャンボフレームを使用したり、インターネットトラフィックに標準フレームを使用したりする場合があるでしょう。どのようなユースケースでも、インスタンスが想定どおりに動作することを確認することをお勧めします。

使用する手順は、インスタンスのオペレーティングシステムによって異なります。

Linux インスタンス上の MTU 値を設定するには
  1. インスタンスで次の ip コマンドを実行します。このコマンドで目的の MTU 値が 1500 に設定されますが、代わりに 9001 を使用することができます。

    [ec2-user ~]$ sudo ip link set dev eth0 mtu 1500
  2. (オプション) 再起動後もネットワーク MTU 設定を維持するには、オペレーティングシステムのタイプに基づいて、次の設定ファイルを変更します。

    • Amazon Linux 2 の場合、次の行を /etc/sysconfig/network-scripts/ifcfg-eth0 ファイルに追加します。

      MTU=1500

      次の行を /etc/dhcp/dhclient.conf ファイルに追加します。

      request subnet-mask, broadcast-address, time-offset, routers, domain-name, domain-search, domain-name-servers, host-name, nis-domain, nis-servers, ntp-servers;
    • Amazon Linux AMI の場合は、以下の行を /etc/dhcp/dhclient-eth0.conf ファイルに追加します。

      interface "eth0" { supersede interface-mtu 1500; }
    • その他の Linux ディストリビューションの場合は、特定のドキュメントを参照してください。

  3. (オプション) インスタンスを再起動し、MTU 設定が正しいことを確認します。

使用する手順は、インスタンスのドライバーによって異なります。

ENA driver

インスタンスでデバイスマネージャーまたは Set-NetAdapterAdvancedProperty コマンドを使用して、MTU を変更できます。

バージョン 2.1.0 以降

ジャンボフレームを有効にするには、次のコマンドを使用します。

Set-NetAdapterAdvancedProperty -Name "Ethernet" -RegistryKeyword "*JumboPacket" -RegistryValue 9015

ジャンボフレームを無効にするには、次のコマンドを使用します。

Set-NetAdapterAdvancedProperty -Name "Ethernet" -RegistryKeyword "*JumboPacket" -RegistryValue 1514
バージョン 1.5 以前

ジャンボフレームを有効にするには、次のコマンドを使用します。

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

ジャンボフレームを無効にするには、次のコマンドを使用します。

Set-NetAdapterAdvancedProperty -Name "Ethernet" -RegistryKeyword "MTU" -RegistryValue 1500
Intel SRIOV 82599 driver

インスタンスでデバイスマネージャーまたは Set-NetAdapterAdvancedProperty コマンドを使用して、MTU を変更できます。

ジャンボフレームを有効にするには、次のコマンドを使用します。

Set-NetAdapterAdvancedProperty -Name "Ethernet" -RegistryKeyword "*JumboPacket" -RegistryValue 9014

ジャンボフレームを無効にするには、次のコマンドを使用します。

Set-NetAdapterAdvancedProperty -Name "Ethernet" -RegistryKeyword "*JumboPacket" -RegistryValue 1514
AWS PV driver

インスタンスで netsh コマンドを使用することで MTU を変更できます。デバイスマネージャーでは MTU を変更できません。

ジャンボフレームを有効にするには、次のコマンドを使用します。

netsh interface ipv4 set subinterface "Ethernet" mtu=9001

ジャンボフレームを無効にするには、次のコマンドを使用します。

netsh interface ipv4 set subinterface "Ethernet" mtu=1500