next up previous contents
Next: 6.2 何をフィルタリングするか? Up: 6.1 プロトコル Previous: 6.1.3 UDP

6.1.4 ICMP

ICMP (Internet Control Message Protocol) は、TCP,UDPがトランスポート層の プロトコルであるのに対し、ネットワーク層のプロトコルです(従ってポート 概念はない事に注意してください)。その役割は、ネットワーク層でのIP通信を 保証するためにあり、経路の変更や経路のトラブル、相手ホストの状態、障害 発生時の接続終了などに用いられます。また、管理者が利用する最も基本的な ツールである ping などによる診断にも利用されます。低レベルのプロトコル であるために、ネットワーク自体やホストのネットワークに関する動作自体に 作用します。従って、ICMPには十分な注意を払う必要があります。

ICMP には上記のような様々な目的のためにメッセージタイプという1byteの フィールドで表される、言わば種別があります。以下にそのタイプを掲げます。

type message ipfでの表記
0 Echo Reply echorep
3 Host Unreacheable unreach
4 Source Quench squench
5 Redirect redir
8 Echo echo
9 Router Advertisement routerad
10 Router Solicitation routersol
11 Time Exceeded timex
12 Parameter Problem paramprob
13 Time Stamp timest
14 Time Stamp Reply timestrep
15 Information Request inforeq
16 Information Reply inforep
17 Address Mask Request maskreq
18 Address Mask Reply maskrep

それぞれのメッセージの意味を簡単に下に述べます。

  1. Echo, Echo Reply
    Echo は相手ホストの状態を調べるために用いられます。その応答が Echo Replyです。

  2. Host Unreacheable
    ホストに到達できない、あるいはホストのサービスにコネクト出来ないなどの場合に 送られます。

  3. Source Quench
    フロー制御のために送られる。受けとった側は送信スピードを落として相手の対応を 待つ。

  4. Redirect
    ゲートウェイがクライアントに対してルートを変更し、別のゲートウェイを使うように 指示する場合に出される。非常に危険なメッセージである。

  5. Router Solicitation, Router Advertisement
    ルータを発見するためや、ルータが自身の場所を通知するために用いられる。 内部ネットのみで使用するべきもの。

  6. Time Exceeded
    TTL(Time To Live)が0になってしまった場合や、Fragmentation パケットの再構成が 出来なかった場合に送られる。前者に関しては、ネットワーク上でループになっている 事などが考えられる(通常はTTLは60であるが、全ての実装で60であるとは限らない)。 後者については、あまりにも送信が遅く、あるいはネットワークトラブルのために 分割されたパケットが届かないなどの理由が考えられる。

  7. Parameter Problem
    データ中のパラメータに誤りがあった場合などに送られる。

  8. Time Stamp, Time Stamp Reply
    標準時を用いた遅延計測や、時刻合わせに用いる。

  9. Information Request, Information Reply
    相手のIPアドレスなどを得る時に使い、Information Reply はそれに対する応答で ある。従って、セグメント内部で用いられるもの。

  10. Address Mask Request, Address Mask Reply
    相手のネットマスクを得るためのもの。


next up previous contents
Next: 6.2 何をフィルタリングするか? Up: 6.1 プロトコル Previous: 6.1.3 UDP
Noriyo Kanayama