Содержание

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 пакетов на каждый хоп:

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:

Как интерпретировать вывод программы MTR

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

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

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

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

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

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

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

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

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

Как работает утилита MTR по протоколу icmp, UDP или TCP?

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

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

mtr --tcp google.com
mtr --udp google.com