メニュー
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、F1、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 を確認することができます。このコマンドは、 iputils からダウンロードおよびインストールできる Amazon Linux

To check path MTU with tracepath

  • Use the following command to check the path MTU between your Amazon EC2 instance and another host. You can use a DNS name or an IP address as the destination; this example checks the path MTU between an EC2 instance and amazon.com.

    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

    In this example, the path MTU is 1500.

    注記

    If you're using tracepath to another Amazon EC2 instance, you may need to check that the instance's security group rules allow inbound UDP traffic.

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

一部の AMI では、ジャンボフレームをサポートしているインスタンスについてはジャンボフレームを使用し、それ以外のインスタンスには標準フレームサイズを使用するように設定されています。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

To set the MTU value on a Linux instance

  1. You can set the MTU value using the ip command. The following command sets the desired MTU value to 1500, but you could use 9001 instead.

    Copy
    [ec2-user ~]$ sudo ip link set dev eth0 mtu 1500
  2. (Optional) To persist your network MTU setting after a reboot, modify the following configuration files, based on your operating system type.

    For Amazon Linux, add the following lines to your /etc/dhcp/dhclient-eth0.conf file.

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

    For Ubuntu, add the following line to /etc/network/interfaces.d/eth0.cfg.

    Copy
    post-up /sbin/ifconfig eth0 mtu 1500

    For other Linux distributions, consult their specific documentation.

  3. (Optional) Reboot your instance and verify that the MTU setting is correct.

トラブルシューティング

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