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