EN JA
PING6(8)
PING6(8) FreeBSD System Manager's Manual PING6(8)

名称

ping6ネットワークホストへの ICMPv6 ECHO_REQUEST パケット

書式

ping6 [ -DdfHmnNoqrRtvwW][ -a  addrtype][ -b  bufsiz][ -c  count][ -g  gateway][ -h  hoplimit][ -I  interface][ -i  wait][ -l  preload][ -P  policy][ -p  pattern][ -S  sourceaddr][ -s  packetsize][ hops ...] host

解説

ping6 ユーティリティは、ホストまたはゲートウェイ (gateway) から ICMP6_ECHO_REPLY を引き出すために ICMPv6 プロトコルの強制的な ICMP6_ECHO_REQUEST データグラムを使用します。 ICMP6_ECHO_REQUEST データグラム (``ping'') には、IPv6 ヘッダと RFC2463 で文書化されている形式の ICMPv6 ヘッダがあります。オプションは、次の通りです:
-a addrtype
エコー要求 (echo-request) ではなく、ICMPv6 ノード情報ノードアドレス (ICMPv6 Node Information Node Addresses) 問い合わせを生成します。 addrtype は、次の文字から構成された文字列でなければなりません。
a
応答側のインタフェースのすべてからユニキャストアドレスを要求します。文字が省略されるなら、応答側のアドレスがあるインタフェースに属するアドレスだけが要求されます。
c
応答側の IPv4 互換のアドレスと IPv4 マップされたアドレスを要求します。
g
応答側のグローバルスコープ (global-scope) アドレスを要求します。
s
応答側のサイトローカル (site-local) アドレスを要求します。
l
応答側のリンクローカル (link-local) アドレスを要求します。
A
応答側のエニーキャスト (anycast) アドレスを要求します。この文字がなければ、応答側は、ユニキャスト (unicast) アドレスだけを返します。この文字があれば、応答側は、エニーキャスト (anycast) アドレスだけを返します。仕様は、応答側のエニーキャスト (anycast) アドレスを取得する方法を指定しないことに注意してください。これは、実験的なオプションです。
-b bufsiz
ソケットのバッファサイズを設定します。
-c count
count 個の ECHO_RESPONSE パケットを送信した (受信した) 後に停止します。
-D
IPv6 の断片化を無効にします。
-d
使用されているソケットで SO_DEBUG オプションを設定します。
-f
ping をはんらんさせます。パケットが戻るとすぐにか、または毎秒 100 回のどちらか多いほうでパケットを出力します。 ECHO_REQUEST を送信するたびに、ピリオド“.”が印刷 (表示) され、一方、 ECHO_REPLY が受信されるたびに、バックスペースが印刷 (表示) されます。これは、どれだけのパケットが落とされているかの迅速な表示を提供しています。スーパユーザだけが、このオプションを使用できます。
これは、ネットワークを非常に酷使しするかもしれず、注意して使用されるべきです。
-g gateway
宛先への次の中継点として gateway を使用するように指定します。ゲートウェイは、送信ノードの隣でなければなりません。
-H
IPv6 アドレスの逆引きを試みるように指定します。 ping6 ユーティリティは、オプションが指定されていなければ、逆引きを試みません。
-h hoplimit
IPv6 の中継限界数を設定します。
-I interface
与えられたインタフェースアドレスがある発信元パケット。このフラグは、ping の宛先がマルチキャストアドレスか、またはリンクローカル/サイトローカルのユニキャストアドレスであるなら、適用します。
-i wait
各パケットを送信している間wait 秒待ち (ウェートし) ます。デフォルトは、各パケット間に 1 秒待つことです。このオプションは、 -f オプションと互換性がありません。
-l preload
preload が指定されるなら、 ping6 は、通常のモードの振る舞いになる前に、多くのパケットをできるだけ速く送信します。スーパユーザだけが、このオプションを使用できます。
-m
デフォルトで、 ping6 は、最小の IPv6 MTU に適合するようにパケットを断片化するようにカーネルに依頼します。 -m オプションは、次の 2 つのレベルの振る舞いを抑制します: オプションが 1 度指定されるとき、振る舞いは、ユニキャストパケットに対して無効にされます。オプションが 2 度以上指定されるとき、ユニキャストとマルチキャストパケットの両方に対して無効にされます。
-n
数値の出力のみです。応答中のアドレスからシンボリック名を検索する試みは行われません。
-N
ノード情報マルチキャストグループアドレス ( ff02::2:ffxx:xxxx) をプローブします。 host は、ターゲットの文字列のホスト名でなければなりません (数値の IPv6 アドレスであってはなりません)。ノード情報のマルチキャストグループは、与えられた host に基づいて計算され、最後の宛先として使用されます。ノード情報のマルチキャストグループは、リンクローカルのマルチキャストグループであるので、発信インタフェースは、 -I オプションによって指定される必要があります。

2 度指定されたとき、アドレス ( ff02::2:xxxx:xxxx) が代わりに使用されます。前者は、RFC 4620 にあり、後者は、古いインターネットドラフト draft-ietf-ipngwg-icmp-name-lookup にあります。 FreeBSD を含む KAME 派生の実装は、後者を使用することに注意してください。

-o
1 つの応答パケットを受信した後に、成功して終了します。
-p pattern
送信するパケットを書き込むために最大 16 の“pad”バイトを指定できます。これは、ネットワーク中のデータ依存の問題を診断するために役に立ちます。例えば、“ -p ff”によって、送信されたパケットは、すべて 1 で満たされます。
-P policy
policy は、プローブのために使用される IPsec ポリシを指定します。
-q
静かな出力。開始時と終了するとき、要約の行を除いて、何も表示されません。
-r
聞こえるようにする。任意のパケットが受信されたとき、出力にベル (ASCII 0x07) 文字を含めます。
-R
聞こえるようにする。次のパケットが転送される前に、何もパケットが受信されないとき、ベル (ASCII 0x07) 文字を出力します。転送の間のインターバルより長いラウンドトリップ (往復) 時間の要求を満たすために、受信されなかったパケットの最大数が増加した場合にだけ、さらに失われたパケットによって、ベルを鳴らします。
-S sourceaddr
要求パケットの発信元アドレスを指定します。発信元アドレスは、送信ノードのユニキャストアドレスの 1 つで、数値でなければなりません、
-s packetsize
送信されるデータのバイト数を指定します。デフォルトは、 ICMP ヘッダデータの 8 バイトを組み合わせるとき、64 の ICMP データバイトに変換される、56 です。なお、ソケットのバッファサイズを拡張するために -b を指定する必要があります。
-t
エコー要求 (echo-request) ではなく、サポートされた問い合わせタイプを問い合わせる、ICMPv6 ノード情報 (ICMPv6 Node Information) を生成します。 -s は、 -t が指定されるなら、効果がありません。
-v
冗長な出力。受信される ECHO_RESPONSE 以外の ICMP パケットがリストされます。
-w
エコー要求 (echo-request) ではなく、ICMPv6 ノード情報 DNS 名 (ICMPv6 Node Information DNS Name) 問い合わせを生成します。 -s は、 -w が指定されるなら、効果がありません。
-W
-w と同様ですが、03 のドラフトに基づいた古いパケット形式を生成します。このオプションは、後方互換性のために存在します。 -s は、 -w が指定されるなら、効果がありません。
hops
タイプ 0 の経路制御ヘッダに入れられる、中間のノードのための IPv6 アドレス。
host
最終宛先ノードの IPv6 アドレス。

障害を分離するために ping6 を使用するとき、ローカルネットワークインタフェースが起動され、実行中であることを確認するために、最初にローカルホストで実行されるべきです。次に、さらに遠くのホストとゲートウェイが、“ping”されるべきです。往復 (round-trip) 時間とパケット損失の統計値が計算されます。重複したパケットが受信されるなら、それらは、パケット損失の計算に含まれていませんが、これらのパケットの往復 (round-trip) 時間は、往復時間の統計値を計算するために使用されます。パケットの指定された数が送信され (受信され) るとき、または、プログラムが SIGINT で終了するなら、送信されたパッケットと受信されたパケットの数と往復 (round-trip) 時間の最小、平均、最大と標準偏差を表示して、概要が、表示されます。

ping6SIGINFO ( stty(1) のための status 因数を参照) シグナルを受け取るなら、現在送信され受信されたパケットの数、往復 (round-trip) 時間の最小、平均、最大と標準偏差は、標準の完了メッセージと同じ形式で標準出力に書き込まれます。

このプログラムは、ネットワークのテスト、測定と管理で使用するためです。ネットワークに負荷をかえるかもしれないので、通常動作の間、または自動スクリプトから ping6 を使用することは賢明ではありません。

重複パケットと損傷パケット

ping6 ユーティリティは、重複パケットと損傷パケットを報告します。重複パケットは、ユニキャストアドレスを ping するとき、決して生じるはずではありませんし、不適切なリンクレベルの再送信によって引き起こされるように思われるはずです。重複は、多くの状況で生じるかもしれないし、(あるとしても) よい兆候であったためしはありませんが、低レベルの重複の存在は、常に警告の原因となるとは限りません。パケットは、実際に重複ではないが、異なるホストから同じ要求を応答するので、ブロードキャスト (同報通信) またはマルチキャストアドレスを ping するとき、複写が予想されます。

損傷パケットは、明らかに警告を引き起こす重大な原因であり、 (ネットワークまたはホスト中の) ping6 パケットのパスのどこかの故障したハードウェアをしばしばに示します。

異なったデータパターンの試行

インターネット (ネットワーク間) のレイヤ (層) は、データ部分に含まれているデータによって異なるパケットを扱うべきではありません。残念なことに、データ依存の問題は、ネットワークに潜入し、長い間、検出されないままとなることが知られています。多くの場合、問題がある特別のパターンは、すべて 1 またはすべて 0 のような、または右端のパターン、ほとんとすべて 0 のような、十分な“transitions” (遷移) がないようなものです。興味深いパターンがデータリンクレベルにあり、タイプするものと、コントローラが送信するものと間の関係は、複雑であるかもしれないので、コマンド行で (例えば) すべて 0 のデータパターンを指定する必要は全くありません。

これは、データ依存の問題があるなら、たぶん、それを見つけるために多くのテストを行わなければならないことを意味します。運が良いなら、ネットワークを越えて送信することができないか、または他の同様の長さのファイルより転送することがはるかに長くかかる、ファイルを見つけてしまうかもしれません。次に、 ping6-p オプションを使用してテストすることができる、繰り返されたパターンに対して、このファイルを検査することができます。

終了ステータス

ping6 ユーティリティは、成功すれば (ホストが動作している) 0 を返し、転送が成功したが、応答を受信しなかったなら、2 を返し、引数が不正確であるか、または別のエラーが発生したなら、他の 0 以外の値を返します。

使用例

通常、 ping6 は、ちょうど ping(8) が動作するように動作します。つぎは、 dst.foo.com に ICMPv6 エコー要求を送信します。

ping6 -n dst.foo.com

次は、 wi0 インタフェースにアタッチされたネットワークリンクですべてのノードのためのホスト名をプローブします。アドレス ff02::1 は、リンクローカルのすべてのノードのマルチキャストアドレスを指定し、パケットは、ネットワークリンクですべてのノードに到達します。

ping6 -w ff02::1%wi0

次は、宛先ノード dst.foo.com に割り当てられたアドレスをプローブします。

ping6 -a agl dst.foo.com

関連項目

netstat(1), icmp6(4), inet6(4), ip6(4), ifconfig(8), ping(8), routed(8), traceroute(8), traceroute6(8) A. Conta and S. Deering, Internet Control Message Protocol (ICMPv6) for the Internet Protocol Version 6 (IPv6) Specification, RFC2463, December 1998. Matt Crawford, IPv6 Node Information Queries, draft-ietf-ipngwg-icmp-name-lookups-09.txt, May 2002, work in progress material.

歴史

ping(8) ユーティリティは、 4.3BSD で登場しました。 IPv6 をサポートする ping6 ユーティリティは、WIDE Hydrangea IPv6 プロトコルスタックキットではじめて登場しました。

KAME Project ( http://www.kame.net/) スタックに基づいている IPv6 と IPsec のサポートは、 FreeBSD 4.0 ではじめて統合されました。

バグ

ping6 ユーティリティは、 ping(8) と故意に分離されています。

なぜ ping6ping(8) を分離するかに関して多くの議論がありました。一部の人々は、IPv4 と IPv6 の両方のための ping コマンドをそろえるほうが便利だろうと主張しました。次は、要求への答えです。

開発者の視点からは: 基本的な生のソケット API は、IPv4 と IPv6 の間で全く異なるので、結局 2 つのタイプのコードベースを持つことになりました。開発者の観点から 2 つのコマンドを単一のコマンドにそろえるための利益は、実際にありません。

オペレータの視点からは: リモートログインのツールのような通常のネットワークアプリケーションと異なり、ネットワーク管理ツールを使用するとき、通常アドレスファミリを承知しています。ただホストへの到達可能性を知りたいわけではなく、IPv6 のような特別のネットワークプロトコルを通してホストへの到達可能性を知りたい。したがって、たとえ IPv4 と IPv6 の両方のためのそろえられた ping(8) コマンドがあっても、特別のアドレスファミリを指定するために -6 または -4 オプション (または、それらのようなもの) を通常タイプするでしょう。これは、2 つの異なるコマンドがあることを本質的に意味します。

May 5, 2013 FreeBSD