• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:tracerouteの実行結果に"*"が表示されるのは?)

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

このQ&Aのポイント
  • 仮想環境のネットワークの接続が「NAT」であることが関係している
  • 仮想マシン上のCentOS 5.5からtracerouteを実行すると、"*"で表示される
  • パケットがルーターとの往復に要した時間などがホストOSで表示される

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

  • ベストアンサー
回答No.3

NATは、一方通行です。 traceroute(UDP)をNATで送っても、その返信を受け取ったNATルータは、NAT下のどのホストに戻していいのか、分からないので、データを破棄されます。 (http/ftpなどのTCPは、セッションが確保されているので、NAT経由でも行って戻ることができます) NAT下でtracetrouteしたいなら、NATで 静的NATでも行って 外部から戻ったtracerouteのUDPのポートを、tracerouteを実行するホストにIP転送(ポートフォワード)してやる必要があります。 (F/Wであるルータを、ルータ超えするイメージです)

noname#241087
質問者

お礼

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

その他の回答 (2)

回答No.2

通信は、途中の関所がすべて開通していて、データの往復が可能になります。 2段目のルータが、tracerouteのポートをブロックしているので それより上位のホストとのtracerouteの通信は、そこでブロックされるので 不通になります。 そのWindows7からは、試したホストとの全ての関所では、たまたまtracerouteが開いていたということになります。 (当然、途中の関所(ルータ)でブロックされている相手とはtracerouteできません)

noname#241087
質問者

お礼

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

回答No.1

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

noname#241087
質問者

お礼

superside0さん 回答ありがとうございます。 状況を補足させて頂きます。 ※ゲストOSのCentOSでtracerouteを実行した場合、どのインターネット上のホストを指定しても同じ状況です(*が表示される)。 ※同じインターネット上のホストを指定して、ホストOSのWindows 7でtracertコマンドを実行した場合は、途中のルーターの応答時間が表示されます。 ※CentOS専用PCを用意できないため、仮想環境でしか確かめられない状況です。 >2番目のルータがICMP Time Exceededに対応してないため、 >tracerouteの返信をしてくれないからです。 すみません、わかりませんでした。 同じホストに対して、Windowsから実行した場合は応答時間が表示されるのに、 CentOSからtracerouteを実行した場合は*が表示されてしまうのは何故なのでしょうか? また、CentOSから外部のホストを指定してtracerouteした場合、すべて"*"表示されてしまうの何故なのでしょうか?

関連するQ&A