Почему traceroute не работает

Почему traceroute не работает

У меня есть несколько вопросов о том, почему traceroute не работает в некоторых условиях. Хотя я понимаю, как это работает, я не могу понять некоторые вопросы. Например,

$traceroute www.google.com
 1  * * *
 2  * * *
......

Там есть '*'. Когда я использую ICMP вместо UDP, я получаю следующее:

$traceroute www.google.com -I
 1  * * *
 2  * * *
 3  222.42.254.130 (222.42.254.130)  7.980 ms  10.785 ms  4.920 ms
 4  222.42.254.129 (222.42.254.129)  4.363 ms  8.141 ms  5.849 ms
 5  bogon (10.2.1.1)  7.957 ms  7.787 ms  8.321 ms
 6  61.237.121.97 (61.237.121.97)  25.341 ms  24.895 ms  28.725 ms
 7  61.237.123.66 (61.237.123.66)  23.738 ms  24.172 ms  23.916 ms
 8  221.4.120.173 (221.4.120.173)  23.096 ms  24.539 ms  20.827 ms
 9  221.4.6.61 (221.4.6.61)  58.516 ms  60.035 ms  63.200 ms
10  120.80.0.73 (120.80.0.73)  60.991 ms  59.520 ms  59.853 ms
11  219.158.19.69 (219.158.19.69)  59.771 ms  59.192 ms  59.072 ms
12  219.158.22.249 (219.158.22.249)  89.185 ms  87.928 ms  89.582 ms
13  219.158.22.158 (219.158.22.158)  102.195 ms  103.409 ms  106.153 ms
14  219.158.35.114 (219.158.35.114)  218.816 ms  224.845 ms  218.470 ms
15  203.208.62.15 (203.208.62.15)  212.560 ms  208.640 ms *
16  chrome.google.com (203.208.46.1)  210.655 ms *  216.369 ms

Интересно, почему первый и второй хоп до сих пор неизвестны. Я пробовал установить скорость icmp с помощью -z 500, но это бесполезно. Поэтому мои вопросы ниже:

  1. Почему при использовании ICMP у меня возникли скачки?
  2. Как мне получить первые два прыжка?

Я искал это, но ничего бесполезного не нашел. Я подключаюсь к Интернету через маршрут без какого-либо брандмауэра. Спасибо за помощь.

решение1

Поскольку Traceroute основан на запросах ICMP Echo, то, похоже, первые два маршрута на вашем пути (вероятно, ваши собственные межсетевые экраны) настроены на отбрасывание/блокировку запросов ICMP echo. Вот почему Traceroute не может увидеть фактический ответ от первых двух, но надлежащий ответ за пределами этого.

решение2

Первый переход — это ваш шлюз в Интернет, вы можете увидеть это по netstat -rn.

Второй переход — это шлюз у вашего провайдера, если у вас есть что-то вроде Fritzbox, вы можете увидеть IP-адрес там.

решение3

Для завершения обнаружения следующего перехода вы можете использовать другой инструмент: hping. Как объяснил предыдущий ответ Франка, вероятно, есть брандмауэр или маршрутизатор, которые отбрасывают тип сообщения ICMP.

Например, вы можете использовать эту команду для первого следующего перехода:

hping www.google.com -p 86 -S -t 1

А также вот этот для просмотра второго:

hping www.google.com -p 86 -S -t 2

Связанный контент