Назад | Перейти на главную страницу

что означает «***», когда traceroute

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

трассировка 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 переходов между моим хостом и целевым сервером?

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

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

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

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

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

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

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