パスMTU探索とは
パスMTU探索(経路MTU探索)は、送信元から宛先までの経路で、断片化せずに運べるIPパケットの最大サイズを調べ、送信サイズを合わせる仕組みです。英語の正式名称はPath MTU Discovery(パス・エムティーユー・ディスカバリー)、略称はPMTUD(ピーエムティーユーディー)です。この最大値をPath MTU(経路MTU)といいます。
一つの経路には、Ethernet、トンネル、事業者網など異なるリンクが含まれます。Path MTUは、その中で最も小さいMTUに制約されます。送信元がそれより大きなパケットを送り続けると、途中で分割が必要になったり、破棄されたりします。
PMTUDは回線速度を測る機能ではなく、一本のパケットをどこまで大きくできるかを調べる機能です。経路が変われば、同じ宛先でも適切な値が変わることがあります。

大きすぎると分かったら、送信単位を下げて記憶する
- 1初期値で送る
送信インターフェースのMTUや、過去に記憶したPath MTUを候補にする
- 2大きすぎることを知る
ICMPの通知、または試験パケットが届かなかった結果を手掛かりにする
- 3送信サイズを下げる
トランスポート層が一度に渡す量も調整し、通過できる大きさへ合わせる
- 4一定時間後に再確認
経路変更で上限が増減する可能性があるため、キャッシュを更新する
IPv6では、途中のルーターはパケットを分割しない
IPv6では、転送中のルーターが大きなパケットを断片化しません。次のリンクへ出せない場合、ルーターはパケットを破棄し、送信元へICMPv6のPacket Too Bigメッセージを返します。送信元は通知に含まれるMTUを基にサイズを下げます。
IPv4の古典的なPMTUDでは、送信側がDF(Don't Fragment)を指定し、断片化が必要なルーターからICMP Destination Unreachableの通知を受けます。IPv4は途中で断片化できる場合もありますが、PMTUDは断片化を避けて効率と信頼性を保つために使われます。
ICMPが遮断されると、大きな通信だけ止まることがある
大きすぎるというICMP通知がファイアウォールなどで捨てられると、送信元はサイズを下げるきっかけを失います。小さな要求は通るのに、画像の転送や暗号化通信の途中で止まるような現象はPMTUブラックホールの候補です。
これを補うPLPMTUD(Packetization Layer Path MTU Discovery/パケタイゼーション・レイヤー・パス・エムティーユー・ディスカバリー)は、TCPなどのパケット化層が異なる大きさのプローブを送り、到達確認から安全なサイズを探します。さらにRFC 8899のDPLPMTUDは、データグラム型トランスポートにも使える手順を定めています。
トンネルでは、内側に使えるMTUが小さくなる
トンネルは外側のヘッダーを追加するため、外側リンクが同じMTUなら内側パケットの上限が下がります。入口がその差を反映しない、あるいは出口からの通知が送信元まで適切に戻らないと、トンネル区間でだけ大きな通信が失敗します。
Pingが成功することだけでは、すべてのサイズが通る証明になりません。調査では小さなパケットと大きなパケットの違い、ICMP通知、トンネル追加分、MSS調整を切り分けます。
仕様の確認資料:RFC 8201「Path MTU Discovery for IP version 6」、RFC 1191「Path MTU Discovery」、RFC 4821「Packetization Layer Path MTU Discovery」、RFC 8899「Datagram PLPMTUD」