dポイントプレゼントキャンペーン実施中!

tracetコマンド
ネットワークの勉強をしています。
tracertは以下のURLの解説になると思います。
http://www.atmarkit.co.jp/fnetwork/tanpatsu/12ws …
 
家から試して tracert yahoo.co.jpと試してみたところ
1~10まででRequest Time Out になりました。
そして11で初めて1個だけ反応があり、そこで終わりました。

こちらとしては1から順番に埋まっていくとばかり思っているのですが、
私の試行が意味するところはyahooまで間に何もなくて直通で、
直通ゆえに探すのに時間がかかったということでしょうか?

A 回答 (3件)

>TTLとはルータを通過する数だったんですか??



違います。以下参照。

>pingでいつも出てくるのですがTimeToALiveとあり、

TTLとはTime To Liveです。

>pingの制限時間くらいにしか考えていませんでした。

通過可能ルータ数です。

送信元はTTL値を設定してパケットを送出します。一般的には最大値の255を設定しますが、どうしたことか127とかを設定するOSもあります(余り遠いと使い物にならないと考えているのかも)。TTLはルータを通過する度に1つ引かれます。TTLが0になると到達できないので、送信元にICMP time exceededを返します。ですので、最大通過可能ルータ数は254です。

tracerouteは最初はTTL値を1に設定してパケットを投げます。すると最初のルータがICMP time exceededを返しますので、最初のルータのIPアドレスが分ります。tracerouteは最小値、最大値、平均値を計算するため、同じパケットを3回投げます。

次いでTTL値を+1してパケットを投げます。最初のルータはICMP time exceededを返さずに中継、2個目のルータがICMP time exceededを返します。これで2個目のルータのIPアドレスが分ります。やはりtracerouteは3個同じパケットを投げます。

次いでTTL値を+1してパケットを投げます。以降はこれの繰り返しでICMP time exceededが来なくなるまで繰り返しです。

ちなみにicmpをdeny設定しているルータも多々あります。ping floodというDOS攻撃を避けること、また不用意にIPアドレスを明かすと、それをもとに攻撃対象のIPアドレスを類推されやすいことなどが理由です。
    • good
    • 0
この回答へのお礼

これまた詳細に有り難うございます。
前に学習したところが一本の線に繋がってきた感じです。
tracerコマンドを勉強してTTLまで理解できるようになりました。
 
TTLを+1していくのは面白い仕組みですね。
裏の動きまで教えて頂き感謝いたします。

お礼日時:2010/09/02 13:03

tracertの概要はNo.2の方が書かれている通りです



で、WindowsのtracertはUNIXとは違い、ICMP echo request(=ping)をTTLを増やしながら出します
http://www.wdic.org/w/WDIC/ICMP

途中では、ICMP time exceededが帰ってくるはずですが、おそらくこれが網側でフィルタリングされて返ってこない状況(Request Time Out)になり、最後のyahooに到達した際はICMP echo requestに対するICMP echo replyが返ってきた(11だけ応答があった)、ということで表示されたということでしょう

どこに対してもtracertの途中経路がRequest Time Outで最後だけしか応答がない場合は、プロバイダもしくはルータでICMP time exceededがフィルタリングされている可能性が高いでしょう
    • good
    • 0
この回答へのお礼

ご回答有り難うございます。
皆様の回答を読んでURLのページを見に行くとよく理解できます。
 
1個も返ってこない場合ってプロバイダか私のルータに原因が
あるということでしょうか。それは盲点でした。

お礼日時:2010/09/02 13:16

>直通ゆえに探すのに時間がかかったということでしょうか



違います。記載されているサイトの説明趣旨は、ITエンジニアに対しての説明と言うよりも、素人にたいしにての、ネットワーク関連コマンドの存在と、概略です。

このコマンドに対して仕組みを説明しているわけではありません。調べるなら、”CCNA”とか”ITパスポート”とかの参考書を見てください。

TCP/IPでのパケットには送信ヘッダーが負荷されています。そのヘッダーに”TTL”と言う領域があり、そこに数字を設定すると、その数字の分だけ、ルーターを通過します。

0とすれば、1つのルーターも通過せずに、そのノード内だけブロードキャストします。次に1とすれば、そのパケットは1つ乗り越えるが2つめのルーターでとまります。それを繰り返してゆくだけです。その数字が先頭の1から10までに使われるカウント数字です。ルーター側は、そのTTLの領域を見て、通過させるか、させないか決めます。

もちろんルーター側にも、この手のパケットに反応しないようにもできます(ホスト名など返さない)。

"ms"で表される数字は反応時間です。対象のパフォーマンスが落ちていれば、数字が大きくなります。

つまり”*”などと出ている場合、パケットはそこのルーターまで届いていているが、ルーターにノックをしたが反応がなかっただけです。1から11までカウントされていれば、その数分だけルーターを通ったことになります。

11番目までいったなら、10個のルーターを通過した事になります。

遅い原因をtracert コマンドだけで特定できません。特にTCP/IPの欠点は、原因や要因となっている場所の特定は難しい点にあります。

とりあえず、

pathpingで試してみてください。同じような機能のコマンドですが、最後に集計がでます。
    • good
    • 0
この回答へのお礼

ご回答有り難うございます。
なるほど、実際は通過していたのに情報を返さなかったわけですか。

TTLとはルータを通過する数だったんですか??
pingでいつも出てくるのですがTimeToALiveとあり、
pingの制限時間くらいにしか考えていませんでした。

pathpingとは初めて知りました。
早速yahoo.co.jpにためしてみたところ下期のように返ってきました。

Tracing route to yahoo.co.jp [203.216.227.176]
over a maximum of 30 hops:
0 XXXXXXXX [192.168.11.2]
1 * * *
Computing statistics for 25 seconds...
Source to Here This Node/Link
Hop RTT Lost/Sent = Pct Lost/Sent = Pct Address
0 XXXXXXXX [192.168.11.2]
100/ 100 =100% |
1 --- 100/ 100 =100% 0/ 100 = 0% XXXXXXXX [0.0.0.0]

Trace complete.

通過したと思えるルータの数は見当たらないのですが、
やり方が悪いのでしょうか。

お礼日時:2010/09/01 14:53

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!