こんにちは、小澤です。
今回は、ICMPv6 について説明することにします。まず、ICMPv6 の概要と、ICMPv6 フォーマットについて説明することにしましょう。教科書では「第5章 ICMPv6」(115 ページ〜118 ページ)の部分です。
なお、「プロフェッショナルIPv6」の電子書籍は無償でダウンロードできます。以下をご覧ください。https://booth.pm/ja/items/913273
ICMPv6とは
ICMPv6(Internet Control Message Protocol version 6)は、IPv6 ネッワークにおける重要なプロトコルです。主にエラー通知、情報交換、ネットワーク診断などの機能を提供し、これらによってネットワークの効率性と信頼性を向上させます。IPv4 のICMP と同じ役割を果たしますが、IPv6 の機能に特化した改良が施されているため、別のプロトコルと考えた方がよいでしょう。ICMPv6 の主な機能と特徴には以下のようなものがあります。
- 1. エラー通知
ネットワーク内で問題が発生した場合に、エラーメッセージを送信することで、送信元にその情報を伝えます。例えば、宛先に到達できない場合やパケットが大きすぎる場合などが該当します。
- 2. 情報交換(要求と応答)
ホストやルータがネットワーク上の他のデバイスから情報を要求し、それに応答するために使用されます。これにより、ネットワークの状態や構成に関する情報が共有されます。
- 3. マルチキャストリスナーの管理
IPv6 ではマルチキャストが頻繁に利用されます。ICMPv6 は、マルチキャストリスナー報告やマルチキャストリスナークエリなど、マルチキャストグループの管理に関わるメッセージを扱います。
- 4. ネイバーディスカバリー
IPv6 の重要な機能の一つで、ネットワーク上の他のデバイスを発見し、それらと通信するための手段を容易にするための機能を提供します。例えば、アドレス解決、ルーター発見、リダイレクトメッセージ送信などがあります。
- 5. パスMTU 発見
送信元と宛先間の最適なパケットサイズ(最大伝送単位:MTU)を特定し、パケットの断片化を避けるために使用されます。
ICMPv6フォーマット
ICMPv6 メッセージの基本的なフォーマットは、特定のフィールドに分かれています。それらのフィールドについて説明します。
- 1. Type(タイプ)
8 ビットのフィールドで、メッセージの種類(ICMPv6 タイプ)を示します。例えば、エラーメッセージや情報メッセージなど、メッセージの目的に応じて異なります。
- 2. Code(コード)
8 ビットのフィールドで、ICMPv6 タイプをさらに詳細に分類するために使用されます。ICMPv6 タイプフィールドによって指定されたメッセージタイプに対して、特定の状況や条件を示します。
- 3. Checksum(チェックサム)
16 ビットのフィールドで、メッセージの整合性を確認するために使用されます。送信者はこのフィールドを計算し、受信者はメッセージが変更されていないことを確認するためにこの値を使用します。
- 4. メッセージ本体
この部分はメッセージのタイプとコードによって異なります。例えば、エラーメッセージの場合、原因となったパケットのヘッダや最初の64ビットなど、問題の診断に役立つ情報が含まれることがあります。また、情報メッセージの場合、ネットワーク設定や状態に関連するデータが含まれます。
ICMPv6でのチェックサム
チェックサムは、メッセージの整合性を保証し、エラーのない伝送を確認するための重要なフィールドです。これは、ICMPv6 メッセージの一部が転送中に誤って変更された場合に、その変更を検出するために使用されます。ICMPv6 でのチェックサムは、以下のように計算します。
- 1. チェックサムフィールドの初期化
チェックサムの計算を開始する前に、チェックサムフィールドを0 に設定します。
- 2. 疑似ヘッダの使用
ICMPv6 のチェックサムの計算には、IPv6 の疑似ヘッダが含まれます。この疑似ヘッダは、送信元アドレス、宛先アドレス、メッセージの長さ、ゼロで埋められた3 つのフィールド、および次のヘッダフィールドから構成されます。
- 3. メッセージ全体のチェックサム計算
疑似ヘッダ、ICMPv6 メッセージ、そして必要に応じたパディングを含む全体のチェックサムが計算されます。この計算には1 の補数加算が用いられ、最終的な結果も1 の補数形式で得られます。
- 4. チェックサムフィールドへの結果の格納
計算されたチェックサムは、ICMPv6 メッセージのチェックサムフィールドに格納され、メッセージと共に送信されます。受信側でも同様に、チェックサムが再計算されます。この時には、受信したチェックサム値を含むメッセージと疑似ヘッダを用いて計算します。計算結果が全て1 のビット、つまり、計算結果が0xFFFF であれば、メッセージはエラーなしに受信されたと判断します。計算結果が異なる場合は、メッセージにエラーがあったとみなし、通常はそのメッセージは破棄されます。このプロセスにより、ICMPv6 メッセージがネットワークを通じて正確に伝送されることが保証されます。チェックサムは、データの完全性を確認し、誤った情報が処
理されるのを防ぐために不可欠なものです。
ICMPv6メッセージ
主要なICMPv6 メッセージとして、エラーメッセージと情報メッセージの2 つに大きく分類できます。例えば、エラーメッセージには、以下のようなものがあります。
- 1. Type 1(宛先到達不能) パケットが目的地に到達できない理由を示すエラーメッセージ。
- 2. Type 2(パケットが大きすぎる) 送信されたパケットが、中継するネットワークセグメントの最大伝送単位(MTU)を超えている。
- 3. Type 3(時間超過) パケットが設定された時間内に目的地に到達しなかった、またはフラグメント再構築がタイムアウトした。
- 4. Type 4(パラメータ問題) … ICMPv6 ヘッダにエラーがある、または必要なオプションが欠けている。
- 1. Type 128(エコー要求) ネットワーク上のノードに対してエコー応答を求めるリクエスト。
- 2. Type 129(エコー応答) エコー要求に対する応答
まとめ
今回は、ICMPv6 について説明しました。ICMPv6 は、ネットワーク上のデバイス間の通信を助け、エラーメッセージを伝える役割を果たしています。
次回も引き続き、ICMPv6 について説明しましょう。エラーメッセージと情報メッセージについて、さらに詳細に説明することにします。次回も引き続きご覧ください。
<お知らせ>
IPv6 の学習のチェックにIPv6 基礎検定はいかがでしょうか?全国350 か所で通年受験が可能です。詳細は以下をご覧ください。https://network-engineer.jp/ipv6basic