MTU とフラグメンテーション
1つのパケットで一度に運べる最大サイズがMTUです。超える場合の分割(フラグメント)の仕組みと、経路上で起きやすい不具合までを解説します。
- 1.MTU は1パケットで運べる最大サイズ。イーサネットでは 1500バイト が標準。
- 2.MTUを超えるデータは フラグメント(分割)され、受信側で再構築される。
- 3.経路の最小MTUを探る パスMTU探索 が失敗すると、通信が無言で止まる不具合が起きやすい。
MTU とは
MTU(Maximum Transmission Unit) は、ネットワークが1つのパケット(フレーム)で一度に運べるデータの最大サイズです。イーサネットでは 1500バイト が標準で、これを超えるデータはそのままでは1つのパケットに収まりません。
トラックの最大積載量にたとえると分かりやすいです。荷物が積載量を超えるなら、複数のトラックに分けて運ぶ必要があります。ネットワークでも同様に、MTUを超えるデータは小さく分けて送ります。
- MTUは区間(リンク)ごとの上限
- 区間によってMTUは異なることがある
フラグメンテーション(分割)
送るデータがMTUを超える場合、IPはそれを複数の小片に分割します。これが フラグメンテーション です。各片には「元のどの位置か」を示す情報が付き、受信側がそれをもとに 再構築(リアセンブル) して元のデータに戻します。
- 分割された片は、それぞれ独立したパケットとして流れる
- すべての片が揃って初めて元のデータに復元できる
- 1つでも欠けると、そのデータ全体が再送対象になる
分割は動作はしますが、処理の手間が増え、欠落時のロスも大きくなるため、できれば避けたい挙動です。
TCPは MSS(Maximum Segment Size)として「1セグメントの最大データ量」を接続時にすり合わせ、MTUに収まるサイズで送ります。おおむね MSS = MTU − IPヘッダ − TCPヘッダ で、IPv4・MTU1500なら 1460バイト が目安です。これによりIP層での分割を避けます。
パスMTU探索
通信経路は複数の区間をまたぎ、途中にMTUの小さい区間があると、そこで詰まります。経路全体で通せる 最小のMTU(パスMTU) を見つける仕組みが パスMTU探索(PMTUD) です。
仕組みはこうです。
- 「分割禁止」の印(DFビット)を付けたパケットを送る
- MTUを超える区間では転送できず、ルータが ICMPで「大きすぎる」と通知 する
- 送信側はその通知を見て、サイズを下げて送り直す
これにより、経路上で分割を起こさずに最適なサイズへ自動調整できます。
よくある不具合
MTU 周りのトラブルは「つながるが、ある操作だけ無言で止まる」という分かりにくい形で出ます。
| 症状 | よくある原因 |
|---|---|
| 小さい通信はOK、大きい転送だけ固まる | パスMTU探索の失敗(後述) |
| VPN/トンネル経由だけ不調 | カプセル化でMTUが目減りしている |
| pingは通るがファイル転送が止まる | ICMPの遮断でMTU通知が届かない |
特に多いのが PMTUDブラックホール です。ファイアウォールが「大きすぎる」を伝えるICMPを遮断すると、送信側はサイズを下げる合図を受け取れず、大きいパケットだけが永遠に届かないまま固まります。
セキュリティのつもりでICMPを全面ブロックすると、パスMTU探索に必要な「Fragmentation Needed」通知まで止めてしまいます。すると大きいパケットが無言で消え、原因の見えづらい通信障害になります。ICMPは種類を選んで通すのが安全です。
トンネルと MTU
VPNやIP-in-IPなどトンネルでは、元のパケットを別のヘッダで包む(カプセル化)ため、その分だけ実際に運べる中身が小さくなります。MTUを意識せず設定すると、トンネル経由だけ大きい通信が壊れます。
- カプセル化のオーバーヘッドぶん、内側のMTU/MSSを下げる
- TCPでは MSSクランプ で接続時のMSSを強制的に小さくする対策がよく使われる
# 分割禁止で 1472 バイト送れるか確認(IPv4・Linux)
ping -M do -s 1472 example.com
# インターフェースの MTU を確認
ip link show
「1度に運べる量には上限がある」「超えたら分割される」「経路の最小値を見つける必要がある」の3点を押さえると、MTU起因の不可解な不具合を切り分けやすくなります。
ネットワーク Article
MTU とフラグメンテーションを実務で読む
TL;DRは入口です。実際に選ぶ・使う段階では、何を解決するか、何と比較するか、導入後にどこで詰まるかまで見る必要があります。
解決すること
MTU
比較で見る軸
難易度: intermediate / カテゴリ: ネットワーク / タグ数: 3
導入後に効く点
MTUを超えるデータは フラグメント(分割)され、受信側で再構築される。
先に潰すリスク
用語だけ覚えても、設計・実装・運用でどこに効くかを確認しないと判断を誤る。
- 難易度
- intermediate
- カテゴリ
- ネットワーク
- タグ数
- 3
判断チェックリスト
- 自社の用途が「MTU / フラグメンテーション」に近いか確認する。
- 強みである「MTU は1パケットで運べる最大サイズ。イーサネットでは 1500バイト が標準。」が本当に評価軸になるか確認する。
- 注意点の「用語だけ覚えても、設計・実装・運用でどこに効くかを確認しないと判断を誤る。」を運用で吸収できるか確認する。
- 公開値や仕様値は、対象プラン・対象機種・対象リージョンまで確認する。
- 既存システム、ID、ネットワーク、監視、バックアップとの接続方法を先に洗い出す。
- 小さく試してから、本番移行、権限設計、障害時手順、コスト監視を決める。