.\" This man page is Copyright (C) 1999 Andi Kleen . .\" .\" %%%LICENSE_START(VERBATIM_ONE_PARA) .\" Permission is granted to distribute possibly modified copies .\" of this page provided the header is included verbatim, .\" and in case of nontrivial modification author and date .\" of the modification is added to the header. .\" %%%LICENSE_END .\" .\" $Id: icmp.7,v 1.6 2000/08/14 08:03:45 ak Exp $ .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .\" .\" Japanese Version Copyright (c) 1999 NAKANO Takeo all rights reserved. .\" Translated 1999-12-06, NAKANO Takeo .\" Updated 2008-12-26, Akihiro MOTOKI , LDP v3.14 .\" .TH ICMP 7 2017\-11\-26 Linux "Linux Programmer's Manual" .SH 名前 icmp \- Linux IPv4 ICMP カーネルモジュール .SH 説明 このカーネルモジュールは RFC\ 792 で定義されている Internet Control Message Protocol を実装したものである。 このプロトコルはエラー状況を知らせたり診断を行うために用いられる。 ユーザーはこのモジュールとは直接には通信できない。 このモジュールはカーネルの他のプロトコルと通信し、 それらのプロトコルが ICMP エラーをアプリケーションレイヤに渡す。 カーネルの ICMP モジュールは ICMP リクエストに対する応答も行う。 .PP raw ソケットをプロトコル \fBIPPROTO_ICMP\fP でオープンすれば、 ユーザープロトコルはローカルなソケット全てに対する ICMP パケットを受信することができる。 詳細は \fBraw\fP(7) を参照のこと。 ソケットに渡される ICMP パケットのタイプは \fBICMP_FILTER\fP オプションによってフィルターできる。 ICMP パケットは (たとえユーザーソケットに渡される場合でも)、 常にカーネルによって (も) 処理される。 .PP Linux では ICMP エラーパケットのレートをそれぞれの送り先に対して 制限している。 \fBICMP_REDIRECT\fP と \fBICMP_DEST_UNREACH\fP も到着したパケットの行き先経路 (destination route) を制限する。 .SS "/proc インターフェース" .\" FIXME . better description needed ICMP では、いくつかのグローバルパラメーターを設定するための \fI/proc\fP ファイル群が用意されている。 これらのパラメーターには、 \fI/proc/sys/net/ipv4/\fP ディレクトリ内のファイルの読み書きでアクセスできる。 これらのパラメーターのほとんどは特定の ICMP タイプに対するレート制限 (rate limitation) である。 Linux 2.2 は ICMP の制限にトークンバケットフィルタ (token bucket filter) を用いる。 それぞれの値は、バーストの後にトークンバケットフィルタがクリア されるまでのタイムアウトを秒単位で表したものである。最小単位(jiffy)は システム依存の単位で i386 システムは通常 10ms、alpha や ia64 では 1ms である。 .TP \fIicmp_destunreach_rate\fP (Linux 2.2 から 2.4.9 まで) .\" Precisely: from 2.1.102 ICMP 不達パケット (Destination Unreachable packet) を送る最大レート。 これは特定のルートまたは行き先にパケットを送信するレートを制限する。 この制限は、 path MTU discovery に必要な \fBICMP_FRAG_NEEDED\fP パケットの送信には影響しない。 .TP \fIicmp_echo_ignore_all\fP (Linux 2.2 以降) .\" Precisely: 2.1.68 この値が非ゼロの場合は、 Linux はすべての \fBICMP_ECHO\fP 要求を無視する。 .TP \fIicmp_echo_ignore_broadcasts\fP (Linux 2.2 以降) .\" Precisely: from 2.1.68 この値が非ゼロの場合は、 Linux はブロードキャストアドレスに送られたすべての \fBICMP_ECHO\fP 要求を無視する。 .TP \fIicmp_echoreply_rate\fP (Linux 2.2 から 2.4.9 まで) .\" Precisely: from 2.1.102 \fBICMP_ECHOREQUEST\fP パケットに応答する \fBICMP_ECHOREPLY\fP パケットの最大送信レート。 .TP \fIicmp_errors_use_inbound_ifaddr\fP (ブール値; デフォルト: 無効; Linux 2.6.12 以降) .\" The following taken from 2.6.28-rc4 Documentation/networking/ip-sysctl.txt これを無効にすると、ICMP エラーメッセージは、 出力インターフェースのプライマリアドレスで送信される。 .IP これを有効にすると、エラーメッセージは ICMP エラーの原因となったパケットを 受信したインターフェースのプライマリアドレスで送信される。 この動作は、多くのネットワーク管理者がルーターに対して期待しているものであり、 これにより複雑なネットワークレイアウトのデバッグがより容易になる。 .IP 選択されたインターフェースでプライマリアドレスが存在しない場合は、 この設定に関わらず、最初のループバック以外のインターフェースで、 プライマリアドレスを持つインターフェースのプライマリアドレスが使用される点に 注意すること。 .TP \fIicmp_ignore_bogus_error_responses\fP (ブール値; デフォルト: 無効; Linux 2.2 以降) .\" precisely: since 2.1.32 .\" The following taken from 2.6.28-rc4 Documentation/networking/ip-sysctl.txt ルーターの中には、RFC1122 に違反し、ブロードキャストフレームに対して 偽の応答を送信するものがある。 このような違反は通常カーネルの警告としてログに記録される。 このパラメーターを有効にすると、カーネルはこのような警告を出さなくなり、 ログファイルに雑音のような情報が記録されるのを避けることができる。 .TP \fIicmp_paramprob_rate\fP (Linux 2.2 から 2.4.9 まで) .\" Precisely: from 2.1.102 \fBICMP_PARAMETERPROB\fP パケットの最大送信レート。 これらのパケットは不正な IP ヘッダーを持つパケットが到着した場合に 送信される。 .TP \fIicmp_ratelimit\fP (integer; default: 1000; Linux 2.4.10 以降) .\" The following taken from 2.6.28-rc4 Documentation/networking/ip-sysctl.txt 種別が \fIicmp_ratemask\fP (下記参照) にマッチした ICMP パケットの、 特定の送信先への送信レートの最大値を制限する。 0 はレート制限を無効にすることを、 0 以外の値は応答間の最小間隔 (ミリ秒単位) を示す。 .TP \fIicmp_ratemask\fP (integer; default: 下記参照; Linux 2.4.10 以降) .\" The following taken from 2.6.28-rc4 Documentation/networking/ip-sysctl.txt レート制限を行う ICMP タイプを決めるマスク。 .IP 有効ビット: IHGFEDCBA9876543210 .br デフォルトマスク: 0000001100000011000 (0x1818) .IP ビット定義 (Linux カーネルソースファイル \fIinclude/linux/icmp.h\fP を参照): .RS 12 .TS l l. 0 Echo Reply 3 Destination Unreachable * 4 Source Quench * 5 Redirect 8 Echo Request B Time Exceeded * C Parameter Problem * D Timestamp Request E Timestamp Reply F Info Request G Info Reply H Address Mask Request I Address Mask Reply .TE .RE .PP アスタリスク印 (*) が付いたビットは、 デフォルトでレート制限が有効になっている (上記のマスクのデフォルトも参照)。 .TP \fIicmp_timeexceed_rate\fP (Linux 2.2 から 2.4.9 まで) \fBICMP_TIME_EXCEEDED\fP パケットの最大送信レート。 これらのパケットはパケットがあまりに多くの hop を通過した場合に、 ループを防ぐために送られる。 .TP \fIping_group_range\fP (two integers; default: see below; since Linux 2.6.39) Range of the group IDs (minimum and maximum group IDs, inclusive) that are allowed to create ICMP Echo sockets. The default is "1 0", which means no group is allowed to create ICMP Echo sockets. .SH バージョン \fBICMP_ADDRESS\fP 要求に対するサポートは 2.2 で削除された。 .PP \fBICMP_SOURCE_QUENCH\fP は Linux 2.2 で削除された。 .SH 注意 .\" not really true ATM .\" .PP .\" Linux ICMP should be compliant to RFC 1122. 他の多くの実装では、 \fBIPPROTO_ICMP\fP raw ソケットがサポートされていない。 この機能は移植性が必要なプログラムでは用いるべきでない。 .PP Linux がルーターとして動作していないときには、 \fBICMP_REDIRECT\fP パケットは送信されない。 またこれらが受け取られるのも、発信元がルーティングテーブルに定義されている 古いゲートウェイで、リダイレクトルート (redirect route) が 適当な時間の後に期限切れになっている場合に限られる。 .PP \fBICMP_TIMESTAMP\fP から返される 64 ビットのタイムスタンプは、 紀元 (Epoch) である 1970\-01\-01 00:00:00 +0000 (UTC) からの経過時間をミリ秒単位で表したものである。 .PP Linux ICMP は ICMP を送るために内部で raw ソケットを用いる。 raw ソケットは \fBnetstat\fP(8) の出力に 0 inode として出力される。 .SH 関連項目 \fBip\fP(7), \fBrdisc\fP(8) .PP \fBRFC\ 792\fP: ICMP プロトコルの説明 .SH この文書について この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 5.10 の一部である。プロジェクトの説明とバグ報告に関する情報は \%https://www.kernel.org/doc/man\-pages/ に書かれている。