что означает "***" при трассировке маршрута

что означает "***" при трассировке маршрута

это результат моей трассировки

трассировка 211.140.5.120

 1  141.1.31.2 (111.1.31.2)  0.397 ms  0.380 ms  0.366 ms
 2  141.1.28.38 (111.1.28.38)  3.999 ms  3.971 ms  3.982 ms
 3  142.11.124.193 (112.11.124.133)  1.315 ms  1.533 ms  1.455 ms
 4   (201.141.0.261)  2.615 ms  2.749 ms  2.572 ms
 5   (201.141.0.82)  2.705 ms  2.564 ms  2.680 ms
 6   (201.118.231.14)  5.375 ms  5.126 ms  5.252 ms
 7  * * *
 8  * * *
 9  * * *
10  * * *
11  * * *
12  * * *
13  * * *
14  * * *
15  * * *
16  * * *
17  * * *
18  * * *
19  * * *
20  * * *
21  * * *
22  * * *
23  * * *
24  * * *
25  * * *
26  * * *
27  * * *
28  * * *
29  * * *
30  * * *

Я хочу узнать, что означает *** и означает ли результат, что между моим хостом и целевым сервером действительно более 30 переходов?

решение1

Все реализации traceroute полагаются на пакеты ICMP (тип 11), отправляемые отправителю.

Эта программа пытается трассировать маршрут, запуская пакеты UDP-проб с небольшим ttl (время жизни), а затем слушая ответ ICMP "время превышено" от шлюза. Она запускает пробы с ttl, равным единице, и увеличивает его на единицу, пока мы не получим ICMP "port unreachable" (что означает, что мы добрались до "host") или не достигнем максимума (который по умолчанию равен 30 прыжкам и может быть изменен с помощью флага -m). Три пробы (изменяются с помощью флага -q) отправляются при каждой настройке ttl, и выводится строка, показывающая ttl, адрес шлюза и время кругового пути каждой пробы (то есть три *). Если в течение 5-секундного интервала тайм-аута (изменяются с помощью флага -w) нет ответа, для этой пробы выводится "*".

Итак, в вашем случае мы можем заключить, что мы получили ответ только до 201.118.231.14. После этого узлы не отвечают на пакеты ICMP (тип 11) до 30-го перехода, что является максимальным временем жизни (максимальным числом переходов). Вы можете увеличить максимальное время жизни с помощью флага -m.

решение2

Traceoute требует ответа от целевого сервера и каждого из промежуточных переходов для создания своего вывода. Если маршрутизатор не генерирует ответ Time-to-live exceeded, traceroute ничего не будет знать об этом переходе. Переход, который выводит, * * *означает, что маршрутизатор на этом переходе не отвечает на тип пакета, который вы использовали для traceroute (по умолчанию это UDP в Unix-подобных системах и ICMP в Windows).

Если вы используете ту же версию traceroute, что и я, вы можете попробовать использовать -eопцию обхода брандмауэров и -Pопцию использования ICMP, TCP илиГРЕпакеты вместо UDP. Вы также можете попробовать указать определенный порт, который вряд ли будет отфильтрован (например, 80 или 25) с помощью опции -p.

Могут быть и другие варианты, которые помогут вам получить ответ. Проверьтеman-страница для traceroute.

Отвечая на вторую часть вашего вопроса, нет, этот traceroute не означает, что между вами и целевым сервером ровно 30 переходов. Traceroute «сдается» после определенного количества переходов. Это делается путем ограничения максимального TTL в пакетах, который по умолчанию в Linux равен 30. Вы можете изменить это с помощью опции -m. Переходов может быть больше или меньше, но поскольку ни один из них после 6-го не отвечает, мы просто не знаем.

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