ネットワークの「荷物」が通れない!?MTUとDFビットでトラブルを解決しよう
エンジニアの皆さん、こんにちは。データセンターの現場で深夜の障害対応に追われ、コーヒーの消費量が給与の大部分を占めているNOCのシニアエンジニアです。
今日は、ネットワーク運用において「避けては通れない壁」であるMTU(Maximum Transmission Unit)と、それを探り当てるための魔法のコマンドについてお話しします。
「サーバー同士は繋がっているのに、なぜか大きなデータを送るとパケットが消える……」
そんな怪奇現象に遭遇したことはありませんか?実はその犯人、MTUの不一致かもしれません。一歩ずつ、紐解いていきましょう。
—
1. MTUってなに?「郵便配達」でイメージしよう
MTUとは、ネットワーク上で「一度に送れる荷物の最大サイズ」のことです。
想像してみてください。あなたは郵便局員です。郵便局には「封筒のサイズ規定(MTU)」がありますよね。もし、その規定よりも大きな荷物を持ち込んだらどうなるでしょう?
- 普通の状態: 窓口で「これ大きすぎるので、2つに分けて送ってください」と言われて、荷物を切り分けられます(これが
フラグメンテーション=パケット分割です)。 - 「分割禁止」のラベルがある場合: 窓口で「分割禁止の荷物なので、大きすぎると受け付けられません」と返送されてしまいます。
ネットワークの世界でも同じです。ルーターという名の「郵便局」は、規定より大きなパケットが来ると分割しようとしますが、「分割しちゃダメ(Don’t Fragment)」という指示がついていると、パケットを捨ててエラーを返すしかないのです。
—
2. 「DFビット」は「分割禁止」のシール
IPヘッダーにあるDF(Don't Fragment)ビットは、パケットに貼る「分割禁止シール」のようなものです。
ネットワークの経路には、光ファイバーやVPN、クラウドなど様々な設備が混在しています。それぞれで「通れる荷物のサイズ」が微妙に違うことがあり、ある場所では通れても、その先の狭い道で「大きすぎて通れない!」と拒絶されることがよくあります。
このとき、DFビットが立っていると、ルーターは「このパケットは分割できないから、捨てて『大きすぎて通れないよ(ICMP Destination Unreachable)』と送信元に伝えよう」という挙動をとります。
—
3. 実戦!pingでMTUを突き止める
では、現場でどうやって「どこまでなら通れるのか」を調べるのか。ここで登場するのが、おなじみの ping コマンドです。
ping には、荷物のサイズを指定し、かつ DF ビットを立てるオプションがあります。
Windowsの場合
# -f: DFビットを立てる(分割禁止)
# -l: 送信サイズを指定(ヘッダー分を引いて調整が必要)
ping 192.168.1.1 -f -l 1472
Linuxの場合
# -M do: DFビットを立てて、フラグメンテーションを禁止する
# -s: ペイロードサイズを指定
ping -M do -s 1472 192.168.1.1
なぜ「1472」なの?
一般的なEthernetのMTUは 1500 バイトです。ここからIPヘッダー(20バイト)とICMPヘッダー(8バイト)を引いた 1472 が、データ部分の最大値となります。
ここからがトラブルシューティングの肝です:
1. 1472 で試してエラー(パケットが通りません)なら、数値を少しずつ下げていきます(1460, 1450…)。
2. 「あれ、1430なら通るぞ?」となれば、その経路のどこかに「MTUが1430以下の箇所がある」ことが特定できます。
—
4. 現場で見抜く「見えない壁」
例えば、VPNを通している場合、暗号化のためのヘッダーが余分につくため、物理的なMTUよりも実効的なMTUは小さくなります。これを忘れて大きなデータを送り出すと、パケットはVPNルーターの手前で力尽きてしまいます。
もし、Webサイトが表示されない、SSH接続はできるのにファイル転送で固まる、といった症状が出たら、真っ先にこのMTUを疑ってください。
「ping でサイズを変えながらチェックする」
この泥臭い作業こそが、どんな高度な監視システムよりも確実にネットワークの「真の姿」を教えてくれます。
—
最後に:エンジニアとしての心構え
トラブルシューティングの現場では、教科書通りの回答は役に立たないことが多いです。今回紹介したMTUの確認手法も、ただコマンドを叩くだけではなく、「経路上のどの機器が制限をかけているのか?」を想像しながら実行してみてください。
パケットが元気に目的地まで届く姿を想像できれば、あなたも立派なネットワークエンジニアです!
また次回の記事で、現場の知恵を共有しましょう。それでは、良きネットワークライフを!
コメント