Traceroute/tracert がホップリターン情報を受信できない

Traceroute/tracert がホップリターン情報を受信できない


一部のルーター/ゲートウェイでは、「内部」コンピューターで traceroute または tracert を発行すると、
ホップが常に失敗し、次のエラーが発生することに気付きました。

リクエストはタイムアウトしました

誰かこれを明確にできますか?
各ホップでどのような情報が送受信されますか?
これを解決するにはルーターで何を設定する必要がありますか?

答え1

ここでは少なくとも 2 つのケースが考えられます。

1: NAT(特に標準ではNAPT、シスコ独自の用語では「PAT」と呼ばれるもの)ゲートウェイの背後にいる場合、なしトレースルートのホップが正しい情報を報告しない場合は、NATゲートウェイコードがICMPの「宛先到達不能; 時間超過」メッセージを誤って処理しています。また、「時間超過」メッセージは他の「宛先到達不能」メッセージと同様に特別なNAT処理を必要としないため、NATはおそらく処理していません。どれでもICMP の「宛先に到達できません」メッセージを正しく処理します。ほとんどの NAT 実装では、これが構成エラーであるとは考えられません。NAT のコードベースに、これらの種類のメッセージを処理するための実用的なコードが含まれていない可能性の方が高いです。したがって、NAT ゲートウェイの構成 UI とマニュアルを調べて、現在無効になっている ICMP 処理を有効にできるかどうかを確認することはできますが、その方法では何も得られないと思われます。現在の NAT 実装をより優れたものに置き換える必要があります (ルーターをより優れたルーターに置き換える必要がある場合があります)。

2: 一部のホップが有用な情報を返し、他のホップが返さない場合、それは「障害」ホップのルーターが ICMP「宛先に到達できません。時間超過」をまったく返していないことを意味します。これは実装エラー (バグ) である可能性もありますが、そうしないように設定されている可能性の方が高いです (一部のシステム管理者は、ping や traceroute に応答すると、ネットワークに関する情報があまりにも多く漏洩してしまうことを懸念しています)。インターネット上の遠く離れた他のネットワークにあるこれらのルーターを所有したり、それらに影響を与えたりすることはおそらくないため、それらのルーターに traceroute を機能させるために必要な ICMP メッセージを送信させることはできません。

最後にもう 1 つ: これはほぼ 3 番目のケースですが、ケース 2 の特殊なケースのようなものです。初期のホップがいくつか機能しているのに、ある時点で 1 つのホップとそれ以降のすべてのホップが失敗する場合は、ファイアウォールがそれ以降のすべてのルーターからの関連する ICMP メッセージをすべてドロップしている可能性があります。多くの企業/機関ネットワークでは、ネットワークのエッジにファイアウォールがあり、(私見では誤った)「セキュリティ」上の理由で多くの種類の ICMP メッセージをドロップしています。

関連情報