メニュー
Amazon Elastic Compute Cloud
Linux インスタンス用ユーザーガイド

EC2 インスタンスの最大ネットワーク送信単位 (MTU)

ネットワーク接続の最大送信単位 (MTU) とは、接続を介して渡すことができる最大許容パケットサイズ (バイト単位) です。接続の MTU が大きいほど、より多くのデータを単一のパケットで渡すことができます。イーサネットパケットは、フレーム (送信している実際のデータ) とそれを囲むネットワークオーバーヘッド情報で構成されています。

イーサネットフレームの形式はさまざまで、最も一般的な形式は、標準イーサネット v2 フレーム形式です。これはインターネットのほとんどでサポートされている最大のイーサネットパケットサイズである 1500 MTU をサポートします。インスタンスでサポートされている最大 MTU は、インスタンスタイプによって異なります。すべての Amazon EC2 インスタンスタイプで 1500 MTU がサポートされており、現在の多くのインスタンスサイズで 9001 MTU またはジャンボフレームがサポートされています。

ジャンボフレーム (9001 MTU)

ジャンボフレームでは、パケットあたりのペイロードサイズを拡張し、パケットオーバーヘッド以外のパケットの割合を高めることによって、1500 バイトを超えるデータを送信できます。同じ量の使用可能なデータを少ないパケットで送信することができます。ただし、特定の AWS リージョン (EC2-Classic)、1 つの VPC、または VPC ピア接続の外側では、最大パスが 1500 MTU になることがあります。VPN 接続およびインターネットゲートウェイを介して送信されるトラフィックは 1500 MTU に制限されます。パケットが 1500 バイト以上ある場合は、フラグメント化されます。または、Don't Fragment フラグが IP ヘッダーに設定されている場合は削除されます。

ジャンボフレームを、インターネットバウンドトラフィックや VPC を出るトラフィックに使用する場合には慎重に行ってください。パケットは中間システムによってフラグメント化されるため、このトラフィックの速度が低下します。VPC 外に向かうトラフィックの速度を低下させずに VPC 内のジャンボ フレームを使用するには、ルートごとに MTU サイズを設定するか、または MTU サイズやルートの異なる複数の Elastic ネットワークインターフェイスを使用します。

プレイスメントグループ内にコロケーションされたインスタンスでは、考えられる最大のネットワークスループットの実現するうえでジャンボフレームが役立ちます。この場合は、ジャンボフレームを使用することが推奨されています。詳細については、「プレイスメントグループ」を参照してください。

次のインスタンスは、ジャンボフレームをサポートしています。

  • 汎用: M3、M4、T2

  • コンピューティングの最適化: C3、C4、C5、CC2

  • 高速コンピューティング: CG1、F1、G2、G3、P2、P3

  • メモリの最適化: CR1、R3、R4、X1

  • ストレージを最適化: D2、HS1、I2、I3

パス MTU 検出

2 つのデバイス間のパス MTU を判断するために、パス MTU 検出が使用されます。パス MTU は、送信側ホストと受信側ホスト間のパスでサポートされている最大のパケットサイズです。ホストが受信側ホストの MTU よりも大きなパケット、またはデバイスの MTU よりも大きなパケットをパスに沿って送信する場合、受信側ホストまたはデバイスは ICMP メッセージ Destination Unreachable: Fragmentation Needed and Don't Fragment was Set (タイプ 3、コード 4) を返します。これによって、パケットが送信できるようになるまで MTU を調整するように元のホストに指示されます。

デフォルトでは、セキュリティグループはインバウンド ICMP トラフィックを許可しません。インスタンスがこのメッセージを受信でき、パケットが削除されないようにするには、[Destination Unreachable] プロトコルをインスタンスのインバウンドセキュリティグループルールに設定したカスタム ICMP ルールを追加する必要があります。詳細については、「パス MTU 検出」を参照してください。

重要

インスタンスのセキュリティグループを変更してパス MTU 検出を有効にした場合、一部のルーターによってジャンボフレームが無視されることがあります。VPC のインターネットゲートウェイによって、最大 1500 バイトのパケットだけが転送されます。インターネットトラフィックには、1500 MTU パケットが推奨されています。

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

tracepath コマンドを使用して 2 つのホスト間のパス MTU を確認することができます。このコマンドは、 Amazon Linux を含む、多くの Linux ディストリビューションでデフォルトで提供されている iputils パッケージの一部です。

tracepath を使用してパス MTU を確認するには

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

Copy
[ec2-user ~]$ tracepath amazon.com 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

この例では、パス MTU は 1500 です。

Linux インスタンス上の MTU の確認および設定

一部のインスタンスでは、ジャンボフレームを使用し、それ以外のインスタンスには標準フレームサイズを使用するように設定されています。VPC 内のネットワークトラフィックにはジャンボフレームを使用し、インターネットトラフィックには標準フレームを使用したいと思われるかもしれません。いずれにしても、予想したとおりにインスタンスが動作することを確認することをお勧めします。このセクションの手順に従って、ネットワークインターフェイスの MTU 設定を確認し、必要に応じてそれらを変更することができます。

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

以下の ip コマンドを使用して、現在の MTU 値を確認できます。出力例では、mtu 9001 が、このインスタンスにジャンボフレームが使用されていると示していることに注意してください。

Copy
[ec2-user ~]$ ip link show eth0 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

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

  1. MTU 値は、ip コマンドを使用して設定できます。次のコマンドで、目的の MTU 値を 1500 に設定できますが、代わりに 9001 を使用します。

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

    Amazon Linux の場合は、以下の行を /etc/dhcp/dhclient-eth0.conf ファイルに追加します。

    Copy
    interface "eth0" { supersede interface-mtu 1500; }

    Ubuntu の場合、次の行を /etc/network/interfaces.d/eth0.cfg に追加します。

    Copy
    post-up /sbin/ifconfig eth0 mtu 1500

    その他の Linux ディストリビューションの場合は、特定のドキュメントを参照してください。

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

トラブルシューティング

ジャンボフレームを使用したときに EC2 インスタンスと Amazon Redshift クラスター間の接続に問題が発生する場合は、Amazon Redshift Cluster Management Guide の「クエリがハングしたようになる」を参照してください。