I'm very pleased to announce the release of our new website and documentation using the new toolchain with Hugo and AsciiDoctor. To get more information about the new toolchain please read the FreeBSD Documentation Project Primer[1], Hugo docs[2] and AsciiDoctor docs[3]. Acknowledgment: Benedict Reuschling <bcr@> Glen Barber <gjb@> Hiroki Sato <hrs@> Li-Wen Hsu <lwhsu@> Sean Chittenden <seanc@> The FreeBSD Foundation [1] https://docs.FreeBSD.org/en/books/fdp-primer/ [2] https://gohugo.io/documentation/ [3] https://docs.asciidoctor.org/home/ Approved by: doceng, core
492 lines
14 KiB
Groff
492 lines
14 KiB
Groff
.\" Copyright (c) 1985, 1991, 1993
|
|
.\" The Regents of the University of California. All rights reserved.
|
|
.\"
|
|
.\" Redistribution and use in source and binary forms, with or without
|
|
.\" modification, are permitted provided that the following conditions
|
|
.\" are met:
|
|
.\" 1. Redistributions of source code must retain the above copyright
|
|
.\" notice, this list of conditions and the following disclaimer.
|
|
.\" 2. Redistributions in binary form must reproduce the above copyright
|
|
.\" notice, this list of conditions and the following disclaimer in the
|
|
.\" documentation and/or other materials provided with the distribution.
|
|
.\" 4. Neither the name of the University nor the names of its contributors
|
|
.\" may be used to endorse or promote products derived from this software
|
|
.\" without specific prior written permission.
|
|
.\"
|
|
.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
|
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
|
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
|
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
|
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
|
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
|
.\" SUCH DAMAGE.
|
|
.\"
|
|
.\" @(#)ping.8 8.2 (Berkeley) 12/11/93
|
|
.\" %FreeBSD: src/sbin/ping/ping.8,v 1.51 2004/04/09 19:58:34 markm Exp %
|
|
.\"
|
|
.\" $FreeBSD$
|
|
.\"
|
|
.Dd October 2, 2002
|
|
.Dt PING 8
|
|
.Os
|
|
.Sh 名称
|
|
.Nm ping
|
|
.Nd
|
|
.Tn ICMP ECHO_REQUEST
|
|
パケットをネットワーク上のホストへ送る
|
|
.Sh 書式
|
|
.Nm
|
|
.Op Fl AaDdfnoQqRrv
|
|
.Op Fl c Ar count
|
|
.Op Fl i Ar wait
|
|
.Op Fl l Ar preload
|
|
.Op Fl M Cm mask | time
|
|
.Op Fl m Ar ttl
|
|
.Op Fl P Ar policy
|
|
.Op Fl p Ar pattern
|
|
.Op Fl S Ar src_addr
|
|
.Op Fl s Ar packetsize
|
|
.Op Fl t Ar timeout
|
|
.Op Fl z Ar tos
|
|
.Ar host
|
|
.Nm
|
|
.Op Fl AaDdfLnoQqRrv
|
|
.Op Fl c Ar count
|
|
.Op Fl I Ar iface
|
|
.Op Fl i Ar wait
|
|
.Op Fl l Ar preload
|
|
.Op Fl M Cm mask | time
|
|
.Op Fl m Ar ttl
|
|
.Op Fl P Ar policy
|
|
.Op Fl p Ar pattern
|
|
.Op Fl S Ar src_addr
|
|
.Op Fl s Ar packetsize
|
|
.Op Fl T Ar ttl
|
|
.Op Fl t Ar timeout
|
|
.Op Fl z Ar tos
|
|
.Ar mcast-group
|
|
.Sh 解説
|
|
.Nm
|
|
ユーティリティは、
|
|
.Tn ICMP
|
|
の
|
|
.Tn ECHO_REQUEST
|
|
データグラムを用いて、指定したホストやゲートウェイ
|
|
からの
|
|
.Tn ICMP ECHO_RESPONSE
|
|
を引き出します。
|
|
.Tn ECHO_REQUEST
|
|
データグラム
|
|
.Pq Dq ping
|
|
には IP および
|
|
.Tn ICMP
|
|
ヘッダ、
|
|
.Dq struct timeval
|
|
、パケットの残りを埋める適当な数の
|
|
.Dq pad
|
|
バイトが順にあります。
|
|
オプションは以下の通りです:
|
|
.Bl -tag -width indent
|
|
.It Fl A
|
|
聴覚モード。
|
|
次のパケットを送信する前にパケットを受け取らないと、
|
|
ベル
|
|
.Tn ( ASCII
|
|
0x07)
|
|
文字を出力します。
|
|
送信間隔よりも往復時間が長い場合のために、
|
|
未受信パケット数の最大値を増加させた場合のみ、
|
|
それを越えて喪失したパケットがベルを鳴らします。
|
|
.It Fl a
|
|
聴覚モード。パケットを受け取った時に、出力にベル
|
|
.Tn ( ASCII
|
|
0x07)
|
|
文字を
|
|
含みます。このオプションは、別形式のオプションがある場合は無視されます。
|
|
.It Fl c Ar count
|
|
.Tn ECHO_RESPONSE
|
|
パケットを
|
|
.Ar count
|
|
回送出
|
|
(そして受信)
|
|
してから終了します。
|
|
本オプションが指定されない場合、
|
|
.Nm
|
|
は割り込まれるまで動作を継続します。
|
|
.It Fl D
|
|
フラグメント無しフラグを設定します。
|
|
.It Fl d
|
|
使用する socket に
|
|
.Dv SO_DEBUG
|
|
オプションを設定します。
|
|
.It Fl f
|
|
.Tn ECHO_REQUEST
|
|
ping を垂れ流します。
|
|
パケットが返って来るとすぐ、もしくは 100 分の 1 秒に 1 回のいずれか多い回数だけ
|
|
パケットを出力します。
|
|
.Tn ECHO_REQUEST
|
|
パケットを送るたびに
|
|
.Dq .\&
|
|
が表示され、
|
|
.Tn ECHO_REPLY
|
|
パケットを受信するたびにバックスペースが表示されます。
|
|
これによりどれだけのパケットが欠落したのかをすばやく表示することができます。
|
|
スーパユーザのみ使用可能です
|
|
.Bf -emphasis
|
|
このオプションはネットワークに非常に負荷をかけるので、注意して使用する
|
|
必要があります。
|
|
.Ef
|
|
.It Fl I Ar interface
|
|
与えられたインタフェースアドレスに対して、マルチキャストパケットを
|
|
送ります。このフラグは、ping の宛先アドレスがマルチキャストアドレスの
|
|
場合だけに適用できます。
|
|
.It Fl i Ar wait
|
|
.Ar wait
|
|
で指定した秒数だけパケットの送出間隔を空けます。
|
|
デフォルトでは送出間隔は 1 秒です。
|
|
より小さい値を指定できますが、
|
|
1 より小さい値を指定できるのはスーパユーザだけです。
|
|
このオプションは
|
|
.Fl f
|
|
オプションとは同時に指定できません。
|
|
.It Fl L
|
|
マルチキャストパケットのループバックを抑制します。
|
|
このフラグは、宛先アドレスがマルチキャストアドレスの場合だけ
|
|
適用できます。
|
|
.It Fl l Ar preload
|
|
指定した
|
|
.Ar preload
|
|
値だけ
|
|
.Tn ECHO_REQUEST
|
|
パケットを出来るだけ速く送信し、通常の動作に戻ります。
|
|
スーパユーザのみがこのオプションを使用できます。
|
|
.It Fl M
|
|
.Dv ICMP_ECHO
|
|
の代りに
|
|
.Dv ICMP_MASKREQ
|
|
または
|
|
.Dv ICMP_TSTAMP
|
|
を使用します。
|
|
.Cm mask
|
|
では、リモートマシンのネットマスクを表示します。
|
|
.Va net.inet.icmp.maskrepl
|
|
MIB 変数を設定すると、
|
|
.Dv ICMP_MASKREPLY
|
|
が有効になります。
|
|
.Cm time
|
|
では、起点、受理、送信のタイムスタンプが表示されます。
|
|
.It Fl m Ar ttl
|
|
出力パケットの IP Time To Live を設定します。
|
|
指定しないと、カーネルは
|
|
.Va net.inet.ip.ttl
|
|
MIB 変数の値を使用します。
|
|
.It Fl n
|
|
数値のみ出力します。ホストアドレスに対する名前を調べるようなことは
|
|
しません。
|
|
.It Fl o
|
|
応答パケットを 1 個受け取ると、成功状態で終了します。
|
|
.It Fl P Ar policy
|
|
.Ar policy
|
|
は、ping セッションの IPsec ポリシを指定します。
|
|
詳細については
|
|
.Xr ipsec 4
|
|
と
|
|
.Xr ipsec_set_policy 3
|
|
を参照してください。
|
|
.It Fl p Ar pattern
|
|
送出するパケットを埋める
|
|
.Dq pad
|
|
バイトを指定します。
|
|
.Dq pad
|
|
バイトは
|
|
16 バイトを上限とします。
|
|
これはネットワーク上でデータ依存の問題を診断するときに有効です。たとえば
|
|
.Dq Li \-p ff
|
|
は全て 1 の送出パケットを生成します。
|
|
.It Fl Q
|
|
いくらか静かな出力にします。
|
|
自己が行なった問い合わせに対しての応答に含まれる
|
|
ICMP エラーメッセージは表示されません。
|
|
もともとは、
|
|
.Fl v
|
|
オプションがそのようなエラーを表示するために必要でしたが、
|
|
.Fl v
|
|
オプションは全ての ICMP エラーメッセージを表示します。忙しい機械上では、
|
|
この出力は更に負荷になるでしょう。
|
|
.Fl Q
|
|
オプションを指定しないと、
|
|
.Nm
|
|
は、
|
|
自己の ECHO_REQUEST メッセージに起因する ICMP エラーメッセージを表示します。
|
|
.It Fl q
|
|
出力を抑制します。開始時と終了時の要約行しか表示しません。
|
|
.It Fl R
|
|
指定ホストまでの到達経路を記録します。
|
|
.Tn ECHO_REQUEST
|
|
パケット中に
|
|
.Tn RECORD_ROUTE
|
|
オプションをつけ、返送パケット上の経路バッファを表示します。IP ヘッダには
|
|
経路を 9 個収める大きさしかないことに注意してください;
|
|
特定の宛先に対してパケットを経路づけるには、通常
|
|
.Xr traceroute 8
|
|
コマンドを使う方が良いでしょう。
|
|
不正に偽ったパケットによるなどして
|
|
しかるべき経路数よりも大くの経路が帰って来た場合、
|
|
ping は経路リストを表示し、正しい位置にまで縮めます。
|
|
多くのホストは
|
|
.Tn RECORD_ROUTE
|
|
オプションを無視するか捨てます。
|
|
.It Fl r
|
|
通常のルーティングテーブルを無視し、
|
|
直接接続されているネットワーク上のホストに対して送信します。
|
|
指定接続されたネットワーク上にホストが存在しない場合には、エラーが返されます。
|
|
このオプションは経路情報を持たないインタフェースを経由してローカル
|
|
ホストに ping をかけるのに用いられます
|
|
(たとえばインタフェースが
|
|
.Xr routed 8
|
|
によってドロップされた後)。
|
|
.It Fl S Ar src_addr
|
|
引き続いて指定する IP アドレスを、
|
|
出力パケットの送信元アドレスとして使用します。
|
|
複数の IP アドレスを持つホストでは、このオプションを使用することにより、
|
|
プローブパケットを送信するインタフェース以外の送信アドレスを強制可能です。
|
|
IP アドレスがこのマシンのインタフェースアドレスではない場合、
|
|
エラーが返され、送信は行われません。
|
|
.It Fl s Ar packetsize
|
|
送出するデータのバイト数を指定します。
|
|
デフォルトでは 56 バイトです。
|
|
これは
|
|
.Tn ICMP
|
|
ヘッダデータの 8 バイトと合せて 64
|
|
.Tn ICMP
|
|
バイトになります。
|
|
スーパユーザのみ、デフォルト値より大きな値を指定可能です。
|
|
.It Fl T Ar ttl
|
|
マルチキャストパケットの IP 寿命時間 (Time To Live) を設定します。
|
|
このオプションは、宛先アドレスがマルチキャストアドレスの場合だけ
|
|
適用できます。
|
|
.It Fl t Ar timeout
|
|
タイムアウトを、秒単位で指定します。
|
|
タイムアウトすると、受信パケット数にかかわらず
|
|
.Nm
|
|
が終了します。
|
|
.It Fl v
|
|
冗長出力を有効にします。
|
|
.Tn ECHO_RESPONSE
|
|
以外の受信
|
|
.Tn ICMP
|
|
パケットも表示されます。
|
|
.It Fl z Ar tos
|
|
指定されたタイプのサービスを使用します。
|
|
.El
|
|
.Pp
|
|
問題の切り分けのために
|
|
.Nm
|
|
を用いるにはローカルインタフェースが up かつ running であることを
|
|
確認するため、まずローカルホスト上で実行します。
|
|
その後により遠くのホストやゲートウェイに
|
|
.Dq ping
|
|
します。
|
|
経路周回時間 (round trip time) と消失パケットの統計が計算されます。
|
|
重複したパケットが受信された場合、そのパケットは消失パケットの計算には
|
|
含まれませんが、経路周回時間の統計の計算には
|
|
使われます。
|
|
指定されたパケットの数が送信され
|
|
(受信され)
|
|
たとき、もしくはプログラムが
|
|
.Dv SIGINT
|
|
で終了した場合、簡単な要約が表示されます。
|
|
要約は、送出したパケット数、受信したパケット数、そして
|
|
経路周回時間の最小/平均/最大/分散です。
|
|
.Pp
|
|
.Nm
|
|
が
|
|
.Dv SIGINFO
|
|
シグナル (
|
|
.Xr stty 1
|
|
に対する
|
|
.Cm status
|
|
引数を参照) を受信した場合、
|
|
現時点で送信および受信されたパケット数、
|
|
経路周回時間の最小/平均/最大/分散を、標準エラー出力に書き込みます。
|
|
.Pp
|
|
このプログラムは主にネットワークのテスト、計測、管理に用いられことを
|
|
想定しています。
|
|
.Nm
|
|
はそれ自体ネットワークに負荷をかけるので、トラブルのないときや自動スクリ
|
|
プトで用いることは勧められません。
|
|
.Sh ICMP パケットの詳細
|
|
オプションなしの IP ヘッダは 20 バイトです。
|
|
.Tn ICMP
|
|
.Tn ECHO_REQUEST
|
|
パケットはさらなる 8 バイトの
|
|
.Tn ICMP
|
|
ヘッダとそれに続く任意の大きさのデータからなっています。
|
|
この大きさは
|
|
.Ar packetsize
|
|
によって指定されます
|
|
(デフォルトでは 56 バイトです)。
|
|
このように受信した IP パケット内の
|
|
.Tn ICMP
|
|
.Tn ECHO_REPLY
|
|
データ量は常に指定されたデータ
|
|
.No ( Tn ICMP
|
|
ヘッダ)
|
|
の大きさよりも 8 バイト大きくなります。
|
|
.Pp
|
|
データ領域が少なくとも 8 バイトあるとき、
|
|
.Nm
|
|
は最初の 8 バイトを経路周回時間の計算に用いるタイムスタンプを書くために
|
|
用います。指定された pad の大きさが 8 バイトより小さい場合経路周回時間は
|
|
得られません。
|
|
.Sh 重複パケットと障害パケット
|
|
.Nm
|
|
ユーティリティは重複パケットと障害パケットを報告します。重複パケットは
|
|
ユニキャストアドレスに対しては起こるはずのないものですが、
|
|
リンク層での不適切な再送信によって引き起こされるようです。
|
|
重複は様々な状況で起こる可能性があります。低いレベルの重複の存在は
|
|
必ずしも警告にならないかもしれませんが、よい兆候ではありません。
|
|
ブロードキャストもしくは
|
|
マルチキャストアドレスに ping する時には、重複が起こることが期待されます。
|
|
実際に重複するのではなく、
|
|
異ったホストから同じ要求に対して応答が行われからです。
|
|
.Pp
|
|
障害を受けたパケットは明らかに重大な警告です。多くの場合、
|
|
.Nm
|
|
パケットの経路のどこか(ネットワーク内かホスト内)のハードウェアの故障が
|
|
考えられます。
|
|
.Sh 異なったデータパターンの試行
|
|
(インター) ネットワーク層はデータ部分に含まれるデータによってパケットの扱い
|
|
を変えません。不幸にもデータ依存性の問題がネットワークに侵入し長い間検知さ
|
|
れないままとなる可能性が知られています。多くの場合、問題を引き起こす特殊
|
|
なパターンはたとえば全部 1 や全部 0 のようなもの、あるいは右端以外が 0
|
|
であるような十分な
|
|
.Dq 遷移
|
|
を持たないものです。コマンドラインで(たとえば)
|
|
全部 0 のデータパターンを指定するだけでは不十分かもしれません。なぜな
|
|
ら問題のパターンはデータリンク層にあり、コマンドラインで指定したものと
|
|
コントローラが送信するものとの間の関係は複雑だからです。
|
|
.Pp
|
|
このことはデータ依存性が問題となるとき、それを見付けるために多くのテストをし
|
|
なければならないということを意味します。運がよければ、あるネットワーク
|
|
を通して送れない、あるいは同じような長さのファイルよりもずっと長時間かか
|
|
るファイルを見付けることができるかもしれません。この場合、そのファイル
|
|
を調べ繰り返し現われるパターンを
|
|
.Nm
|
|
の
|
|
.Fl p
|
|
オプションを使ってテストできます。
|
|
.Sh TTL の詳細
|
|
IP パケットの
|
|
.Tn TTL
|
|
値はパケットが捨てられずに通過できる IP ルータの最大数を表わ
|
|
します。今のところインターネット上の各ルータは
|
|
.Tn TTL
|
|
フィールドをちょうど 1 だけ減らすと期待できます。
|
|
.Pp
|
|
.Tn TCP/IP
|
|
の仕様では
|
|
.Tn TCP
|
|
パケットの
|
|
.Tn TTL
|
|
フィールドを 64 にすべきと推奨していますが、多くのシステムは
|
|
もっと小さい値を用いています
|
|
.No ( Bx 4.3
|
|
では 30、
|
|
.Bx 4.2
|
|
では 15 を用いています)。
|
|
.Pp
|
|
このフィールドに許される最大値は 255 です。
|
|
そして多くの
|
|
.Ux
|
|
システムでは
|
|
.Tn ICMP ECHO_REQUEST
|
|
パケットの
|
|
.Tn TTL
|
|
フィールドを 255 にしています。これが
|
|
.Pq ping
|
|
は出来るのに
|
|
.Xr telnet 1
|
|
や
|
|
.Xr ftp 1
|
|
で入れないホストが発生する理由です。
|
|
.Pp
|
|
通常
|
|
.Nm
|
|
は受け取ったパケットの ttl 値を出力します。リモートシステム
|
|
が ping パケットを受け取るとき、その応答における
|
|
.Tn TTL
|
|
フィールドに関し以下の 3 つのうちの 1 つを行なうことができます。
|
|
.Bl -bullet
|
|
.It
|
|
変更しない;これは
|
|
.Bx 4.3 tahoe
|
|
リリース前の
|
|
.Bx
|
|
システムが行なっていたことです。
|
|
この場合、受け取ったパケット中の
|
|
.Tn TTL
|
|
値は 255 から周回経路におけるルータの数を引いた数です。
|
|
.It
|
|
255 にセットする; これは現在の
|
|
.Bx
|
|
システムが行なっている
|
|
ことです。この場合、受け取ったパケット中の
|
|
.Tn TTL
|
|
値は 255 から、リモートシステム
|
|
.Em から
|
|
.Nm
|
|
.Em している
|
|
ホスト
|
|
.Em まで
|
|
の経路におけるルータの数を引いた数となります。
|
|
.It
|
|
ある他の値にセットする。マシンによっては
|
|
30 あるいは 60 のような
|
|
.Tn TCP
|
|
パケットで用いるのと同じ値を
|
|
.Tn ICMP
|
|
パケットに使います。また全く異なる値を用いるマシンもあるかもしれません。
|
|
.El
|
|
.Sh 戻り値
|
|
.Nm
|
|
ユーティリティは、指定した
|
|
.Ar host
|
|
から少なくとも 1 回の応答を受信した場合、終了値 0 を返します;
|
|
送出は成功したものの応答を受信できない場合は 2 を返します;
|
|
エラーが発生した場合は、他の値
|
|
.In ( sysexits.h
|
|
が返されます。
|
|
.Sh 関連項目
|
|
.Xr netstat 1 ,
|
|
.Xr ifconfig 8 ,
|
|
.Xr routed 8 ,
|
|
.Xr traceroute 8
|
|
.Sh 歴史
|
|
.Nm
|
|
ユーティリティは
|
|
.Bx 4.3
|
|
から登場しました。
|
|
.Sh 作者
|
|
オリジナルの
|
|
.Nm
|
|
ユーティリティは、
|
|
.An Mike Muuss
|
|
が US Army Ballistics Research Laboratory にて記述しました。
|
|
.Sh バグ
|
|
多くのホストやゲートウェイは、
|
|
.Tn RECORD_ROUTE
|
|
オプションを無視します。
|
|
.Pp
|
|
最大IPヘッダ長は、
|
|
.Tn RECORD_ROUTE
|
|
オプションを付加するには小さ過ぎます。しかしながら、これについては出来
|
|
ることは多くありません。
|
|
.Pp
|
|
ping を垂れ流しにするのは、一般に勧められません。特に
|
|
ブロードキャストアドレスに対して ping の垂れ流しを行なうのは、
|
|
きちんと条件を整えた場合においてのみにとどめるべきです。
|