インターネット制御メッセージプロトコル(ICMP)は、ルーターやホストがエラーを報告したり、運用情報を交換したりするために使用するネットワーク層プロトコルです。これには、到達不能な宛先、タイムアウトしたパケット、エコー要求および応答などが含まれます。ICMP自体はユーザーデータを伝送せず、IPトラフィックに何が起きたかを通知するために存在しており、pingやtracerouteといったツールの基盤となっています。
主なポイント
- ICMPは、ユーザーデータではなく、IPトラフィックに関するエラーや診断情報を報告します。
- エコーリクエストとエコーリプライのメッセージは、ping ユーティリティの基礎となっています。
- VOSデバイスは、SLAの監視やルートの稼働状況確認にICMPプローブを使用します。
- 「タイムアウト」メッセージにより、tracerouteによるホップごとの経路探索が可能になります。
- VOSでは、WANインターフェースごとにICMPを無効化、有効化、または設定を変更することができます。
このページの内容: その重要性仕組み種類ICMP およびVersaよくある質問
ICMPはなぜ重要なのでしょうか?
ICMPは、ネットワーク層が自身の状態を伝えるための仕組みです。これがなければ、宛先に到達できない、あるいはTTLが切れたという理由でパケットを破棄したルーターは、送信者にそのことを伝える手段がなくなります。パケットは単に消えてしまい、あらゆる障害が「沈黙」という同じ現象としてしか現れないでしょう。 ICMPは、その沈黙を「宛先に到達できない」「時間切れ」「フラグメンテーションが必要」といった明確なシグナルに変えます。このシグナルによって、エンドポイントや管理ツールは「ネットワークの速度が遅い」状態と「ネットワークが故障している」状態を区別できるようになり、また、ネットワークにおける最も基本的なユーティリティである「ping」と「traceroute」の基盤となっているのです。
ICMPの重要性は、日常の運用においても顕著です。経路を意識したネットワークでは、多数のリンクを横断して1秒間に何度も「この次のホップはまだ存在するか?」と確認するための軽量な手段が必要です。アプリケーション層でのプローブは処理負荷が大きいため、その規模で実行するにはコストがかかりすぎます。 ICMPエコーリクエストは、この問いに対する最もコスト効率の良い解決策です。そのため、VOSの導入環境を含め、業界全体で実施されている稼働確認、静的ルートモニター、SLAプローブでは、DNSやTCPと並んで、デフォルトのプローブタイプとしてICMPエコーリクエストが採用されています。
ICMPとは何ですか?
ICMPメッセージはIPパケット(IPv4ではプロトコル番号1、ICMPv6ではプロトコル番号58)内に含まれて送信されますが、TCPやUDPのようなトランスポート層プロトコルを介して伝送されるわけではないため、ポートは関与しません。 各メッセージには、発生した事象を特定するための「タイプ」と「コード」が設定されています。タイプ8はエコーリクエスト、タイプ0はエコーリプライ、タイプ3は宛先到達不能(ホスト、ネットワーク、ポート到達不能などのコードがあります)、タイプ11はタイムアウトで、パケットのTTLがゼロになったときに送信されます。
ICMPはIPパケットの配信状況そのものを報告するものであるため、パケットがネットワークを通過する際にルーターが自動的に生成します。ホストがこれを要求する必要は一切ありません。これがtracerouteを可能にしている理由です。tracerouteは、TTL値を徐々に増やしたパケットを送信し、経路上の各ホップから返ってくる「タイムアウト」応答を読み取ります。 また、これがICMPがファイアウォールポリシーの頻繁な対象となる理由でもあります。ICMPは自動的かつ低レベルなプロトコルであるため、制限なく許可されるとトポロジー情報が漏洩したり、偵察目的に悪用されたりする恐れがあります。そのため、ほとんどのネットワークでは、無条件に許可するのではなく、選択的に許可するようにしています。
ICMPの種類
このプロトコルには2つのバージョンが存在します。ICMPv4(RFC 792)はオリジナルのバージョンであり、IPv4とともに使用され、エコー、到達不能、リダイレクト、およびタイムアウトの各メッセージを扱います。ICMPv6(RFC 4443)はIPv6に対応しており、IPv4が他のプロトコルに委ねていた機能を引き継いでいます。具体的には、ネイバーディスカバリやステートレスなアドレス自動設定は、それぞれ独立したプロトコルではなく、ICMPv6を介して実行されます。
各バージョンにおいて、メッセージは2つのクラスに分類されます。エラーメッセージ(宛先に到達不能、時間切れ、パラメータの問題など)は、配信の失敗を元の送信者へ報告します。情報メッセージ(エコーリクエスト/応答、ルーターアドバタイズメント/ソリシテーションなど)にはエラーは含まれず、これらは診断や検出に使用されるクエリや応答です。 Pingは情報メッセージのペアを使用し、tracerouteはエラーメッセージのペアに依存します。SLAや到達可能性の監視を含む、運用上のICMPトラフィックのほとんどは、プロトコルのあまり一般的ではないオプションではなく、この同じ少数のエコーメッセージとエラーメッセージのセットから構成されています。
ICMP およびVersa
ICMPは、VOSインターフェース設定における主要なオプションであり、後付けの機能ではありません。WANインターフェース(物理、PPPoE、ループバック)は、それぞれICMP送信について「無効」、「有効」、または「可変」に設定でき、オペレーターはConcertoのWANインターフェース設定を通じて、デバイスごと、インターフェースごとにICMPの公開範囲を選択できます。 サブインターフェースには、ICMP応答のオン/オフ切り替えに加え、エラー報告の間隔および閾値の設定があり、これらは「Configure Interfaces」で設定されます。VOSデバイスはデフォルトでICMPリクエストに応答しますが、この動作は無効にすることも可能です。
インターフェースポリシーに加え、VOSではICMPを監視プローブとして使用します。静的ルートには、プローブが失敗した際にそのルートを撤回するICMPベースの監視オブジェクトを関連付けることができ、SD-WAN SLA測定では、SD-WAN設計ガイドに記載されているように、経路選択やSaaSアプリケーションの監視を行うためのアクティブ監視プローブタイプとして、DNSやTCPと並んでICMPが使用されます。 アクティブ-アクティブのHAブランチトポロジーでは、クロスコネクトリンクを介したICMPモニタリングによって、障害が発生したピアデバイスが検出され、静的ルートの撤回がトリガーされます。
よくある質問
ICMPとTCPやUDPの違いは何ですか?
TCPとUDPは、ポート間でアプリケーションデータを伝送するトランスポート層プロトコルです。一方、ICMPはポートを持たないネットワーク層プロトコルであり、IP配信そのものに関する運用情報やエラーメッセージを伝送します。ICMPはこれらに代わるものではありません。ICMPはネットワークの状態を報告するものであり、アプリケーショントラフィックを転送するものではありません。
なぜpingはICMPを使うのですか?
PingはICMPエコーリクエストを送信し、エコーリプライを待ちます。この通信には、アプリケーション、ポート、セッション状態などは一切必要とされず、IPを処理できる2つのホストさえあれば十分です。そのため、2地点間の基本的な到達可能性と往復遅延を確認するための、最もシンプルなテストとなります。
ファイアウォールはなぜICMPをブロックしたり制限したりするのでしょうか?
ICMPは自動的に生成され、アプリケーション層の下位で動作するため、ICMPを無制限に許可すると、スキャナーに内部トポロジーが露見したり、フラッディング攻撃やリフレクション攻撃に悪用されたりする恐れがあります。ほとんどのファイアウォールポリシーでは、「エコー」や「宛先到達不能」といった特定のメッセージタイプのみを許可し、それ以外のメッセージはブロックするか、送信レートを制限しています。
ICMPv4とICMPv6の違いは何ですか?
ICMPv4(RFC 792)は、IPv4のエラーおよび診断メッセージを処理します。ICMPv6(RFC 4443)は、IPv6についても同様の役割を果たすほか、ネイバーディスカバリやステートレスなアドレス自動設定など、IPv4では別途処理されていた機能も統合しており、IPv6ネットワークの運用においてより中心的な役割を担っています。
tracerouteはICMPをどのように利用しているのでしょうか?
traceroute は、TTL 値が徐々に増加する一連のパケットを送信します。有効期限が切れたパケットを破棄する各ルーターは、ICMP の「タイムアウト」メッセージを返して、そのルーターがホップであることを明らかにします。最終的に宛先から応答が返されると、traceroute は 1 ホップずつ経路を組み立てていきます。
ICMPに関する詳細
さらに詳しく知りたい場合は、私たちが信頼している情報源を以下にご紹介します。
| RFC 792: インターネット制御メッセージプロトコル | RFC 4443: ICMPv6 |
|---|---|
| IPv4ネットワーク向けのICMPメッセージの種類、コード、およびフォーマットを定義した、IETFのオリジナルの仕様書。 | IPv6の関連仕様書で、ネイバー検出とアドレスの自動設定をICMPに統合したものである。 |
関連用語
ICMPについて読んでいるなら、次はこれらもぜひチェックしてみてください。
| 広域ネットワーク | ネットワーク | トラフィック・ステアリング |
|---|---|---|
| 外部通信接続(ブロードバンド、MPLS、ワイヤレス)において、インターフェースごとにICMPを有効化、無効化、または設定を変更することができます。 | インターフェースをグループ化するVOS設定オブジェクト。ICMPの設定および監視は、このインターフェースおよびネットワークレベルで適用されます。 | ICMPベースのSLAプローブに加え、DNSおよびTCPを利用して経路の状態を測定し、アプリケーションのトラフィックを誘導するSD-WAN機能。 |