Как работает traceroute?

Как работает traceroute?
gotoADM.ru — инструменты для диагностики сети

При проблемах с сетью (не удается подключиться к серверу или рабочей станции, «тормозит» Интернет и т.п.) на помощь придёт утилита traceroute (в Windows — tracert.exe). С ее помощью можно попытаться определить на каком участке IP-сети произошел сбой:

  • упал хост (удаленный сервер);
  • либо у провайдера проблемы;
  • или на данной машине проблемы с IP-соединением.

С помощью traceroute можно исследовать сети, применяя на практике полученные теоретические знания — о маршрутизации, серверах DNS, бэкбонах, системах подсетей, да мало ли о чем еще 😉

Как работает traceroute?

Для начала нужно вспомнить формат заголовка IP-пакета, точнее одно из его полей — TTL (Time To Live). Это восьмибитное поле задает максимальное число хопов (hop — «прыжок» — прохождение дейтаграммы от одного маршрутизатора к другому) в течение которого пакет может находиться в сети. Каждый маршрутизатор, 
обрабатывающий эту дейтаграмму, выполняет операцию TTL=TTL-1. Когда TTL становится равным нулю, маршрутизатор уничтожает пакет,
отправителю высылается ICMP-сообщение Time
Exceeded
.

Утилита посылает в направлении заданного хоста пакет с TTL=1, и ждет, от кого вернется ответ time exceeded. Отвечающий записывается как первый хоп (результат первого шага на пути к цели). Затем посылаются последовательно пакеты с TTL=2, 3, 4 и т.д. по порядку, пока при некотором значении TTL пакет не достигнет цели и не получит от нее ответ.

*nix traceroute посылает в сторону заданного хоста UDP-пакеты на произвольный порт — скорее всего не занятый другим сервисом (например 28942, 30471) или на зарезервированный, например 0, умолчанию — 33434. Сначала посылается серия из 3-х таких пакетов с TTL=1, по приходу ответов замеряется время прохождения и определяется доменное имя транзитного узла (хотя это зависит от заданных опций). Затем, посылаются очередные серии пакетов с одинаковым TTL, предназначенных для выявления одного и того же хопа. В конце мы получаем от конечного хоста отклик port unreachable (порт недоступен), что означает завершение трассировки.
Стандартный консольный Windows tracert работает точно также, но посылает только ICMP echo request пакеты.

В заключение скажу, не бойся экспериментировать — только так можно по-настоящему «понять» сеть. Ищи информацию и пользуйся ею. Удачи!

gotoADM.ru - материалы для изучения сетевых технологий
gotoADM.ru


Нашли ошибку в тексте? Выделите фрагмент текста и нажмите Ctrl+Enter

Удаленная настройка для серверов и сайтов 24/7

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *