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 オクテット構造を使用できます。
拡張ヘッダーが続くヘッダーには、拡張ヘッダーの種類を識別する Next Header 値が含まれます。拡張ヘッダーは、パケット内のIPv6ヘッダーと上位層ヘッダーの間に配置できます。 図1 は、ホップバイホップオプションヘッダーを持つIPv6パケットを示しています。同様に、IPv6ヘッダーには0個、1個、またはそれ以上の拡張ヘッダーが含まれ、それぞれが前のヘッダーの[次のヘッダー]フィールドによって識別されます。拡張ヘッダーは、 表 1 に示すように、常に基本的な IPv6 ヘッダーに従います。
| ヘッダー名 |
目的 |
次のヘッダー値 |
|---|---|---|
| ホップバイホップオプション |
宛先ホストへのパスの各ホップでの配信パラメーターを指定します。 ホップバイホップオプションは、IPv6基本ヘッダーの後にのみ表示できます。使用する場合は、最初の拡張ヘッダーである必要があります。別の拡張ヘッダーの後に表示することはできません。 |
0 |
| 宛先オプション |
中間宛先デバイスまたは最終宛先ホストのパケット配信パラメーターを指定します。パケットがこのヘッダーを使用する場合。 |
60 |
| ルーティング |
パケットのストリクト ソース ルーティングとルーズ ソース ルーティングを定義します。(厳密なソース ルーティングでは、各中間宛先デバイスは 1 ホップ離れている必要があります。ルーズソースルーティングでは、中間宛先デバイスが1つ以上のホップ離れている可能性があります) |
43 |
| フラグメント |
IPv6のフラグメント化および再アセンブリサービスの実行方法を指定します。 送信元ノードは、フラグメント拡張ヘッダーを使用して、宛先ノードがパケットを再構築できるように、フラグメント化されたパケットのサイズを宛先ノードに通知します。 |
44 |
| 認証 |
認証、データ整合性、アンチリプレイ保護を提供します。 |
51 |
| セキュリティペイロードのカプセル化 |
カプセル化されたセキュリティペイロード(ESP)パケットにデータ機密性、データ認証、アンチリプレイ保護を提供します。 |
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メッセージをパケットの送信元ノードに送信します。 |