What Is ICMP? How It Works and How to Use It

ICMPは、ネットワークの問題をトラブルシューティングするために使われるネットワーク層プロトコルです。ICMPの詳細や仕組み、脆弱性の対策についてはこちらをご覧ください。

Mar 13, 2023
9 minute read
ICMP Internet Control Message Protocol printed text on a keyboard.
Enterprise Networking Planet のコンテンツおよび製品のおすすめは、編集上の独立性を保っています。パートナーへのリンクをクリックすると、当社が報酬を得る場合があります。 詳細を見る

インターネット制御メッセージプロトコル(ICMP)は、ネットワーク機器間の通信に不可欠なネットワーク層プロトコルです。エラーの検出と報告、クエリーメッセージの送信、ネットワークの輻輳に関するホストへの通知に役立ちます。 

ICMPは、IPv4およびIPv6ネットワークでパケットメッセージングを使用し、基盤となるネットワークの状態に関する情報を提供します。ICMP自体がデータを管理するわけではありませんが、データが宛先に届かなかった場合や、順序どおりに受信されなかった場合に送信元へ通知します。 

ICMPの機能により、ネットワーク上の通信はよりスムーズで信頼性の高いものとなり、情報を正確かつ効率的に届けられます。

ICMPv4とICMPv6はこのプロトコルの異なる2つのバージョンです。共通点がある一方で、いくつかの点で違いもあります。 

ネットワーク機器間の通信を実現するという本来の機能に加え、ICMPはさまざまな攻撃を受けやすいことから、悪意のある攻撃者の標的にもなっています。そのため、ネットワークのセキュリティを確保するには、ICMPの仕組みと適切な設定方法を理解することが重要です。

ICMPの仕組みとは?

ICMPはネットワーク管理に使われるコネクションレス型プロトコルです。これに対して、インターネットプロトコル(IP)では、TCPやUDPなどのトランスポート層プロトコルが必要です。 

ICMPには、TCPのように接続の確立や切断に関わるプロセスが含まれず、機器上の特定のポートを指定することもできません。

他のプロトコルが採用するコネクション指向の方式とは異なり、ICMPは最初にハンドシェイクを行わずにメッセージを送信します。そのため、機器間で情報を伝達するための全体的な構造がよりシンプルになります。

ICMPメッセージの構成要素

ICMPメッセージは、可変長のデータセクションをカプセル化するIPヘッダーで構成されます。 

ICMPデータには次のフィールドが含まれます。

  • タイプ:8ビットのフィールドでICMPメッセージのタイプを識別します。ICMPv6メッセージでは、取り得る値は0~127です。128~255の値は情報通知を表します。
  • コード:送信されるICMPメッセージの種類を決定する、サブタイプ識別用の8ビットフィールドです。
  • チェックサム:メッセージにエラーがあるかどうかを検出するための16ビットフィールドです。
  • ポインター:元のメッセージ内の問題を特定する可変長フィールドです。このフィールドはオプションです。
  • 元のデータグラム:エラーの原因となった元のIPパケットの一部を含む、もう1つの可変長フィールドです。このフィールドもオプションです。

ICMPメッセージの2つのタイプ

ICMPメッセージには、エラー報告とクエリーという2種類のカテゴリがあります。

エラー報告メッセージ

エラー報告メッセージは、ノードまたはルーターでエラーが発生したときに送信されます。 

エラー報告メッセージの例として、次のようなものがあります。

  • 宛先到達不能:機器がIPパケットを受信し、宛先にアクセスできないと判断したときに送信されます。
  • 送信元抑制:通常はネットワークの輻輳や、ルーターが高いデータ転送速度に対応できないといった技術的な制約を理由に、データの送信速度を下げるよう送信元の機器に通知します。
  • 時間超過:ルーターがパケットのTime-to-Live(TTL)フィールドが0になったことを検出すると、このメッセージをパケットの送信元に送信します。
  • パラメーター問題:ルーターが無効なIPヘッダーまたはパケット長を検出したときに送信されます。
  • リダイレクト:パケットの送信元が宛先に到達するための、より適切な経路がある場合に送信されます。

クエリーメッセージ

これらのメッセージは、宛先の機器から特定の情報を問い合わせるために送信されます。

クエリーメッセージには次のようなものがあります。

  • エコー要求/応答:エコー要求メッセージを送信し、宛先からエコー応答メッセージが返るのを待つことで、機器がネットワーク上で稼働しているかどうかを確認します。
  • タイムスタンプ要求/応答:2つのタイムスタンプフィールドを使用します。1つは要求に、もう1つは応答に含まれます。
  • アドレスマスク要求/応答:機器から宛先機器のサブネットマスクを問い合わせられるようにします。
Advertisement

ICMPの使い方

ネットワークにおけるICMPの用途は、エラー報告、診断ツール、またはサービス拒否(DoS)攻撃によるネットワークパフォーマンスの低下の3つです。

エラーの報告

ICMPは、主にエラーを報告する役割で知られています。インターネット経由で接続された2台の機器間でICMPを使用すると、何らかの理由でデータ転送に失敗したことを検出して報告できます。 

たとえば、ルーターが処理できないほど大きなデータパケットを破棄した場合に、ICMPがトリガーされることがあります。このような場合、問題に関する情報を含むICMPメッセージがルーターから送信元へ送信されます。送信側の機器は問題を修正するか、データを再送信できるため、インターネット接続上で効果的な通信を確保できます。

診断ツールとしての利用

ICMPは、ICMPとSimple Network Management Protocol(SNMP)を使用して、ネットワーク内のシステムの可用性、経路、健全性を確認する診断ツールとして利用できます。 

最も一般的なICMP診断ツールの1つがpingです。pingはネットワーク機器にICMPエコー要求を送信し、ICMPエコー応答を待ちます。また、ネットワーク内のパケット損失や遅延の確認にも利用できます。 

もう1つのICMP診断ツールがtracerouteです。ICMPメッセージを使って、あるホストから別のホストまでのパケットの経路を追跡します。

ネットワークパフォーマンスの低下

犯罪者は、サービス拒否(DoS)攻撃を実行してネットワークパフォーマンスを低下させるためにICMPを利用できます。 

DoS攻撃は、ICMP要求を大量に送り付けてシステムをフラッド状態にすることで実行されます。ICMPメッセージが多すぎると、コンピューターやネットワークの動作が大幅に遅くなったり停止したりし、標的システムのリソースが枯渇します。

以下の「ICMPのセキュリティ脅威」セクションで説明するように、ICMPはSmurf攻撃やping of death攻撃にも利用されます。

IPv4とIPv6におけるICMP

予想されるとおり、ICMPはIPv4とIPv6でさまざまな点が異なります。IPv6のICMPは、より堅牢で動的なプロトコルです。より多くのタスクに対応し、チェックサム報告の範囲が広く、メッセージタイプも細かく区別できます。

より広い機能

インターネット制御メッセージプロトコル バージョン6(ICMPv6)は、IPv6において、ICMPv4がIPv4で担うよりも包括的な機能を備えています。IPv6では、ICMPv6がルーター広告、パスMTU探索、マルチキャストグループ管理で重要な役割を果たします。これらはICMPv4が対応していないタスクです。

メッセージの形式

ICMPv4とICMPv6ではメッセージ形式が異なります。具体的には、各バージョンのICMPでチェックサムを計算する際、対象となる範囲に応じて結果が異なります。 

ICMPv4ではメッセージ自体だけがチェックサム計算の対象となります。一方、ICMPv6ではメッセージ自体に加え、IPv6ヘッダーの一部のフィールドを含む疑似ヘッダーも計算に含まれます。

Advertisement

メッセージタイプ

ICMPv6メッセージでは、上位ビットのタイプフィールドを使ってエラーと情報メッセージを区別しますが、ICMPv4にはこの仕組みがありません。また、特定のメッセージコードはICMPv4またはICMPv6のいずれか一方にのみ存在します。 

Next Headerフィールドの値

ICMPv6には、プロトコルフィールドの値として1を使用するICMPv4とは異なるNext Headerフィールドの値があります。IPv6では、ICMPv6メッセージは1つ以上の拡張ヘッダーの後に始まる場合があります。最後の拡張ヘッダーには、ICMPv6メッセージであることを示す値58のNext Headerフィールドが含まれます。 

さらに、ICMPv6メッセージは他のプロトコルで運ぶことができますが、ICMPv4ではできません。

ICMPのセキュリティ脅威

他のネットワークプロトコルと同様、ICMPもトンネリング、ルーター探索、Smurf攻撃、Fraggle攻撃、ping of death攻撃など、複数のセキュリティ脅威に対して脆弱です。

ICMPトンネリング

ICMPトンネリングは、ファイアウォールを迂回したり検知を逃れたりするために、他のプロトコルやデータをICMPパケット内にカプセル化する手法です。

ICMPルーター探索

ICMPルーター探索は、ホストがネットワーク上のルーターを検出できるICMPメッセージの一種です。通常は無害ですが、攻撃者がルーター広告を偽装し、トラフィックを悪意のある宛先へリダイレクトするために利用することもできます。

Smurf攻撃

Smurf攻撃は、偽装した送信元アドレスを使い、ネットワークのブロードキャストアドレスに大量のICMPエコー要求を送信するDoS攻撃の一種です。その結果、ネットワーク上のすべてのホストが偽装されたアドレスにICMPエコー応答を返し、被害者の帯域幅とリソースを圧迫します。

Fraggle攻撃

Fraggle攻撃はSmurf攻撃に似ていますが、ICMPパケットではなくUDPパケットを使います。攻撃者は、偽装した送信元アドレスを使い、ポート7(echo)またはポート19(chargen)のネットワークブロードキャストアドレスにUDPパケットを送信します。その結果、ネットワーク上のすべてのホストが偽装されたアドレスにUDPパケットを返し、被害者のネットワークをフラッド状態にします。

ICMPフラッド攻撃

ICMPフラッドは、標的ホストに大量のICMPパケット(エコー要求や宛先到達不能メッセージなど)を送信するDoS攻撃の一種です。標的のCPUサイクルとメモリを消費させ、正当なトラフィックを処理できなくすることが目的です。

ping of death攻撃

ping of deathは、65,536バイトを超えるICMPパケットを処理できない一部のシステムの脆弱性を悪用する、古いタイプの攻撃です。攻撃者は、サイズ超過のICMPパケット(通常はエコー要求)を送信し、標的システムをクラッシュまたは再起動させます。

Advertisement

情報収集

情報収集は、ICMPメッセージ(エコー要求、タイムスタンプ要求、アドレスマスク要求、tracerouteなど)を使って標的ネットワークを調査し、トポロジー、構成、オペレーティングシステム、脆弱性に関する情報を得る手法です。

まとめ:ICMPの利用とセキュリティ対策

ICMPはインターネットプロトコルスイートに不可欠な要素であり、IP通信で重要な役割を果たします。ルーター、ホスト、ゲートウェイなどのネットワーク機器間で、制御メッセージやエラーメッセージを交換するために使われます。 

すべてのネットワークプロトコルと同様、ICMPにも脆弱性があります。攻撃からネットワークと組織を守るには、それらを理解することが重要です。

これらの概念を理解することで、攻撃者の一歩先を行き、潜在的な脅威からネットワークを安全に保てるようになります。

組織のデータを安全に保つために信頼できる最高のエンタープライズネットワークセキュリティ企業はこちらです。

Kihara Kimachia

Kihara Kimachia

Content Writer

Kihara Kimachia is a writer and digital marketing consultant with over a decade of experience covering issues in emerging technology and innovation. In addition to appearing regularly in Enterprise Networking Planet, his work has been published in many leading technology publications, including TechRepublic, eSecurity Planet, Server Watch, Channel Insider, IT Business Edge, and Enterprise Storage Forum.

Enterprise Networking Planet Logo

Enterprise Networking Planet aims to educate and assist IT administrators in building strong network infrastructures for their enterprise companies. Enterprise Networking Planet contributors write about relevant and useful topics on the cutting edge of enterprise networking based on years of personal experience in the field.

TechnologyAdvice が所有・運営しています。 © 2026 TechnologyAdvice. 無断転載を禁じます

広告主に関する開示:このサイトに掲載されている製品の一部は、TechnologyAdvice が報酬を受け取っている企業のものです。この報酬は、製品がこのサイトのどこにどのように表示されるか(表示される順序など)に影響する場合があります。TechnologyAdvice は、市場で入手可能なすべての企業やすべての種類の製品を掲載しているわけではありません。