PING6(8) FreeBSD システム管理者マニュアル PING6(8)
名称
ping6 − ネットワークホストに対して ICMPv6 ECHO_REQUEST パケットを送信する |
書式
ping6 [−dfHmnNqtvwW] [−a addrtype] [−b bufsiz] [−c count] [−g gateway] [−h hoplimit] [−I interface] [−i wait] [−l preload] [−p pattern] [−P policy] [−S sourceaddr] [−s packetsize] [hops ...] host |
解説 |
ping6 ユーティリティは、 ICMPv6 プロトコルで必須の ICMP6_ECHO_REQUEST データグラムを使用し、ホストまたはゲートウェイから ICMP6_ECHO_REPLY デー タグラムを返させます。 ICMP6_ECHO_REQUEST データグラム (‘‘ping’’) は、IPv6 ヘッダと ICMPv6 を持ちます。 ICMPv6 の書式は RFC2463 に記述され ています。オプションは次の通りです: |
−a addrtype
ECHO_REQUEST ではなく ICMPv6 ノード情報 (アドレス)
問い合わせパ ケットを生成します。 addrtype
は以下の文字より構成される文字列で
なければなりません。 −b bufsiz −c count −d −f −g gateway −H −h hoplimit −I interface −i wait −l preload −m −n −N −p pattern −P policy −q −S sourceaddr −s packetsize −t −v −w −W hops host 問題の切り分けのために ping6 を用いるには、ローカルインタフェースが up か つ running であることを確認するため、まずローカルホスト上で実行します。そ の後、より遠くのホストやゲートウェイに ‘‘ping’’ をしていきます。経路周回 時間 (round-trip time) と消失パケットの統計が計算されます。重複したパケッ トが受信された場合、そのパケットは消失パケットの計算には含まれませんが、 経路周回時間の統計の計算には使われます。指定されたパケットの数が送信され (受信され) たとき、もしくはプログラムが SIGINT で終了した場合、簡単な要約 が表示されます。要約に書き出されるのは、送出したパケット数、受信したパ ケット数、そして経路周回時間の最小/平均/最大/標準偏差です。 ping6 が SIGINFO シグナル (stty(1) の status 引数を参照して下さい) を受け 取った場合、現時点での送出したパケット数、受信したパケット数、そして経路 周回時間の最小/平均/最大/標準偏差が標準終了時のメッセージと同じ書式で標準 出力に書かれます。 このプログラムは主にネットワークのテスト、計測、管理に用いられることを想 定しています。 ping6 はそれ自体ネットワークに負荷をかけるので、トラブルの ないときや自動スクリプトで用いることは勧められません。 重複パケットと障害パケット |
ping6 ユーティリティは重複パケットと障害パケットを報告します。重複パケッ トはユニキャストアドレスに対して ping をかけている場合は起こるはずのない ものですが、リンク層での不適切な再送信によって引き起こされるようです。重 複は様々な状況で起こる可能性があります。低いレベルの重複の存在は必ずしも 警告にならないかもしれませんが、 (まず) よい兆候ではありません。ブロード キャストもしくはマルチキャストアドレスに ping する時には、重複パケットが 出ることが予想されます。なぜなら、そのパケットは、実際には重複したパケッ トなのではなく、異なったホストからの同じ要求に対する応答であるからです。 障害パケットは、警告を引き起こす重大な原因であることは間違いありません。 多くの場合、 ping パケットの経路のどこか (ネットワーク内かホスト内) の ハードウェアの故障が考えられます。 |
異なったデータパターンの試行
(インター) ネットワーク層は、データ部分に含まれるデータによってパケットの 扱いを変えません。不幸にも、パケットがネットワークに侵入し、長い間検知さ れないままとなるというデータに依存した問題が知られています。多くの場合、 問題を引き起こす特殊なパターンは、たとえば全部 1 や全部 0 のようなもの、 あるいは右端以外が 0 であるようなものといった、十分な ‘‘遷移’’ を持たない ものです。コマンドラインで (たとえば) 全部 0 のデータパターンを指定するだ けでは不十分かもしれません。なぜなら問題のパターンはデータリンク層にあ り、コマンドラインで指定したものとコントローラが送信するものとの関係は複 雑である可能性があるからです。 このことは、つまり、データに依存した問題があるとき、それを見付けるために はテストをたくさんしなければならないということです。運がよければ、ある ネットワークを通して送れない、あるいは同じような長さのファイルよりも送る のにずっと長時間かかるようなファイルを見付けることができるかもしれませ ん。この場合、そのファイルを調べ、繰り返し現われるパターンを ping6 の −p オプションを使ってテストできます。 |
診断
ping6 ユーティリティは、成功時 (ホストが生きている場合) には 0 を、引数が 正しくない場合やホストが応答しない場合には非 0 を返します。 |
使用例
通常、 ping6 は、 ping(8) が動作するように動作します。以下は、ICMPv6 エ コー要求を dst.foo.com へ送ります。 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 inprogress material.
歴史
ping(8) ユーティリティは 4.3BSD で登場しました。 IPv6 をサポートした ping6 ユーティリティは WIDE Hydrangea IPv6 プロトコルスタックキットではじ めて登場しました。 KAME Project (http://www.kame.net/) スタックを基とする IPv6 および IPsec のサポートは、 FreeBSD 4.0 で初めて組み込まれました。 |
バグ
ping6 ユーティリティは意図的に ping(8) と分離されています。 我々が何故 ping6 と ping(8) の実装を分けたのかという議論が沢山ありまし た。 IPv4 と IPv6 両用の ping コマンドに統一した方が便利だと言う人もいま した。この要求に対する答えは次の通りです。 開発者の視点から: IPv4 と IPv6 とで下位の raw ソケット API が全く異なりま すので、 2 種類のコードベースを持つことになります。ふたつのコマンドをあわ せて単一コマンドにしても、実際、開発者の立場からは利益はないでしょう。 操作者の視点から: リモートログインツールのような通常のネットワークアプリ ケーションとは異なり、通常、ネットワーク管理ツールを使用するときはアドレ スファミリを意識します。単にホストへの到達可能性を知りたいのではなく、 IPv6 等の特定のプロトコルでのホスト到達性を知りたいのです。よって、IPv4 と IPv6 用に統合された ping(8) コマンドがあったとしても、常に −6 または −4 のオプション (またはこれに類するもの) を入力して、特定のアドレスファミ リを指定することになるでしょう。これは、本質的に、ふたつの異なったコマン ドを持つのと同じことを意味します。 FreeBSD 10.0 May 17, 1998 FreeBSD 10.0 |