MTR Linux - диагностика сети посредством трассировок

MTR – это динамическая альтернатива программе traceroute. Объединяя функции ping и traceroute, mtr позволяет постоянно опрашивать удаленный сервер и отслеживать изменения задержки и производительности с течением времени.

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

$ sudo apt install mtr
$ sudo yum install mtr
$ sudo dnf install mtr

Сначала вывод может показаться похожим на traceroute; но mtr имеет существенное преимущество – ее вывод постоянно обновляется. Это позволяет собирать средние показатели, а также отслеживать тенденции и изменения производительности сети.

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

Кроме того, mtr можно запустить с опцией –report, которая вернет результаты отправки 10 пакетов на каждый хоп:

  • Вывести статистику по IP и прекратить работу
mtr -n --report dieg.info
Start: 2022-04-25T20:17:15+0300
HOST: darkxbu                     Loss%   Snt   Last   Avg  Best  Wrst StDev
  1.|-- 10.8.0.1                   0.0%    10   38.9  38.8  37.7  39.6   0.7
  2.|-- 100.88.118.129             0.0%    10   39.5  39.5  37.9  40.3   0.6
  3.|-- 213.239.229.57            70.0%    10   41.0  43.0  41.0  45.0   2.0
  4.|-- 213.239.252.37             0.0%    10   42.9  45.0  42.7  53.6   3.3
  5.|-- 213.239.245.13             0.0%    10   48.6  49.4  47.9  50.1   0.7
  6.|-- 213.133.126.254            0.0%    10   50.8  51.4  50.8  52.4   0.4
  7.|-- 185.8.179.40               0.0%    10   52.9  54.7  51.6  67.4   4.7
  8.|-- 185.8.179.19               0.0%    10   52.8  58.0  50.6 103.6  16.2
  9.|-- 185.253.219.218            0.0%    10   52.7  52.3  51.2  54.2   0.9

Еще примеры:

mtr -s 1500 -r -c 100 -i 0.1 1.1.1.1

Traceroute и mtr помогают вычислить, какой из серверов на пути к определенному домену/адресу вызывают проблемы. Это очень полезно при диагностике и устранении неполадок внутренней сети, а также при необходимости предоставить информацию провайдеру или специалистам поддержки для решения проблем сети.

Основные опции запуска mtr:

  • -h Вывод справочной информаци
  • -v Версия программы
  • -r Помещает mtr в режим отчета. В этом режиме, mtr обработает количество циклов, определенных опцией -c, затем отобразит статистику и завершит работу. Этот режим полезен для генерации статистики о качестве сети.
  • -с COUNT Установить количество циклов, после которых mtr завершит работу.
  • -s BYTES Размер посылаемых пакетов.
  • -t Вынуждает mtr использовать curses based terminal interface если доступно.
  • -n Не использовать DNS. Отображать IP-адреса.
  • -o fields order Используйте эту опцию, чтобы определить отображаемые поля, например -o "LSD NBAW"
  • -i, –interval SECONDS Интервал эхо-запроса ICMP

Вывод MTR включает следующие данные:

  • Номер хоста: Порядковый номер каждого промежуточного узла (маршрутизатора) на пути к целевому серверу.
  • Имя хоста (IP адрес): DNS-имя хоста или его IP-адрес. Если имя не определено, отображается только IP. Значение «No response from host» говорит о блокировке ICMP-пакетов в узле.
  • Потеря пакетов (%) (Loss): Процент потерянных пакетов на данном этапе. Если есть потери, это может указывать на проблемы в сети. Небольшие потери (1-5%): Это может быть нормально для некоторых сетей, особенно в интернете. Небольшие потери могут возникать из-за временных проблем с сетью или перегрузки узлов. Высокие потери (более 25%): Это обычно указывает на серьезные проблемы, такие как неисправное оборудование, плохое соединение или серьезные проблемы с сетевой инфраструктурой.
  • Отправлено (Snt): Количество отправленных пакетов.
  • Задержка Last: это поле указывает на время задержки последнего отправленного пакета, в миллисекундах.
  • Лучшее время (Best): Самое быстрое время, за которое пакет достиг хоста и вернулся обратно.
  • Среднее время (Avrg): Среднее время ответа хоста.
  • Худшее время (Worst): Наибольшее время ответа.
  • Стандартное отклонение (StDev): среднеквадратичное отклонение времени задержки, в миллисекундах. Показывает вариативность времени ответа. Большое значение указывает на неравномерность скорости передачи данных.

Интерпретация вывода MTR включает следующие аспекты:

После выполнения проверки, всегда нужно обращать вниманием на значение потерь в поле Loss на первых и последних узлах. На некоторых узлах потери могут становить 100%, но если при этом пакеты проходят далее, это значит что узел работает, но у него закрыты ответы на ICMP пакеты.

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

Если потери на последних 1-2 узлах, проблема может быть на Вашем сервере (запущено какое-то ПО, которое заполняет весь канал, ддос-атака на Ваш сайт/сервер и т.д.). Если у Вас виртуальный сервер (VPS), тогда, возможно, проблема на всем физ. сервере, в подобных случаях лучше сразу обращаться в тех. поддержку для проверки.

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

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

Важные замечания:

  1. Разброс времени ответа (StDev): Если стандартное отклонение велико, это может указывать на нестабильность сети.
  2. Постоянно меняющиеся маршруты: Если маршруты часто меняются, это может указывать на нестабильность в сетевой инфраструктуре.
  3. Не всегда проблема с узлом: Высокие потери на узле не всегда означают проблему с этим узлом. Некоторые маршрутизаторы настроены на низкий приоритет или даже игнорирование ICMP пакетов, которые использует MTR, для снижения нагрузки.

С помощью MTR можно отследить потерю пакетов на определённых участках сети. Утилита MTR выводит на экран IP-адреса маршрутизаторов, шлюзов и прочих сетевых переходов, затем посылает каждому из них ping и отображает от них отклики. Данная статистика изменяется динамически в режиме реального времени.

Чтобы задействовать TCP SYN-пакеты или UDP-датаграммы вместо стандартных ICMP-запросов используйте ключи –tcp, –udp:

mtr --tcp google.com
mtr --udp google.com
PQ VPS сервера в 28+ странах.