メニュー
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 ネットワークインターフェイスを使用します。

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

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

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

  • 汎用: M3、M4、T2

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

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

  • ストレージを最適化: D2、HI1、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 ルールを追加する必要があります。詳細については、Amazon EC2 のセキュリティグループのトピックで、「セキュリティグループへのルールの追加」および「API とコマンドの概要」を参照してください。

重要

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

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

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

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

  • 次のコマンドを使用して、Amazon EC2 インスタンスと別のホスト間のパス MTU を確認します。宛先として DNS 名または IP アドレスを使用できます。この例では、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 です。

    注記

    別の Amazon EC2 インスタンスに対して tracepath を使用している場合、そのインスタンスのセキュリティグループルールで、インバウンド UDP トラフィックを許可していることの確認が必要になることがあります。

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

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

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

  • インスタンスに Linux オペレーティングシステムが使用されている場合は、ip コマンドで MTU 値を確認することができます。現在の MTU 値を調べるには、次のコマンドを実行します。

    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

    上記の例では、mtu 9001 が出力されていることから、このインスタンスにジャンボフレームが使用されていることがわかります。

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

  1. インスタンスに Linux オペレーティングシステムが使用されている場合は、ip コマンドで MTU 値を設定することができます。目的の MTU 値を設定するには、次のコマンドを実行します。この手順では、MTU を 1500 に設定しますが、9001 に設定する場合も手順は同じです。

    Copy
    [ec2-user ~]$ sudo ip link set dev eth0 mtu 1500

  2. (オプション) 再起動後もネットワーク MTU 設定を維持するには、オペレーティングシステムのタイプに基づいて、次の設定ファイルを変更します。この手順では、Amazon Linux と Ubuntu について説明します。その他のディストリビューションについては、特定のドキュメントを参照してください。

    • 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

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

トラブルシューティング

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