2011-05-04 10:05:03 +0000 2011-05-04 10:05:03 +0000
47
47

なぜ IP アドレスを ping しても 'トレースルート' しないのですか?

IPアドレスのpingはできるが、トレースルートができない。これはどうしてでしょうか?

[USERNAME@HOSTNAME ~]$ ping CENSORED.CENSORED
PING CENSORED.CENSORED (CENSORED) 56(84) bytes of data.
64 bytes from CENSORED.CENSORED (CENSORED): icmp_req=1 ttl=49 time=52.8 ms
64 bytes from CENSORED.CENSORED (CENSORED): icmp_req=2 ttl=49 time=49.4 ms
64 bytes from CENSORED.CENSORED (CENSORED): icmp_req=3 ttl=49 time=49.2 ms
64 bytes from CENSORED.CENSORED (CENSORED): icmp_req=4 ttl=49 time=50.4 ms
^C
--- CENSORED.CENSORED ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3003ms
rtt min/avg/max/mdev = 49.276/50.494/52.804/1.401 ms
[USERNAME@HOSTNAME ~]$
[USERNAME@HOSTNAME ~]$ traceroute CENSORED.CENSORED
traceroute to CENSORED.CENSORED (CENSORED), 30 hops max, 60 byte packets
 1 CENSORED (CENSORED) 5.733 ms 6.000 ms 5.977 ms
 2 CENSORED (CENSORED) 0.428 ms 0.417 ms 0.393 ms
 3 CENSORED (CENSORED) 1.726 ms 1.718 ms 1.682 ms
 4 CENSORED (CENSORED) 26.699 ms 26.693 ms 26.670 ms
 5 CENSORED (CENSORED) 27.785 ms 27.769 ms 27.746 ms
 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 * * *
[USERNAME@HOSTNAME ~]$

トレースルートの5番目のCENSOREDのIPアドレスが「ping CENSORED.CENSORED」の時と同じではありません。

回答 (7)

42
42
42
2011-05-04 12:21:00 +0000

例えば、デフォルトのUDP方式ではなく、TCP SYNやICMPなど、トレーサルートで別の方式を使用してみてください。

例として、ICMP と TCP の違いに注意してください:

x@x:~$ ping -qc4 94.254.2.51
PING 94.254.2.51 (94.254.2.51) 56(84) bytes of data.
--- 94.254.3.90 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3009ms
rtt min/avg/max/mdev = 7.781/7.807/7.836/0.067 ms

x@x:~$ sudo traceroute -I 94.254.2.51
traceroute to 94.254.2.51 (94.254.2.51), 30 hops max, 40 byte packets
1 <REDACTED>
2 <REDACTED>
3 <REDACTED>
4 <REDACTED>
5 netnod-ix-ge-a-sth-1500.bahnhof.net (194.68.123.85) 1.307 ms 1.299 ms 1.432 ms
6 sto-cr1.sto-cr3.bahnhof.net (85.24.151.165) 7.166 ms 7.364 ms 7.336 ms
7 sto-cr3.gav-cr1.bahnhof.net (85.24.151.195) 7.251 ms 7.099 ms 7.220 ms
8 zitius-a322-gw-c.bahnhof.net (85.24.153.249) 7.059 ms 7.074 ms 7.145 ms
9 h-2-51.A322.priv.bahnhof.se (94.254.2.51) 7.619 ms 7.750 ms 8.070 ms

x@x:~$ sudo traceroute -T 94.254.2.51
traceroute to 94.254.2.51 (94.254.2.51), 30 hops max, 40 byte packets
1 <REDACTED>
2 <REDACTED>
3 <REDACTED>
4 <REDACTED>
5 netnod-ix-ge-a-sth-1500.bahnhof.net (194.68.123.85) 1.621 ms 1.683 ms 1.817 ms
6 sto-cr1.sto-cr3.bahnhof.net (85.24.151.165) 8.530 ms 7.861 ms 7.820 ms
7 sto-cr3.gav-cr1.bahnhof.net (85.24.151.195) 7.724 ms 7.539 ms 7.486 ms
8 zitius-a322-gw-c.bahnhof.net (85.24.153.249) 7.572 ms 7.537 ms 7.553 ms
9 * * *
10 * * *
11 * * *
12 * * *
13 * * *
23
23
23
2011-05-04 11:11:20 +0000

Tracerouteは、ICMPまたはUDPパケットに基づいています. これはあなたとensored.censored.censoredの間のパス上の各ルータを効果的にpingします.各パケットのTTL(Time-To-Live)を増加させます(通常は1-30から)。各パケットが最後から増加したTTLで送信されると、パス内の次のルータがエラーコードを返すことを期待しています。

ホップ6が応答しない場合は、ICMP/UDPメッセージをブロックしている可能性があります。したがって、Ping は、あなたとホップ 6 の間のルータは、トレーサルートのように ICMP/UDP パケットに応答するのではなく、ICMP/UDP パケットを通過させているだけなので、機能します。

12
12
12
2014-03-09 21:54:36 +0000

私は質問のwhyの部分への答えを見ませんでした。

いくつかのISPは、2つの方法で自分たちのルータをステルス化してトレースルートを行うことが知られています:IPパケットのTTLをデクリメントしない(自分たち自身をIPワームホールにしている)か、またはICMPを転送しながら期限切れのTTLに応答しない。

理由は、彼らの内部ネットワークトポロジーを非公開にするためです。それだけである。

複数のソース/デスティネーションから/複数のソース/デスティネーションへtracerouteを発行することで、ネットワークトポロジーに関する情報が明らかになる。

2
2
2
2011-05-04 11:04:50 +0000

Traceroute は ICMP メッセージに依存しており、一部のルータでは応答しないように設定されている場合があります。

2
2
2
2011-05-04 15:44:09 +0000

pingを使ってトレースルート的な情報を得ることもあります。

#!/bin/bash
for TTL in 1 2 3 4 5 6 7 8 9 10 11 12
do
    ping -c 1 -n -t $TTL a.b.c.d
done

-t $TTL引数を指定してpingを呼び出すことで、ファイアウォールから逃れて、ファイアウォールの背後にあるルータのIPアドレスなどを知ることができることがあります。

0
0
0
2014-03-09 21:24:29 +0000

6以降のすべてのノードがUDPパケットに応答しないか、ノード6自体がUDPパケットをブロックしているかのどちらかです。あなたは以下の方法を試すことができます, 私はdetinationへのパスのどのノードがブロックするICMP/TCP SYNに基づいて動作することを願っています,

1.トレースルートにICMPを使用してください : $ sudo traceroute -I

2.トレースルートにICMPを使用してください。TCP SYN を使ってトレースルートする場合 : $ sudo traceroute -T

  1. ホップ数を超えている場合は、以下のいずれかを使用してください。 $ sudo traceroute -I -m 60

OR

$ sudo traceroute -T -m 60

後者は、大陸を越えて ftp にトレースアウトしているときにうまくいきました。

0
0
0
2014-03-09 21:29:44 +0000

unix 環境で ping コマンドを使ってトレースルートを取るには、次のようにしてみてください。