Windows PowerShellでgoogleにtracertを実行すると、すべてのステーションのIPアドレスが正しく表示されます。
ただし、Linuxの仮想マシンで同じサーバーに対して同じことを行うと、* **しか表示されません。
1 _gateway (10.0.2.2) 5.955 ms 5.568 ms 5.228 ms
2 * * *
3 * * *
4 * * *
5 * * *
6 * * *
7 * * *
8 * * *
9 * * *
10 * * *
11 * * *
12 * * *
13 * * *
14 * * *
15 * * *
16 * * *
17 * * *
18 * * *
19 * * *
20 * * *
21 * * *
22 * * *
23 * * *
24 * * *
25 * * *
26 * * *
27 * * *
28 * * *
29 * * *
30 * * *
なぜこれ?
Windowstracert
とLinuxtraceroute
がデフォルトで使用するパケットは異なります。 Windows tracert
はICMPパケットを送信し、Linuxtraceroute
はUDPパケットを送信します。この例では、UDPポートは各ホップでブロックされていますが、ICMPは許可されているため、表示されている不一致が説明されます。
から ウィキペディア:traceroute :
Unixライクなオペレーティングシステムでは、tracerouteはデフォルトで、33434から33534の範囲の宛先ポート番号を持つ一連のユーザーデータグラムプロトコル(UDP)パケットを送信します。 Linux、FreeBSD、NetBSD、OpenBSD、DragonFly BSD、およびmacOSに同梱されているtracerouteの実装には、ICMPエコー要求パケット(-I)、またはUDPなどの任意のプロトコル(-P)を使用するオプションが含まれていますTCP TCP SYNパケット、またはICMPを使用します。
Windowsでは、tracertは、tracerouteがデフォルトで送信するUDPパケットではなく、ICMPエコー要求パケットを送信します。
-I
オプションを追加することにより、Linuxでtraceroute
にICMPパケットを使用させることができます。
From man traceroute :
traceroute
パケットがネットワークホストにたどるルートを印刷します。
構文
traceroute [options] Host [packetsize]
オプション:
-I Use ICMP ECHO for probes