- ベストアンサー
tracerouteコマンドについて
- tracerouteコマンドとはネットワークの経路をたどるためのコマンドです。
- ホップ数が増加しても"* * *"が続く場合、ホストがicmpの拒否設定になっている可能性があります。
- TTLは+1されてホップ数は増えますが、ホストは移動しないと考えられます。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
Linuxなどのtracerouteと、Windowsのtracertは同じ目的で使用されるツールですが、実装がちょっと違っていて、 tracerouteは目的のホスト(IPアドレス)にUDPのパケットを送信します。 tracertはicmp echo requestを送信します。 どちらでも結果として同じ機能を満たすのですが、この違いは頭に入れておくほうが良いと思います。 >以下の様な結果が出た時、3のホストが非表示設定だが、icmpは通っている(?)と考え、次のホストにTTLを+1しホップできました。 >ホストは移動する。 全体的な捉え方はいいと思いますが、 次のホストにTTL、ホストは移動するというのがちょっと微妙です。 (私の理解が足りず同じことを言っているかもしれません) traceroute aaa.bbb.ccc.dd とした場合、送信するパケットは aaa.bbb.ccc.dd TTL=1 udp ランダムポート aaa.bbb.ccc.dd TTL=2 udp ランダムポート aaa.bbb.ccc.dd TTL=3 udp ランダムポート aaa.bbb.ccc.dd TTL=4 udp ランダムポート ・ aaa.bbb.ccc.dd TTL=n udp ランダムポート このように送信先のホスト(IPアドレス)は変化しません。 この送信したパケットに対して、ICMP time exceededが返ってくるか見ているだけです。 >2 40 ms 40 ms 40 ms tokyo-gate.isp.xx.jp [203.xxx.xxx.xxx] >3 * * * >4 40 ms 40 ms 30 ms xxx.xxx.isp.xx.jp [203.xxx.xxx.xxx] この場合はTTL=2とTTL=4の位置にあるルータ等の機器はICMP time exceededを返して、TTL=3の機器は返さなかったということになります。 ただし、4からのICMP time exceededがあるため、3はUDPを通過したと判断していいでしょう。 >2 40 ms 40 ms 40 ms tokyo-gate.isp.xx.jp [203.xxx.xxx.xxx] >3 * * * >4 * * * >5 * * * この場合には、いくつかの可能性があると思います。 (1) 2がICMP time exceededを返すが、上位にUDPを通過させない (2) 3がICMP time exceededを返さず、上位にUDPも通過させない (3) 3がICMP time exceededを返さないが、上位にUDPを通過させるが、4がICMP time exceededを返さない (3)に関しては同じような繰り返しになります。 通常は(1)か(2)の場合がほとんどでしょうね。 あまりわかりやすく書けなくて申し訳ないです。
その他の回答 (1)
- utun01
- ベストアンサー率40% (110/270)
#1さんの話で大体いいと思いますが、1点だけ横やり失礼します。 (3)の状況はグローバルな回線(インターネット)を通過する通信ではよく発生します。 ですので、途中は***ばかりで、最後の方でまた返ってくるという状況もあります。 ちなみに、この場合はtracerouteでは最後の方をちゃんと返してくれますが、 tracertでは途中で止まってしまいます。
お礼
大学は機械科を出た素人。ただ興味心だけでなんでも喰らいついています。 たしかにMacでtracerouteをしwindowsでtracertすると結果の違いがでます。 何故かな?と思いながら悩んでいました。 ありがとうございました。
お礼
utun01さんにもお礼の言葉をだしましたが、ありがとうございます。 なにしろ素人。パソコン好きの人間です。興味のあるものにくらいついています。 で、networkコマンドに食らいついたのですが、チンプンカンプン。 でも、理解できました。 ありがとうございます。