最大伝送単位(MTU)とは、ネットワークインターフェースまたはネットワークパスが、パケットを分割することなく送信できる最大のパケットサイズ(バイト単位)のことです。標準的なイーサネットのMTUは1500バイトですが、VOSインターフェースでは、高スループットリンク向けのジャンボフレームを含め、72バイトから9000バイトまでの値を受け付けます。
主なポイント
- MTUとは、フラグメンテーションが行われる前に、1つのインターフェースから送信できる最大のパケットサイズのことです。
- 標準のイーサネットMTUは1500バイトですが、ジャンボフレームでは9000バイトに増加します。
- ピア間の不一致により、OSPFの隣接関係などのプロトコルが停止することがあります。
- パスMTUディスカバリーは、エンドツーエンドの経路上で最小のMTUを特定します。
- VOSインターフェースでは、72~9000バイトの範囲で設定されたMTU値を受け付けます。
このページの内容: その重要性仕組み種類MTU およびVersaよくある質問
MTUはなぜ重要なのでしょうか?
MTUは、1つのパケットが伝送できるデータ量の上限を決定し、効率と信頼性の両方に影響を与えます。この値が低すぎると、オーバーヘッドによって帯域幅が無駄に消費されます。つまり、パケット数が増え、処理負荷が高まり、スループットが低下します。一方、伝送能力を超えるほど高い値に設定すると、パケットがドロップされたり断片化されたりし、再組み立てが行われる各ホップで遅延やCPU負荷が増加します。
MTUの不一致もまた、パケットサイズとは無関係に見える障害の典型的な原因の一つです。2台のOSPFルーターは、リンク状態データベースの同期中にインターフェースのMTUを交換しますが、その値が一致しない場合、ネイバー間のハンドシェイクは完了せず、セッションは中間状態で停滞してしまいます。症状と原因が全く異なるため、正常に動作していたリンクでトラフィックの通過が停止した際、エンジニアが真っ先に確認する項目の一つがMTUです。
MTUとは何ですか?
MTUはインターフェースで適用されます。これは、インターフェースが1つのフレームで送受信できる最大のプロトコルデータ単位(ペイロードとヘッダーの合計)です。イーサネットの従来のデフォルト値は1500バイトであり、これは初期のハードウェアによって設定されたもので、現在もパブリックインターネット全体において安全な仮定として用いられています。ジャンボフレームは、エンドツーエンドでこれをサポートするリンクおよびハードウェアにおいて、その上限を通常9000バイトまで引き上げます。
パケットが通過するリンクのMTUを超える場合、デバイスはそのパケットをフラグメント化するか、あるいは「フラグメント化禁止(Don’t Fragment)」ビットが設定されている場合は、そのパケットを破棄してICMPの「フラグメント化が必要」メッセージを返します。パスMTUディスカバリはこの仕組みを利用しています。送信側は自身のMTUから開始し、フラグメント化が必要という応答を受けるたびにMTUを段階的に下げ、経路上の最小MTUに収束させていきます。
MTUの種類
標準のイーサネットMTU(1500バイト)は、IPv4ネットワークのデフォルト設定であり、経路の対応状況が不明な場合には最も安全な選択肢となります。これは、ほぼすべてのデバイスや通信事業者がこれをサポートしているためです。ジャンボフレーム(最大9000バイト)は、データセンター間接続などの高スループット回線においてパケットごとのオーバーヘッドを低減しますが、経路上のすべてのデバイスがこの大きなサイズに対応していなければ、パケットがフラグメント化してしまいます。トンネルによるMTUの縮小は、カプセル化のオーバーヘッドによるものです。IPsec、GRE、VXLANトンネルはヘッダーを追加するため、トンネル内の利用可能なMTUはインターフェースのMTUよりも小さくなります。これが、「小規模なトラフィックでは動作するが、大きなパケットでは失敗する」という現象の一般的な原因です。IPv6の最小MTU(1280バイト)はプロトコルの下限値です。すべてのIPv6リンクは少なくともこのサイズをサポートする必要があり、IPv6ルーターは転送中にパケットをフラグメント化しないため、パスMTUディスカバリが必須となります。
MTU &Versa
VOSのインターフェースでは、すべてのインターフェースタイプにおいて、MTUが直接設定可能なフィールドとして公開されています。VOSデバイス上でインターフェース(WANおよびLANイーサネットポート、サブインターフェース、トンネルおよびGREインターフェース)を設定する場合、MTUフィールドには72~9000バイトの値を設定できます。一部のサブインターフェースでは9600バイトまで設定可能ですが、設定を行うまではデフォルト値は存在しません。 Concerto でも同様のフィールドが表示されます。有線およびアグリゲート・イーサネット・インターフェースのLAN インターフェースを設定する場合、「リンク設定」の下で、MTU を同じ範囲で指定できます。
MTUの不一致は、VersaのOSPFトラブルシューティングガイドでも特定された障害モードとして挙げられています。2つのピアのインターフェースMTUが異なる場合、データベース記述の交換中に隣接関係がEXSTART状態で停滞し、完了しません。この問題を解決するには、ローカルのMTUとリモートピアがアドバタイズしている値を照合し、両者を一致させる必要があります。そうすれば、隣接関係は正常に確立されます。
よくある質問
イーサネットの標準的なMTUサイズはどれくらいですか?
標準的なイーサネットのMTUは1500バイトであり、これは初期のイーサネットハードウェアの制限によって定められたもので、現在もパブリックインターネット全体でデフォルトの前提として扱われています。この値は十分に小さいため、事実上すべてのスイッチ、ルーター、およびキャリアリンクが、両端で特別な設定を行うことなくこれをサポートしています。
ジャンボフレームとは何ですか?
ジャンボフレームとは、標準の1500バイトのMTUを超えるイーサネットフレームのことで、通常は最大9000バイトまでです。これらは、高スループットのリンクにおいてパケットごとのヘッダーのオーバーヘッドを軽減しますが、経路上のすべてのデバイスが同じサイズに対応していなければ、パケットがフラグメント化されるか、または破棄されてしまいます。
接続された2つのデバイス間でMTUが一致しない場合、どのようなことが起こるのでしょうか?
MTUより小さいパケットは通常通り通過しますが、それより大きいパケットはDFビットの設定に応じて破棄されるか、フラグメント化されます。OSPFのようなルーティングプロトコルでは、MTUの不一致により、両側がインターフェースのMTUについて合意する必要があるため、ネイバー間の隣接関係の確立が妨げられることがあります。
パスMTUディスカバリーとは何ですか?
パスMTUディスカバリ(PMTUD)とは、送信者が宛先への経路上で最小のMTUを特定するために用いるプロセスです。送信者は「Don’t Fragment」ビットが設定されたパケットを送信し、経路上のルーターからパケットが大きすぎると報告されるたびに、パケットサイズを縮小します。
Versa のVOSインターフェースは、どのMTU範囲に対応していますか?
VOSインターフェースでは、ほとんどのインターフェースタイプで72~9000バイトのMTU値が指定可能ですが、一部のサブインターフェースでは最大9600バイトまで対応しています。デフォルト値は設定されていません。DirectorまたはConcertoのいずれを使用する場合でも、インターフェースを設定する際には毎回明示的に設定する必要があります。
MTUに関する詳細
さらに詳しく知りたい場合は、私たちが信頼している情報源を以下にご紹介します。
| RFC 791: インターネットプロトコル | RFC 1191: パスMTU検出 |
|---|---|
| データグラムおよびフラグメンテーションの規則が、IP層においてMTUがなぜ重要であるかを規定している、基礎となるIP仕様。 | 送信者が固定サイズを前提とするのではなく、経路上の最小MTUをどのように特定するかを規定したIETF規格。 |
関連用語
MTUについてお読みなら、次はこれらもぜひチェックしてみてください。
| 仮想ローカルエリアネットワーク | パス | ネットワーク |
|---|---|---|
| VLANタグ付けを行うと、フレームのヘッダーにバイトが追加されるため、パケットがインターフェースの設定MTUを超えてしまう可能性があります。 | エンドツーエンドのSD-WAN経路において、その経路でフラグメント化されずに伝送できる最大パケットサイズは、最も帯域幅の狭いリンクのMTUによって決定される。 | 管理用のインターフェースをグループ化するVOSオブジェクト――ネットワーク内の各インターフェースは、それぞれ個別に設定されたMTUを持っています。 |