Mengapa saya bisa melakukan ping alamat IP tetapi tidak 'melacaknya'?

46

Saya bisa ping alamat IP, tetapi saya tidak bisa melacaknya. Bagaimana ini bisa terjadi?

[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 ~]$

CENSOREDAlamat IP kelima di traceroute tidak sama dengan di "ping CENSORED.CENSORED".

LanceBaynes
sumber
Apa output dari traceroute?
ChrisF
1
mengapa IP "disensor"?
Sathyajith Bhat
1
mengapa IP "disensor" ... mungkin karena bukan publik ?? pff
LanceBaynes
8
Saya kira poster itu mengubah IP agar kita tidak mencoba meretas mesinnya.
msw
bintang-bintang ini tidak berarti disensor, mereka berarti tidak ada jawaban
jbu

Jawaban:

42

Coba gunakan metode lain di traceroute Anda, misalnya TCP SYN atau ICMP alih-alih metode UDP default.

Misalnya perhatikan perbedaan antara ICMP dan 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  * * *
Tzarium
sumber
2
-T tampaknya tidak menjadi saklar untuk OSX. Apakah ada alternatif untuk menggunakan TCP SYN di OSX?
Manachi
2
@ Manachi:brew install tcptraceroute
iolsmit
1
@Manchi: baca manualnya ...: "traceroute -P TCP <IP>"
benba
23

Traceroute didasarkan pada paket ICMP atau UDP. Ini secara efektif ping setiap router di jalur antara Anda dan censored.censored. Ini meningkatkan Time-To-Live (TTL) untuk setiap paket berikutnya yang dikirim (dari 1-30 normal) mengharapkan setiap paket dikirim dengan TTL yang meningkat dari yang terakhir, router berikutnya di jalur akan mengembalikan kode kesalahan .

Jika hop 6 tidak merespons, mungkin secara spesifik memblokir pesan ICMP / UDP. Ping karena itu bekerja karena router antara Anda dan itu hanya melewati paket ICMP / UDP melalui itu daripada menanggapi mereka, seperti yang mereka lakukan dengan traceroute.

Rhys Gibson
sumber
2
Pada kebanyakan (semua?) * Nix distro, traceroute menggunakan UDP secara default, bukan ICMP.
h0tw1r3
Poin bagus, akan diubah.
Rhys Gibson
jadi semua router setelah 5 blok UDP? Apakah itu benar?
LanceBaynes
Saya kira tidak. Orang lain mungkin memiliki penjelasan yang lebih baik tetapi saya pikir hop 6 tidak merespons dan tidak meneruskan paket, karena jika tidak, Anda setidaknya akan mendapatkan respons terakhir dari tujuan Anda (kecuali jika lebih dari 30 hop jauhnya).
Rhys Gibson
1
Tapi saya yakin itu kurang dari 30 hop jauhnya. Jadi jawabannya tidak bagus. Pada hop 7,8,9, dll. Saya akan memiliki balasan di traceroute: \
LanceBaynes
12

Saya tidak melihat jawaban mengapa bagian dari pertanyaan.

Beberapa ISP diketahui membuat router mereka diam-diam untuk melacak dengan dua cara: mereka juga tidak mengurangi TTL dalam paket IP (membuat sendiri lubang IP mereka) atau mereka tidak menanggapi TTL kadaluarsa sambil tetap meneruskan ICMP.

Alasannya adalah untuk menjaga topologi jaringan internal mereka pribadi. Itu saja.

Penerbitan traceroutedari / ke berbagai sumber / tujuan mengungkapkan informasi tentang topologi jaringan, yang merupakan sesuatu yang tidak semua orang menghargai.

usr-local-ΕΨΗΕΛΩΝ
sumber
2

Traceroute bergantung pada pesan ICMP, yang mungkin dikonfigurasikan oleh beberapa router agar tidak merespons.

LawrenceC
sumber
Ping adalah ICMP juga, itu tidak menjelaskan perbedaannya. Saya memiliki keuntungan membaca jawaban lain yang menyatakan traceroute dapat menggunakan udp juga, yang saya tidak tahu sebelumnya.
Rich Homolka
Nah, salah satu cara untuk secara eksplisit memblokir paket ICMP traceroute adalah dengan menjatuhkan ICMP masuk yang TTL = 1. Mungkin mereka melakukan itu karena suatu alasan.
LawrenceC
2

Terkadang ada baiknya menggunakan pinguntuk mendapatkan informasi seperti traceroute:

#!/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

Dengan memanggil ping dengan argumen -t $ TTL, Anda kadang-kadang dapat menghindari firewall, dan mencari tahu alamat IP dan sebagainya dari router di belakang firewall.

Bruce Ediger
sumber
3
Ini sama dengan memanggil traceroute dengan flag -I, walaupun (cukup aneh) yang akan membutuhkan status superuser.
Tzarium
1
@Tzarium ping juga memerlukan status superuser, ia hanya memiliki bit suid yang diatur, sehingga Anda mendapatkannya secara gratis.
itsadok
0

Baik semua anggukan mulai dari 6 dan seterusnya tidak menanggapi paket UDP atau simpul 6 itu sendiri memblokir paket udp. Anda dapat mencoba metode fllowing, yang saya harap akan bekerja berdasarkan pada node yang mana di jalur menuju blok detination ICMP / TCP SYN:

  1. Gunakan ICMP untuk traceroute: $ sudo traceroute -I

  2. Gunakan TCP syn untuk traceroute: $ sudo traceroute -T

  3. Jika itu hop yang melebihi, gunakan salah satu dari yang berikut: $ sudo traceroute -I -m 60

ATAU

$ sudo traceroute -T -m 60

Yang terakhir bekerja untuk saya sambil menelusuri ke ftp melintasi benua.

Naresh
sumber
0

Untuk menggunakan perintah ping ke traceroute di lingkungan unix, coba ini:

for ((TTL=1;TTL<30;TTL++));
do
ping -c 1 -t $TTL <IP>;
done
Naresh
sumber