ICMP とは何ですか?

インターネット制御メッセージプロトコル (ICMP) は、デバイスがネットワーク内のデータ転送エラーを通知するために使用する通信ルールのセットです。送信者と受信者間のメッセージ交換では、予期しないエラーが発生する可能性があります。たとえば、メッセージが長すぎたり、データパケットが順番どおりに届かなかったりして、受信者がメッセージを組み立てることができない場合があります。このような場合、受信者は ICMP を使用して送信者にエラーメッセージを通知し、メッセージの再送信を要求します。

ICMP のユースケースにはどのようなものがありますか?

インターネット制御メッセージプロトコル (ICMP) は、コンピュータネットワークにおける重要なネットワーク層プロトコルです。ネットワークデバイスが接続やネットワークステータスなどの重要な情報を通信するための標準化されたメカニズムを提供します。ルーターやエンドポイントデバイスを含め、ネットワークに接続されたすべてのデバイスが ICMP メッセージを処理できます。ICMP は IPv4 と IPv6 の両方で動作するように調整されています。

コンピュータネットワーキングについて読む »

次に、一般的な ICMP のユースケースについて説明します。

エラー報告

ICMP エラーメッセージは、到達不能な宛先、タイムアウト、フラグメンテーションの問題などのネットワークエラーを報告します。このメッセージは、コネクションレス通信モデルを採用しているユーザーデータグラムプロトコル (UDP) にとって特に重要です。

UDP では、信頼性の高い、順序付けられたパケット配信は行われません。UDP パケットを送信すると、パケットが失われたり、チェックサムエラーなどの障害がある状態で配信される可能性があります。この場合、受信側は ICMP エラー報告メッセージを送信者に送り返し、問題を通知します。

診断

ICMP はネットワーク診断に使用できます。ping コマンドや traceroute コマンドに最もよく使われます。

ping コマンドは、ICMP エコー要求パケットをターゲットデバイスに送信することにより、ネットワークデバイスの接続性をテストします。デバイスにアクセスできる場合は、ICMP エコー応答を返します。ネットワーク遅延を確実にチェックし、デバイスが利用可能であることを確認します。

traceroute コマンドは、送信元から宛先までのパケットの経路をトレースします。そのために、コマンドはエコー要求メッセージとエコー応答メッセージを目的の宛先に送信します。

エコー要求には有効期間 (TTL) 値が含まれており、パケットがルータを通過するたびに 1 ずつ減少します。パケットが TTL が 0 のルーターに到達すると、ルーターは送信元に ICMP メッセージを送り返します。

メッセージには、パケットがたどったルートに関する情報が含まれています。Traceroute はパケットの正確なパスを明らかにするため、ネットワークのパフォーマンスに関するインサイトを得ることができます。

ネットワークセキュリティ

ICMP を使用すると、不正なネットワークトラフィックを検出し、ネットワーク上で正規のトラフィックのみを許可できます。ファイアウォールは ICMP を使用して特定の種類のトラフィックを許可またはブロックします。また、ネットワーク管理者は ICMP 監視ツールを使用して、ネットワークデバイスの状態や接続を追跡したり、未知のデバイスを検出したりします。

また、不正なアクティビティを示している可能性のある異常なトラフィックパターンを検出するのにも使用できます。

ICMP はどのように機能しますか?

インターネット制御メッセージプロトコル (ICMP) は通常、TCP/IP やユーザーデータグラムプロトコル (UDP) などの他のネットワークプロトコルと並行して機能します。ホストとルーターは、特定のネットワークイベントが発生すると、ICMP メッセージまたは ICMP パケットを交換します。

ICMP パケットは、ICMP パケットヘッダーと ICMP データセクションで構成されます。

ICMP パケットヘッダー

ICMP ヘッダーには、パケットタイプ、コード、チェックサム、および識別子に関する情報が含まれています。ICMP パケットが送信されると、メッセージ受信者はヘッダー情報を読み取ります。パケットのタイプに基づいて、適切なアクションを実行します。

たとえば、タイプがエコーリクエストの場合、受信者は同じデータを含むエコー応答を送信します。タイプが宛先到達不能の場合、受信者は宛先到達不能メッセージで応答します。

ICMP データセクション

ICMP メッセージのデータセクションには、送信先の IP アドレスや障害の原因などの情報が含まれます。また、エラーを識別するエラーコードまたは数値コードも含まれます。

次に例を示します。

  • 宛先到達不能 (タイプ 3) のコードは、受信側デバイスがネットワーク上に存在しないことを示します。
  • リダイレクト (タイプ 5) のコードは、宛先へのより適切なルートを示すメッセージを別のルーターに送信します。
  • エコー要求とエコー応答 (タイプ 8 および 10) のコードはデバイス間の接続をテストします。
  • 時間超過メッセージは、パケットが宛先に到達するまでの最大時間を超えたことを示します。
  • ルータで IP フィールドヘッダーの問題が発生した場合、Parameter Problem メッセージが表示されます。
  • ルータで輻輳が発生し、受信するパケット数を制限する必要がある場合、Source Quench メッセージが送信されます。

ICMP と TCP にはどのような違いがありますか?

TCP は、信頼性の高い、エラーチェックされたデータ配信のための接続指向プロトコルです。ウェブブラウジング、電子メール、リモートログイン、ファイル転送アプリケーションによく使用されます。TCP には、送信者と受信者間の信頼と認証を確立する一連のメッセージであるハンドシェイクが必要です。TCP はメッセージの配信を保証します。 

対照的に、インターネット制御メッセージプロトコル (ICMP) はコネクションレス型プロトコルです。メッセージの配信は保証されません。ICMP はエラー報告にのみ使用されるため、ICMP メッセージは TCP パケットよりも小さくなります。

ICMP と TCP は、TCP の配信の失敗原因を特定するために併用されます。

ICMP の ping フラッドとはどのようなものですか。

インターネットコントロールメッセージプロトコル (ICMP) の ping フラッドは、不正なユーザーが短期間に複数の ICMP エコー要求を送信するサービス妨害 (DoS) イベントです。各 ICMP リクエストには固有の識別子とデータペイロードが含まれており、受信者は一意に応答する必要があります。受信側のサーバーは、不正な要求ひとつひとつに応答しようとします。そのため、正規の送信元への応答が遅くなってしまいます。 

ICMP の ping フラッドを防ぐには、ネットワークのデバイスが受け入れる ICMP トラフィックの量を制限するように設定する必要があります。また、ネットワークに不正なアクティビティがないか監視し、ファイアウォールや侵入検知システム (IDS) などの必要なセキュリティ対策を講じることも重要です。

AWS は DDoS イベントからの保護をどのように強化できますか?

Amazon Web Services (AWS) では、分散型サービス妨害 (DDoS) イベントからの保護を強化するための AWS Shield を提供しています。

AWS Shield はマネージド型の DDoS 保護サービスで、AWS で実行しているアプリケーションを保護します。動的な検出と自動インライン緩和により、アプリケーションのダウンタイムとレイテンシーを最小限に抑えます。AWS Shield には、あらゆる種類のネットワークセキュリティイベントから保護するための自動緩和技術が含まれています。

AWS Shield では次のような多くの機能を利用できます。

  • 特定のレイヤーでの不正トラフィックの自動スクラビング
  • アプリケーションのダウンタイムとレイテンシーの最小化
  • 最大 1,000 種類のリソースタイプの監視と保護
  • アプリケーショントラフィックパターンに基づいてカスタマイズされた検出

今すぐアカウントを作成して DDoS 保護を開始しましょう。

AWS での次のステップ

追加の製品関連リソースを確認する
コンテンツ配信サービスを確認 
無料のアカウントにサインアップする

AWS 無料利用枠にすぐにアクセスできます。

サインアップ 
コンソールで構築を開始する

AWS マネジメントコンソールで構築を始めましょう。

サインイン