html IPv4のフラグメンテーションと再構成の仕組み - FCTELE
                                   +8618758069661 [email protected]
製品検索 検索ガイド: スペース = AND(かつ)、 | = OR(または)、 ! = NOT(除外)

IPv4フラグメントはどのように再構成されるのか?識別子、オフセットと再構成

ご質問はありますか? 今すぐお電話ください!

+8618758069661

またはメッセージをお送りください

オンラインお問い合わせ

IPv4フラグメントはどのように再構成されるのか?識別子、オフセットと再構成

閲覧数: 6 +6FCTELEによるオリジナル記事著者:FCTELE技術チーム

IPv4の基礎

フラグメントはどのように元のデータグラムに戻るのでしょうか?

許可されている場合、ルーターは次のリンクに収まるようにIPv4データグラムを分割することがあります。受信ホストは関連するフラグメントをまとめ、オフセットに基づいて各ペイロードを配置し、すべての断片がそろうのを待ちます。断片が欠けていると、不完全なデータグラムがタイムアウトすることがあります。以下の図は仕組みを説明するものであり、製品の測定結果ではありません。

01

経路

送信元 → ルーター → 宛先

フラグメンテーションが許可され、次ホップのMTUが小さい場合、ルーターはフラグメンテーションを行うことがあります。

02

フィールド

ID · オフセット · MF

受信側はアドレス、プロトコル、IDを使って断片をまとめ、オフセットに基づいて配置します。

03

断片の欠落

待機 → タイムアウト → 破棄

最終フラグメントだけでは、ペイロードが完全にそろっているとは判断できません。

調査チェックリスト — 展開
確認項目 確認する内容 検証方法
経路 インターフェースとMTU 実際の経路を記録する
フラグメント アドレス、プロトコル、ID、オフセット、MF 許可を得て取得したキャプチャを比較する
損失 全範囲の充足 経路上と受信側のキャプチャを比較する

コントローラーが送信した情報は、必ずしも1つの完全なIPデータグラムとして到着するわけではありません。フラグメントに分割されることもあります。受信側は、どの断片が同じデータグラムに属し、それぞれをどこに配置すべきかを、どのように識別するのでしょうか。1つが届かなかった場合はどうなるのでしょうか。IPv4のフラグメンテーションを理解するには、Ethernetスイッチング、IPルーティング、受信側での再構成を分けて考えます。

ルーターでフラグメント化され、宛先で再構成されるIPv4データグラム
図1:許可されている場合、ルーターはフラグメンテーションを行うことがあり、宛先はIPペイロードを再構成します。

まずIPデータグラムとEthernetフレームを区別する

コントローラー、ゲートウェイ、サーバーは、リンクを介してデータを交換します。IPデータグラムは、そのリンクに適した外側のカプセル化によって運ばれます。Ethernetでは、Ethernetフレームの内部で伝送されます。フレームは隣接する機器間で受け渡され、IPアドレスはネットワーク層の宛先を識別するために使われます。これらの層では、ヘッダーと長さの制限が異なります。

インターフェースのIP最大伝送単位(MTU)は、そのインターフェースを通じて送信できるIPパケットのサイズを制限します。サブネット間の経路は、制限の異なる複数のIPインターフェースを通過することがあります。上流側で収まるパケットが、次ホップでも収まるとは限りません。このガイドはフラグメントのフィールドと再構成に焦点を当てており、大きなパケットの通信障害がすべてフラグメンテーションに起因すると示唆するものではありません。

フラグメンテーションはいつ発生しますか?

IPv4の送信元は、送信前にフラグメンテーションを行うことがあります。IPv4を転送するルーターも、パケットが次ホップのMTUを超え、かつフラグメンテーションが許可されている場合は、パケットを小さなフラグメントに分割できます。各フラグメントは独自のIPヘッダーを持ち、元のIPペイロードの一部を運びます。

元のデータグラムにDF(Don't Fragment:分割禁止)フラグが設定されており、より小さいMTUの次ホップを通過する必要がある場合、ルーターは単純に分割することはできません。通常はパケットを破棄し、適切なICMPエラーを返しますが、実際のフィードバックは機器やフィルタリングによって異なります。送信元がパケットサイズを調整するかどうかは、プロトコルと実装に依存します。

一般的なレイヤー2産業用スイッチはEthernetフレームを転送するものであり、サイズが大きすぎるIPv4データグラムをIPフラグメントに分割しません。ルーティング機能を備えた機器では、インターフェース、設定、実際の経路によって、IPトラフィックの処理が異なる場合があります。筐体に「スイッチ」や「ゲートウェイ」と記載されているだけでは、すべてのポートの動作は判断できません。

受信側は関連するフラグメントをどのように識別しますか?

IPv4フラグメントのヘッダーには、送信元アドレス、宛先アドレス、プロトコル、識別子が含まれます。受信側はこれらのフィールドを組み合わせて使用し、フラグメントを元のデータグラムに関連付けます。識別子フィールドは主にフラグメンテーションと再構成を支援するためのものです。すべてのパケットに対して永続的かつグローバルに一意なシリアル番号として扱わないでください。

長い文書を複数のページに分ける場面を考えてみてください。ひとまとまりのラベルと受取人情報が、ページをまとめる手掛かりになります。ただし、この例えには限界があります。ネットワーク機器は文書の内容を理解するのではなく、パケットのフィールドと再構成規則を使用します。また、IDは認証やセキュリティの仕組みではありません。

送信元、ルーター、受信側のキャプチャでは、異なる状況が見えることがあります。IDだけを使ってフラグメントをまとめたり、背景情報なしに異なる方向や場所で取得したキャプチャを混在させたりしないでください。まずキャプチャ地点、時刻、IPアドレス、プロトコルを確認し、その後でフラグメントのフィールドを調べます。

同じ識別子を持つ3つのIPv4フラグメントと、それぞれの位置およびMF値
図2:識別子とフラグメントの位置は、受信側が断片をまとめて配置するための手掛かりとなります。MFは後続のフラグメントがあるかどうかを示します。

オフセットとMFフラグから何が分かりますか?

フラグメントオフセットは、そのフラグメントのペイロードが元のIPペイロードのどの位置に属するかを示します。8バイト単位で表され、Ethernetフレーム内のバイト番号ではありません。受信側は、単に到着順につなぎ合わせるのではなく、オフセットを使用して断片を所定の位置に配置します。後方のフラグメントが先に到着することもあります。

MFはMore Fragments(後続フラグメントあり)を意味します。通常、最終ではないフラグメントではMFが1に設定され、最終フラグメントではMFが0に設定されます。MF = 0を確認するとデータグラムの終端が分かりますが、それ以前の断片がすべて到着したことの証明にはなりません。受信側は、再構成したペイロードを上位に渡す前に、先頭から末尾までの全範囲がそろっていることを確認する必要があります。

フラグメンテーションにはアラインメント規則もあります。最終フラグメントを除き、フラグメントのペイロード長は通常、8バイトの倍数でなければなりません。運用担当者がすべてのバイナリフィールドを手計算する必要はありませんが、キャプチャツールが未変換のオフセットフィールドを表示しているのか、バイト位置に変換済みの値を表示しているのかを確認する必要があります。

断片が失われるとどうなりますか?

受信側は通常、一時的な再構成状態を保持し、欠落したフラグメントを待ちます。その状態がタイムアウトした時点でデータグラムが不完全なままであれば、データグラムは破棄されます。通常、アプリケーションは残ったフラグメントを完全なIPデータグラムとして使用できません。バッファーの制限、タイムアウト処理、セキュリティポリシーはシステムによって異なるため、一般的な説明から特定製品の値を判断することはできません。

フラグメントが増えると、1つのデータグラムについて個別に送信される断片も増えます。断片が1つ欠けるだけで、データグラム全体を再構成できなくなることがあります。そのため、経路全体と各フラグメントが重要になります。ただし、大きなパケットの通信障害だけではフラグメントの損失を証明できません。輻輳、フィルタリング、機器の負荷、その他のリンク障害でも、同様の現象が生じることがあります。

TCPやアプリケーションが再試行するかどうかは上位層の問題であり、プロトコルと実装に依存します。IPv4のフラグメンテーション自体には、フラグメント単位で信頼性を保証する汎用的な再送機構はありません。UDPを使用するアプリケーションは、IPが欠落したペイロードを自動的に補うと想定してはいけません。

宛先ホストは、すべてそろったフラグメントを再構成するか、タイムアウト後に不完全なデータグラムを破棄します
図3:宛先には完全なデータが必要です。フラグメントが欠落すると、タイムアウトと破棄につながることがあります。

調査では何を記録すべきですか?

許可された試験環境で、まず送信元、レイヤー2スイッチ、ルーティングインターフェース、トンネル、受信側の構成を整理します。インターフェースのMTU、DF設定、プロトコル、キャプチャ地点、時刻を記録します。同じデータグラムに属すると疑われるフラグメント群ごとに、パケット長だけでなく、送信元・宛先アドレス、プロトコル、識別子、オフセット、MFを調べます。

送信元では完全なデータグラムが確認され、ルーターの出力インターフェースでは複数のフラグメントが確認される場合、IP転送とインターフェースMTUを確認します。すべてのフラグメントがそのインターフェースから送出されているのに、一部しか受信側に届かない場合は、実際の経路上の損失やフィルタリングを調査します。ミラーリング設定、ネットワークインターフェースのオフロード、キャプチャ位置によって、観測できる内容が変わることがあります。1枚のスクリーンショットがネットワーク全体を表すわけではありません。

セキュリティ機器がフラグメントをどのように処理するかも考慮してください。トランスポート層のポートを検査するルールもありますが、先頭以外のフラグメントには通常、完全なトランスポートヘッダーが含まれていません。機器が状態をどのように関連付けるか、またフラグメントを許可するかどうかは、その実装とルールに依存します。先頭フラグメントが通過したからといって、すべてのフラグメントが通過した証明にはなりません。既存の設定を保存し、運用上の安全性とセキュリティの責任者と調整して変更してください。

再構成が繰り返し失敗する場合は、単に受信側の待機時間を延ばす前に、パスMTU、パケット損失、フィルタリングを調査してください。リアルタイム性を求めるアプリケーションと、データの完全性を重視するアプリケーションでは、制約が異なる場合があります。プロトコル設計、機器の資料、管理された試験に基づいて変更を判断してください。

生産制御では、試験の時間帯と範囲について現場の所有者の承認を得てください。影響を理解せず、切り戻し計画もないまま、ファイアウォールの無効化、フレームサイズの拡大、ルーティングの有効化を行わないでください。限定的な変更を試験する前に、プロトコルの対応状況とネットワーク境界を確認してください。

各段階を分けて考える

IPv4のフラグメンテーションは、ネットワーク層の仕組みです。受信側はアドレス、プロトコル、識別子、オフセット、MFの情報を使用してデータグラムを再構成します。断片は順不同で到着することがありますが、上位層に渡すには、データグラムが完全にそろい、受信側の規則を満たしている必要があります。MTU、IPルーティング、スイッチのフレーム制限、アプリケーションの再試行は、それぞれ異なる段階に属し、個別の証拠が必要です。

FCTELEの産業用スイッチとゲートウェイは、産業用Ethernetネットワークの一部を構成できます。特定の製品とファームウェアがIPルーティング、インターフェースMTU設定、フィルタリングに対応しているかどうかは、その資料で確認する必要があります。これらの図は一般的な仕組みを説明するものであり、特定のFCTELEモデルの測定結果や内部回路を表すものではありません。

参考資料

RFC 791:インターネットプロトコル · RFC 6864:IPv4識別子フィールド · FCTELE管理型産業用スイッチの製品情報.

以下の中国語技術記事から翻訳: 中国語の原文記事を読む.

よくある質問

EthernetスイッチはIPv4データグラムをフラグメント化しますか?

一般的なレイヤー2スイッチはフレームを転送します。IPのフラグメンテーションは、許可されている場合にIPv4の送信元またはルーターで発生することがあります。

MF = 0は、すべてのフラグメントが到着したことを意味しますか?

いいえ。最終フラグメントであることを示すだけであり、受信側には元のペイロードの全範囲がそろっている必要があります。

フラグメントが欠落するとどうなりますか?

受信側は再構成規則に従って待機します。再構成状態がタイムアウトすると、不完全なデータグラムは破棄されます。

適用範囲と参考資料

これはIPv4に関する一般的な説明であり、製品の試験や測定ではありません。

産業用スイッチによるフレーム転送の仕組み · RFC 791 · RFC 6864

この記事を共有する