Какие могут быть причины неудачного завершения ping и tracert
Содержание статьи
Обрыв соединения с сервером. Трассировка и пинг
«Ааа, помогите, все пропало!» — если ваш внутренний голос реагирует на обрыв соединения с сервером примерно так, этот материал точно для вас. 🙂 Безусловно, со своей стороны мы каждый день делаем все возможное, чтобы ничто не мешало вашей работе в облаке, но случись форс-мажор — будем разбираться. А чтобы быстрее сориентироваться в ситуации и понять, на чьей стороне ошибка, вот вам задача-минимум — во время обрыва первым делом выполните трассировку маршрута и пинг промежуточных узлов. Как все это сделать, сейчас расскажем.
Трассировка маршрута
Во время трассировки происходит отправка пакетов данных между локальным компьютером и сервером. Это помогает проследить путь прохождения запроса к серверу и определить, на каком этапе происходит обрыв. Выполнить трассировку довольно легко.
1. Запустите команду cmd: Win+R > пропишите cmd > ОК.
2. В открывшейся командной строке введите 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 [62.115.153.215]
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 [216.58.208.46]
Как видим, наши пакеты преодолели десять (их может быть как меньше, так и больше) узлов, и преодолели их успешно. В противном случае, если бы пакеты «споткнулись» на одном из узлов, на нем (и последующих за ним узлах) мы бы увидели:
* * * Превышен интервал ожидания для запроса.
Но даже в таком случае пока не время для выводов — эта запись может означать как потерю пакетов, так и то, что узел сети просто закрыт настройками безопасности. Иногда провайдеры специально настраивают узлы так, чтобы они не отвечали на трассировочные пакеты, дабы снизить нагрузку. Чтобы точно узнать, действительно ли происходит обрыв, и, если да, то где именно, нужно пропинговать каждый из узлов. При трассировке мы получили 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, которое позволит указать:
- Interval (sec) — время обновления данных в секундах.
- Max host in LRU list — максимальное количество хостов (или IP-адресов, если не активна опция Resolve names) до конечной точки.
- Ping size (bytes) — размер ICMP-пакета.
- Resolve names — возможность преобразовать IP-адрес в имя хоста.
А что же линуксоиды?
Для ОС семейства Linux утилита называется просто MTR. Если ее нет в вашей операционной системе, установить ее можно одним из следующих способов:
Debian/Ubuntu/Mint:
$ apt-get install mtr
CentOS/RedHat/Fedora:
$ yum install mtr
У MTR такой же функционал, как у Winmtr, а также схожий графический интерфейс. Запустить утилиту можно командой:
mtr X.X.X.X
где X.X.X.X — это IP-адрес конечного сервера или имя хоста.
В данном случае интересуют следующие столбцы:
- Loss % — процент потерянных пакетов между компьютером-отправителем и промежуточными узлами.
- SNT — общее количество отправленных пакетов.
Как только где-то что-то потерялось, утилита сигнализирует нам об этом, окрашивая узел в красный цвет и подсчитывая процент потерь.
Отдельно отметим возможность запуска утилиты в текстовом (консольном) режиме. Для этого достаточно добавить опцию -t или —curses:
mtr —curses tucha.ua
Рассмотрим еще несколько важных опций 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 компактные и более удобны в использовании. А на чем остановить свой выбор, решать только вам. 🙂
Вот, собственно, и все, кто виноват — выяснили, что делать — тоже. 🙂 Надеемся, материал был вам полезен, а если у вас остались дополнительные околооблачные вопросы, обращайтесь к нам за грамотной консультацией 24/7.
Источник
Как находить проблемы с интернетом и кто виноват ч.2 — домашняя работа
Перед тем, как обращаться к провайдеру, необходимо разобраться — а всё ли хорошо в доме. Без этой проверки есть риск превратиться в мальчика, который постоянно кричал «у меня потери пакетов» «волки».
В настоящее время, у пользователей увеличивается потребность в быстром интерактивном трафике — когда интернет не только толстый, но и пинги ходят очень быстро. Автор работает в компании GFN.RU. Нашим пользователям очень важны оба показателя, что и позволило накопить определенный багаж знаний и опыта, которым я делюсь в статьях.
Автор приложит все усилия, чтобы статьи оставались объективными и не превращались в рекламу GFN.RU.
Моральное устаревание диагностических инструментов
В современном мире диагностика, увы не очень показательна. Во-первых, потому, что она базируется на протоколах 40-летней давности (RFC 792 — от 1981-го года) и превращается в лупу в эпоху электронных микроскопов. А во-вторых, у этих протоколов есть большие проблемы в части безопасности. Если какой-то маршрутизатор полностью отвечает RFC 792, то его можно элементарно атаковать с помощью DDoS атаки (чем хакеры в нулевых и баловались). Поэтому, даже эти протоколы работают плохо благодаря закрученным гайкам.
Прямым следствием этих ограничений является типичный сценарий решения сетевых проблем:
Пользователь обращается к провайдеру и говорит, что с сайтом А у него проблемы и плохая связь. Провайдер обычно всегда говорит: у нас всё хорошо, проблемы у сайта.
Когда пользователь обращается в поддержку сайта, то ему там говорят то же самое — у нас всё хорошо, обратитесь к провайдеру.
В итоге, проблема конечно же не решается.
Ниже мы всё-таки попробуем определиться, где именно проблема.
К сожалению для статьи, и к счастью для автора, у автора всё в порядке с интернетом. Потому, примеров «смотрите — слева всё плохо, а справа всё хорошо» практически не будет. Но, где возможно — я всё-таки попробую что-нибудь сломать для наглядности.
Маршруты интернета
В первой части статьи я рассказывал, что трафик ходит по маршрутам. Их два : BGP и IP. Один поверх другого. BGP — определяет маршрут через физические маршрутизаторы, а IP — уже логическая составляющая пути. На этом этапе диагностика затруднена тем, что :
Вводная по BGP это TTTLDR.
Благодаря таким технологиям, как AnyCast, IP 11.22.33.44 на маршруте может физически находиться в любом месте, и в двух+ местах одновременно : AnyCast позволяет указать, что за этот IP отвечает сервер в Нью-Йорке и в Москве. При пинге этого IP вы не можете однозначно утверждать, что вы пингуете именно Московский сервер.
Так же есть MPLS и иное туннелирование. Разобрать маршруты тоннелей, простыми инструментами не получится.
Пакет «туда» и пакет «обратно» может пойти разными путями.
Пакет «туда» может пойти по нескольким путям в разное время. Инструментов для диагностики ECMP на домашних OS немного, они сложнее простого tracert, а иногда, стоят дорого.
Будем работать с тем что есть. А есть у нас команда traceroute.
На windows она выполняется из Пуск/cmd и ввести tracert. Так же есть графическая утилита WinMTR. Она дает больше полезной информации и, в некоторых случаях, будем пользоваться ей.
Можно не запускать cmd и там выполнять команды, а делать это windows-style:
Пуск/выполнить cmd /k tracert -d что-нибудь
Ключевые правила диагностики:
Если вы не можете продемонстрировать и повторить проблему, то никто не сможет.
Данные нужно собирать за несколько временных периодов — как минимум, за период, когда проблем нет, и за период, когда проблемы есть.
Как быстро определить, что всё приемлемо
Автор использует универсальную метрику «Пинг на 1000 километров». Он считается следующим образом:
Определяете, где находится сервер.
На Яндекс.картах измеряете расстояние от вас до сервера.
Выполняете команду ping до нужного вам хоста. Если получается не больше, чем 20 миллисекунд на 1000 километров, то у вас с инпут-лагом не должно быть никаких проблем.
Автор находится в ~1000 км от Москвы. Его пинги выглядят следующим образом:
На расстояниях до 200 км данное правило, кстати, не будет выполняться, ввиду того, что скорость работы оборудования вносит бОльшую лепту. На таких расстояниях пинг должен быть в рамках 5-6 миллисекунд. Если больше — у вас проблема.
Как читать PING
Соединение до домашнего роутера
В первую очередь, нужно определить IP адрес вашего домашнего роутера. Для этого необходимо ввести команду: cmd /k tracert -d ya.ru
Tracing route to ya.ru [87.250.250.242] over a maximum of 30 hops:
1 1 ms 1 ms <1 ms 192.168.88.1
Первый IP адрес в результатах tracert скорее всего и будет IP-адресом вашего роутера.
Так же можно сделать вывод, что автор любитель Mikrotik.
Пинг, обычно, отправляет пакеты размером 64 байта, что показывает скорее физические качества канала- нет ли плохого кабеля по пути.
Как уже говорилось ранее — диагностика работает только в сравнении. Ниже — два примера пинга.
С сервера, который подключен к роутеру кабелем.
А это с компьютера, который подключен к той же сети, но по wi-fi.
Какие выводы можно здесь сделать:
WIFI вносит свою лепту. Во-первых, у нас появился Джиттер (видим, что время пинга скачет). Во-вторых, пинг стал немного хуже.
И вот подтверждение моих слов — тест участка компьютер-домашний роутер.
Пакеты, даже не выходя в интернет, иногда проходят плохо. Без потерь, но задержки присутствуют.
Теперь, немножко нагрузим канал с помощью https://www.speedtest.net/ и параллельно запустим длинный ping.
Чтоб запустить «длинный ping» — необходимо ввести команду ping -t . В этом случае ping будет продолжаться пока вы не нажмете Control+C
Видим, что при приеме больших объемов информации скорость падает существенно меньше, чем при передаче.
Одна из причин — мощность антенны в точке доступа выше, чем у ноутбука. Ноутбук работает на аккумуляторе и не подключен к сети. Аккумулятор — почти севший и windows находится в режиме «Best battery life»
Вот тот же самый тест, но с подключенным блоком питания.
Видно, что прием стал гораздо лучше, и передача тоже улучшилась. 200мс пинг при передаче отсутствует.
Что в этой ситуации можно настроить:
Мощность передатчика на точке доступа.
Мощность передатчика на ноутбуке.
В первых тестах мощность передатчика ноутбука была выкручена на максимум. Ниже — выкручена на минимум:
Как видно, появились потери, и пинг стал гораздо хуже, даже при работе от блока питания.
Стоит помнить, что Wi-Fi это диалог. Если точка доступа «кричит», а компьютер «шепчет», то точка может плохо слышать компьютер, хотя палочки будут показывать, что всё хорошо.
Если вы везде выставите мощность на максимум, то могут начать страдать ваш Smart TV и телефон, подключенный к той же сети — компьютер будет их «перекрикивать». Ноутбук будет меньше работать от батарей. Мощность всегда нужно выбирать исходя из условий, и ставить минимальную мощность, которая дает вам приемлемый результат. Мощность с запасом ставить не рекомендуется.
Факторы, влияющие на Wi-Fi
Здесь опустим исключительно программные факторы вроде beacons, размеры пакетов, 80 мегагерц и прочее — про них можно написать еще десяток страниц. Приведу только ключевые физические факторы и факторы окружения.
Частоты : «2.4» в городах — всегда хуже 5 гигагерц. При возможности выбирайте 5.
При выборе канала — проведите анализ спектра, когда «соседи дома». Точки обычно позволяют сканировать эфир. Выберите канал, который не занят и у которого меньше всего соседей. При выборе канала старайтесь выбирать как можно меньший канал. 5-й канал бьет «дальше», чем 159-й.
Для анализа спектра можно использовать программу WiFiView : https://www.nirsoft.net/utils/wifirmationview.html
Далее идем в эту статью : Wikipedia List of WLan channels
Ищем частоту, вокруг которой либо самая слабая передача — al Quality самый плохой, либо вообще на этой частоте ничего нет.
У ноутбуков антенна встроена в экран. Антенна точки и устройства должны находиться в одной плоскости. Если у вас экран стоит вертикально, то и антенны на роутере должны стоять вертикально, а не так, как обычно показывается на рекламных материалах:
Плохая ориентация антенн :
Правильная ориентация антенн.
Вокруг и над антенной, в радиусе 40-50 сантиметров по горизонту НЕ ДОЛЖНО быть металла и стен. Т.е. — на столе/полке роутер ставить — неизбежное зло, с которым придется смириться. А вот возле стены — плохо. Популярные гипсокартонные стены содержат в себе металлические направляющие каждые 40 сантиметров.
Работающие микроволновки — злейшие враги Wi-Fi в тот момент, когда в них готовят.
Конспект
Домашний маршрутизатор:
Найти IP-адрес домашнего роутера.
Запустить длинный пинг до роутера. Замерить потери и скорость.
Запустить спидтест и параллельно длинный пинг.
Сравнить результаты. Если ухудшения показателей пинга нет, то у вас соединение до роутера — быстрее чем канал в интернет, и в целом, дома всё хорошо.
Wifi:
Выбрать частоту и незанятый канал.
По возможности, убрать точку от стен.
Правильно ориентировать антенны. Кстати, запустив длинный «пинг», и покрутив антенны — можно найти оптимальный вариант, но не забывайте, что цифры достоверные только когда вы НЕ КАСАЕТЕСЬ антенн.
Выбрать минимальную мощность передатчика, дающую максимальную скорость в локальной сети.
Как находить проблемы с интернетом и кто виноват ч.1 — inception
Источник
Как пользоваться командами ping и tracert
- Команда ping
- Как пользоваться ping
- Команда tracert
- Как запустить tracert
В статье мы расскажем, для чего нужны утилиты ping и tracert, как запустить эти утилиты, а также приведем примеры команды ping для диагностики сети.
Ping и tracert — это утилиты для проверки целостности соединений в сетях и определения маршрутов следования данных на основе TCP/IP. Без этих утилит не обойтись не только при администрировании серверов (или целой сети), но и в условиях «домашней» диагностики.
Команда ping
Команда ping — один из базовых инструментов для работы с сетью. С помощью ping можно проверить сервер и его доступность с любого компьютера, а также соединение между устройствами.
Если вы задавались вопросом «Как я могу узнать мой IP адрес и порт?», то мы дадим вам ответ: командой пинг можно как узнать порт компьютера, так и определить его IP.
Также с помощью команды ping можно выполнить такие диагностические задачи, как:
измерить время взаимодействия между двумя хостами;
проверить IP-адрес конкретного хоста в локальной и глобальной сети;
автоматически проверить сетевое устройство (например, когда ping является частью bash-скрипта);
проверить пинг до сервера и др.
Как пользоваться ping
Если у вас Windows
Откройте меню «Пуск», кликните по пункту Выполнить или нажмите сочетание клавиш Win + R.
В поиске введите команду «cmd» и кликните Enter.
В окне терминала введите команду:
ping имя_сайта (домен) или ping IP_сервера.
Если у вас Linux
1. Откройте терминал. Для этого:
в Unity (Ubuntu): перейдите в «Главное меню» и введите слово «Терминал» в поисковой строке или наберите сочетание клавиш Ctrl+Alt+T;
в Xfce (Xubuntu): перейдите в «Главное меню» — «Приложения», затем выберите «Система» — «Терминал»;
в KDE (Kubuntu): перейдите в «Главное меню» — «Приложения», затем выберите «Система» — «Терминал».
2. В окне терминала введите команду:
ping имя_сайта (домен) или ping IP_сервера.
Если у вас кириллический домен
Для Windows и Linux кириллические домены нужно вводить в формате Punycode. Перевести домен в формат Punycode можно через сервис. Сконвертируйте имя кириллического домена и вставьте его в окно терминала следующим образом: ping xn--2-8sble8ahe.xn--p1ai
Если у вас MacOS
В Spotlight выберите и запустите сетевую утилиту Network Utility.
В открывшемся окне перейдите на нужную вкладку.
На вкладке Ping введите имя домена (или IP-адрес) и кликните Отследить:
Готово, вы запустили утилиту ping.
Команда tracert
Команда tracert — самый популярный инструмент сетевой диагностики. С помощью tracert можно проверить путь запроса к серверу и выявить проблемы, связанные с доступностью удаленного сервера. Сообщения отправляются с эхо-запросом по протоколу ICMP, и после каждой передачи выводится сообщение с эхо-ответом.
Командой tracert можно проверить:
маршрут от локального компьютера до удаленного узла;
количество узлов в сети;
время прохождения пакета до конечного, транзитного и промежуточного узлов;
точку потери пакета;
пинг порта через командную строку.
Как запустить tracert
Если у вас Windows
Откройте меню «Пуск», кликните по пункту Выполнить или нажмите сочетание клавиш Win + R.
В поиске введите команду «cmd» и кликните Enter.
В открывшемся окне терминала введите команду:
tracert имя_сайта (домен) или tracert IP_сервера.
Если у вас Linux
1. Откройте терминал. Для этого:
в Unity (Ubuntu): перейдите в «Главное меню» и введите слово «Терминал» в поисковой строке или нажмитесочетание клавиш Ctrl+Alt+T;
в Xfce (Xubuntu): перейдите в «Главное меню» — «Приложения», затем выберите «Система» — «Терминал»;
в KDE (Kubuntu): перейдите в «Главное меню» — «Приложения», затем выберите «Система» — «Терминал».
2. В окне терминала введите команду:
traceroute имя_сайта (домен) или traceroute IP_сервера.
Если у вас MacOS
В Spotlight выберите и запустите сетевую утилиту Network Utility.
В открывшемся окне перейдите на нужную вкладку.
На вкладке Traceroute введите имя домена (или IP-адрес) и кликните Отследить:
Готово, вы запустили утилиту tracert.
Если у вас установлена ОС Windows и вы хотите упростить диагностику подключения, скачайте утилиту WinMTR. Как пользоваться WinMTR, читайте на тематических блогах.
Источник