Если Traceroute при тесте порта выдает звездочки, указывает ли это на проблему?

«Если Traceroute при тесте порта выдает звездочки, указывает ли это на проблему?» — вопрос из категории Сети, который задают на 23% собеседований Devops Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Звездочки (*) в выводе traceroute означают, что один из промежуточных маршрутизаторов не ответил на пробный пакет в течение таймаута. Сами по себе звездочки не обязательно означают проблему с доступностью конечного сервиса. Это распространенное явление в современных сетях.

Основные причины:

  1. Фильтрация ICMP-пакетов: Большинство корпоративных фаерволов и провайдерских маршрутизаторов намеренно не отвечают на ICMP-пакеты типа "Time Exceeded" (которые использует классический traceroute), чтобы скрыть топологию сети и снизить нагрузку. Это нормальная практика безопасности.
  2. Приоритизация трафика: Маршрутизаторы могут отдавать низкий приоритет служебным ICMP-пакетам, особенно при высокой загрузке.

Как правильно диагностировать доступность порта:

  • Использовать tcptraceroute или traceroute -T: Эти методы отправляют TCP SYN-пакеты (как при реальном соединении) на указанный порт (например, 443 для HTTPS). Фаерволы реже фильтруют такой трафик.
    sudo traceroute -T -p 443 -n example.com
    # Или с использованием tcptraceroute
    sudo tcptraceroute -n -p 80 example.com
  • Проверить доступность порта напрямую: Использовать инструменты, которые устанавливают реальное TCP-соединение.
    # Проверка порта 443 с помощью netcat (nc)
    nc -zv example.com 443
    # Или с помощью curl для HTTP/HTTPS
    curl -I --connect-timeout 5 https://example.com

Вывод: Если traceroute показывает звездочки, но curl или nc успешно соединяются с конечным хостом по нужному порту — проблемы с доступностью нет. Звездочки лишь указывают на то, что часть сетевого пути "невидима" для ICMP-трассировки. Проблемой стоит считать только ситуацию, когда звездочки доходят до последних хопов перед целевым хостом и при этом прямое соединение тоже не удается.