Cisco機器から通信経路上のMTUを確認する方法を説明します。
MTUとは
MTUとは、「Maximum Transmission Unit」の略で、1回の通信で転送可能な最大のデータグラムサイズことを指します。イーサネットの場合は、デフォルトで1500Byteとなっており、MTUの値を超えたデータグラムは、パケットを分割して転送する必要があります。この分割作業のことを「フラグメント化・フラグメンテーション」と言います。
ネットワーク構成
以下のネットワークをCMLで構築し検証を行います。
各機器の基本設定
通信経路上のMTU確認(デフォルト値)
Router1からRouter4に向けてデータサイズを変えながらICMP通信(Ping)を行うことで、通信経路上のMTU値を確認します。また、”df-bit”オプションを付けることで、ルーター上でフラグメントすることを防ぐことができます。
1500Byte + df-bit無し
問題無く通信可能です。
ping 192.168.3.4 size 1500
Router1#ping 192.168.3.4 size 1500
Type escape sequence to abort.
Sending 5, 1500-byte ICMP Echos to 192.168.3.4, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 8/11/13 ms
パケットキャプチャ(Router1-Router2間)
フラグメントされずに通信が行えています。※イーサネットヘッダーが14Byte追加されるため、全体のパケット長は1514Byteとなります。
1501Byte + df-bit無し
問題無く通信可能ですが、パケットキャプチャを確認すると、Router1から送出するときにフラグメントされていることが分かります。
ping 192.168.3.4 size 1501
Router1#ping 192.168.3.4 size 1501
Type escape sequence to abort.
Sending 5, 1501-byte ICMP Echos to 192.168.3.4, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 12/14/17 ms
パケットキャプチャ(Router1-Router2間)
フラグメントされて通信が行えています。
1500Byte + df-bit有り
問題無く通信可能です。
ping 192.168.3.4 size 1500 df-bit
Router1#ping 192.168.3.4 size 1500 df-bit
Type escape sequence to abort.
Sending 5, 1500-byte ICMP Echos to 192.168.3.4, timeout is 2 seconds:
Packet sent with the DF bit set
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 4/9/15 ms
1501Byte + df-bit有り
イーサネットの最大(デフォルト)のMTU値は1500Byteのため、1501ByteのパケットはRouter1から送出ができず、通信不可となります。
ping 192.168.3.4 size 1501 df-bit
Router1#ping 192.168.3.4 size 1501 df-bit
Type escape sequence to abort.
Sending 5, 1501-byte ICMP Echos to 192.168.3.4, timeout is 2 seconds:
Packet sent with the DF bit set
.....
Success rate is 0 percent (0/5)
通信経路上のMTU確認(Router2-Router3間のMTUを1400に変更)
Router2-Router3間のMTUを1400Byteに変更して同様の確認を行います。
ネットワーク構成変更
下記の通り、Router2とRouter3の設定を変更します。
interface GigabitEthernet0/1
ip mtu 1400
1400Byte + df-bit無し
問題無く通信可能です。
ping 192.168.3.4 size 1400
Router1#ping 192.168.3.4 size 1400
Type escape sequence to abort.
Sending 5, 1400-byte ICMP Echos to 192.168.3.4, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 6/9/14 ms
パケットキャプチャ(Router1-Router2間)
フラグメントされずに通信が行えています。
パケットキャプチャ(Router2-Router3間)
フラグメントされずに通信が行えています。
1401Byte + df-bit無し
問題無く通信可能ですが、パケットキャプチャを確認すると、フラグメントされていることが分かります。
ping 192.168.3.4 size 1401
Router1#ping 192.168.3.4 size 1401
Type escape sequence to abort.
Sending 5, 1401-byte ICMP Echos to 192.168.3.4, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 9/11/13 ms
パケットキャプチャ(Router1-Router2間)
Router1からのリクエストはフラグメントされていませんが、Router4からのリプライに関しては、MTU1400の区間を通過するためフラグメントされて通信が行えています。
パケットキャプチャ(Router2-Router3間)
Router1からのリクエスト・Router4からのリプライともに、MTU1400の区間を通過するためフラグメントされて通信が行えています。
1400Byte + df-bit有り
問題無く通信可能です。
ping 192.168.3.4 size 1400 df-bit
Router1#ping 192.168.3.4 size 1400 df-bit
Type escape sequence to abort.
Sending 5, 1400-byte ICMP Echos to 192.168.3.4, timeout is 2 seconds:
Packet sent with the DF bit set
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 8/10/13 ms
1401Byte + df-bit有り
通信経路上のMTU値を1400Byteに変更しているため、1401ByteのパケットはRouter2から送出ができず、通信不可となります。
ping 192.168.3.4 size 1401 df-bit
Router1#ping 192.168.3.4 size 1401 df-bit
Type escape sequence to abort.
Sending 5, 1401-byte ICMP Echos to 192.168.3.4, timeout is 2 seconds:
Packet sent with the DF bit set
M.M.M
Success rate is 0 percent (0/5)
Router2から「ICMP Destination Unreachable (MTU超過しているがフラグメント不可)」が返ってくるため、”M”という表示になります。全ての表示がMとならない理由は下記を参照してください。
【関連】ICMP Unreachableの送信間隔(Cisco機器)
この結果から、通信経路上のMTUが1400Byteであることが分かります。※1400Byteでは通信可能ですが、1401Byteではフラグメントできずに通信不可となるためです。
パケットキャプチャ(Router1-Router2間)
Router2から「ICMP Destination Unreachable (Fragmentation needed)」が返ってきていることが分かります。
このパケットの詳細を確認すると、以下のType・Codeであることが分かります。
Type:3 (Destination unreachable)
Code:4 (Fragmentation needed)
以上で、通信経路上のMTU確認方法(Cisco機器)の説明は完了です!