0 коментариев
Поделиться статьей:

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

Mariia Kholodnitska 30.01.2021 0 481 на прочтение 4 минут

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

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

Как установить MTR? 

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

Чтобы выполнить установку MTR используйте  одну из представленных  ниже команд для вашей системы используя менеджер пакетов:

Ubuntu/Debian:

sudo apt-get install mtr

 CentOS/Fedora:

   yum install mtr

    Arch:

 pacman -S mtr

   BSD:

pkg install mtr

  macOS:

Через диспетчер пакетов,  тот же Homebrew или MacPorts. Например:

brew install mtr

  Windows:

Выполняется через  программу WinMTR, установочный архив можно скачать  с сайта.

Синтаксис команды и ключи

MTR имеет следующий синтаксис: сначала mrt, далее список опций, и после задается домен/IP-адрес/хост удаленного сервера.

mrt [ключи]  домен/IP адрес/хост

Основные ключи:

 -h - вызов справки.

-r/--report - запуск утилиты в режиме отчета в консоли, количество отправок пакетов задается ключом -c/--report-cycles.

-c/--report-cycles - количество полных попыток отправки запросов от исходящего сервера к принимающему.

-u/--tcp - использовать тип пакетов tcp вместо “ICMP ECHO”.

-t/--udp - использовать тип пакетов udp вместо  “ICMP ECHO”.

--no-dns - не указывать хостнейм записи хостов, только ІР.

Вывод команды и анализ результатов

Рассмотрим результат работы программы. В примере мы запустили 5 циклов отправки пакетов, и ввиду отсутствия ключа --no-dns мы можем наблюдать хостнейм серверов.

[[email protected] ~]# mtr -r google.com.ua -c 5
Start: Sat Jan 30 14:27:06 2021
HOST: fortest.hyperhost.name      Loss%   Snt   Last   Avg   Best  Wrst StDev
 1.|-- gw.ipv4.layer6.net                     0.0%     5     0.4       0.8   0.4    1.7    0.0
 2.|-- speed-ix.google.com                0.0%     5     2.7        2.8   2.6    3.0   0.0
 3.|-- 108.170.241.193                          0.0%     5     2.7        2.7    2.7    2.8    0.0
 4.|-- 108.170.227.3                              0.0%     5     3.5        3.7   3.3    4.6   0.0
 5.|-- ams16s32-in-f3.1e100.net      0.0%     5     2.7        2.7    2.6    2.7   0.0

Где на выводе поле HOST указывает на имя хоста;

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

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

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

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


Close Screen
Mariia Kholodnitska
Статей: 116
Оцените статью:


Спасибо за отзыв
Рейтинг: 5 из 5 Голосов: 2