MTU と経路 MTU 探索(PMTUD)
Pro会員限定上級約38分6レッスン
「小さいページは開くのに、大きいページだけ固まる」の裏には、通れるパケットの大きさ(MTU)の問題が隠れています。インターフェースの MTU、DF ビットを立てた ping、tracepath と経路 MTU のキャッシュを使って、VPN の向こうの大阪拠点までに通る大きさを突き止め、MSS を計算します。
対象者: VPN やトンネルを含むネットワークを運用する方 / 「大きいデータだけ届かない」障害に備えたい方
前提知識: パケットキャプチャ② ハンドシェイク・再送・RST 修了程度
この教材を終えると、できるようになること
- ip link で MTU を確認し、IP・ICMP・TCP のヘッダーの大きさから、ping や TCP で運べるデータの最大量を計算できるようになる。
- ping -M do -s で DF ビット付きの大きなパケットを送り、途中のルーターが返す Frag needed(ICMP)から経路上の小さい MTU を特定できるようになる。
- ping -M do -s の大きさを変えて、届く最大のデータ量を探し、ヘッダー分を足して経路 MTU を自分で確かめられるようになる。
- tracepath でホップごとの経路 MTU を確認し、ip route get の cache 行からカーネルが覚えている経路 MTU とその残り時間を読めるようになる。
- ハンドシェイクの SYN に載る MSS を読み、経路 MTU から実際に通る MSS を計算できるようになる。MSS クランプの考え方を説明できる。
修了後の姿: プロトコルの中身とネットワーク設計を理解し、複雑な障害の根本原因の特定から再発防止の設計まで任せられるエンジニアへ。
Chapter 1通れる大きさを測る
MTU の内訳を理解し、経路の途中で小さくなる MTU を見つけて MSS に反映します。
- インターフェースの MTU を確かめる1500 バイトの中に、ヘッダーとデータがどう詰まっているか約6分(有料会員限定)
- DF ビットを立てて大きな ping を送る(-M do -s)「分割しないで」と頼んだ 1500 バイトは、途中の VPN 装置で突き返される約7分(有料会員限定)
- 通る大きさの境目を探す1373 は通らず 1372 は通る。境目に 28 を足せば経路 MTU約6分(有料会員限定)
- tracepath で経路 MTU を見るどのホップで小さくなるかを一度に見て、カーネルの記憶も確かめる約7分(有料会員限定)
- MSS を計算して記録する両端が名乗る MSS 1460 は、VPN 越しでは大きすぎる約7分(有料会員限定)
Chapter 2確認クイズ
MTU・PMTUD・MSS の理解度をチェックします。