This site covers Cisco and Palo Alto as part of *** Shadowgarden.org ***

Cisco MTU,MSS調整とフラグメンテーション制御の関係について解説

目次

動作確認環境

  • Cisco C891FJ-K9
    • IOS 15.9(3)M10

MTU、MSS に関する説明の多くが分かりにくい

Cisco 機器構築案件において PPPoE、IPsec VPN、GRE などを構成する場合、Cisco 機器のインターフェース設定にて MTU や MSS の設定値を調整することがあります。MTU や MSS に関する説明をしているサイトは多くありますが、本質的に分かりやすい説明は少ないように感じます。

ここでは MTU、MSS とフラグメンテーションとは何か、ネットワーク機器において MTU、MSS を設定すると通信にどう影響するのかについて改めて整理します。

MTU、MSS とは

MTU とは、ネットワーク機器や端末が転送できる最大伝送ユニット(Maximum Transmit Unit)です。一般的には、IP ヘッダーを含む IP パケットサイズです。MTU は (L3) インターフェース毎に設定されます。Cisco ルータ・スイッチや一般的な PC では MTU のデフォルト値は 1,500 バイトになっています。

MSS とは、TCP における概念であり、TCP の最大セグメントサイズ (最大ペイロード(データ)サイズ) のことです。MSS は MTU から IP ヘッダ(20バイト)と TCP ヘッダ(20バイト) を除いたサイズ(1460バイト)といえます。

画像:MTUとMSS

イーサネット(L2)ヘッダ(14バイト)とFCS(4バイト)を考慮すると合計 1518 バイトになります。dot1q vlanタグを使用する場合は更に 4 バイト追加されて 1522 バイトになります。

MTU チェックとフラグメンテーション

Cisco 機器においては MTU チェックは入力・出力インターフェースの双方で行われます。

入力インターフェースで MTU を超えるパケットを受信した場合、そのパケットは破棄されます。

出力インターフェースにて MTU を超えるパケットを出力する場合、そのパケットは分割されて送信されます
この動作をフラグメンテーションと呼びます。

フラグメンテーションされたパケットを受信する端末では、分割されたパケットを元通りのパケットに戻す処理である再編成(リアセンブル) が行われます。

フラグメンテーションが発生すると、ネットワーク機器や端末で余計なリソースを使用する必要があったり、通信遅延が発生したりするなどのデメリットがあるため、フラグメンテーションの発生は避けるべきであるとされています。

機種によって動作仕様が異なる可能性があるため、正確には該当機種の公式ドキュメントを確認してください。

MSS はデータを送受信する端末で使用する値

ネットワーク機器で MSS (に関する) 設定をすることができるため、MSS はネットワーク機器の動作に影響する値と思われるかもしれませんが、MSS はデータ送受信を行う端末ペアで使用される値です。端末間において TCP 通信を行う際の最初のスリーウェイハンドシェイクの段階で MSS の値がネゴシエートされ、以後取り決められた MSS でデータが送受信されます。

端末間での MSS ネゴシエートの流れは以下です。

STEP
【SYN】端末A からの MSS の送信、端末B の MSS 決定

端末A はスリーウェイハンドシェイクの SYN パケットにおける TCP Option にて MSS を送信します。端末B は受信した MSS の値と自身の (インターフェースの MTU – 40) の値を比較し、値がより小さい方を自身の MSS として採用します。

以下は SYN パケットの中身です。TCP Option として MSS が存在することを確認できます。

STEP
【SYN, ACK】端末B からの MSS の送信、端末A の MSS 決定

端末B はスリーウェイハンドシェイクの SYN, ACK パケットにおける TCP Option にて MSS を送信します。端末A は受信した MSS の値と自身の (インターフェースの MTU – 40) の値を比較し、値がより小さい方を自身の MSS として採用します。

以下は SYN, ACK パケットの中身です。TCP Option として MSS が存在することを確認できます。

STEP
取り決められた MSS でのデータ通信を実施

端末間で MSS が決定されたら、その MSS に基づいて端末間でデータ通信が行われます。

フラグメンテーションが発生する場合と防止策

上で端末間で MSS がネゴシエートされてデータ通信が行われると説明しました。これはそれぞれの端末にてフラグメンテーションが発生しないことを目的とした動作仕様です。しかし、通信経路となるネットワークの MTU は考慮されていないため、ネットワーク内の MTU が小さい場合ネットワーク内にてフラグメンテーションが発生する可能性があります

画像:ネットワーク内でフラグメンテーション

ネットワーク内の MTU が (端末の MSS + 40) より小さい場合、ネットワーク内にてフラグメンテーションが発生します。

「+ 40」は IP ヘッダ (20 バイト)、TCP ヘッダ (20 バイト) 分です。

ネットワーク内でのフラグメンテーションを防止するために、Cisco 機器の場合はインターフェースにて MSS の設定(ip tcp adjust-mss) を行います。

「ip tcp adjust-mss」設定の動作仕様とは

上でも記載しましたが、MSS は端末からの送信されるデータサイズを決定するパラメータです。Cisco 機器における MSS の設定である「ip tcp adjust-mss」がどのように端末の MSS に影響するのかを説明します。

端末間ではスリーウェイハンドシェイクにおける SYN パケット及び SYN, ACK パケットの TCP Option で MSS の値を相手に伝えていました。Cisco 機器の (L3) インターフェースにて「ip tcp adjust-mss」を設定すると、このインターフェースを通る SYN パケット、及び SYN, ACK パケットの TCP Option の MSS の値が「ip tcp adjust-mss」で設定した値に書き換えられます。

以下図は経路上のルータで「ip tcp adjust-mss 1000」を設定した場合の動作を示しています。

画像:ルータでのMSS書き換え

以下は端末A から送信された SYN パケットの内容です。TCP Option の MSS が 1460 になっています。

一方以下は端末B で受信した SYN パケットの内容です。TCP Option の MSS が経路上のルータで書き換えられ 1000 に変わっていることを確認できます。

同様に端末B から送信される SYN, ACK パケットについても MSS の値が書き換えられます。

以下は端末B から送信された SYN, ACK パケットの内容です。TCP Option の MSS が 1460 になっています。

一方以下は端末A で受信した SYN パケットの内容です。TCP Option の MSS が経路上のルータで書き換えられ 1000 に変わっていることを確認できます。

以上のように、経路上のインターフェースにて「ip tcp adjust-mss」を設定することにより該当インターフェースの送受信パケットについて TCP Option の MSS の値が書き換えられます

ip tcp adjust-mss」設定によってデータ通信を行う端末の MSS 設定を変更できるということになります。

ネットワークエンジニア同士の会話でも「ip tcp adjust-mss」設定のことを単に「MSS 設定」と表現することが多いですが、正確には「SYN パケット内の MSS の値を書き換える設定」といえます。不正確な表現が新人エンジニアを混乱させているのではとも思えます。

「ip tcp adjust-mss」の値を (MTU – 40) と設定する

データ通信を行う端末にて使用する MSS が (ネットワーク機器に設定されている MTU 値 – 40) の値になっていればネットワーク機器におけるフラグメンテーションを防止することができます。

このため Cisco 機器においてフラグメンテーションを防止するために「ip tcp adjust-mss」が値を (その Cisco 機器で設定されている MTU – 40) として設定します。

「- 40」は IP ヘッダ (20 バイト)、TCP ヘッダ (20 バイト) 分です。

MTU 設定値のパターン別計算方法

MSS は MTU が決まれば決まります。一方、MTU はネットワークで使用している機能に応じて適切に計算して求める必要があります。

以下ではパターン別の計算方法を記載します。

この内容は後日追記します。

参考資料


Cisco (IOS一般) 関連記事一覧

Cisco Catalyst 9000 シリーズスイッチ関連記事一覧

Cisco Catalyst 1300 スイッチ関連記事一覧


Amazon で買えるおすすめアイテム

以下は Amazon アフィリエイトリンクです。ネットワーク作業向けにそこそこおすすめなアイテムです。

ブログ始めるなら 【アフィリエイトリンク】

note メンバーシップへの参加もお待ちしています!

note(ノート)
Shadowgarden.org -影の構築者集団-|Shadowgarden.org -影の構築者集団- 陰の構築者集団「Shadowgarden.org」の活動拠点。 ネットワーク・インフラ業界に陰から影響を与えるため活動している。 当組織への問合せは「https://shadowgarden.org/inq...
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

目次