Saya memiliki alamat IP dan dapat melacaknya, tetapi saya tidak bisa melakukan ping.
Anda lihat, saya dapat melacak 43.224.226.50
:
dele-MBP:~ ll$ traceroute 43.224.226.50
traceroute to 43.224.226.50 (43.224.226.50), 64 hops max, 52 byte packets
1 router.asus.com (192.168.2.1) 2.082 ms 1.039 ms 0.924 ms
2 100.64.0.1 (100.64.0.1) 3.648 ms 3.795 ms 3.955 ms
3 118.112.212.225 (118.112.212.225) 4.252 ms 4.569 ms 4.168 ms
4 171.208.203.73 (171.208.203.73) 6.378 ms
171.208.198.25 (171.208.198.25) 6.943 ms
171.208.203.61 (171.208.203.61) 7.055 ms
5 202.97.36.225 (202.97.36.225) 38.149 ms
202.97.36.221 (202.97.36.221) 39.949 ms
202.97.36.225 (202.97.36.225) 40.780 ms
6 202.97.90.158 (202.97.90.158) 37.894 ms
202.97.94.146 (202.97.94.146) 39.885 ms 39.354 ms
7 202.97.38.166 (202.97.38.166) 45.324 ms
202.97.39.149 (202.97.39.149) 40.097 ms
202.97.94.77 (202.97.94.77) 40.580 ms
8 202.97.51.118 (202.97.51.118) 374.218 ms
202.97.27.238 (202.97.27.238) 187.573 ms
202.97.86.138 (202.97.86.138) 197.524 ms
9 218.30.53.190 (218.30.53.190) 201.597 ms
218.30.54.190 (218.30.54.190) 194.194 ms
218.30.53.190 (218.30.53.190) 204.027 ms
10 182.54.129.91 (182.54.129.91) 220.026 ms 282.360 ms
et-11-1-5.r01.laxus01.us.bb.bgp.net (182.54.129.38) 185.700 ms
11 182.54.129.91 (182.54.129.91) 229.700 ms 508.509 ms 266.683 ms
12 * 212.95.128.2 (212.95.128.2) 565.161 ms *
13 43.224.226.50 (43.224.226.50) 200.531 ms 201.911 ms 191.566 ms
Tapi saya tidak bisa melakukan ping:
dele-MBP:~ ll$ ping 43.224.226.50
PING 43.224.226.50 (43.224.226.50): 56 data bytes
Request timeout for icmp_seq 0
Request timeout for icmp_seq 1
Request timeout for icmp_seq 2
Request timeout for icmp_seq 3
Request timeout for icmp_seq 4
Request timeout for icmp_seq 5
Request timeout for icmp_seq 6
Request timeout for icmp_seq 7
Request timeout for icmp_seq 8
Request timeout for icmp_seq 9
Request timeout for icmp_seq 10
Request timeout for icmp_seq 11
Jika ada larangan ICMP, traceroute
seharusnya tidak berhasil juga. Apa alasannya?
Saya memeriksa firewall server dihentikan.
ping
networking
icmp
traceroute
244boy
sumber
sumber
Jawaban:
Pada pertanyaan serupa di sini Luke Savage menjelaskannya dengan sempurna:
sumber
traceroute
perintah dan bukantracert
yang membuat saya berpikir bahwa Anda menggunakan sistem operasi berbasis Unix atau gnu. Dalam jawaban yang saya sebutkan Anda dapat melihat bahwa sistem berbasis unix tidak digunakanICMP
untuktraceroute
. Dengan kata lain, karenaPING
menggunakanICMP
(yang saya pikir diblokir oleh sistem yang Anda coba jangkau) dan traceroute menggunakanUDP
paket denganTTL
bidang metode penambahan (yang menurut saya tidak diblokir pada sistem yang Anda coba jangkau)PING
gagal tetapiTraceroute
berhasil.traceroute
yang menggunakan ICMP, bahkan jika itu mengirim UDP, yaitu mereka mengharapkan dan mengevaluasiTTL exceeded
pesan dari hop di jalan. Sebuah host yang memblokir semua ICMP adalah ide yang buruk, tetapiping
akan gagal juga ketikaICMP echo
permintaan atau balasan diblokir di host targetUntuk menambahkan jawaban @ naïveRSA , jika ada pemfilteran / firewall di jalur, orang juga dapat memiliki situasi di mana paket ICMP "echo reply" (ping) diblokir, tetapi paket ICMP "melebihi waktu" (tracert) dibolehkan . Ini akan memberikan hasil yang sama bahkan ketika hanya ICMP (Windows) yang digunakan.
Dalam kedua kasus (pengirim menggunakan UDP atau ICMP) komunikasi kesalahan akan menjadi ICMP (yaitu node membalas paket ping atau tracer *).
sumber
Mari kita lihat apa yang terjadi, oke?
8.8.8.8 membuat contoh yang baik, karena setidaknya dari lokasi saya, saya dapat mencapainya dengan
traceroute
danping
.Pertama mari kita coba
ping 8.8.8.8
dan perhatikan apa yang terjadi:Maka
ping
kirimkan permintaan gema ICMP, dan mengharapkan balasan gema ICMP.Sekarang
traceroute -n 8.8.8.8
:Jadi
traceroute
, setidaknya implementasi yang saya instal, tidak mengirim ICMP. Sebaliknya, ia mengirim paket UDP.Apa yang tidak terlihat dalam jejak ini (meskipun itu akan, jika saya memberikan
tcpdump
sebuah-v
meningkatkan bertele-tele) adalah bahwa probe pertama memiliki TTL dari 1, dan kemudian akan menambahkan TTL untuk probe nanti. Hal ini menyebabkan router antara saya dan 8.8.8.8 merespons dengan kesalahan melebihi ICMP, yang merupakan cara traceroute menemukan router antara sana-sini.Akhirnya ttl cukup panjang untuk mencapai 8.8.8.8, dan 8.8.8.8 merespons dengan kesalahan ICMP port unreachable, karena ia tidak memiliki proses mendengarkan pada port UDP 44838. Ini adalah bagaimana traceroute tahu itu mencapai tujuan akhir .
Jika sesuatu antara sini dan di sana memblokir semua ICMP, maka ping atau traceroute tidak akan berfungsi.
Tapi biasanya tidak semua ICMP diblokir, meskipun itu juga tidak jarang. Memblokir semua ICMP bermasalah: misalnya memecah jalur penemuan MTU , yang bergantung pada kesalahan fragmentasi ICMP yang diperlukan. Paket ICMP memiliki jenis dan kode, dan operator jaringan yang bertanggung jawab hanya akan secara selektif memblokir beberapa jenis atau kode, yang berpotensi menimbulkan penyalahgunaan atau mengungkapkan informasi tertentu.
Misalnya, beberapa host tidak akan menanggapi permintaan gema ICMP sama sekali, dan dengan demikian ping tidak akan berfungsi. Idenya adalah bahwa dengan tidak menanggapi ping, penyerang akan lebih sulit untuk menemukan host apa yang ada di jaringan. Dalam praktiknya hal ini dipertanyakan, karena ada cara lain untuk mencari host. Misalnya, seseorang dapat mengirim TCP SYN ke port 80 untuk menemukan server web.
Banyak host juga tidak akan mengirim kesalahan ICR port ICMP ketika mereka mendapatkan datagram UDP atau TCP SYN ke port di mana mereka tidak memiliki proses mendengarkan, dan ini merusak traceroute. Sekali lagi idenya adalah untuk membuatnya lebih sulit bagi penyerang untuk memetakan jaringan, tetapi sekali lagi ini hanya frustrasi kecil bagi penyerang.
Karena traceroute adalah program dan bukan protokol tertentu, ia memiliki cara lain untuk menyelidik. Mereka semua bergantung pada peningkatan TTL untuk menemukan router, tetapi berbagai jenis probe dapat dikirim yang mungkin memiliki lebih atau kurang dari kesempatan untuk memperoleh respons dari titik akhir. Misalnya,
man tcpdump
daftar saya-I
opsi untuk menggunakan probe gema ICMP, sama seperti ping. Itu juga harus-T
menggunakan probe TCP SYN bukan UDP. Jika Anda tahu tuan rumah akan meresponsping
maka-I
masuk akal. Jika Anda tahu host mendengarkan pada port TCP tertentu, maka-T
masuk akal, mungkin bersama dengan-p
opsi untuk memilih port.Sayangnya opsi ini mungkin memerlukan root atau kemampuan khusus, sehingga UDP membuat default yang adil. Bahkan alat serupa,,
tracepath
mengatakan ini di halaman manualnya:sumber
TLDR; ping dapat diblokir (blok ICMP) pada host jarak jauh tetapi traceroute masih dapat menemukan rute ke sana menggunakan routing jaringan standar UDP atau TCP / IP (protokol apa pun; ref /networkengineering//a/36509/ 58968 ). Perhatikan bahwa ping Anda kemungkinan juga dapat mencapai host (kecuali jika Anda memiliki firewall yang sangat pintar memblokir lalu lintas ping ICMP di suatu tempat), host tersebut tidak membalas.
sumber
Linux menggunakan UDP bukan ICMP untuk traceroute, firewall tidak memblokir port UDP itu
sumber
Anda dapat menginstal nmap (insecure.org) dan menggunakan nping dengan UDP atau TCP dan port apa saja. Berfungsi bagus pada jaringan dengan ping diblokir keluar.
Untuk melakukan ping ke server web dengan --tcp -p 80.443
Untuk melakukan ping ke server waktu dengan --udp -p 123
https://nmap.org/book/nping-man.html
sumber
Jawaban singkat untuk pertanyaan Anda adalah bahwa
ping
utilitas bergantung pada protokol ICMP yang kadang-kadang diblokir di firewall jaringan atau firewall pada perangkat itu sendiri. Alasan paling umum mengapa admin jaringan memblokir ICMP adalah untuk mencegah "pemindaian" jaringan yang mereka anggap sebagai masalah keamanan. Thetraceroute
utilitas di Linux menggunakan UDP, protokol yang sama sekali berbeda, yang dalam hal ini di tidak terhalang oleh admin jaringan. UDP memiliki beragam kegunaan dan memblokir ini akan menyebabkan banyak hal tidak dapat digunakan pada jaringan. Jenis 'pesan kontrol' ICMP yang dibutuhkan olehping
adalah bagian dari protokol yang berarti memblokir jenis paket ICMP yang menyebabkan lebih sedikit masalah pada jaringan dan karena itu lebih mungkin diblokir daripada UDP.sumber