Трассировка до сервера. Трассировка маршрута сети (команда tracert)

10.09.2023

Представьте себе ситуацию: вы сидите в интернете, никого не трогаете, и тут ваш любимый сайт перестает грузиться. Интернет упал, думаете вы. Но оказывается, что остальные сайты грузятся нормально. Как определить, что случилось? Вам поможет трассировка маршрута .

Наверное, всем известно, что любой сайт находится на сервере - специальном компьютере. Когда мы вводим адрес сайта в адресную строку браузера и нажимаем на кнопку «Перейти», мы тем самым отправляем запрос к серверу . По пути к сайту наш запрос проходит несколько промежуточных узлов связи, и если с ними все в порядке - то сайт отображается в браузере.

Если же сайт не грузится, значит, наш запрос не дошел из-за проблемы на каком-то из узлов связи (промежуточных компьютеров или маршрутизаторов) . Проблема может быть у вас самих (например, проблема с кабелем; хотя при этом не будут грузиться и остальные сайты), у вашего интернет-провайдера или на стороне хостера сайта. Определить, на каком именно участке канала связи теряется ваш запрос, поможет трассировка маршрута.

Трассировка маршрута выполняется при помощи служебной программы Traceroute/Tracert . Эта программа входит в комплект поставки практически всех современных сетевых ОС (операционных систем, поддерживающих работу в компьютерных сетях). В ОС Microsoft Windows эта программа называется tracert, а в Linux и Mac OS X - traceroute.

Принцип действия этой программы схож с принципом действия программы . Traceroute отправляет на сервер данные и при этом фиксирует все промежуточные маршрутизаторы, через которые проходят эти данные на пути к серверу (целевому узлу). Если при доставке данных до одного из узлов происходит проблема, программа определяет участок сети, на котором возникли неполадки.

Как производится трассировка маршрута в Windows? Программа tracert, как и программа ping, запускается из командной строки. На всякий случай напоминаем, как войти в командную строку в Windows . Есть три основных способа:

  1. Нажимаем на кнопку Пуск, выбираем пункт Выполнить, в поле Открыть пишем cmd и нажимаем на кнопку OK или клавишу Enter.
  2. Нажимаем Win+R (Win – это кнопка, на которой изображен логотип Windows), открывается такое же окно, как и в предыдущем случае, так что дальше действуем аналогично.
  3. Нажимаем на кнопку Пуск, выбираем пункт Все программы (или Программы для более ранних версий ОС), в нем - пункт Стандартные, в стандартных программах кликаем на пункт Командная строка.

В открывшемся окне набираем команду tracert имя_сайта (например, tracert yandex.ru) и нажимаем на клавишу Enter. Вместо адреса сайта можно ввести его IP адрес (если он вам, конечно, известен). Введя адрес, мы тем самым установили маршрут до конечного узла. В окне командной строки в реальном времени выводятся результаты трассировки: название и IP адрес промежуточных узлов, время отклика в миллисекундах.

Если вам не интересны имена промежуточных узлов то трассировка маршрута должна выполняться с параметром -d, который скрывает имена маршрутизаторов, например: tracert -d yandex.ru .

Как использовать эти данные для решения проблемы? Время отклика показывает загруженность канала. Но даже если время отклика большое, сайт будет грузиться - пусть и с трудом. А вот если вместо времени отклика вы видите надпись «Превышен интервал ожидания для запроса» , это значит, что на данном узле связи происходит потеря данных, а значит, проблема именно в нем.

Итак, трассировка маршрута помогает определить проблемный узел . Если данные проходят нормально и «стопорятся» на самом пункте назначения, то проблема действительно с сайтом. Если трассировка маршрута прекращается на середине пути, то проблема в одном из промежуточных маршрутизаторов. Если прохождение пакетов прекращается в пределах сети вашего провайдера - то и проблему нужно решать «на местном уровне».

Если трассировка маршрута оборвалась на одном из промежуточных маршрутизаторов, можно попробовать зайти на сайт с другого компьютера или даже мобильного телефона - маршрут изменится, и сайт может быть доступен. Для верности можно попробовать сделать трассировку с другого компьютера. А если другого компьютера под рукой нет, на помощь придут специальные онлайн-сервисы . Так, на сайте traceroute.org доступна трассировка маршрута к сайту из разных стран. Вы выбираете в списке страну, провайдера, вводите адрес сайта и проверяете маршрут.

Когда мы заходим на интернет-портал, компьютер отправляет запрос к серверу. По пути он проходит через маршрутизаторы. Если все в порядке - ресурс отображается у нас в браузере.

Если сайт не работает, запрос компьютера не дошел к серверу - потерялся на одном из промежуточных узлов связи или причина в чем-то другом (не работает сам сайт). Чтобы разобраться, где именно проблема, проведем трассировку маршрута.

При обращении в службу технической поддержки ресурса, обычно это первое, что просят сделать, если сайт не работает. Это связано с тем, что сайт может не работать из-за перебоев связи на отдельном узле, но в целом сайт работает и с ним все в порядке .

Как сделать трассировку маршрута до сервера, сайта в OC Windows.

Запускаем командную строку через меню «Пуск – Все программы – Стандартные». Или нажимаем сочетание клавиш «Win + R», появляется окно системной утилиты «Запуск программы», вводим: «cmd» и нажимаем «ок».

В командной строке вводим: «tracert» и адрес ресурса, который нужно проверить. Нажимаем «ввод». В результате трассировки мы узнаем, какие промежуточные узлы проходит пакет и время отклика. На основе этой информации можно понять, где проблема: у Вас, у интернет-провайдера, на одном из промежуточных узлов или на сервере сайта. Звездочки означают, что один из маршрутизаторов не хочет отвечать.

Звездочки не всегда означают проблему - на сервере может стоять файрволл, который блокирует «лишние» пакеты, а «реальные» пропускает и в браузере страница корректно открывается.

Виртуальный хостинг сайтов для популярных CMS:

В командной строке узнаем IP адрес для трассировки

Если по доменному имени трассировка не проходит, сделаем это по IP адресу. Узнаем его через команду «ping». Этот запрос показывает время, которое нужно пакету, чтобы дойти до сервера и вернуться обратно. Цифры в квадратных скобках, которые идут после домена в строке «Обмен пакетами с…», это и есть искомый IP. На скриншоте: 88.214.230.21.

Как скопировать результаты пинга и трассировки из командной строки?

Даже если трассировка по домену прошла успешно, стоит «пропинговать» сервер, чтобы увидеть, не теряются ли пакеты. Да и техподдержка может попросить статистику обмена данных вместе с отчетом о трассировке.

Вводим: tracert и IP адрес, нажимаем «ввод» и получаем отчет. Если данные нужны не лично вам, а для тех. поддержки, выделяем мышкой нужные строки и нажимаем «enter». Информация попадает в буфер обмена. Создаем текстовый файл и вставляем комбинацией клавиш Ctrl + V. Сохраняем и отправляем в техподдержку.

Далеко не секрет, что любой сайт размещается на определенном сервере и вводя в адресной строке установленного браузера адрес необходимого сайта, а затем нажимая кнопку «перейти», пользователь отправляет запрос на сервер. По пути до сайта, запрос проходит через промежуточные узлы связи. Если они функционируют нормально, то происходит загрузка ресурса в браузере.

Когда загрузка сайта не происходит, значит, отправленный запрос не смог дойти по причине проблем на одном из узлов связи. Понять, какой участок канала связи вызывает потерю запроса, поможет осуществление трассировки маршрута.

Как сделать трассировку сайта

Дальше я расскажу, как сделать трассировку маршрута в ОС Windows. Для этого нам понадобится воспользоваться служебной программой Tracert, которая, аналогично программе ping, запускается командной строкой. Чтоб в нее попасть, можно использовать один из трех предлагаемых мной способов:

2. Воспользоваться комбинацией клавиш вида Win+R, которая открывает окно как в первом способе. Дальше все действия одинаковы.

Откроется окошко с черным фоном, где нужно набрать команду в виде tracert название_сайта (в качестве примера: tracert yahoo.com) и подтверждаем ввод клавишей Enter. Если известен IP-адрес ресурса, то вместо названия домена, можно вводить его. Вводя адрес, устанавливается маршрут к конечному узлу. Окно командной строки выводит результаты сделанной трассировки в реальном времени: IP-адреса и названия промежуточных узлов, а также время отклика, отображаемое в миллисекундах.

В случае, если имена каких-либо промежуточных узлов не интересны, то трассировку маршрута необходимо выполнять с добавлением параметра –d, что позволяет скрыть имена маршрутизаторов. Вот так выглядит пример запроса: tracert -d yahoo.com.

Время отклика характеризует загруженность выделенного канала. При большом времени отклика, загрузка сайта будет идти, но весьма трудно. Но если появляется надпись с предупреждением о превышении интервала ожидания запроса, то на конкретном узле наблюдается потеря данных. Следовательно, этот узел – проблемный.

Таким образом, трассировка маршрута позволяет определить проблемы на узлах. Если поступление данных происходит нормально, а теряются они уже в узле назначения, то проблема именно с сайтом. При обрыве трассировки на середине маршрута – проблема с промежуточным маршрутизатором. Если пакеты теряются в сети провайдера, которым вы пользуетесь, то такая проблема решается уже непосредственно с ним.

В процессе серфинга по интернету могут возникнуть проблемы с подключением к какому-нибудь сайту, узлу либо серверу. Такие проблемы могут иметь различный характер и причину, однако для того, чтобы понять, на каком этапе возникают проблемы, рекомендуется совершить проверку пинга узла либо выполнить полную трассировку маршрута, проверив данным способом общую доступность сервера в текущий момент времени. Осуществить все эти действия можно при помощи командной строки.

Вызов командной строки в операционной системе Windows

Для того, чтобы максимально точно определить, в чем заключается проблема доступа к сайту, следует провести действия по диагностике связи с сервером при помощи командной строки. Вызвать командную строку в системе Windows можно несколькими способами:

  1. Запустить меню «Пуск», далее выбрать пункт «Все программы/приложения», в котором кликнуть по подпункту «Служебные» и выбрать приложение «Командная строка».
  2. Запустить меню «Пуск», выбрать пункт «Выполнить», в открывшемся диалоговом окне набрать «cmd» и нажать Enter, тем самым запустив окно командной строки.

Сетевая команда для проверки пинга сервера

Для того, чтобы проверить пинг узла в интернете, необходимо использовать в командной строке специализированную команду «ping», через пробел после которой следует ввести web-адрес интересующего сайта или его ip и нажать клавишу Enter. После этого система произведет тестовый обмен пакетами по 32 байта с назначенным узлом в сети, и в результатах выведет статус обмена для каждого пакета и время передачи. На основании полученных данных можно сделать вывод относительно доступности сервера и качества связи с ним. В системах семейства Windows выполняется обмен 4-мя пакетами.

Сетевая команда Telnet

Специальная команда Telnet дает возможность пользователю определить возможность установки связи с каким-либо удаленным серверным компьютером или сайтом при помощи заданного сетевого порта. Чтобы данная команда работала, необходимо в настройках Windows включить соответствующий компонент.
Для того, чтобы выполнить эту команду, в командную строку необходимо ввести Telnet и далее через пробелы адрес серверного компьютера и номер желаемого порта, и потом нажать клавишу «Enter».
В случае появления пустого экрана и мигающего курсора, соединение с требуемым узлом было осуществлено успешно.
Если же соединение установить не удается, то в окне появится соответствующее сообщение.

Как сделать трассировку - сетевая команда Tracert

Специализированная сетевая команда Tracert дает возможность пользователю узнать особенности пути прохождения запроса, выявив данным способом конкретный пункт маршрута, на котором возникают проблемы передачи информации. Кроме того, при помощи Tracert можно определить скорость передачи данных на каждой стадии прохождения запроса.
Для того, чтобы инициировать выполнение команды, необходимо в командной строке ввести «Tracert», и далее через пробел адрес интересующего серверного компьютера.
В результате в окне будет отображена таблица, в которой каждая строка будет являться одним пунктом маршрута: в качестве первой строки будет фигурировать Ваш шлюз, затем промежуточные этапы движения запроса, и в самом конце - требуемый сервер.

Основные особенности команды Tracert

  1. Данная команда может определить точный путь при помощи отправки ICMP-сообщений и вывести на дисплей сведения относительно каждого пройденного маршрутизатора и времени обмена информацией с ними, однако фильтрование пакетов шлюзами безопасности может запретить передачу подобной информации.
  2. В случае неудачной трассировки маршрута при помощи tracert, основываясь на результатах, можно точно выяснить, какой из промежуточных маршрутизаторов не выполняет перенаправление информации или осуществляет это медленно.
  3. Для того, чтобы получить подробные сведения относительно перенаправления и потери пакетов на каждом из маршрутизаторов, по которым идет запрос, можно использовать специальную команду «pathping».
  4. Для того, чтобы tracert не осуществляла вывод на дисплей имен всех маршрутизаторов, можно использовать параметр «-d», что позволяет существенно упростить вид пути следования запроса.

«Ааа, помогите, все пропало!» – если ваш внутренний голос реагирует на обрыв соединения с сервером примерно так, этот материал точно для вас. :) Безусловно, со своей стороны мы каждый день делаем все возможное, чтобы ничто не мешало вашей работе в , но случись форс-мажор – будем разбираться. А чтобы быстрее сориентироваться в ситуации и понять, на чьей стороне ошибка, вот вам задача-минимум – во время обрыва первым делом выполните трассировку маршрута и пинг промежуточных узлов. Как все это сделать, сейчас расскажем.

Трассировка маршрута

Во время трассировки происходит отправка пакетов данных между локальным компьютером и сервером. Это помогает проследить путь прохождения запроса к серверу и определить, на каком этапе происходит обрыв. Выполнить трассировку довольно легко.

1. Запустите команду cmd: Win+R > пропишите cmd > ОК .

tracert Х.Х.Х.Х (где Х.Х.Х.Х – это IP-адрес сервера или домен) и нажмите Enter .

В примере мы сделали трассировку для google.com.

tracert google.com

Получилось так:

1 2 1 ms 1 ms 1 ms 193.151.89.254
3 5 ms 4 5 1 ms 6 1 ms 7 1 ms 3 ms 1 ms bearline-ic-324086-ffm-b4.c.telia.net
8 1 ms 1 ms 1 ms 108.170.251.129
9 13 ms 13 ms 15 ms 66.249.94.135
10 13 ms 13 ms 13 ms fra15s12-in-f46.1e100.net

Как видим, наши пакеты преодолели десять (их может быть как меньше, так и больше) узлов, и преодолели их успешно. В противном случае, если бы пакеты «споткнулись» на одном из узлов, на нем (и последующих за ним узлах) мы бы увидели:

* * * Превышен интервал ожидания для запроса.

Но даже в таком случае пока не время для выводов – эта запись может означать как потерю пакетов, так и то, что узел сети просто закрыт настройками безопасности. Иногда провайдеры специально настраивают узлы так, чтобы они не отвечали на трассировочные пакеты, дабы снизить нагрузку. Чтобы точно узнать, действительно ли происходит обрыв, и, если да, то где именно, нужно пропинговать каждый из узлов. При трассировке мы получили IP каждого из них, а значит, можем перейти к пингу.

Пинг промежуточных узлов

Пинг предназначен для проверки целостности и качества соединений. Выполнить его тоже несложно. При этом запустить пинг нужно ко всем промежуточным узлам в отдельных окнах. Так непосредственно в момент обрыва связи будет видно, на каком узле происходят потери пакетов и насколько продолжительны эти обрывы.

В ОС Windows по умолчанию передается только четыре пакета, чего недостаточно, если проблема проявляется кратковременно. Поэтому нужно снять это ограничение параметром -t (чтобы потом остановить обмен пакетами, нажать CTRL+C ).

Теперь по порядку.

1. Запустите команду cmd: Win+R > пропишите cmd > ОК .

2. В открывшейся командной строке введите ping -t Х.Х.Х.Х (где Х.Х.Х.Х – это адрес одного из промежуточных узлов, которые мы узнали при трассировке) и нажмите Enter .

В нашем случае при трассировке мы выявили десять узлов, а значит, и пинг нужно выполнить десять раз в десяти отдельных окнах.

Полезно!
Если вам нужно постоянно отслеживать качество соединения, для Windows можно воспользоваться удобной программой PingPlotter.

Итак, пингуем – в десяти отдельных окнах командной строки вводим команды с IP-адресами узлов, которые мы выявили при трассировке. В нашем случае будут такие команды:

ping -t 10.1.1.1
ping -t 193.151.89.254
ping -t 85.195.75.129
ping -t 213.248.79.29
ping -t 62.115.139.50
ping -t 62.115.120.8
ping -t 62.115.153.215
ping -t 108.170.251.129
ping -t 66.249.94.135
ping -t 216.58.208.46

Если в каком-нибудь из окон вы с первых же секунд видите «Превышен интервал ожидания», не спешите кричать: «Попался!». Если следующие узлы пингуются нормально, значит, этот просто закрыт настройками. В нашем случае, например, предпоследний узел (66.249.94.135) сразу же говорит, что интервал превышен, но с пингом десятого узла никаких проблем нет.

На чьей стороне ошибка?

Итак, обрыв повторился. Но на этот раз запущенный пинг промежуточных узлов поможет «обличить» виновника. Тут все просто – с какого узла вам начало выдавать «Превышен интервал ожидания», тот и слабое звено.

Кто виноват – ясно, теперь нужно понять, что делать в конкретных ситуациях.

1. Последний узел. Если последний узел сначала пинговался нормально (некоторые Windows-машины вообще не отвечают на пинг, это задается в настройках брандмауэра)…

…а после обрыва начал показывать «Превышен интервал ожидания», обрыв происходит на вашем сервере.

В этом случае зайдите в панель управления, запустите консоль и войдите в операционную систему, чтобы разобраться, почему сервер не работает. Если окажется, что операционная система зависла, перезагрузите сервер.

2. Любые узлы, кроме последнего. В этом случае обращайтесь одновременно в техподдержку и облачного, и интернет-провайдера. При этом обязательно укажите, как изначально выглядела трассировка маршрута, и составьте перечень узлов с указанием, на каких из них пинг во время обрыва прервался, а на каких нет. Будьте внимательны, это важная информация, не ошибитесь.

3. Все узлы одновременно. Если все окна с пингом начали показывать «Превышен интервал ожидания», проблема в вашем компьютере или сети, к которой он подключен.

Бонус!

Ну, а чтобы вам было совсем уж комфортно, мы тут подобрали утилиты, с которыми можно делать трассировку и пинг промежуточных узлов одним простым движением без запуска пятнадцати различных окон.

Для ОС семейства Windows такую оптимизацию проводит утилита Winmtr . Она не нуждается в установке и готова к использованию сразу после распаковки из архива.

В поле Host укажите конечный сервер, с которым будет проверяться соединение, и нажмите Start :

В нашем примере видна трассировка маршрута и все промежуточные узлы. При этом к каждому из них направляются ICMP-пакеты, по которым можно определить качество связи.

Собственно, в этом и заключается главное преимущество утилиты – ее вывод постоянно обновляется, это позволяет собирать статистику, отслеживать средние показатели, тенденции и какие-либо изменения качества сети.

Раз мы проверяем соединение с сервером, нас интересуют столбцы Sent (отправлено пакетов) и Recv (получено пакетов). Если значения в этих столбцах не совпадают, значит, качество связи с узлом ухудшилось. Что делать? Обратиться в соответствующую техподдержку.

Столбец Loss поможет просмотреть динамику потерь в процентном соотношении.

Также утилита позволяет копировать текст в удобных форматах (.txt и .html ) в буфер обмена (Copy to clipboard ) или в отдельный файл (Export ).

Двойной щелчок по промежуточному узлу позволит получить дополнительную информацию о нем.

Важно знать!

Для детализации проблемы специалисты техподдержки могут запросить дополнительные пинги с особыми настройками. Для этого достаточно внести их в окошке Options , которое позволит указать:

  1. Interval (sec) – время обновления данных в секундах.
  2. Max host in LRU list – максимальное количество хостов (или IP-адресов, если не активна опция Resolve names ) до конечной точки.
  3. Ping size (bytes) – размер ICMP-пакета.
  4. Resolve names – возможность преобразовать IP-адрес в имя хоста.

А что же линуксоиды?

Для ОС семейства Linux утилита называется просто MTR. Если ее нет в вашей операционной системе, установить ее можно одним из следующих способов:

Debian/Ubuntu/Mint:

$ apt-get install mtr

CentOS/RedHat/Fedora:

$ yum install mtr

У MTR такой же функционал, как у Winmtr, а также схожий графический интерфейс. Запустить утилиту можно командой:

где X.X.X.X – это IP-адрес конечного сервера или имя хоста.

В данном случае интересуют следующие столбцы:

  • Loss % – процент потерянных пакетов между компьютером-отправителем и промежуточными узлами.
  • SNT – общее количество отправленных пакетов.

Как только где-то что-то потерялось, утилита сигнализирует нам об этом, окрашивая узел в красный цвет и подсчитывая процент потерь.

Отдельно отметим возможность запуска утилиты в текстовом (консольном) режиме. Для этого достаточно добавить опцию -t или --curses:

mtr --curses сайт

Рассмотрим еще несколько важных опций MTR, которые могут быть крайне полезны в процессе диагностики сети.

R или --report

Запускает режим отчета, в котором MTR обработает заданное количество циклов (определенных опцией -c), а затем отобразит статистику и автоматически завершит работу. Этот режим полезен для сбора статистики о качестве сети.

C COUNT или --report-cycles COUNT

Позволяет задать количество циклов, после которых MTR завершит работу.

P BYTES или --psize BYTES

Устанавливает размер пакетов в байтах.

I SECONDS или --interval SECONDS

Задает интервал между отправляемыми пакетами.

N или --no-dns

Разрешает не использовать DNS, отображает IP-адреса узлов.

A X.X.X.X или --address X.X.X.X

Позволяет указать адрес интерфейса компьютера, с которого будут отправляться ICMP-запросы.

Итого

Разумеется, команды в консоли дают более точный результат, поскольку фиксируют даже единичные потери пакетов (короткие обрывы), но Winmtr и MTR компактные и более удобны в использовании. А на чем остановить свой выбор, решать только вам. :)

Вот, собственно, и все, кто виноват – выяснили, что делать – тоже. :) Надеемся, материал был вам полезен, а если у вас остались дополнительные околооблачные вопросы, обращайтесь к нам за грамотной .

Метки: ,