Трассировка интернета. Трассировка маршрута: зачем она нужна? На чьей стороне ошибка

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

В ОС Windows - это утилита tracert. В XP она была доступна по умолчанию, а вот во всех последующих версия вплоть до Windows 10 её надо включать дополнительно через "Программы и Компоненты".

В операционных система ОС семейства *NIX - Linux, FreeBSD, Android - программа traceroute
Смысл алгоритма трассировки маршрута в том, что посылается по три специальных запроса на каждый сетевой узел, через который идёт трафик до нужного хоста, затем для каждого из них на экране, рядом с его адресом, выдаётся время ответа.По этим результатам можно легко отследить на каком участке сети начинают повяляться задержки ответа или он вообщ пропадает.

Трассировка в Windows 10

Для проведения трассировки сети в Windows 10 необходимо нажать комбинацию клавиш Win+R и в окне "Выполнить" набрать команду «cmd». Этим Вы откроете командную строку Виндовс, в которой надо ввести команду:

tracert

Для примера возьмём сайт google.ru

Трассировка в Linux

В операционных системах семейства Linux - Ubuntu, Fedora, CentOS и т.п. - для запуска трассировки маршрута в надо открыть системную консоль и ввести команду:

traceroute <имя_сервера>

Внимание! Использовать трассировку маршрута в сети для оценки качества последней мили (абонентской линии ADSL,FTTB или PON) нельзя, так как эта системная программа никоим образом оценить качество линии не может и не умеет.

Совсем недавно на компьютере, который размещен на работе, по каким-то причинам не отображался мой блог, хотя на компьютере дома мой блог отображался (да-да, грешен – бывают случаи, когда я вместо прямых своих обязанностей на работе, занимаюсь своим сайтом ).
Браузер Google Chrome выводил:

«Ошибка 101 (net::ERR_CONNECTION_RESET): Соединение сброшено».

Жаль, что не догадался сразу сделать скриншот ошибки, но это выглядело примерно вот так:

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

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

Как узнать свой IP адрес?

Как сделать пинг (ping)?

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

Или же можно воспользоваться самым быстрым способом: вызвать команду «Выполнить» сочетанием клавиш «Win + R» :

2). Появится окно, где в пустом поле нужно прописать команду «cmd» и нажать на кнопку «ОК» :

3). Откроется черное окно, в котором нужно прописать команду «ping адрес сайта » (в моем случае это выглядело так: «ping сайт ») и нажать на клавишу «Enter» :

5). Чтобы скопировать результат для отправки хостинг-провайдеру, нужно:

Чтобы вставить полученный результат в текстовый документ или в переписку с тех поддержкой хостинга, вам достаточно нажать «CTRL+V» .
Вот таким простым способом можно сделать пинг (ping).

Как сделать трассировку (tracert) сервера?

Для начала выясним, что такое трассировка (tracert) сервера.
Трассировка (tracert) сервера – это сетевой сервис, предназначенный для получения списка узлов сети Internet, через которые проходят пакеты с данными до сервера запрашиваемого вами хоста.

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

Чтобы сделать трассировку сервера, нужно сделать такие действия:
1). В Windows XP/7. Нажмите на кнопку «Пуск» , которая размещена в нижнем левом углу экрана монитора, и перейдите по вкладке «Выполнить» :

Или же можно воспользоваться самым быстрым способом вызова команды «Выполнить» нажать сочетание клавиш «Win + R» :

2). В появившемся окне в пустом поле нужно прописать команду «cmd» и нажать на кнопку «ОК» :

3). Откроется черное окно, в котором нужно прописать команду «tracert адрес сайта » (в моем случае это выглядело так: «tracert сайт ») и нажать на клавишу «Enter» :

4). Через пару секунд компьютер выдаст результат:

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

Весь текст в черном окне выделится белым. Чтобы скопировать весь этот текст, нужно нажать на клавишу «Enter» .

    Утилита трассировки маршрута до заданного узла TRACERT.EXE является одним из наиболее часто используемых инструментов сетевой диагностики. Основное ее назначение - получить цепочку узлов, через которые проходит IP-пакет, адресованный конечному узлу, имя или IP-адрес которого задается параметром командной строки.

Формат командной строки:

tracert [-d] [-h максЧисло] [-j списокУзлов] [-w таймаут] [-R] [-S адресИсточника] [-4] [-6] конечноеИмя

Параметры командной строки:

-d - не использовать разрешение в имена узлов.

-h максЧисло - максимальное число прыжков при поиске узла.

-j списокУзлов - свободный выбор маршрута по списку узлов (только IPv4).

-w таймаут - таймаут каждого ответа в миллисекундах.

-R - трассировка пути (только IPv6).

-S адресИсточника - использовать указанный адрес источника (только IPv6).

-4 - принудительное использование IPv4.

-6 - принудительное использование IPv6.

В основе трассировки заложен метод анализа ответов при последовательной отправке ICMP-пакетов на указанный адрес с увеличивающимся на 1 полем TTL. ("Время жизни" - Time To Live). На самом деле это поле не имеет отношения к времени, а является счетчиком числа возможных переходов при передаче маршрутизируемого пакета. Каждый маршрутизатор, получив пакет, вычитает из этого поля, сохраняемого в заголовке пакета, единицу и проверяет полученное значение счетчика TTL. Если значение стало равным нулю, такой пакет отбрасывается и отправителю посылается ICMP-сообщение о превышении времени жизни (сообщение "Time Exceeded", значение 0x11 в заголовке ICMP).

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

    При выполнении команды tracert.exe сначала выполняется отправка ICMP пакета с полем TTL в заголовке равным 1 и первый в цепочке маршрутизатор (обычно это основной шлюз из настроек сетевого подключения) вычтя единицу из TTL получает его нулевое значение и сообщает о превышении времени жизни. Таким образом, утилита TRACERT.EXE получает IP-адрес первого маршрутизатора, участвующего в доставке пакетов конечному узлу. Эта последовательность повторяется трижды, поэтому в строке результата, формируемой tracert.exe, после номера перехода отображаются три значения времени отклика:
1     1 ms     1 - номер перехода (1 - первый маршрутизатор)
1 ms 192.168.1.1 - его адрес (или имя)

    Затем процедура повторяется, но TTL устанавливается равным 2 - первый маршрутизатор его уменьшит до 1 и отправит следующему в цепочке, который после вычитания 1 обнулит TTL и сообщит о превышении времени жизни. Утилита TRACERT.EXE получит второй IP-адрес узла, участвующего в доставке пакета получателю и его время ответа. Процесс трассировки будет продолжаться до тех пор, пока не будет достигнут конечный узел, имя или адрес которого заданы в качестве параметра командной строки, например, tracert yandex.ru , или до обнаружения неисправности, не позволяющей доставить пакет. По умолчанию, утилита TRACERT.EXE использует счетчик максимального числа переходов равный 30, что должно быть достаточно для достижения любого узла на планете. При необходимости, иное значение счетчика можно задать с помощью параметра -h

Пример результатов выполнения tracert google.com

tracert google.com - трассировка маршрута к узлу google.com

Результат:


Трассировка маршрута к google.com с максимальным числом прыжков 30:
1 1 ms 2 498 ms 444 ms 302 ms ppp83-237-220-1.pppoe.mtu-net.ru
3 * * * .
4 282 ms * * a197-crs-1-be1-53.msk.stream-internet.net
5 518 ms 344 ms 382 ms ss-crs-1-be5.msk.stream-internet.net
6 462 ms 440 ms 335 ms m9-cr01-po3.msk.stream-internet.net
7 323 ms 389 ms 339 ms bor-cr01-po4.spb.stream-internet.net
8 475 ms 302 ms 420 ms anc-cr01-po3.ff.stream-internet.net
9 334 ms 408 ms 348 ms 74.125.50.57
10 451 ms 368 ms 524 ms 209.85.255.178
11 329 ms 542 ms 451 ms 209.85.250.140
12 616 ms 480 ms 645 ms 209.85.248.81
13 656 ms 549 ms 422 ms 216.239.43.192
14 378 ms 560 ms 534 ms 216.239.43.113
15 511 ms 566 ms 546 ms 209.85.251.9
16 543 ms 682 ms 523 ms 72.14.232.213
17 468 ms 557 ms 486 ms 209.85.253.141
18 593 ms 589 ms 575 ms yx-in-f100.google.com

Трассировка завершена.

    В результатах трассировки могут присутствовать строки, где вместо адреса узла отображается звездочка (узел номер 3 в примере). Это не обязательно является признаком неисправности маршрутизатора, и чаще всего, говорит о том, что настройки данного узла запрещают отправку ICMP-сообщений по соображениям безопасности и уменьшения нагрузки на канал при в случае некоторых разновидностей DDoS-атак. Например, подобные настройки используются в сетях Microsoft . Серверы корпорации не отвечают на ping и не позволяют выполнить трассировку маршрута к ним.

Примеры использования TRACERT

tracert google.com - выполнить трассировку маршрута к узлу google.com .

tracert 8.8.8.8 - выполнить трассировку маршрута к узлу с IP-адресом 8.8.8.8

tracert -d yandex.ru - выполнить трассировку маршрута к узла yandex.ru без разрешения IP-адресов в имена узлов. Трассировка в таком режиме выполняется быстрее.

tracert -d -6 ipv6.google.com - выполнить трассировку с использованием протокола IPv6.

Пример результатов трассировки с использованием протокола IPv6:

trace to ipv6.google.com (2a00:1450:4013:c00::71), 30 hops max, 40 byte packets 1 2a02:348:82::1 (2a02:348:82::1) 8.087 ms 8.063 ms 8.086 ms 2 te0-22.cr1.nkf.as49685.net (2001:4cb8:40b:1::1d01) 2.143 ms 2.129 ms 2.103 ms 3 amsix-router.google.com (2001:7f8:1::a501:5169:1) 1.379 ms 1.415 ms 1.422 ms 4 (2001:4860::1:0:87ab) 1.437 ms (2001:4860::1:0:87aa) 2.157 ms (2001:4860::1:0:87ab) 1.408 ms 5 (2001:4860::8:0:87b0) 1.494 ms 1.469 ms (2001:4860::8:0:87b2) 8.350 ms 6 (2001:4860::8:0:b1b7) 5.364 ms 5.321 ms 4.748 ms 7 (2001:4860::2:0:8651) 4.653 ms 6.994 ms (2001:4860::2:0:8652) 13.926 ms 8 ee-in-x71.1e100.net (2a00:1450:4013:c00::71) 4.732 ms 4.733 ms 4.783 ms

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

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

Как же сделать эту трассировку?

Заходим на своем компьютере в “Пуск” – “Выполнить” (или можно нажать на клавиатуре одновременно клавиши Win+R ). Набираем команду cmd и жмем “ОК”:В открывшемся черном окне пишем команду и через пробел название интересующего нас сайта (вместо имени сайта можно использовать его IP-адрес):
После этого нажимаем клавишу Enter на клавиатуре.

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

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

Как видите, в моем случае трассировка далеко не прошла – остановка произошла где-то на оборудовании провайдера:

Полученные данные нам, вероятно, потребуется предоставить на форум провайдера. Можно просто сделать скриншот этого окна, но лучше скопировать эти данные в виде текста. Для этого щелкаем правой клавишей мыши прямо в этом окне – далее выбираем пункт “Выделить все”:
Затем жмем клавишу Enter на клавиатуре. Теперь весь текст находится в буфере обмена – можем вставить его в любой текстовый редактор или сразу в ответ на форуме (нажав правую кнопку мыши – “Вставить”, либо сочетанием клавиш Ctrl+V).

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

Но что такое пинг и что такое трассировка? Пинг (ping) — это инструмент (утилита) для проверки целостности соединения в сетях на основе TCP/IP. Трассировка (traceroute или tracert команда) — это программа для определения маршрутов следования данных в сетях TCP/IP.

Однако не всегда можно встретить информацию о том, как именно выполняется эта проверка: как пинговать или как сделать трассу.

Проверка пинга

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

Windows :

1) Пуск -> Все программы -> Стандартные -> Командная строка

2) Пуск -> Выполнить -> cmd

В данной ОС существует множество терминалов, поэтому для этих целей можно использовать любой из установленных на ПК. Обычно, стандартный терминал можно запустить сочетанием клавиш CTRL +ALT +T .

Итак, чтобы пропинговать определенный сервер, необходимо выполнить команду:

Ping

Например, для пинга адреса 11.222.33.44 необходимо выполнить команду:

Ping 11.222.33.44

Ниже приведён пример результатов выполнения пинга одного из IP адресов.

Как видно из результатов, было передано и получено 4 пакета объемом 32 байта. Время обмена одним пакетом составило 47 милисекунд.

Стоит отметить, что в Windows по умолчанию выполняется отправка только 4 пакетов. В Linux обмен пакетами продолжается до тех пор, пока пользователь самостоятельно не остановит процесс сочетанием клавиш CTRL +C . Чтобы запустить ping аналогичным образом в Windows, необходимо использовать параметр -t . Например:

Ping -t 11.222.33.44

Остановка обмена пакетами выполняется тем же сочетанием клавиш – CTRL +C .

Установка количества отправляемых пакетов

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

Windows :

Ping -n <число_пакетов> < IP или домен >

например:

Ping -n 5 11.22.33.44

Ping -c <число_пакетов> < IP или домен >

например:

Ping -c 5 11.22.33.44

Изменение размера отправляемых пакетов

Чтобы выполнить ping с использованием пакетов определенного размера (в байтах), необходимо использовать следующую команду:

Windows :

Ping -l <размер_пакетов> < IP или домен >

например:

Ping -l 64 11.22.33.44

Ping -s < размер_пакетов> < IP или домен >

например:

Ping -s 64 11.22.33.44

В данном случае производилась отправка пакетов размером в 64 байта.

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

Для выполнения трассировки используется следующая команда:

Windows :

Tracert

например:

Tracert wikipedia.org

Traceroute

например:

Traceroute wikipedia.org

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

Чтобы активировать эту опцию необходимо использовать следующий вид команды:

Windows :

Tracert -d

Traceroute -n