Що показує команда traceroute? Для чого вона?
Команда traceroute - це базовий інструмент, який використовується для моніторингу стану мережі. traceroute використовується в системах з Linux для відображення маршруту від Вашого сервера через вузли, до місця призначення (домену або ІР), а також виводить затримку. Ця команда часто застосовується, коли потрібно дізнатися про маршрут і про всі стрибки, які виконує пакет. І якщо на одному з вузлів виникне проблема, тоді можна знайти на якому саме. Аналіз результатів також може бути використаний для розуміння затримки, втрати даних або діагностики мережевих проблем.
За допомогою traceroute надається можливість побачити, скільки часу потрібно для того, щоб ваші пакети досягли місця призначення, і тим самим зрозуміти, чому деякі веб-сайти завантажуються довше, ніж інші, виходячи з обсягу трафіку, який проходить в дорозі.
Перед початком роботи потрібно переконатися, що traceroute встановлена на сервері, якщо немає, це можна зробити через менеджер пакетів свого дистрибутива Linux. Використовувати команду дуже легко, в консолі після утиліти вказуємо адресу вузла, якою може служити домен або ж IP. Додатково спільно з командою можна застосовувати ключі, до них ще повернемося.
Після введення на виконання команди, в першому рядку міститься інформація з ім'ям хоста і IP (вказано нами в команді), які будуть досягнуті в результаті, далі йде максимальна кількість стрибків до зазначеного хосту, що буде намагатися виконати traceroute, і розмір пакетів в байтах, які повинні бути передані.
Коротко розберемо сам алгоритм здійснення команди traceroute. traceroute використовує набір протоколів TCP / IP, для виконання робить відправку тестових UDP пакетів з невеликим часом життя, а потім намагається викликати ICMP відповідь "TIME_EXCEEDED" від кожного шлюзу на шляху до вказаного хоста.
Пакет відправляється від свого джерела до місця призначення через маршрутизатор. Кожен рядок містить і виводить на екран подробиці взаємодії з кожним зустрінутим маршрутизатором. Де заголовок містить поле з часом життя (TTL), що представляє собою лічильник відліку переходів. І за цей параметр на скріншоті відповідає перший стовпець, в ньому йде послідовна нумерація стрибків.
При виконанні traceroute йде почергове збільшення TTL на 1, після чого намагається повторно виконати відправку пакетів. Цей процес повторюється до тих пір, поки не буде досягнутий зазначений в команді пункт призначення, чи не буде перевірено максимальна кількість стрибків (за замовчуванням їх 30). Коли пакет досягає свого максимального значення TTL, останній перехід в рядку відправить назад пакет «ICMP TTL Exceeded» до джерела. Ця відповідь - те, що потрібно і має бути в результаті проходження traceroute. Повідомлення «ICMP TTL Exceeded» містить важливу інформацію: час, необхідний для досягнення цього переходу, назва маршрутизатора або його IP, який сформував відповідь.
Другий стовпець представляє адресу вузла для кожного переходу, потім йде зазначений час, який прописується трьома значеннями в мілісекундах. Так як команда traceroute за замовчуванням відправляє три пакети на перехід, відповідно кожне значення показує час, який потрібен цьому пакету для досягнення переходу. В результаті виводиться рядок, що показує TTL, ім'я хоста, далі ip цього хоста та час проходження, який потрібен пакету, щоб дістатися до хоста і повернутися до сервера.
Адреса може супроводжуватися додатковою інформацією за запитом. Якщо відповіді надходять від різних шлюзів, тоді адреса кожної системи, що відповідає, буде виведена на екран окремо. У traceroute також за замовчуванням встановлено час очікування відповідей від маршрутизаторів в п'ять секунд. Якщо за цей час не надається відповідь, спроба припиняється, і для цього пакета буде виводитися в консоль символ * (див.скріншот знизу), це може означати, що маршрутизатор просто не надав відповідь або ж дуже повільний.
Ключі в traceroute несуть різні функції і можуть бути корисні, при налаштуванні і заміні стандартних параметрів виконання команди і характеристик пакетів, для зручного виведення даних.
Розглянемо опції команди, що використовуються найчастіше, і розглянемо на прикладах:
- n - використовується, якщо потрібно отримати вивід тільки IP адресу маршрутизаторів без їхніх імен.
- w - за допомогою цієї опції можна змінити стандартний час очікування відповіді від маршрутизатора, задається в секундах. Наприклад, ми встановили значення в 0.3 секунди.
- q - для вказівки нового значення для кількості пакетів на один перехід, по замовчуванню їх 3, змінимо його на 5.
- m - змінює стандартний час життя (TTL), по замовчуванню йде 30, відкоригуємо на прикладі на 20.
Переглянути всі доступні для команди ключі можна, наприклад, через -help, де на екрані буде представлений список ключів з коротким описом їх призначення.
Команда traceroute є базовою і використовується в рутині при адмініструванні для розуміння проблем в мережі.
Ми команда ГіперХост пропонуємо адміністрування серверів 24/7, що гарантує безперебійну роботу ваших проектів.