Ответ
В Linux аналогом tracert является traceroute. Эта утилита определяет маршрут следования IP-пакетов до целевого хоста.
Принцип работы:
- TTL (Time To Live):
tracerouteотправляет серию пакетов (по умолчанию UDP на «неиспользуемый» высокий порт), последовательно увеличивая значение TTL в их заголовках, начиная с 1. - ICMP Time Exceeded: Каждый маршрутизатор на пути уменьшает TTL пакета на 1. Когда TTL достигает 0, маршрутизатор отбрасывает пакет и отправляет обратно отправителю ICMP-сообщение «Time Exceeded». По IP-адресу источника этого сообщения определяется адрес промежуточного узла.
- Достижение цели: Процесс повторяется с увеличением TTL, пока пакет не достигнет целевого хоста. Целевой хост, получив пакет на закрытый порт, должен ответить ICMP-сообщением «Port Unreachable», что сигнализирует об окончании трассировки.
Пример использования:
traceroute -n 8.8.8.8
Ключевые опции:
-I– использовать ICMP Echo-запросы (ping) вместо UDP.-T– использовать TCP SYN-пакеты (полезно для обхода фильтров).-n– не выполнять reverse DNS-запросы, показывать только IP-адреса (быстрее).
Примечание для DevOps: Трассировка может не работать или показывать звёздочки (*) из-за политик безопасности (брандмауэры, отключённые ICMP-ответы на маршрутизаторах). Для диагностики сетевых проблем в облачных средах (AWS VPC, GCP VPC) также используются Flow Logs и инструменты вроде VPC Reachability Analyzer.