このステップでは、IPv6 拡張ヘッダーについて説明します。IPv6 は次世代のインターネットプロトコルであり、IPv4 に比べて多くの改善が加えられています。これらの重要な改善点の 1 つは、拡張ヘッダーの使用です。これらのヘッダーは、ルーティングやセキュリティ機能の向上など、強化された機能を提供するため、非常に重要です。ネットワークでのパケットの処理方法に関する重要な情報を明らかにすることができるため、IPv6 ネットワークの監視およびセキュリティ分析に関わるすべての人にとって、それらを理解することは不可欠です。
次に、Wireshark を使用して、以前にキャプチャしたパケット内の IPv6 拡張ヘッダーを識別して理解しましょう。
まず、Wireshark が開いていることを確認します。開いていない場合は、ターミナルで次のコマンドを使用して開くことができます。
wireshark &
末尾の &
は、コマンドをバックグラウンドで実行できるようにするため、ターミナルを他のタスクに使用し続けることができます。
次に、前のステップで保存したキャプチャファイルを開きます。方法は次のとおりです。
Wireshark メニューの File (ファイル)
> Open (開く)
をクリックします。
ディレクトリ /home/labex/project/
に移動します。
capture.pcapng
という名前のファイルを選択し、Open (開く)
をクリックします。このファイルには、以前にキャプチャしたネットワークトラフィックが含まれています。
Wireshark の上部にあるフィルタバーに、次のフィルタを入力します。
ipv6
このフィルタは、すべての IPv6 パケットを表示します。これらのパケットの Next Header (次のヘッダー) フィールドを調べて、拡張ヘッダーを識別します。
Wireshark の左側のパケットリストから IPv6 パケットを選択します。中央のペインで、「Internet Protocol Version 6 (インターネットプロトコルバージョン 6)」セクションを展開します。これにより、IPv6 ヘッダーの詳細が表示されます。
展開された IPv6 ヘッダー内で、「Next Header (次のヘッダー)」フィールドを探します。このフィールドは、IPv6 ヘッダーの直後に何が続くかを示すため、非常に重要です。拡張ヘッダーまたは TCP や UDP などの上位レイヤープロトコルである可能性があります。
「Next Header (次のヘッダー)」の値は、特定のプロトコル番号に対応します。
0: Hop-by-Hop Options (ホップバイホップオプション)
43: Routing (ルーティング)
44: Fragment (フラグメント)
50: ESP (Encapsulating Security Payload)
51: AH (Authentication Header)
60: Destination Options (宛先オプション)
58: ICMPv6 (Internet Control Message Protocol Version 6)
6: TCP (Transmission Control Protocol)
17: UDP (User Datagram Protocol)
拡張ヘッダーがパケットに存在する場合、パケット詳細ペインの IPv6 ヘッダーの下に展開可能なセクションとして表示されます。それを展開してその内容を表示します。これにより、パケットの処理に関する貴重な情報が得られます。
分析のためのパケットバイトのエクスポート (Exporting Packet Bytes for Analysis)
「Next Header (次のヘッダー)」フィールドをさらに分析するために、それを含むパケットのバイトをエクスポートします。
パケットリストから IPv6 パケットを選択します。
中央のペインで、「Internet Protocol Version 6 (インターネットプロトコルバージョン 6)」セクションが展開されていることを確認します。展開されていない場合は、展開して IPv6 ヘッダーの詳細を表示します。
「Next Header (次のヘッダー)」フィールドを見つけます。通常、IPv6 ヘッダーの詳細の上部にあります。
「Next Header (次のヘッダー)」フィールドを右クリックし、「Export Selected Packet Bytes (選択したパケットバイトのエクスポート)」を選択します。
表示されるダイアログで、ディレクトリ /home/labex/project/
に移動します。ここにエクスポートされたバイトを保存します。
ファイル名として extension_header.txt
を入力します。
「Save (保存)」をクリックしてファイルを保存します。
ファイルが正常に作成されたことを確認するには、ターミナルで次のコマンドを実行します。
cat /home/labex/project/extension_header.txt
出力は、Next Header (次のヘッダー) 値を表す単一の文字になる可能性があります。これは、さらなる分析やスクリプト作成に役立ちます。
IPv6 では、パケットは複数の拡張ヘッダーを持つことができ、チェーンを形成します。各拡張ヘッダーには、「Next Header (次のヘッダー)」フィールドがあり、その後に何が続くかを示します。
たとえば、IPv6 パケットは次の構造を持つ場合があります。
「Next Header (次のヘッダー)」の値が 0 のメイン IPv6 ヘッダー。これは、次のヘッダーが Hop-by-Hop Options (ホップバイホップオプション) ヘッダーであることを意味します。
「Next Header (次のヘッダー)」の値が 43 の Hop-by-Hop Options (ホップバイホップオプション) ヘッダー。これは、次のヘッダーが Routing (ルーティング) ヘッダーであることを示します。
「Next Header (次のヘッダー)」の値が 6 の Routing (ルーティング) ヘッダー。これは、次のヘッダーが TCP ヘッダーであることを意味します。
最後に、TCP ヘッダーとペイロード。
このチェーンメカニズムは、パケット処理に多くの柔軟性をもたらします。ただし、ファイアウォールルールをバイパスしようとするなど、セキュリティ攻撃に悪用される可能性もあります。そのため、拡張ヘッダーを理解することは、ネットワークセキュリティの監視にとって非常に重要です。
これで、Wireshark で IPv6 拡張ヘッダーを識別して調査する方法を学びました。これは、IPv6 ネットワークの監視およびセキュリティ分析に関わるすべての人にとって不可欠なスキルです。