коментарів
Поділитися статтею:

Діагностика мережі за допомогою MTR

17.03.2021 на прочитання 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-адреса/хост віддаленого сервера. Сервіс «Мій IP» допоможе вам дізнатися 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 ми можемо спостерігати хостнейм серверів.

[root@fortest ~]# 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
Maria Kholodnitska
Статей: 221
Оцініть статтю:


Дякую за відгук
Рейтинг: 5 з 5 Голосів: 1