Ответ
Для трассировки маршрута используются утилиты traceroute (Linux/macOS) и tracert (Windows). Они отправляют пакеты с последовательно увеличивающимся TTL (Time to Live), чтобы заставить каждый промежуточный маршрутизатор отправить обратно сообщение об ошибке (ICMP Time Exceeded).
Основные команды:
# Linux/macOS
$ traceroute -I example.com # Использует ICMP Echo (как ping)
$ traceroute -T example.com # Использует TCP SYN (порт 80)
# Windows
> tracert example.com
Более продвинутые инструменты для DevOps:
mtr(My TraceRoute): Комбинируетtracerouteиping, показывает статистику потерь и задержек в реальном времени.$ mtr --report example.com # Однократный отчет $ mtr example.com # Интерактивный режимtcptraceroute: Использует TCP-пакеты, что помогает обходить фильтры на ICMP/UDP.$ tcptraceroute example.com 443
Ключевые моменты для диагностики:
- Звездочки (
*) в выводе означают, что узел не ответил (часто из-за firewall, отключенных ICMP-ответов или нагрузки). - Резкий скачок задержки на определенном hop может указывать на проблемный узел или перегруженный канал.
- В облачных средах (AWS, GCP) внутренняя маршрутизация может отличаться от публичной.