Диагностика с помощью MTR

Updated 1 week ago by Oleg

Одной из причин недоступности или "торможения" сервера может выступать потеря пакетов на промежуточных узлах маршрута (например, по причине аварии у магистрального провайдера). Выявить это поможет утилита MTR (для ОС Windows это WinMTR), сочетающая в себе ping и traceroute, т.е. позволяющая опрашивать IP-адрес сервера как ping (icmp echo) и при этом показывать точки маршрута, по которому проходит пакет. По умолчанию в системе не установлена данная утилита, поэтому ниже приведены способы установки на разных ОС.

CentOS: yum install mtr

Fedora: dnf install mtr

Debian/Ubuntu: apt-get install mtr-tiny

MacOSX: sudo port install mtr

Windows: с помощью установщика по ссылке - https://sourceforge.net/projects/winmtr/files/latest/download или http://winmtr.net/download-winmtr/

Диагностику лучше проводить в двух направлениях (комп-->сервер и сервер-->комп), если это возможно. Опрашивать можно как IP-адрес, так и домен. Отправлять нужно не менее 100 запросов (ключ -c) и запускать в режиме отчёта, т.е. чтобы были отправлены запросы и после этого результат вывелся на экран (ключ -r).Также необходимо отключить разрешения имён, чтобы отображались IP-адреса вместо их PTR-записей (ключ -n).Подробнее о ключах mtr можно узнать здесь - https://www.opennet.ru/man.shtml?topic=mtr&category=8 или по команде man mtr.

Использование MTR в Linux:

В конечном итоге пример команды будет выглядеть так:mtr -prnc 100 ya.rusudo /usr/local/sbin/mtr -prnc 100 ya.ru - запуск в MacOSXРазберём вывод данной команды:

  • HOST — имя хоста;
  • Loss % — процент потерянных пакетов;
  • Snt — количество отправленных пакетов;
  • Last — время задержки последнего полученного пакета;
  • Avg — среднее время задержки;
  • Best — минимальное время задержки;
  • Wrst — максимальное время задержки;
  • StDev — среднеквадратичное отклонение времени задержки.

Толкование:

На узлах 4, 7 и 8 закрыт icmp или на них есть фильтрация пакетов по TTL.На 2 узле виден 1% потерь. Подобное может происходить на промежуточных узлах маршрута из-за ограничений на частоту запросов у магистральных провайдеров. Это не является проблемой. Задержка часто относительная и зависит от качества связи между узлами, их физическим расстоянием и опять же от ограничений на частоту icmp-запросов. Есть возможность запуска для проверки TCP-пакетами (ключ -T или --tcp). Смотреть нужно именно на наличие потерь конечного узла. Здесь их нет - 0%.

В Windows запускать утилиту нужно с правами администратора. Разрешение имён отключается в Options (снять галочку Resolve names). Пример вывода:

  • Hostname — IP-адрес или доменное имя узла. Значение "No response from host" может указывать на блокировку ICMP-пакетов на данном узле;
  • Nr — порядковый номер узла в маршруте;
  • Loss % — процент потерянных ответов от данного узла;
  • Sent — отправлено запросов данному узлу;
  • Recv — получено ответов от узла;
  • Best — наименьшее (наилучшее) время задержки в миллисекундах;
  • Avrg — среднее время задержки;
  • Worst — наибольшее (наихудшее) время задержки;
  • Last — время задержки последнего полученного пакета.

Если в результате выполнения опроса на последнем узле есть существенные потери (более 1%), то вы можете обратиться за помощью в техподдержку, предоставив результат в текстовом виде (не в виде скриншота).


How did we do?


Powered by HelpDocs (opens in a new tab)