IPv6 フローベース処理の概要
SRXシリーズファイアウォールがIPv6パケット、IPv6拡張ヘッダー、ICMPv6パケットを処理する方法をご覧ください。
IPv6パケットヘッダーとSRXシリーズの概要
すべての IPv6 パケットには、最小 40 バイト(320 ビット)の長さの基本パケット ヘッダーがあります。IPv6パケットヘッダーには、オプションで、ネットワークデバイスに関する補足情報を含む拡張ヘッダーがあります。
IPv6 パケットの場合、フロー処理は拡張ヘッダーとトランスポート層ヘッダーを次のように解析します。
ソフトウェアが TCP、UDP、ESP、AH、または ICMPv6 ヘッダーを検出すると、ヘッダーを解析し、パケット ペイロードが指定されたプロトコル タイプに対応していると見なします。
ソフトウェアがホップバイホップ ヘッダー、ルーティングおよび宛先ヘッダー、またはフラグメント ヘッダーを検出すると、次の拡張ヘッダーの解析を続行します。
no-next-header 拡張ヘッダーが検出された場合、ソフトウェアは、パケットが未知のプロトコル(プロトコルが 0 に等しい)のパケットであることを検出します。
その他の拡張ヘッダーの場合、ソフトウェアはヘッダーを解析し、拡張ヘッダーによって示されるプロトコルに属するものとしてパケットを識別します。
IPv6 パケット ヘッダー拡張について
IPv6 拡張ヘッダーには、ネットワーク デバイス(ルーター、スイッチ、エンドポイント ホストなど)が IPv6 パケットの送信方法または処理方法を決定するために使用する補足情報が含まれています。各拡張ヘッダーの長さは、8 オクテットの整数倍です。これにより、後続の拡張ヘッダーで 8 オクテット構造を使用できるようになります。
拡張ヘッダーに続くヘッダーには、拡張ヘッダーの種類を識別する 次のヘッダー値が含まれます。拡張ヘッダーは、パケット内の IPv6 ヘッダーと上位層ヘッダーの間に配置できます。 図 1 は、ホップバイホップ オプション ヘッダーを持つ IPv6 パケットを示しています。同様に、IPv6 ヘッダーは、0 個、1 個、またはそれ以上の拡張ヘッダーを伝送でき、それぞれが先行するヘッダーの [次のヘッダー] フィールドによって識別されます。拡張ヘッダーは、 表 1 に示す順序で、常に基本的な IPv6 ヘッダーの後に続きます。
ヘッダー名 |
目的 |
次のヘッダー値 |
---|---|---|
ホップバイホップオプション |
宛先ホストへのパス上の各ホップでの配信パラメーターを指定します。 ホップバイホップオプションは、IPv6基本ヘッダーの後にのみ表示できます。使用する場合は、最初の拡張ヘッダーにする必要があります。別の拡張ヘッダーの後に表示することはできません。 |
0 |
宛先オプション |
中間の宛先デバイスまたは最終宛先ホストのパケット配信パラメーターを指定します。パケットがこのヘッダーを使用する場合。 |
60 |
ルーティング |
パケットの厳密なソース ルーティングとルーズ ソース ルーティングを定義します。(厳密なソース ルーティングでは、各中間宛先デバイスが 1 ホップ離れている必要があります。ルーズ ソース ルーティングでは、中間の宛先デバイスが 1 ホップ以上離れている可能性があります) |
43 |
断片 |
IPv6 フラグメント化および再アセンブリ サービスの実行方法を指定します。 送信元ノードは、フラグメント拡張ヘッダーを使用して、宛先ノードがパケットを再構成できるように、フラグメント化されたパケットのサイズを宛先ノードに通知します。 |
44 |
認証 |
認証、データ整合性、アンチリプレイ保護を提供します。 |
51 |
セキュリティ ペイロードのカプセル化 |
ESP(Encapsulated Security Payload)パケットのデータ機密性、データ認証、アンチリプレイ保護を提供します。 |
50 |
IP アドレス |
IPv6パケットの送信先となるホストデバイスまたはノード上のインターフェイスを識別します。 宛先アドレスは 2 回表示される場合があり、最初のインスタンスは送信元 IP アドレスの後のホップ制限の後、2 番目のインスタンスは最後の拡張ヘッダーの後に表示されます。 |
60 |
IPv6 については、 RFC2460 を参照してください。
参照
SRXシリーズファイアウォールがICMPv6パケットを処理する方法を理解する
このトピックでは、インターネット制御メッセージプロトコル(ICMP)、ICMPメッセージ、およびSRXシリーズファイアウォール向けJunos OSがそれらをどのように使用するかについて説明します。
ICMP は、パケット処理エラーの報告、診断目的、および実装固有の機能のためのフレームワークを提供します。ICMPエラーメッセージは、データ転送の過程で問題が発生したことを、あるノードが別のノードに通知することを可能にします。IPバージョン6(IPv6)が定義されたとき、IPバージョン4(IPv4)とそれの違いは、新しいバージョンのICMPを必要とするほど重要でした。
すべての ICMPv6 メッセージの前には、IPv6 ヘッダーと 0 個以上の IPv6 拡張ヘッダーが付きます。ICMPv6 ヘッダーは、直前のヘッダーの [次のヘッダー] 値 58 で識別されます。これは、IPv4のICMPを識別するために使用される値とは異なります。すべての ICMPv6 エラー メッセージには、パケット受信者が埋め込まれた呼び出しパケットを見つけるのに役立つ、32 ビットのタイプ固有のデータが含まれています。
ほとんどの ICMPv6 パケットは、通常の IPv6 パケットと同じ特性と動作をしており、Junos OS フロー モジュールは、通常の IPv6 パケットと同じように、ファースト パスおよびファスト パス処理を通じて、これらのパケットを処理します。 表 2 は、フロー モジュールが通常の ICMPv6 パケットとは異なる方法で処理する ICMPv6 埋め込みパケット タイプを示しています。
これらのパケットに対して、フローモジュールは、埋め込まれた ICMPv6 パケットから作成したタプルを使用して、一致するセッションを検索します。インターフェイスの ICMPv6 パケットが大きすぎるというメッセージを受信しない限り、一致するセッションが見つかるまで、最大送信単位(MTU)を変更せずにパケットの処理を続けます。この場合、そのインターフェイスの MTU サイズが変更されます。フロー モジュールが一致するセッションを見つけられない場合、または埋め込まれたペイロードから有効な IPv6 ヘッダーを取得できない場合、パケットをドロップします。
パケットが大きすぎるメッセージは、フロー モジュールがインターフェイスを変更する原因となる唯一の種類の ICMPv6 パケットです。
メッセージ |
意味 |
---|---|
01-宛先到達不能 |
送信方法に問題があるためにパケットを配信できない場合、パケットの配信に失敗した理由など、問題に関するソースを伝えることができるフィードバックメカニズムがあると便利です。IPv6 の場合、宛先到達不能メッセージがこの目的を果たします。 各メッセージには、パケット配信の失敗の原因となった問題の性質を示すコードが含まれています。また、送信元デバイスでの問題を解決するために、配信できなかったパケットの全部または一部も含まれています。 フロー モジュールで、埋め込まれたパケット ヘッダー データがセッションの 5 タプル データと一致する宛先到達不能 ICMP パケットが検出されると、ソフトウェアはセッションを終了します。 |
02 -パケットが大きすぎる |
フロー モジュールが ICMPv6 パケットが大きすぎるというメッセージを受信すると、フロー モジュールはそのパケットをルーティングエンジン上の ICMP プロトコル スタックに送信し、パス最大伝送単位(パス MTU)検出プロセスを実行します。 「パケットが大きすぎます」というメッセージがデバイスに関係せず、トランジット パケットである場合、デバイスは埋め込まれた 5 タプル データをセッションと照合しようとします。
手記:
パケットが大きすぎるメッセージは、フロー モジュールがインターフェイスを変更する原因となる唯一の種類の ICMPv6 パケットです。 |
03-時間超過 |
フロー モジュールは、基本ヘッダー ホップバイホップ フィールドで指定されたホップ カウントを超えたために配信できないパケットを受信すると、このメッセージを送信して、パケットがこの理由で破棄されたことをパケットの送信元ノードに通知します。 |
04-パラメータ問題 |
デバイスが IPv6 ヘッダーまたは拡張ヘッダーのフィールドにパケットを処理できない問題を見つけると、ソフトウェアはそれを破棄し、問題の種類と場所を示すこの ICMPv6 メッセージをパケットの送信元ノードに送信します。 |