Если с вашим каналом связи постоянно возникают проблемы, при этом сотрудники службы поддержки провайдера часто пожимают плачами, говоря, что на своей стороне они не видят проблем – выход есть! Утилита tracert может помочь разобраться – на каком узле может быть проблема.
Назначение команды
«Tracert» – это набор функций в Windows, разрешающих выполнять трассировку маршрута до указанного узла сети (локальной и глобальной). Утилита интегрирована в ОС и ее можно запустить через «CMD» или «PowerShell». Исполняемый файл «tracertpt.exe» находится в системном разделе папки System32.
Команда «tracert» достаточно частый гость во время сетевой диагностики и troubleshooting. С ее помощью определяется маршрут, по которому следует пакет до выставленного узла. Преимущество программы: работа с доменными именами, IPv4 и IPv6. Кроме определения маршрута, программа выявляет и демонстрирует время прохождения пакетов до транзитных, промежуточных и конечных узлов.
С помощью команды можно узнать:
- На каком уровне заблокировался веб-ресурс: на уровне локальной сети (пакет не доходит до основного маршрутизатора), в сети провайдера (коммутатор L3 не пропускает пакет далее), на уровне промежуточного сервера или конечного (проблема на стороне сервера).
- На каком этапе пути пакеты данных сбиваются с маршрута и вместо нужного адресата вас перенаправляет на другой (например, на сайт с рекламой).
- Конечный сайт является точно тем, за который себя выдает.
Основные моменты работы и анализ
Чтобы провести трассировку пакетов данных от собственного ПК до сервера, введите его IP-адрес после основной команды.
Как видно на примере, введя команду, а затем IP-адрес, было определено, что это айпишник Яндекс сервера. Также были выявлены транзитные узлы, через которые приходится пройти пакету, чтобы попасть к конечному серверу «yandex.ru».
Примечательно, что команда понимает и доменные имена, выявляя их IP-адреса автоматически.
Когда вводится команда для трассировки маршрута, каждая пронумерованная строка называется шагом, прыжком (jump) или хопом.
Джампы, которые наблюдаются при работе утилиты, это роутеры, серверы или коммутаторы L3 провайдера. Важно отметить, что провайдеры могут использовать для подключения множества абонентов коммутаторы L2, которые обрабатывают и регистрирует МАС–адреса поступающих фреймов, осуществляют физическую адресацию и управляют потоком данных.
Таких коммутаторов в инфраструктуре сети провайдера могут быть десятки. Их не регистрирует «ТрасеРТ» из-за того, что L2 коммутаторы не используют IP-адреса. Пакет не задерживается на них и не фиксирует эти устройства, воспринимая их не более чем обычный кабель витой пары или оптоволокна.
СОВЕТ! Буква L обозначает уровень, на котором работает коммутирующее устройство – советую почитать про уровни модели OSI.
Делая запрос, утилита отправляет три запроса (TTL) на каждый шаг, получая от шага ответы. При отсутствии ответа, может указываться «*» в трех столбцах. В последнем столбце можно получить небольшую подсказку, с чем связано получение символа «*». Превышение интервала будет указано в случае, если ожидание превысило показатель в 4 секунды.
Звездочки не всегда значат, что порт неисправен или недоступен. Вероятно, они настроены таким образом, что не могут ответить на запрос ICMP-сообщением из-за того, такие настройки часто используются для защиты интернет ресурсов от DDoS-атак.
При получении пакета первые три столбца содержат данные RTT и знаменуют количество мс, за которые пакет прошел от узла к узлу. Четвертый столбец указывает IP-адрес (или доменное имя конечного адресата) тех узлов, что ответили.
Более подробно про механизм трассировки читаем тут.
Оправляемые пакеты
Диагностика сети происходит благодаря посылаемым пакетам. Утилита «Tracet» в Windows работает с протоколом ICMP. Еще, есть команда traceroute – она входит в дистрибутивы Linux и присутствует в качестве функций однотипных приложений, например, Linux Mint. Последняя использует UDP-протокол для посылания по узлам сети.
Также, наличие перл-библиотеки, graphviz и подтянутого скрипта разрешает после выполнения основного программного запроса вывести узлы трассировки в графическую tracemap.
При этом файл сохранится в «tracemap.png» и будет похож на карту, представленную ниже.
ICMP-сообщение запаковывается в IP-пакет перед самой отправкой. У такого сообщения есть собственное время жизни (TTL – time to live). При каждой отправке пакета TTL увеличивается на 1. Первый отправленный в сети пакет равен 1. Команда в качестве дефолтных настроек посылает 3 пакета с одинаковым TTL чтобы в качестве ответа от узла были получены также 3 пакета.
Дефолтное значение TTL, используемое трассировкой равно 30. Однако, IPv4 протокол способен на максимальный TTL в 255 единиц. Опытным путем было определено, что TTL в районе 30 шагов будет достаточно, чтобы добраться до конечных узлов определяемых веб-ресурсов.
Ключи для команды
Чтобы полноценно закрепить материал и понять – как работает трасерт, и какими значениями есть возможность оперировать, воспользуйтесь специальными ключами. Запустите .exe-файл «tracetcp» или программу через командную строку и введите tracert /? Для вывода всех ключей и их значений на экран.
Вот основные:
Ключ | Назначение |
-d | В 4 столбце выводит только IP-адреса (ускорение трассировки) |
-h | Выставление количества прыжков ограничением (макс TTL – 255, по умолчанию – 30) |
-w | Выставление таймаута ответов в мс |
-j | Маршрут выбирается по представленному после ключа списку веб-узлов (доступно в IPv4) |
-R | Провести трассировку пути по IPv6 |
-S | Начало трассировки с того узла, что задан после ключа |
-4 | Прыжки только по протоколам IPv4 |
-6 | Прыжки только по протоколам IPv6 |
За разъяснение большое спасибо вам
У меня была как раз такая проблема: инет постоянно глючил и терялись пакеты. Провайдер кивалы головой на мой комп, а потом оказалось, что потери со стороны одного из шлюзов, который стоят в подъезде. Сказал им, вроде должны поменять. Автору, спасибо
Ну не все так просто, как оказалось. Читаем в общем все от начала и до конца.