mtrace(8) FreeBSD 一般コマンドマニュアル

mtrace

前のページ 上に戻る 次のページ

mtrace


            [-n] [-O] [-p] [-P] [-q nqueries] [-r resp_dest] [-s]
            [-S stat_int] [-t ttl] [-T] [-U] [-v] [-w waittime] source
            [receiver] [group]


解説

     IP マルチキャストのトラフィックの配送における問題点を突き止めるのは困難な
     作業です。 mtrace は IGMP プロトコルの拡張機能によってアクセスされる、マ
     ルチキャストルータに実装されたトレース機能を利用します。 receiver から
     source への逆経路に沿ったホップごとにトレースの問い合わせを行ない、経路上
     のホップのアドレス、パケット数、ルーティングのエラー状況の情報を収集し、
     要求者へ応答を返します。

     唯一必須である引数は source のホスト名もしくはアドレスです。デフォルトの
     receiver は mtrace を実行しているホストとなり、デフォルトの group は
     0.0.0.0 となります。特定のマルチキャストグループでのパケット消失の統計が
     必要でなければ、これで十分です。以下に解説されているいくつかの制約を条件
     として、特定の group でのいくつかの他の receiver をテストするために、これ
     らの 2 つのオプションの引数を指定することができます。 receiver はユニキャ
     ストアドレスであり、 group はマルチキャストアドレスであることより、これら
     の 2 つの引数を区別することができます。 -g フラグが指定されると、source
     アドレスには mtrace が実行されているホストがデフォルトとして使われ、
     receiver には -g フラグで指定されるルータがデフォルトとして使われます。こ
     の場合、必須の引数はありません。

     注: Solaris 2.4/2.5 ではマルチキャストインタフェースがデフォルトのインタ
     フェースでなければ、 -i オプションによってローカルアドレスをセットしなけ
     ればなりません。

     以下のオプションが使用できます:

     -e extrahops
             応答がないルータを越えて、 extrahops だけのホップ数のトレースを試
             みます。

     -g gwy  トレースの問い合わせを、マルチキャストではなく、ユニキャストに
             よって直接マルチキャストルータ gwy へ送ります。このマルチキャスト
             ルータは意図する source から receiver への経路上の最後のホップの
             ルータでなければなりません。

             注意 !! バージョン 3.3 と 3.5 の mrouted は、トレースの問い合わせ
             がユニキャストパケットによって受信されかつ、 mroutedsource へ
             の経路がないと、クラッシュします。そのためターゲットの mrouted が
             3.4 であるか、3.5 より新しいことが分かっていなければ、 -g オプ
             ションを使わないでください。

     -i addr
             addr をトレースの問い合わせを送る (マルチホームホスト上の) ローカ
             ルインタフェースアドレス、および receiver と応答先のデフォルトア
             ドレスとして使用します。

     -l      10 秒ごとにマルチキャスト経路のパケットレートと消失の統計を表示し
             て、無限ループします。 ( -S stat_int 参照)

     -O      router-alert IP オプションを、これが必要な要求においても使用しま
             せん。 Cisco の IOS のいくつかのバージョンでは IP オプションつき
             のマルチキャストトレースルートが扱えないため、最後のホップのルー
             タが Cisco のものである時は、 -O フラグが必要となることがありま
             す。

     -p      他から起動されたトレースによるマルチキャストの応答を受動的に聴取
             します。これはマルチキャストルータ上で動作している場合に最も良く
             動作します。

     -P      10 秒おきに経路情報を収集しながら無限ループし ( -S stat_int 参
             照)、経路情報が変化するとそれを表示します。統計情報は表示しませ
             ん。

     -r host
             トレースの応答を、 mtrace が実行されているホストやこの目的で登録
             されている他のマルチキャストアドレス (224.0.1.32) ではなく、 host
             へ送ります。

     -s      マルチキャスト経路のみを含む短い形式の表示を行ない、パケットレー
             トと消失統計は表示しません。

     -S n    統計情報を収集する間隔を n 秒 (デフォルトは 10 秒) に変更します。

     -t ttl  マルチキャストトレースの問い合わせと応答の ttl (time-to-live もし
             くはホップ数) をセットします。ttl に 1 を使用する "全てのルータ"
             へのローカルな問い合わせの場合を除き、デフォルトは 127 です。

     -T      "トンネル統計" モードです。全てのトラフィックでのロスレートを表示
             します。これらの統計は非常に誤解を招くおそれのあるものです。

     -U      マルチキャストから試みるのではなく、常にユニキャストによる応答を
             要求します。

     -v      冗長モードです。最初のトレースのホップ時間と統計情報を表示しま
             す。最初のトレースを転送するのに使用した経路も表示します。

     -w n    トレースの応答の待ち時間を n 秒 (デフォルトは 3 秒) にセットしま
             す。


使用法

   B>どB>のB>よB>うB>にB>動B>作B>すB>るB>か ?
     traceroute ツールでユニキャストのネットワーク経路をトレースするために使用
     している技法は IP マルチキャストでは動作しません。それは、ICMP 応答がマル
     チキャストトラフィックでは禁止されているためです。そのかわりに、トレース
     の機能はマルチキャストルータにおいて実装されています。この技法は送出する
     パケット数を最小にしながら、パケットレートやロスを計測できる点で優れてい
     ます。

     マルチキャストでは逆経路転送が使われているため、トレースは receiver から
     source へ逆方向に実行されます。トレースの問い合わせパケットは最終ホップの
     す。これによって、部分的な経路のトレースが可能となります。

     各ルータによって挿入されるレポートには、ホップのアドレスだけでなく、転送
     のために必要な ttl とルーティングのエラーを示すいくつかのフラグ、それに受
     信と送信インタフェース上および指定された group へ転送されたパケット数の合
     計が含まれます。時間をあけて 2 回トレースを行なってこれらのパケット数の差
     分をとり、あるホップからの送信パケット数とその次のホップでの受信パケット
     数を比較することにより、パケットレートとパケット消失の統計が計算でき、
     ネットワークへの過負荷による問題を切り離すことができます。

   B>最B>終B>ホB>ッB>プB>ルB>ーB>タB>をB>見B>つB>けB>る
     トレースの問い合わせは source から receiver へ到る経路上の最後のホップで
     あるマルチキャストルータへ送られなければなりません。もし、receiver がロー
     カルサブネット上にあれば (これはサブネットマスクによって決定されます)、デ
     フォルトの方法ではトレースの問い合わせを ttl を 1 にして all-
     routers.mcast.net (224.0.0.2) へマルチキャストします。receiver がサブネッ
     ト上になければ、 group へトレースの問い合わせをマルチキャストします。それ
     は receiver がそのグループのメンバであれば、最後のホップルータもグループ
     のメンバであるためです。そのため、意図している receiver が属しているグル
     ープを指定する必要があります。このマルチキャストは ttl をデフォルトの 127
     にして送られます。この ttl は全ての場合では十分でないかもしれません。( -t
     オプションで変更可能です。) もし最後のホップルータが分かっていれば、 -g
     オプションを使用して直接指定することもできます。また、最後のホップのルー
     タが別のグループのメンバであるということが分かっており、receiver が属して
     いないグループのトレースを行ないたい場合、 -g オプションを使用してトレー
     スの問い合わせに別のマルチキャストアドレスを指定することもできます。

     マルチホームであるホストやルータからのトレースを行なう場合は、デフォルト
     の receiver のアドレスは source からの経路での意図したインタフェースでな
     いかも知れません。インタフェースを指定したい場合は、 receiver によって明
     示的に指定しなければなりません。

   B>応B>答B>のB>誘B>導
     -m オプションによってトレースするホップ数が明示的に指定されている場合を除
     き、 mtrace はデフォルトではまず逆経路全てに渡ったトレースを試みます。も
     しタイムアウト時間である 3 秒 (これは -w オプションで変更できます) 以内に
     応答がなければ、"*" が表示され、プローブ方式を hop-by-hop モードに切り替
     えます。トレースの問い合わせは最大ホップ数を 1 から開始し、応答を受信しな
     くなるか全ての経路を網羅するまでホップ数を 1 づつ増やして行きます。各ホッ
     プでは、複数のプローブ (デフォルトでは 3、 -q オプションで変更可) が送ら
     れます。トレースの試みの前半 (デフォルトでは 2 回) では、応答アドレスを標
     準のマルチキャストアドレス mtrace.mcast.net (224.0.1.32) にセットし、ttl
     を receiver までの経路上で今までにあった最大のスレッショルドである 32 に
     セットして行なわれます。引き続く各々の試みについては ttl は最大 192 まで
     32 づつ増やされます。目的のルータはマルチキャスト応答を送ることができない
     かもしれないので、残りの試みでは mtrace が動作しているホストへユニキャス
     トを使って応答することを要求します。また、マルチキャストの ttl は -t オプ
     ションを使って明示的に指定することができ、最初のマルチキャストの試みは -U
     オプションを使ってユニキャストに強制的に変更することができ、最後のマルチ
     キャストの試みは -M オプションを使って強制的にマルチキャストにすることが
     でき、また -UM を指定することにより、 mtrace は最初はユニキャストで試み、
     次にマルチキャストを試みます。各々の試みではタイムアウトとなるまで応答が
     での遅れの累積 (クロックが同期している時のみ有効) が 1 行で表示されます。
     最初のセクションの最後には、問い合わせが発行されてから応答を受信するまで
     の間隔をローカルのシステムクロックで計測したラウンドトリップ時間と、パ
     ケットがこの経路を通って行き来するのに必要な ttl の合計が表示されます。以
     下に使い方とその出力の例を示します。

     oak.isi.edu 80# mtrace -l caraway.lcs.mit.edu 224.2.0.3
     Mtrace from 18.26.0.170 to 128.9.160.100 via group 224.2.0.3
     Querying full reverse path...
       0  oak.isi.edu (128.9.160.100)
      -1  cub.isi.edu (128.9.160.153)  DVMRP  thresh^ 1  3 ms
      -2  la.dart.net (140.173.128.1)  DVMRP  thresh^ 1  14 ms
      -3  dc.dart.net (140.173.64.1)  DVMRP  thresh^ 1  50 ms
      -4  bbn.dart.net (140.173.32.1)  DVMRP  thresh^ 1  63 ms
      -5  mit.dart.net (140.173.48.2)  DVMRP  thresh^ 1  71 ms
      -6  caraway.lcs.mit.edu (18.26.0.170)
     Round trip time 124 ms; total ttl of 6 required.

     あるホップがパケットを転送するのにデフォルトの経路を使っていることを報告
     すれば、 [default] がそのホップの後に表示されます。 -v フラグが指定されて
     いれば、そのパケットを転送するのに使われた経路が [18.26.0/24] の形式で表
     示されます。

     2 番目のセクションでは転送の経路が図によって表示されます。データの流れは
     下向きの矢印で表され、問い合わせの経路は上向きの矢印で表されます。各ホッ
     プでは、ルータの入力アドレスと出力アドレスが違っていれば、それらのアドレ
     スが、そのホップパケットを転送するのに必要な ttl の初期値と、両端のルータ
     のクロックが同期していると想定した場合のホップにまたがった伝搬遅れととも
     に表示されます。このセクションの右半分は 2 組の統計情報から構成されます。
     最初のカラムには各ホップでの全てのトラフィックについての平均のパケットレ
     ートが表示されます。残りのカラムでは消失したパケットの数、送信したパケッ
     トの数、消失したパーセンテージ、それに平均パケットレートが各ホップについ
     て表示されます。これらの統計情報は上で解説したようにトレース間の差とホッ
     プ間の差から計算されます。最初のグループでは、あるホップでのインタフェー
     スにおける全流出トラフィックと次のホップでの全流入トラフィックの統計情報
     が表示されます。2 番目のグループでは、指定された source から指定された
     group への転送トラフィックのみについての統計情報が表示されます。統計の最
     初のグループは -T オプションを使って消失レートを含ませることもできます。
     しかし、これらの数字は大幅な誤差を含む可能性があり、これらを適切に解釈す
     るためにはルータについての詳細な知識が要求されるでしょう。

     これらの統計情報は各々のホップにつき 1 行か 2 行で表示されます。オプショ
     ンが何も指定されていないと、この出力中の 2 番目のセクションは最初のトレー
     スからおよそ 10 秒後に 1 度のみ表示されます。各ホップにつき 1 行にその 10
     秒間での統計情報を表示します。もし -l オプションが指定されていると、2 番
     目のセクションは 10 秒ごとに繰り返され、各ホップにつき 2 行が表示されま
     す。最初の行ではそれまでの 10 秒間における統計が表示され、2 番目の行で最
     初のトレースからの累積の統計情報が表示されます。下の例ではこれは 101 秒間
     での統計となっています。 -s オプションが指定されるか、マルチキャストグル
     ープが指定されていると、この出力での 2 番目のセクションは省略されます。

     Waiting to accumulate statistics... Results after 101 seconds:
     140.173.64.1   dc.dart.net
          |     ^     ttl    3        27 pps      0/2  = --%  0 pps
          v     |     hop   34 ms     26 pps      0/18 =  0%  0 pps
     140.173.64.2
     140.173.128.1  la.dart.net
          |     ^     ttl    4        83 pps      0/2  = --%  0 pps
          v     |     hop   11 ms     79 pps      0/18 =  0%  0 pps
     140.173.128.2
     128.9.160.153  cub.isi.edu
          |      \__  ttl    5        83 pps      ?/2         0 pps
          v         \ hop   -8 ms     79 pps      ?/18        0 pps
     128.9.160.100  128.9.160.100
       Receiver     Query Source

     パケットのカウント数はトレースの問い合わせが伝搬するとともに変化するた
     め、統計情報中には小さな誤差 (1 か 2 のずれ) が含まれることがあります。し
     かし、これらの誤差は累積されるべきではないため、累積統計行ではあらたなト
     レースが 10 秒ごとに実行されるたびに精度が増さなければなりません。大きな
     誤差の要因としては 2 つあり、このいずれもマイナスのロスとして現われます。

     あるノードへの入力カウントが他のノードがアタッチされているマルチアクセス
     ネットワークからのものであれば、入力カウントはアタッチされている全てのノ
     ードからの出力カウントの総和となります (もしくは近くなります) が、トレー
     スしている経路上のその前のホップからの出力カウントはその単なる一部分とな
     ります。そのため、出力カウントから入力カウントを引いたものはマイナスの値
     になります。

     SunOS およびその他のシステムにおける DVMRP マルチキャスト転送ソフトウェア
     のリリース 3.3 では、ルータにおいて生成されたマルチキャストパケットはイン
     タフェースに入力されていない場合においても、入力されたものとしてカウント
     されます。これは上の例において見ることのできるマイナスのロスとなります。

     これらのマイナスのロスはプラスのロスを隠してしまうことがあることに注意し
     てください。

     この例ではまた、1 つマイナスのホップの時間が表示されています。これは単に
     そのホップ間でのシステムクロックが同期していないことを示しています。この
     例ではまた、送られたパケットの数が 10 より少ない時には、パーセンテージの
     値は統計的に有効ではないため、ロスのパーセンテージが 2 つのダッシュとして
     表示されることも示しています。

     2 番目の例では ローカルでない receiver へのトレースを示します。問い合わせ
     は -g オプションによって最終ホップのルータに送られます。この例では、全逆
     経路のトレースが、マルチキャストトレースルート機能が実装されていない古い
     バージョンの mrouted が動作しているノードがあるために応答なしの結果となっ
     ており、そのため mtrace は hop-by-hop モードに切り替わっています。
     ``Output pruned'' のエラーコードはグループ 224.2.143.24 へのトラフィック
     が転送されていないことを示しています。

     oak.isi.edu 108# mtrace -g 140.173.48.2 204.62.246.73 \
                                butter.lcs.mit.edu 224.2.143.24
     Mtrace from 204.62.246.73 to 18.26.0.151 via group 224.2.143.24
     mrouted に実装されました。オプションの構文と mtrace の出力形式は、 Van
     Jacobson によって書かれたユニキャストの traceroute をモデルにしています。


関連項目

     map-mbone(8), mrinfo(8), mrouted(8), traceroute(8)


バグ

     受動モードでの統計収集は、能動的にデータを収集しているときと常に同じ出力
     とはなりません。

FreeBSD 4.4                       May 8, 1995                      FreeBSD 4.4

ABELNET VPSサービス