.\" %KAME: ping6.8,v 1.22 2000/05/31 17:00:07 itojun Exp % .\" .\" Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project. .\" 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. .\" 3. Neither the name of the project 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 PROJECT 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 PROJECT 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. .\" .\" %FreeBSD: src/sbin/ping6/ping6.8,v 1.3.2.3 2000/07/15 07:24:48 kris Exp % .\" jpman %Id: ping6.8,v 1.3 2000/05/14 14:35:41 yt-kage Stab % .\" .\" WORD: ICMPv6 Node Information Node Addresses = ICMPv6 ノード情報(アドレス)問い合わせ .\" WORD: ICMPv6 Node Information FQDN query = ICMPv6 ノード情報(FQDN)問い合わせ .Dd May 17, 1998 .Dt PING6 8 .Os .Sh 名称 .Nm ping6 .Nd ネットワークホストに対して .Tn ICMPv6 ECHO_REQUEST パケットを送信する .Sh 書式 .Nm .Nm ping6 .\" without ipsec, or new ipsec .Op Fl dfHnNqRvw .\" old ipsec .\" .Op Fl AdEfnNqRvw .Bk -words .Op Fl a Ar addrtype .Ek .Bk -words .Op Fl b Ar bufsiz .Ek .Bk -words .Op Fl c Ar count .Ek .Bk -words .Op Fl h Ar hoplimit .Ek .Bk -words .Op Fl I Ar interface .Ek .Bk -words .Op Fl i Ar wait .Ek .Bk -words .Op Fl l Ar preload .Ek .Bk -words .Op Fl p Ar pattern .Ek .Bk -words .\" new ipsec .Op Fl P Ar policy .Ek .Bk -words .Op Fl S Ar sourceaddr .Ek .Bk -words .Op Fl s Ar packetsize .Ek .Bk -words .Op Ar hops... .Ek .Bk -words .Ek .Ar host .Sh 解説 .Nm は、 .Tn ICMPv6 プロトコルで必須の .Tn ICMP6_ECHO_REQUEST データグラムを使用し、ホストまたはゲートウェイから .Tn ICMP6_ECHO_REPLY データグラムを返させます。 .Tn ICMP6_ECHO_REQUEST データグラム (``ping'') は、IPv6 ヘッダと .Tn ICMPv6 を持ちます。 .Tn ICMPv6 の書式は RFC2463 に記述されています。 オプションは次の通りです: .Bl -tag -width Ds .\" old ipsec .\" .It Fl A .\" トランスポートモード IPsec 認証ヘッダを有効にします .\" (実験なものです)。 .It Fl a Ar addrtype .Tn ECHO_REQUEST ではなく ICMPv6 ノード情報 (アドレス) 問い合わせパケットを 生成します。 .Ar addrtype は以下の文字より構成される文字列でなければなりません。 .Bl -tag -width Ds -compact .It Ic a 応答者の全てのユニキャストアドレスを要求します。 もし省略されると、応答者のアドレスを持つ インタフェースに属するアドレスのみ要求します。 .It Ic c 応答者の IPv4 互換アドレスと IPv4 にマップされたアドレスを要求します。 .It Ic g 応答者のグローバルスコープアドレスを要求します。 .It Ic s 応答者のサイトローカルアドレスを要求します。 .It Ic l 応答者のリンクローカルアドレスを要求します。 .It Ic A 応答者のエニーキャストアドレスを要求します。 この文字がない場合、応答者はユニキャストアドレスのみ返します。 この文字がある場合、応答者はエニーキャストのみ返します。 仕様では、応答者のエニーキャストアドレスをどのように取得するかは 述べられていないことに注意してください。 これは実験的なオプションです。 .El .It Fl b Ar bufsiz ソケットのバッファサイズを設定します。 .It Fl c Ar count .Tn ECHO_RESPONSE パケットを .Ar count 回送出 .Pq そして受信 してから終了します。 .It Fl d 使用されているソケットに .Dv SO_DEBUG オプションを設定します。 .\" .It Fl E .\" トランスポートモード IPsec 暗号ペイロードを有効にします .\" (実験なものです)。 .It Fl f .Tn ECHO_REQUEST ping を垂れ流します。 パケットが返って来るとすぐ、もしくは 100 分の 1 秒に 1 回のうちの どちらか多い方の頻度でパケットを出力します。 .Tn ECHO_REQUEST パケットを送るたびに .Dq \&. が表示され、 .Tn ECHO_REPLY パケットを受信するたびにバックスペースが表示されます。 これによりどれだけのパケットが欠落したのかをすばやく表示することができます。 スーパユーザのみ使用可能です。 .Bf -emphasis このオプションはネットワークに非常に負荷をかけるので、注意して使用する 必要があります。 .Ef .It Fl H IPv6 アドレスの逆検索を試行するよう、指定します。 本オプションを指定しない場合、 .Nm コマンドは逆検索を試行しません。 .It Fl h Ar hoplimit IPv6 の中継限界数を設定します。 .It Fl I Ar interface 与えられたインタフェースアドレスに対して、送ります。 このフラグは、ping の宛先アドレスが マルチキャストアドレスの場合か、 リンクローカル / サイトローカルなユニキャストアドレスの場合に適用できます。 .It Fl i Ar wait .Ar wait で指定した秒数だけパケットの送出間隔を空けます。 デフォルトでは送出間隔は 1 秒です。 このオプションは .Fl f オプションとは同時に指定できません。 .It Fl l Ar preload .Nm ping6 は指定した .Ar preload 値だけ .Tn ECHO_REQUEST パケットを出来るだけ速く送信し、通常の動作に戻ります。 スーパユーザのみがこのオプションを使用できます。 .It Fl n 数値の出力のみになります。 ホストアドレスに対してシンボル名の解決を試みません。 .It Fl N ノード情報マルチキャストグループ (node information multicast group) をプローブします。 .Pq Li ff02::2:xxxx:xxxx . .Ar host はターゲットの文字列のホスト名であることが必要です .Pq 数値の IPv6 アドレスであってはなりません 。 ノード情報マルチキャストグループは、指定した .Ar host に基づいて計算し、最終的な終点として使用されます。 ノード情報マルチキャストグループは リンクローカルなマルチキャストグループなので、 終点リンクを .Fl I で指定する必要があります。 .It Fl p Ar pattern 送出するパケットを埋める .Dq pad バイトを指定します。 .Dq pad バイトは 16 バイトを上限とします。 これはネットワーク上でデータ依存の問題を診断するときに有効です。たとえば .Dq Li \-p ff は全て 1 の送出パケットを生成します。 .It Fl q 出力を抑制します。開始時と終了時の要約行しか表示しません。 .It Fl R 対象 .Po .Ar hops を指定した場合には最初の .Ar hop .Pc が到達可能であると、カーネルに信じさせます。 これは、上位層の到達可能性確認ヒントを挿入することで実現します。 本オプションは、対象 .Ar host .Pq または最初のホップ が隣である場合意味があります。 .It Fl S Ar sourceaddr 要求パケットの始点アドレスを指定します。 始点アドレスは、 送信元ノードのユニキャストアドレスのうちのひとつであることが必要です。 出力インタフェースを .Fl I で指定する場合には、 .Ar sourceaddr は当該インタフェースに割り当てたアドレスであることが必要です。 .It Fl s Ar packetsize 送出するデータのバイト数を指定します。 デフォルトでは 56 バイトです。 これは、 .Tn ICMP ヘッダデータの 8 バイトをつけた 64 バイトの .Tn ICMP データに変換されます。 .Fl b オプションも共に指定して、ソケットのバッファサイズを 拡張する必要があるかもしれません。 .It Fl v 冗長出力を有効にします。 .Tn ECHO_RESPONSE 以外の受信 .Tn ICMP パケットも表示されます。 .It Fl w .Tn ECHO_REQUEST ではなく ICMPv6 ノード情報 (FQDN) 問い合わせパケットを生成します。 .Fl w オプションを指定した場合 .Fl s オプションは無効となります。 .It Fl W .Fl w オプションと同じですが、03 ドラフトベースの古いパケット書式を使用します。 このオプションは後方互換性のために残されていました。 .Fl w オプションを指定した場合 .Fl s オプションは無効となります。 .It Ar hops タイプ 0 ルーティングヘッダ中に置かれる、中間ノード用の IPv6 です。 .It Ar host 最終的な終点ノードの IPv6 アドレスです。 .El .Pp 問題の切り分けのために .Nm を用いるには、ローカルインタフェースが up かつ running であることを 確認するため、まずローカルホスト上で実行します。 その後、より遠くのホストやゲートウェイに .Dq ping をしていきます。 経路周回時間 (round-trip time) と消失パケットの統計が計算されます。 重複したパケットが受信された場合、そのパケットは消失パケットの計算には 含まれませんが、経路周回時間の統計の計算には 使われます。 指定されたパケットの数が送信され .Pq 受信され たとき、もしくはプログラムが .Dv SIGINT で終了した場合、簡単な要約が表示されます。 要約に書き出されるのは、送出したパケット数、受信したパケット数、そして 経路周回時間の最小/最大/平均/標準偏差です。 .Pp このプログラムは主にネットワークのテスト、計測、管理に用いられることを 想定しています。 .Nm はそれ自体ネットワークに負荷をかけるので、トラブルのないときや自動スクリ プトで用いることは勧められません。 .\" .Sh ICMP PACKET DETAILS .\" An IP header without options is 20 bytes. .\" An .\" .Tn ICMP .\" .Tn ECHO_REQUEST .\" packet contains an additional 8 bytes worth of .\" .Tn ICMP .\" header followed by an arbitrary amount of data. .\" When a .\" .Ar packetsize .\" is given, this indicated the size of this extra piece of data .\" .Pq the default is 56 . .\" Thus the amount of data received inside of an IP packet of type .\" .Tn ICMP .\" .Tn ECHO_REPLY .\" will always be 8 bytes more than the requested data space .\" .Pq the Tn ICMP header . .\" .Pp .\" If the data space is at least eight bytes large, .\" .Nm .\" uses the first eight bytes of this space to include a timestamp which .\" it uses in the computation of round trip times. .\" If less than eight bytes of pad are specified, no round trip times are .\" given. .Sh 重複パケットと障害パケット .Nm ping6 は重複パケットと障害パケットを報告します。重複パケットは ユニキャストアドレスに対して ping をかけている場合は起こるはずの ないものですが、 リンク層での不適切な再送信によって引き起こされるようです。 重複は様々な状況で起こる可能性があります。低いレベルの重複の存在は 必ずしも警告にならないかもしれませんが、 .Pq まず よい兆候ではありません。 ブロードキャストもしくは マルチキャストアドレスに ping する時には、重複パケットが出ることが予想されます。 なぜなら、そのパケットは、実際には重複したパケットなのではなく、 異ったホストからの同じ要求に対する応答であるからです。 .Pp 障害パケットは、警告を引き起こす重大な原因であることは間違いありません。 多くの場合、 .Nm ping パケットの経路のどこか .Pq ネットワーク内かホスト内 のハードウェアの故障が 考えられます。 .Sh 異なったデータパターンの試行 (インタ) ネットワーク層は、データ部分に含まれるデータによってパケットの扱い を変えません。不幸にも、パケットがネットワークに侵入し、 長い間検知されないままとなるというデータに依存した問題が知られています。 多くの場合、問題を引き起こす特殊なパターンは、 たとえば全部 1 や全部 0 のようなもの、あるいは右端以外が 0 であるようなものといった、十分な .Dq 遷移 を持たないものです。コマンドラインで (たとえば) 全部 0 のデータパターンを指定するだけでは不十分かもしれません。なぜな ら問題のパターンはデータリンク層にあり、コマンドラインで指定したものと コントローラが送信するものとの関係は複雑である可能性があるからです。 .Pp このことは、つまり、データに依存した問題があるとき、それを見付けるためには テストをたくさんしなければならないということです。運がよければ、 あるネットワークを通して送れない、あるいは同じような長さのファイル よりも送るのにずっと長時間かかるようなファイルを見付けることが できるかもしれません。 この場合、そのファイルを調べ、繰り返し現われるパターンを .Nm ping6 の .Fl p オプションを使ってテストできます。 .Sh 戻り値 .Nm は、成功時 (ホストが生きている場合) には 0 を、 引数が正しくない場合やホストが応答しない場合には非 0 を返します。 .Sh 関連項目 .Xr netstat 1 , .Xr ifconfig 8 , .Xr ping 8 , .Xr routed 8 , .Xr traceroute 8 , .Xr traceroute6 8 .Rs .%A A. Conta .%A S. Deering .%T "Internet Control Message Protocol (ICMPv6) for the Internet Protocol Version 6 (IPv6) Specification" .%N RFC2463 .%D December 1998 .Re .Rs .%A Matt Crawford .%T "IPv6 Node Information Queries" .%N draft-ietf-ipngwg-icmp-name-lookups-05.txt .%D October 22, 1999 .%O work in progress material .Re .Sh 歴史 .Nm ping コマンドは .Bx 4.3 で登場しました。 IPv6 をサポートした .Nm コマンドは KAME IPv6 プロトコルスタックキットではじめて登場しました。 .Pp KAME Project (http://www.kame.net/) スタックを基とする IPv6 および IPsec のサポートは、 .Fx 4.0 で始めて組み込まれました。