MTUとMSSの確認方法|Ciscoルータとpingコマンドでの実践的チェック手順

ネットワークのトラブル対応やVPN構築時に、MTU(Maximum Transmission Unit)やMSS(Maximum Segment Size)の調整が必要になる場面は多々あります。
本記事では、Ciscoルータ 設定の観点から、MTUとMSSの違い・確認方法・調整方法を整理し、加えて端末からpingコマンドを用いたMTU調査方法

1. MTUとMSSの違いとは?

  • MTU(Maximum Transmission Unit):1つのパケットとして転送できる最大サイズ(IP層)
  • MSS(Maximum Segment Size):TCPで送信可能な最大セグメントサイズ(TCP層、通常MTUからIPヘッダ+TCPヘッダを引いた値)

例えば、イーサネットのMTUは通常1500バイト。TCP/IPのヘッダ(40バイト)を差し引いたMSSは1460バイトになります。

2. CiscoルータでのMTUとMSSの確認方法

インターフェースごとに現在のMTU値とMSS調整設定を確認するには以下のコマンドを使用します。

show interface GigabitEthernet0/0

出力例:

GigabitEthernet0/0 is up, line protocol is up 
  MTU 1500 bytes, BW 1000000 Kbit/sec

MSS値を確認するには、以下のように設定が表示されていれば有効です。

interface GigabitEthernet0/0
 ip tcp adjust-mss 1360

3. MSSの調整設定(VPNやPPPoE時によく使う)

MSSの調整は、VPNトンネルやPPPoE接続など、MTUが通常より小さくなるケースで非常に有効です。

interface Tunnel0
 ip tcp adjust-mss 1360

一般的な目安:

  • MTU 1500 → MSS 1460(デフォルト)
  • MTU 1492(PPPoE)→ MSS 1452
  • MTU 1400(VPN/IPsec)→ MSS 1360

4. pingコマンドを使ったMTU確認方法(端末側)

Windows/macOS/Linuxなどの端末から、pingを用いて「フラグメント禁止」の状態で送信し、どのサイズまで到達可能かを確認します。

Windowsの場合

ping -f -l 1472 www.google.com
  • -f:フラグメント禁止(Don’t Fragment)
  • -l:送信データサイズ(IPヘッダ除く)

1472 + 28(IP + ICMPヘッダ)= 1500 バイト
→ 送信成功すればMTUは1500、失敗すれば段階的にサイズを減らして調整します。

Linux/macOSの場合

ping -M do -s 1472 www.google.com
  • -M do:フラグメント禁止
  • -s:データサイズ

判定方法

成功:

Reply from 8.8.8.8: bytes=1472 time=15ms TTL=117

失敗:

Packet needs to be fragmented but DF set.

→ 成功する最大値 + 28バイト が現在のMTUです。

5. よくあるトラブルと対策

  • VPN越しの通信が一部だけ失敗する → MTUが小さいがMSSが調整されていない
  • Webサイトの一部が読み込めない → フラグメント禁止されたトラフィックが途中で破棄される
  • トンネルインターフェースだけ通信が遅い → MTU調整に加えてQoSとの干渉も確認

対策

  • 必要に応じてMTU値を調整(ip mtu
  • TCPに対してip tcp adjust-mssを併用
  • pingでMTUの確認を行い、トラフィックに合わせた設計を

まとめ

MTUとMSSは、トラフィックがスムーズに流れるための重要なパラメータです。特にVPNやPPPoEなどMTUが制限される構成では、適切なMSS調整が必要です。

  • MTUはインターフェース単位で確認
  • MSSはTCPセッションの最大サイズとして調整可能
  • pingによるMTU確認は手軽で有効な手段
  • トラブル時には、断片化とフラグメント禁止設定に注目

MTU 確認 ping」「Cisco MSS 調整」で検索する人向けに、本記事の内容が実務で役立つことを願っています。