IPアドレスにトレースできますが、pingはできません


19

Windowsでは、Googleにトレースすると、次の結果が得られます。

C:\Users\Dave>tracert -d -w 100 www.google.com

Tracing route to www.google.com [216.58.220.100]
over a maximum of 30 hops:

  1    <1 ms    <1 ms    <1 ms  192.168.1.1
  2    17 ms     *       16 ms  [redacted]
  3    17 ms    16 ms    17 ms  [redacted]
  4    34 ms    34 ms    34 ms  150.101.33.18
  5    35 ms    43 ms    33 ms  72.14.221.174
  6    33 ms    33 ms    33 ms  66.249.95.234
  7    31 ms    31 ms    31 ms  209.85.142.11
  8    33 ms    33 ms    38 ms  216.58.220.100

Trace complete.

今、66.249.95.234の最後から3番目のIPアドレスにpingを実行すると、次のようになります...

C:\Users\Dave>ping 66.249.95.234

Pinging 66.249.95.234 with 32 bytes of data:
Request timed out.
Request timed out.
Request timed out.
Request timed out.

Ping statistics for 66.249.95.234:
    Packets: Sent = 4, Received = 0, Lost = 4 (100% loss),

tracertの内部にある「ping」が実際のpingの動作とどう違うのか それらはどう違いますか?pingをtracertのように動作させるにはどうすればよいですか?


3
ICMP ECHOがブロックされている可能性があります。
バーハンKhalid

回答:


27

それはすべて、tracertの仕組みに関係しています。Pingは、ポイントAからポイントBへのストレートICMPであり、ルーティングルールを介してネットワークを横断します。TracertはICMPを使用しますが、動作が大きく異なります。

Tracertは、最終ホップをターゲットにしますが、TTLを制限し、超過メッセージを待機し、次の反復のために1ずつ増やします。したがって、取得する応答は、途中でホストからのICMPエコー要求に対するICMPエコー応答ではなく、そのホストからの時間超過メッセージです。したがって、ICMPを使用していても、非常に異なる方法で使用しています。 。

詳細については、こちらをご覧ください


12
pingがタイムアウトする理由の最後のポイントを追加するには:最後の3番目のホストはそれを通過するトラフィックのルーターとして機能するように構成されいる(障害に対するICMP TTL EXCEEDED制御メッセージの送信を含む)が、特に応答しないように、トラフィックブロックするICMP ECHO REQ。ちなみに、tracerouteクライアントは最終ホップを宛先とするものを送信できます-ICMP ECHO REQでも、TCP SYN(ターゲットjhostに到達したときに他のICMPメッセージをトリガーする可能性がある)でもかまいません。 OSの間で実際には、実装が異なるそしてあります。tracepath...
ハーゲン・フォン・Eitzen

@HagenvonEitzenそれはそれ自体でまともな答えを出すだろう(最高、IMO!)
モニカとの軽さのレース

3
また、注目に値するのは、多くの「tracert」実装がICMPパケットを送信しないことです。少なくともそれはtracerouteUDPデータグラムを送信するほとんどのLinuxの場合です。ただし、Windowsのバージョンが何をするのかはわかりません。中間ホップは、ICMPだけでなく、あらゆる種類のパケットに対してICMP TTL EXCEEDEDを送信する必要があります。
デジタル外傷

1
@DigitalTrauma Wiresharkはtracert、Windows 7でICMPエコー要求を送信すると述べています。
ボブ

4

まず、2つのコマンドは、異なる宛先IPアドレスでパケットを送信しています。つまり、彼らは異なるルートをとることがあります。

66.249.95.234へのルートを見る216.58.220.100と、宛先アドレス66.249.95.234を持つパケットは、そのポイントに到達するまで同じルートを使用していると思われるかもしれません。ただし、これは有効な仮定ではありません。

ルートがルート66.249.95.234より長いことは完全に有効です216.58.220.100。時には、その中間ルーターにパケットを送ることができるルートが存在しないことさえありますが、その場合、適切に設計されたネットワークではありません。

使用しているコマンドtracertpingコマンドの両方が同じプロトコルを使用しているかどうかはわかりません。ほとんどのping実装はICMPエコー要求パケットを使用します。ただし、ICMPエコー要求、TCP SYN、およびUDPパケットを含む広範なプロトコルをサポートするtraceroute実装が存在します。2つが異なるプロトコルを使用している場合、それが異なる結果を表示する要因になる可能性があります。

最後に、すべてのパケットがに到達する場合でも、次の必要があるかどうかによって大きく異なる動作をする66.249.95.234可能性66.249.95.234があります。

  • パケットを転送する
  • 自分宛のパケットでICMPエラーを生成する
  • 他の人宛のパケットでICMPエラーを生成する

3つのケースのうち1つだけでパケットを静かにドロップすることを選択すると、明らかに多くのネットワーク診断ツールが機能しなくなりますが、システム管理者がそれをやめることはありません。


0

ネットワークのセキュリティは着実に増加しているため、多くの人が簡単に行えることの1つは、ICMPプロトコルの機能を基本的に無効にすることです。これにより、トレースルートに応答し、ホップからFQDNを返すことができなくなります。pingが機能しない場合でも、管理者が物事を厳しくロックすることがあります。これは、関連するシステムの管理者の決定です。

また、システムが広範なネットワーク負荷を処理している可能性もあります。ICMPは通常、実際のデータと比較して処理の優先順位が非常に低くなっています。


5
これは本当に質問に答えません。問題は、tracerouteとpingの両方がICMPを使用する場合、pingが失敗してtracerouteが成功する理由です。
マクラウド2015年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.