IPv6パケットのパスMTUメッセージについて
このトピックでは、パス最大送信単位(MTU)について説明し、SRX シリーズ デバイスのフロー モジュールがパス MTU メッセージを処理および使用する方法について説明します。
すべてのリンクには、リンクが送信できる最大パケットのサイズを指定するMTUサイズがあります。MTU サイズが大きくなると、特定の量のデータを送信するために必要なパケットが少なくてすみます。データ転送パフォーマンスを最大限に高めるために、1 つのノード(送信元)から別のノード(宛先)に送信される IPv6 データ パケットは、ノード間のパスを通過できる可能な最大サイズにする必要があります。(パケットの数が増加し、減少すると、伝送パフォーマンスに影響を与える可能性のあるパケット ヘッダー処理とルーティング プロセスのコストが制約されます)。
ただし、パケットがソース ノードから宛先ノードへのパスを正常に通過するためには、ソース ノード インターフェイスの MTU サイズが、送信元と宛先の間のパス上のすべてのノードの最小 MTU サイズを超えてはなりません。この値は、パス最大送信単位(パスMTU)と呼ばれます。パケットがリンクの MTU サイズよりも大きい場合、リンクがそれをドロップする可能性があります。IPv6 の場合、中間ノードはパケットをフラグメント化できません。
IPv6は、パスMTU検出と呼ばれる標準的なメカニズムを定義しています。ソースノードは、パケットが通過する可能性のあるパスのパスMTUを学習するために使用できます。そのパスで送信されたパケットのいずれかが、パスに沿ったノードによって転送するには大きすぎる場合、そのノードはパケットを破棄し、ICMPv6 パケットが大きすぎるメッセージを返します。送信元ノードは、MTU サイズをドロップして ICMPv6 メッセージを送信したノードよりも小さく調整し、パケットを再送信できます。送信元ノードは、パケットがパスに沿ったすべてのノードを正常に通過するまで、パケットが大きすぎるメッセージを繰り返し受信することがあります。
すべてのSRXシリーズデバイスでは、ルーティングエンジンはIPv6マルチキャストアドレス(大きなパケットを含む)のパスMTUを検出できません。
パスMTUサイズを決定し、適切なMTUサイズを設定した後、リンクMTUサイズが以前に決定されたパスMTUサイズよりも小さいノードで、異なるパスに沿って送信パケットをルーティングすることがあります。この場合、フロー モジュールは再びパス MTU 検出プロセスを実行します。
フロー モジュールが、それに属する宛先アドレスを持つ ICMP Packet Too Big メッセージを受信すると、次のようになります。
パケットがトランジット 1 の場合、フロー モジュールはパケットに埋め込まれた 5 タプル データと一致するセッションを検索します。それは一致するセッションを見つけ、それにパケットを提供します。一致するセッションがない場合、パケットは破棄されます。
フロー モジュールがパケットを受信すると、エグレス インターフェイスに送信する前に、エグレス インターフェイスの MTU サイズがパケット長よりも大きいかどうかを確認します。
MTUサイズがパケット長を超える場合、パケットの処理を継続します。
MTU サイズがパケット長より小さい場合、パケットをドロップし、ICMPv6 Packet Too Big メッセージをソース ノードに送信します。
シャーシクラスタが設定され、パスMTUがトンネルインターフェイスのMTUを更新する場合、フローモジュールは新しいMTUをピアノードに同期しません。MTUサイズは、パケット送信に影響を与えることはなく、ピアノード上のより大きなパケットによって再び更新される場合があります。