すべてのプロダクト
Search
ドキュメントセンター

Elastic Compute Service:MTU

最終更新日:Nov 20, 2024

最大送信単位 (MTU) は、特定のネットワークプロトコルを実行するネットワーク上で断片化されることなく送信できる各パケットの最大サイズです。 ネットワーク伝送では、大きなパケットが非効率的に送信されたり、頻繁に断片化または再構築されたりする場合、MTUを変更して、パケットがルーターやデータリンク層をより効率的に通過し、データの損失を防ぐことができます。 これにより、伝送速度および安定性が向上する。

MTU分類

MTUは、TCP/IP層とシナリオに基づいて次のタイプに分類されます。

  • データリンク層のMTU

    データリンク層で送信できるデータペイロードの最大サイズ。 イーサネットネットワークでは、標準MTUは、イーサネットフレームヘッダを除いて1,500バイトである。 標準イーサネットフレームのサイズは、次の式を使用して計算されます。標準イーサネットフレームのサイズ (1,518バイト)=宛先MACアドレスのサイズ (6バイト) + 送信元MACアドレスのサイズ (6バイト) + EtherTyp/Lengthフィールドのサイズ (2バイト) + データペイロードサイズ (1,500バイト) + 巡回冗長検査 (CRC) サイズ (4バイト) 。

  • IP MTU

    ネットワーク層で送信できる最大のパケットのサイズは、IPヘッダサイズおよびペイロードサイズを含むが、イーサネット (登録商標) フレームヘッダおよびトレーラは含まない。 ほとんどの場合、Alibaba CloudのMTUはIP MTUを指します。

    IP MTU (1,500バイト) = IPヘッダーサイズ (少なくとも20バイト) + TCPヘッダーサイズ (少なくとも20バイト) + データペイロードサイズ (1,460バイト) 。 IPヘッダおよびTCPヘッダのサイズは、オプションに基づいて異なり得る。

  • MTUのジャンボフレーム

    特定のベンダーは、標準のイーサネットフレームのサイズを約9,000バイトに増やすジャンボフレームの概念を導入しました。 ジャンボフレームはレイヤ2イーサネットヘッダーとCRCフィールドを含み、IP MTUはレイヤ2イーサネットヘッダーとCRCフィールドを含まない。 ジャンボフレームは、送信されるパケットの数を減らし、ネットワーク効率を向上させるのに役立ちます。 Alibaba Cloudは、それぞれ最大8,500バイトのジャンボフレームをサポートしています。 詳細については、「MTUとジャンボフレーム」をご参照ください。

  • パスMTU

    パスMTU (PMTU) は、2つのネットワークノード間のパス上で断片化されずに送信できるパケットの最大サイズである。 ソースノードと宛先ノードとの間の経路は、ルータおよびスイッチなどのすべてのネットワークデバイス、ならびに通信リンクなどのリンクをカバーする。

    Path MTU Discovery (PMTUD) 機能を使用して、ネットワーク内の2つのホスト間のすべてのリンク間の最小MTUを動的にプローブし、予期しないパケットの断片化を防ぐことができます。

MTU値を決定する要因

以下の要因がMTU値を決定します。

  • ネットワークデバイス: ルータやスイッチなどのさまざまなネットワークデバイスのハードウェア機能により、ネットワークデバイスの最大MTU値が決まります。 ネットワーク内のデバイスが他のデバイスより小さいMTUを有する場合、より小さいMTUは、ネットワーク通信のためのパケットサイズを制限するために有効になる。

  • ネットワーク接続タイプ: イーサネットやワイヤレスネットワークなど、さまざまなタイプのネットワーク接続には、さまざまなMTU要件があります。 例えば、無線ネットワークは小さなMTUを使用する。なぜなら、無線信号は不安定であり、大きなMTUはパケット損失およびデータ再送信を引き起こし得るからである。

  • 伝送媒体: ツイストペア、光ファイバ、ワイヤレスメディアなど、さまざまなタイプのネットワークメディアには、さまざまなMTU制限があります。

  • ネットワークプロトコル: 異なるネットワークプロトコルには異なるMTU要件があります。 例えば、イーサネットネットワークは、1,500バイトの標準MTUを使用する。

  • アプリケーション要件特定のアプリケーションは、ネットワーク全体のMTUに間接的に影響を与える特別なMTU要件を有することができる。

MTUがネットワークパフォーマンスに与える影響

正しいMTU設定は、ネットワーク通信のパフォーマンスと効率にとって重要です。 MTU設定は、ネットワークパフォーマンスに次の影響を与えます。

  • 断片化と再組み立て

    断片化: パケットが1つのネットワークから別のネットワークに異なるMTUで送信されるとき、元のパケットのサイズが宛先ネットワークのMTUを超える場合、パケットはフラグメントに分割されます。 再組み立て: フラグメントが宛先ホストに到達した後、それらはパケットに再組み立てされる。 断片化および再構築プロセスは、プロセスが追加のコンピューティングリソースを必要とするため、ネットワーク待ち時間を増加させ、伝送効率を低下させ、ネットワークデバイスの処理負荷を増加させ得る。

  • 低下した伝送効率

    断片化および再構築によって引き起こされる追加のオーバーヘッドは、パケットが小さなMTUを有するリンクを通過するときに、全体的なネットワーク伝送速度の低下をもたらす可能性がある。 断片化はまた、特定のプロトコルまたはアプリケーションの性能問題を引き起こし得る。 例えば、TCP再送信メカニズムは、フラグメント損失に起因して予期せずにトリガされる可能性があり、その結果、送信効率が低下する。

  • ネットワークの混雑

    過度に小さいMTUを指定すると、データが多数のフラグメントに分割され、ネットワークの輻輳のリスクが高まります。 大きなMTUは、送信されるパケットの数を減らし、ネットワークの輻輳を減らし、ネットワークスループットを向上させるのに役立ちます。

ネットワークパフォーマンスを最適化するために、伝送パス内のすべてのリンクに同じMTUを指定し、パス上の最小PMTUを超えない最大の値にMTUを設定することをお勧めします。 これは、断片化および再組み立ての必要性を減らし、伝送効率を改善する。 ビデオ会議、大容量ファイル転送、およびその他の帯域幅を必要とするタスクなどの特定のアプリケーションシナリオでは、MTU値を変更して、伝送効率と品質を向上させることができます。

ECSインスタンス上のNICのMTUの表示

MTUは、ネットワークインターフェースコントローラ (NIC) が一度に転送できるデータの最大バイト数を定義する。 デフォルトのMTUは、ネットワークインターフェイスが標準のイーサネットカプセル化とデータ送信をサポートするすべてのElastic Compute Service (ECS) インスタンスのNICで1,500バイトに設定されています。 ECSインスタンスがMTUとジャンボフレーム機能をサポートしている場合、8,500バイトのMTUを使用できます。 インスタンスに接続し、オペレーティングシステムコマンドを実行して、インスタンス上のNICのMTUを表示できます。

Windowsインスタンス上のNICのMTUの表示

サンプルオペレーティングシステム: Windows Server 2022。

サンプルインスタンスファミリー: ecs.g8i.large

  1. Windows ECSインスタンスに接続します。

    詳細については、「パスワードまたはキーを使用したWindowsインスタンスへの接続」をご参照ください。

  2. コマンドプロンプトまたはWindows PowerShellを開きます。

  3. 次のコマンドを実行して、インスタンス上のNICのMTUを表示します。

    netsh interface ipv4 show subinterfaces

    ジャンボフレーム機能を有効にする前

    次のコマンド出力は、イーサネットという名前のプライマリelastic network interface (ENI) とイーサネット2という名前のセカンダリENIのMTUが1,500バイトであることを示します。これはデフォルトのMTU値です。

    image

    ジャンボフレーム機能が有効になった後

    次のコマンド出力は、イーサネットという名前のプライマリENIとイーサネット2という名前のセカンダリENIのMTUが8,500バイトになることを示します。

    image

Linuxインスタンス上のNICのMTUの表示

サンプルオペレーティングシステム: Alibaba Cloud Linux 3.2。

サンプルインスタンスファミリー: ecs.g8i.large

  1. Linux ECSインスタンスに接続します。

    詳細については、「パスワードまたはキーを使用したLinuxインスタンスへの接続」をご参照ください。

  2. 次のコマンドを実行して、インスタンス上のNICのMTU値を表示します。

    ip a
    ジャンボフレーム機能を有効にする前

    次のコマンド出力は、eth0という名前のプライマリENIとeth1という名前のセカンダリENIのMTUが1,500バイトであることを示します。これはデフォルトのMTU値です。

    image

    ジャンボフレーム機能が有効になった後

    次のコマンド出力は、eth0という名前のプライマリENIとeth1という名前のセカンダリENIのMTUが8,500バイトになることを示します。

    image

pingコマンドを実行してPMTUをプローブします。

pingコマンドを実行してPMTUをプローブします。 次の方法を使用します。

警告

PMTUプローブテストは、ネットワーク通信に影響を及ぼし得る。 オフピーク時にテストを実行することを推奨します。

  • テスト方法: Do't Fragment (DF) フラグを1に設定したパケットを送信し、「Fragmentation Needed and Don't Fragment was set」ICMPエラーメッセージを受信するまで、送信するパケットのサイズを徐々に増やします。 メッセージは、前のMTU値が、PMTUからIPヘッダサイズ (20バイト) およびICMPヘッダサイズ (8バイト) を引いたものに等しいことを示す。

  • Testコマンド: 次のコマンドを実行して、ネットワークリンクのPMTUをプローブします。

    ping -c 1 -M do -s <Packet size> <Destination IP address>

    次のパラメータに注意してください。

    • -c1: 1つのパケットのみが送信されることを指定します。

    • -M do: DFフィールドが1に設定されることを指定します。

    • − s <パケットサイズ>: ICMPプロトコルデータユニット (PDU) のサイズを指定する。 初期サイズは、1472などの共通値から開始することができる。

      説明

      ping操作では、ICMPヘッダサイズは8バイトであり、IPヘッダサイズは20バイトである。 ICMP IPデータパケットのサイズは、以下の式を用いて計算される。ICMP IPデータパケットのサイズ=IPヘッダサイズ + ICMPヘッダサイズ + ICMP PDUサイズ=20バイト + 8バイト + 1,472バイト=1,500バイト。

  • サンプル調査テスト:

    • パスの両端にあるホストのMTU設定の例を次に示します。

      送信元ホスト (FROM) のIPアドレスは172.17.0.127です。 テストと比較を容易にするために、ECSジャンボフレーム機能が有効になり、MTUが8,500バイトに設定されています。 ジャンボフレーム機能を有効にする方法については、「ジャンボフレーム」トピックの「MTUとジャンボフレーム」セクションを参照してください。

      宛先ホスト (TO) のIPアドレスは172.17.0.128で、MTUは1,500バイトに設定されています。

    • テストを実行します。 次のコマンドを実行して、IPおよびICMPヘッダーサイズを除く8472バイトのパケットを送信します。

      ping -c 1 -M do -s 8472 172.17.0.128

    • テスト結果を照会します。 「Frag needed and DF set(mtu=1500) 」ICMPエラーメッセージが表示されます。これは、パケットが1,500バイトのMTUを超えており、フラグメント化する必要があることを示しています。 ただし、DFフラグが1に設定されているため、ネットワークパス上の転送デバイスではパケットを断片化できません。 その結果、パケットはドロップされる。

      image

NICのMTUを変更する

Alibaba Cloudでは、仮想プライベートネットワーク (VPN) ゲートウェイやトラフィックミラーリングなどの特定のシナリオまたはネットワークデバイスでは、ECSインスタンスから送信されるパケットのサイズに厳しい要件があります。 ネットワーク接続を確保したり、ユーザーエクスペリエンスを向上させるには、ECSインスタンスが転送できるパケットの最大サイズを減らす必要があります。 次の操作を実行して、上記のシナリオまたはネットワークデバイスのパケットサイズ要件を満たすようにECSインスタンスのNICのMTU値を変更できます。

警告
  • MTUを変更する前に、MTUの変更がネットワークパフォーマンスに与える影響を理解していることを確認してください。 不適切なMTUは、特定のタイプのパケットを断片化させ、ネットワーク効率を低下させる可能性がある。

    • LinuxオペレーティングシステムのMTUは、DHCPサーバーから自動的に取得できます。 DHCPが有効になっている場合、またはVPNゲートウェイシナリオなどのトンネリングシナリオにない場合は、NICのMTUを手動で変更する必要はありません。

    • ジャンボフレームを使用する場合などの特定のシナリオでは、MTUを手動で変更するのではなく、関連するベストプラクティスを参照して問題を解決します。 ジャンボフレーム機能を有効にする方法については、「ジャンボフレーム」トピックの「MTUとジャンボフレーム」セクションを参照してください。

  • ECSインスタンスのNICのMTU値を変更するときは、新しいMTU値がインスタンスでサポートされている最大MTUを超えないようにしてください。 NICの新しいMTU値がMTU制限を超えると、インスタンスにネットワーク接続の問題が発生する可能性があります。 インスタンスでサポートされる最大MTUは、ジャンボフレーム機能が有効になっている場合は8,500バイト、ジャンボフレーム機能が無効またはサポートされていない場合は1,500バイトです。

次の例では、異なるオペレーティングシステムを実行するECSインスタンスでNICのMTU値が1,399バイトに変更されています。

Windowsインスタンス

サンプルオペレーティングシステム: Windows Server 2022。

  1. Windows ECSインスタンスに接続します。

    詳細については、「パスワードまたはキーを使用したWindowsインスタンスへの接続」をご参照ください。

  2. コマンドプロンプトまたはWindows PowerShellを開きます。

  3. 次のコマンドを実行して、イーサネットNICのMTUを表示します。

    netsh interface ipv4 show subinterfaces

    次のコマンド出力は、イーサネットNICのMTUが1,500バイトであることを示します。

    image

    netshインタフェースipv4 show subinterfacesコマンドの詳細

    次のコマンドを実行して、netsh interface ipv4 show subinterfacesコマンドのパラメーターの詳細を表示します。

    netsh interface ipv4 show subinterfaces ?

    次のコマンド出力でパラメーターを説明します。

    image

  4. 次のコマンドを実行して、イーサネットという名前のNICのMTUを1,399バイトに設定し、MTU設定が完全に有効になるように設定します。

    netsh interface ipv4 set subinterface Ethernet mtu=1399 store=persistent

    OKが返されると、MTUが変更され、変更が有効になります。 エラーメッセージが返された場合は、プロンプトに従ってエラーを解決します。

    image

    イーサネットという名前のNICのMTUを照会します。 次のコマンド出力は、新しいMTUが期待どおりに有効になることを示します。

    image

    netsh interface ipv4 set subinterfaceコマンドの詳細

    次のコマンドを実行して、netsh interface ipv4 set subinterfaceコマンドのパラメーターの詳細を表示します。

    netsh interface ipv4 set subinterface ?

    次のコマンド出力でパラメーターを説明します。

    image

Linuxインスタンス

サンプルオペレーティングシステム: Alibaba Cloud Linux 3.2。

ipコマンドを実行してNICのMTU値を一時的に変更する
重要

インスタンス上のNICのMTU値を一時的に変更する場合に使用します。 ネットワークサービスまたはインスタンスを再起動すると、新しいMTUは無効になります。

  1. Linux ECSインスタンスに接続します。

    詳細については、「パスワードまたはキーを使用したLinuxインスタンスへの接続」をご参照ください。

  2. 次のコマンドを実行して、インスタンス上のNICのMTUを表示します。

    ip a

    次のコマンド出力は、現在のインスタンスのeth0という名前のプライマリNICとeth1という名前のセカンダリENIのMTUが1,500バイトであることを示しています。

    image

  3. 次のコマンドを実行して、eth1 NICのMTUを一時的に1,399バイトに変更します。

    sudo ip link set dev eth1 mtu 1399

    NIC情報を照会します。 次のコマンド出力は、eth1 NICのMTUが1,399バイトに変更されたことを示します。

    image

NICのネットワーク構成ファイルを変更して、MTUを完全に変更します
重要
  • NICのネットワーク設定ファイルを変更することで、NICのMTU値を変更できます。 その後、ネットワークインターフェースサービスまたはインスタンスを再起動して、変更を完全に有効にする必要があります。

  • ネットワーク設定ファイルは、Linuxのディストリビューションとバージョンによって異なります。 次の例では、Red Hat Enterprise Linux (RHEL) またはCentOSと互換性のあるAlibaba Cloud Linux 3.2イメージが使用されています。

  • eth1という名前のセカンダリENIのMTUを変更する前に、セカンダリENIをインスタンスにバインドし、セカンダリENIを正しく設定してください。 詳細については、「セカンダリENIの設定」をご参照ください。

  1. Linux ECSインスタンスに接続します。

    詳細については、「パスワードまたはキーを使用したLinuxインスタンスへの接続」をご参照ください。

  2. 次のコマンドを実行して、インスタンス上のNICのMTUを表示します。

    ip a

    コマンド出力は、現在のインスタンスのeth0という名前のプライマリNICとeth1という名前のセカンダリENIのMTUが1,500バイトであることを示します。

    image

  3. 次のコマンドを実行して、NICの構成ファイルを表示します。

    ls /etc/sysconfig/network-scripts

    次のコマンド出力は、eth0およびeth1の構成ファイルを示します。

    image

  4. 次のコマンドを実行して、cloud-initのネットワーク設定機能を無効にします。

    sudo vim /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg

    次の設定を設定ファイルに追加します。

    network: {config: disabled}
  5. 次のコマンドを実行してeth1のネットワーク構成ファイルを変更し、MTU設定を追加します。

    sudo vi /etc/sysconfig/network-scripts/ifcfg-eth1

    image

  6. 次のコマンドを実行して、ネットワークサービスを再起動し、新しい構成を有効にします。

    sudo systemctl restart NetworkManager

    NIC情報を照会します。 次のコマンド出力は、eth1のMTUが1,399バイトになることを示します。

    image

MTUの制限

ECSネットワークパスのMTU制限

MTUとジャンボフレームをサポートするECSインスタンスをソースホストとして使用する場合、ターゲットホストでサポートされる最大MTUは使用シナリオによって異なります。 次の表に、ネットワークパスの最大MTUを示します。

宛先ホスト

最大MTU (バイト)

ジャンボフレーム機能が有効になっており、同じ仮想プライベートクラウド (VPC) またはピアリングVPCに存在するECSインスタンス

8,500

ジャンボフレーム機能が無効になっており、同じVPCまたはピアリングVPCに存在するECSインスタンス

1,500

Cloud Enterprise Network (CEN) を使用して接続されているVPC内のECSインスタンス

Connect Expressを使用して接続されているオンプレミスデータセンターのホスト

elastic IPアドレスまたはパブリックIPアドレスを使用してアクセスできる外部ホスト

詳細については、「VPCピアリング接続の概要」および「VPC接続の管理」をご参照ください。

MTUのクラウドネットワークサービス

次のシナリオでは、ネットワークサービスのMTU制限に注意してください。

  • デフォルトでは、Alibaba Cloudネットワーク内のパスは1,500バイトのデフォルトMTUをサポートしています。 ジャンボフレームをサポートしていないECSインスタンスの場合、有効なMTUは、VPN Gatewayなどの関連するネットワークサービスのMTUによっても決定されます。

  • UDPやICMPなどのTCP以外のプロトコルで特定のネットワークサービスにアクセスする場合は、ネットワークサービスのMTU制限に注意してください。

ほとんどのAlibaba Cloudサービスはジャンボフレームをサポートしていません。 次の表に、特定のネットワークサービスでサポートされる最大MTUを示します。

クラウドネットワークサービス

最大MTU (バイト)

説明

NAT Gateway

1,500

なし。

Server Load Balancer (SLB) (Application Load Balancer (ALB) 、Network Load Balancer (NLB) 、Classic Load Balancer (CLB) を含む)

ALBインスタンスとCLBインスタンスは、断片化されたパケットを転送できません。 ECSインスタンスから送信される各パケットのサイズ制限を、UDPまたはICMP通信用に1,500バイトに設定します。

OSS (Object Storage Service) やApsaraDB RDSなどのその他のAlibaba Cloudサービス

トラフィックはSLBサービスを通過します。 SLBサービスの制限に注意してください。

Global Accelerator (GA)

なし。

Cloud Firewall

なし。

PrivateLink

なし。

VPN Gateway

1,399

詳細については、「MTUの設定」をご参照ください。

MTUを適切に指定する

MTU設定を最適化して、ネットワークの効率とパフォーマンスを向上させ、パケットのフラグメント化と再構築の必要性を減らすことができます。 MTU設定の次のベストプラクティスに注意してください。

  • 合理的なMTUを決定する:

    • 実際のネットワーク環境の標準MTU値を理解します。 デフォルトのイーサネットMTUは1,500バイトです。 詳細については、このトピックの「MTU分類」セクションをご参照ください。

    • PMTUは、pingコマンドを実行することによってプローブできます。 詳細については、このトピックの「PMTUをプローブするためのpingコマンドの実行」をご参照ください。

  • PMTUDを有効にして適応させる。 オペレーティングシステムまたはネットワークデバイスがPMTUDをサポートし、PMTUDが有効になっていることを確認します。 PMTUD機能を使用して、ネットワークパスの最大MTUを動的にプローブして適応させることができます。 アプリケーションは、断片化を防ぐためにパケットのサイズを縮小することにより、ICMPエラーメッセージを検出して応答します。

  • ネットワークデバイスの制限に注意してください。 転送中のデータパケットが断片化または破棄されないように、ルーター、スイッチ、およびその他のネットワークデバイスのMTU設定がインスタンスのオペレーティングシステムのMTU設定と一致していることを確認してください。

  • 特定のアプリケーションに適応します。 特定のアプリケーションまたはプロトコルは、推奨MTU値を提供する。 VoIPやビデオ会議などのリアルタイムアプリケーションでは、小さなMTUを使用してレイテンシを削減し、パケット伝送効率を向上させることができます。

  • ネットワークのパフォーマンスを定期的に監視します。 ネットワークパフォーマンスとMTU値の変化を定期的に監視し、ネットワークスループットテスト、レイテンシーテスト、アプリケーション固有のパフォーマンスの評価などのテストを実施して、変化するネットワーク状態に適応します。