こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

tracerouteの実行結果に"*"が表示されるのは?

tracerouteの実行結果に"*"が表示されるのは?

/* 環境 */
【ホストOS】 Windows 7 Professional(x64)
【ゲストOS】 CentOS 5.5
【仮想環境】 VMware Player 3.1.1、ネットワークの接続は"NAT"


仮想マシン上のCentOS 5.5から tracerouteコマンドを実行すると、
次のように"*"で表示されてしまいます。

$ traceroute -n www.yahoo.co.jp
traceroute to www.yahoo.co.jp (124.83.147.204), 30 hops max, 40 byte packets
1 192.168.35.2 0.179 ms 0.068 ms 0.069 ms
2 * * *
3 * * *
... 以降同様に*が表示される ...

これはどうしてなのでしょうか?
仮想環境のネットワークの接続が「NAT」であることが関係しているのでしょうか?
※インターネットへは、pingが通りますし、HTTPアクセスもできています。

ちなみにホストOS(Windows 7)で tracertコマンドを実行すると、
パケットがルーターとの往復に要した時間などがしっかり表示されます。

よろしくお願いします。

投稿日時 - 2010-08-25 15:31:13

QNo.6134635

暇なときに回答ください

質問者が選んだベストアンサー

NATは、一方通行です。
traceroute(UDP)をNATで送っても、その返信を受け取ったNATルータは、NAT下のどのホストに戻していいのか、分からないので、データを破棄されます。

(http/ftpなどのTCPは、セッションが確保されているので、NAT経由でも行って戻ることができます)


NAT下でtracetrouteしたいなら、NATで 静的NATでも行って
外部から戻ったtracerouteのUDPのポートを、tracerouteを実行するホストにIP転送(ポートフォワード)してやる必要があります。

(F/Wであるルータを、ルータ超えするイメージです)

投稿日時 - 2010-08-25 20:26:44

お礼

superside0さん

ネットワークについて勉強不足な自分は、完全には理解できていないのですが(NAT下でtracerouteを可能にする方法について)、かなりすっきりできました。
親切、丁寧に回答してくださったことに感謝致します。
どうもありがとうございました。

投稿日時 - 2010-08-26 10:01:01

このQ&Aは役に立ちましたか?

2人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.2

通信は、途中の関所がすべて開通していて、データの往復が可能になります。

2段目のルータが、tracerouteのポートをブロックしているので
それより上位のホストとのtracerouteの通信は、そこでブロックされるので
不通になります。


そのWindows7からは、試したホストとの全ての関所では、たまたまtracerouteが開いていたということになります。
(当然、途中の関所(ルータ)でブロックされている相手とはtracerouteできません)

投稿日時 - 2010-08-25 17:44:36

お礼

superside0さん

なるほど、tracerouteのポートをブロックしているルーターが途中にあるということなのですね。

仮想ネットワークをBridgeで構成した場合、tracerouteは問題なく実行できました。
状況から考えると、NATで構成した現在の仮想環境では、
tracetouteのポートをブロックするルーターか何かが、どこかに存在しているのでしょうね。

どうもありがとうございました。

投稿日時 - 2010-08-25 18:27:23

ANo.1

2番目のルータがICMP Time Exceededに対応してないため、
tracerouteの返信をしてくれないからです。

投稿日時 - 2010-08-25 15:38:10

お礼

superside0さん
回答ありがとうございます。

状況を補足させて頂きます。
※ゲストOSのCentOSでtracerouteを実行した場合、どのインターネット上のホストを指定しても同じ状況です(*が表示される)。
※同じインターネット上のホストを指定して、ホストOSのWindows 7でtracertコマンドを実行した場合は、途中のルーターの応答時間が表示されます。
※CentOS専用PCを用意できないため、仮想環境でしか確かめられない状況です。

>2番目のルータがICMP Time Exceededに対応してないため、
>tracerouteの返信をしてくれないからです。
すみません、わかりませんでした。
同じホストに対して、Windowsから実行した場合は応答時間が表示されるのに、
CentOSからtracerouteを実行した場合は*が表示されてしまうのは何故なのでしょうか?
また、CentOSから外部のホストを指定してtracerouteした場合、すべて"*"表示されてしまうの何故なのでしょうか?

投稿日時 - 2010-08-25 16:22:38