Ciscoルータで学ぶネットワーク > MTUサイズを調べる
当サイト概要CCNA・CCENT・資格書籍学習環境の準備リンクについてリンクの申込お問い合せプライバシーポリシー
◆MTUサイズを調べる

pingでMTUサイズを調べる


 通信回線ごとにMTUが決まっているので、パケット長よりもMTUが小さい通信経路を通過させる場合、パケットを小さい側のMTUのサイズにフラグメンテーション(分割化処理)を行わないと、通信回線を通過できなくなります。

しかし、フラグメンテーションを行うと以下の問題が発生し、ネットワークの利用効率が悪化してしまいます。

●フラグメンテーションのオーバヘッドが発生する。
●パケットを分割するので、パケットの数が増加する。
●分割したパケットの何れかが破損した場合は、元のIPパケットの全てが台無しになる。


この問題を解決するには、経路の途中で分割されないサイズでパケットを送信する必要があります。

ping コマンドを使用すれば、宛先までの最適なMTU値を調査することができます。

ping コマンドの使用方法は以下の通りです。

●Windowsの場合
【使用法】
ping [-t] [-a] [-n 要求数] [-l サイズ] [-f] [-i TTL] [-v TOS][-r ホップ数] [-s ホップ数] [[-j ホスト一覧] | [-k ホスト一覧]][-w タイムアウト] [-R] [-S ソースアドレス] [-4] [-6] ターゲット名

コマンドプロンプト上から、

C:¥>ping -f -l [サイズ] <宛先>

サイズには、1,450、1,400など、数値を徐々に小さくしてゆきながら試してゆきます。

 -f : パケットの断片化を行わないようにするオプション
 -l : パケットサイズを指定するオプション


上の例では、フラグメント化が必要なので、まだ、小さいサイズを指定してping コマンドを試す必要があります。

そこで、pingが成功するまで、サイズを小さくして試してゆきます。

そうすると、今回は、サイズが「1,426」でping コマンドが成功しました。


1,426bytesのデータまでは正しく送受信できていることが分かります。

MTUサイズ = 1,426 + 8(ICMPヘッダ) + 20(IPヘッダ) = 1,454

最適なMTUサイズが、「1,454bytes」ということになります。

イーサネットのMTUサイズである1,500bytesよりも小さな値になっています。

 これは、PPPoE(ADSLやFTTH)のインターネット回線などを使用している場合、そのプロトコルの分だけ、MTUサイズが小さくする必要があるからです。

NTTのFLET'Sなどでは、PPPoEなどのヘッダ・サイズの分である46bytesが必要です。

その為、MTUサイズが「1,454bytes」となっています。

 ここまでの説明は、パケットの断片化を行わないようにDFフラグをセットしたIPパケットに対して、経路途中のルータや宛先コンピュータがエラーを返す場合が前提です。

 ルータやコンピュータの設定によっては、エラーを報告しないようにしている場合があります。また、経路途中のファイアウォールによってエラー報告がフィルタリングされている場合もあります。その場合には、最適なMTU値を調査することができません。


Path MTU Discovery


 ルータは、大き過ぎるパケットを受信した場合、DFフラグがセットされていれば、そのパケットを破棄します。そして、ICMPのエラー通知(Type3 Code4)を送信元ホストへ送信するようになっています。

DFフラグがセットされていない場合は、フラグメンテーションを行いパケットを分割して送信します。


 ICMPのエラー通知(Type3 Code4)を受け取った送信元の端末は、通知されたMTUを経路MTUとして使用します。なお、この経路MTU値は、しばらくの間、キャッシュされるようになっています。

Type 3の場合のコード一覧を下の表に示します。

コード 情報 意味
0 Netwrok Unreachable ネットワークに到達不能
1 Host Unreachable 特定のホストに到達不能
2 Protocol Unreachable プロトコルに到達不能
3 Port Unreachable ポートに到達不能
4 Fragmentation Needed and DF set フラグメンテーションが必要
5 Source Route Failed ソースルート通りにルーティングできない
6 Destination Network Unknown 宛先ネットワークを知らない
7 Destination Host Unknown 宛先ホストを知らない
8 Source Host Isolated 送信元が通信できない
9 Network Administartively Prohibited 送信先ネットワークが拒否している
10 Destinantion Host Administartively Prohibited 送信先ホストが拒否している
11 Network Unreachable For TOS 要求したTOSでネットワークに到達不能
12 Host Unreachable For TOS 要求したTOSでホストに到達不能
13 Communication Administratively Prohibited 通信が拒否されている

 エラー通知(Type3 Code4)は、「Fragmentation Needed and DF set」です。送信元にフラグメンテーションが必要であることを通知するための通知であることが分かります。

 しかし、経路の途中で、ICMPのエラー通知(Type3 Code4)がフィルタリングされている場合があります。その場合、適切なMTU値を送信元に通知することができません。この状態を「Path MTU Discovery Black Hole」と言います。

ネットワークの管理者は、ICMPをフィルタイングする際、ICMPを根こそぎ拒否の設定にしがちです。

Ciscoルータであれば、「deny icmp any any」と設定してしまいがちなのです。

 ICMPのフィルタリングでは、Code3の「Destination Unreachable」とCode11の「Time Exceeded」 は許可することが推奨されています。
◆Menu
◆スポンサードリンク
◆Amazon

Copyright(c)2014〜 Ciscoルータで学ぶネットワーク All rights reserved.