Трассировка: что это такое, для чего нужна и как правильно пользоваться?

Всем привет! Как вы уже поняли, сегодня я постараюсь подробно, но максимально кратко рассказать, что такое трассировка маршрутов в локальной и глобальной сетях. Я также расскажу вам, в чем разница между измерением трассировки в Windows и Linux. Некоторые думают, что вводя примерно одинаковые команды, инженер получит ту же информацию, но на самом деле это не совсем так; подробнее об этом ниже. Если у вас есть вопросы и дополнения, пишите в комментариях.

Определение

Трассировка — это, по сути, тест, в котором пользователь может видеть, какой маршрут проходит пакет данных к конечному серверу. То есть через какие узлы проходит и с какой задержкой. Например, стандартной командой «Ping» вы получите информацию о времени ответа или времени отправки и получения пакета. А проследив, вы увидите, через какие IP-узлы проходит этот самый пакет на сервер назначения.

Эта утилита часто используется системными инженерами или администраторами для выявления слабых мест в сети. В общем, гаджет пригодится практически всем. Далее я расскажу, как отследить выделенный игровой сервер или сайт, а также как им вообще пользоваться.

Windows

В «Windows» эту функцию выполняет системный модуль или утилита «Tracert». Как вы понимаете, он находится в папке «System32», как и другие подобные прошивки. Для начала обычно нужно использовать командную строку. Утилита тихо работает как с доменными именами, так и с IP-адресами, включая IPv4 и IPv6. Еще одним преимуществом является то, что он не требует установки и поставляется со стандартным пакетом Windows во всех версиях: XP, 7, 8, 8.2 и 10.

Теперь попробуем его использовать. Для этого нужно запустить командную строку. В Windows 7 перейдите в «Пуск» — «Все программы» — откройте папку «Стандартные», а затем щелкните правой кнопкой мыши командную строку и откройте ее с правами администратора.

ПРИМЕЧАНИЕ! Также его можно открыть через +R и команду «CMD».

Трассировка: что это такое, для чего она нужна и как ею правильно пользоваться?

В Windows 10 просто щелкните правой кнопкой мыши «Пуск» и выберите консоль с правами администратора.

Трассировка: что это такое, для чего она нужна и как ею правильно пользоваться?

Причем делается все достаточно просто: сначала пишем команду «tracert», а потом через пробел пишем IP-адрес сервера. В качестве примера я использовал известный DNS-сервер:

трассировка 8.8.8.8

Трассировка: что это такое, для чего она нужна и как ею правильно пользоваться?

Еще одним преимуществом является то, что вы можете использовать не только IP, но и доменное имя, состоящее из букв. Возьмем в качестве примера тест с Яндексом:

трассировка yandex.ru

Трассировка: что это такое, для чего она нужна и как ею правильно пользоваться?

Здесь мы видим многоступенчатый вид. Каждый шаг представляет собой прохождение пакета от одного узла к другому. Вы также можете увидеть время прохождения, которое записывается в миллисекундах. Затем вы увидите имя узла и IP-адрес, которые указаны в скобках. Если хост не отвечает или истекает время ожидания, вы увидите звездочку (*) в столбце времени (*).

А теперь позвольте мне рассказать вам о проблеме этого теста. Проблема в том, что команда не показывает некоторые узлы, а именно коммутаторы, работающие со вторым уровнем модели OSI. А все из-за того, что у них нет интерфейса, представляющего подключенные устройства в виде IP. То есть коммутация производится на втором уровне, где нет IP-адресов, а связь осуществляется с помощью таблицы MAC-адресов. И понятно, что такие узлы в таблице не показаны.

Более подробно так же советую почитать про модель OSI и про коммутаторы.

В результате для этой команды все коммутаторы, работающие со вторым уровнем модели OSI, просто невидимы. «Tracert» использует протокол ICMP (Internet Control Message Protocol), который передает данные только в IP-пакете со значением TTL. TTL — это время жизни пакета.

Изначально, когда пакет отправляется на первый узел, значение TTL равно единице. А при трассировке одновременно отправляется три пакета, поэтому мы видим три столбца времени. Если все пакеты возвращаются, мы видим время во всех трех столбцах. Затем TTL увеличивается на один, и следующему узлу отправляются еще три пакета. И так до конца, пока последний запрос не дойдет до конечной ноды.

ПРИМЕЧАНИЕ! Если вы видите звездочку, но пакет все еще проходит через этот узел, скорее всего, на этом маршрутизаторе или сервере есть конфигурация, которая не обрабатывает ICMP-запросы. Очень часто они используются для DDoS-атак, поэтому их обработка иногда отключается.

Как и у любой утилиты, здесь есть список дополнительных параметров, которые могут немного изменить тест. Для звонка нужно ввести:

трассировка /?

Трассировка: что это такое, для чего она нужна и как ею правильно пользоваться?

Команда очень полезна не только для работы и тестирования работающих сетей, но и для выявления проблем с интернетом. Помню, у моего друга всегда был высокий отклик на «Counter-Strike», но я до сих пор не мог понять, почему; ведь у него в соседнем доме пинг был на порядок меньше. При трассировке увидел, что у первого узла (провайдера) сильная блокировка пакетов. В итоге обратился к оператору и они поменяли стоявший там старый выключатель, который был плох еще со времен Российской Империи.

Linux

Итак, в Windows мы уже поняли, что трассировку делает утилита «tracert.exe». В Linux утилита имеет другое название: «traceroute», и она тоже выполняет эту функцию, но немного по-другому.

Давайте немного вспомним, как работает tracert на примере изображения ниже:

  • Хост отправляет запрос узлу «Router1» с TTL = 1.
  • Запрос доходит до «Router1», а этот, видя, что TTL всего один, уменьшает его и отправляет ответ.
  • Ответ приходит от первого хоста, и хост записывает его в таблицу трассировки.
  • Затем идет запрос ко второму узлу с увеличенным на единицу TTL.
  • Это продолжается до тех пор, пока запрос не достигнет целевого сервера. Все это делается на основе протокола ICMP.
  • Трассировка: что это такое, для чего она нужна и как ею правильно пользоваться?

    Проблема в том, что у «tracert» нет возможности сделать запрос с портом, что делает его немного ограниченным. «Трассировка» работает на базе совсем другого протокола — UDP. Фактически протокол UDP делает запрос на порты. А окончание трассировки при достижении пакетом конечного узла происходит, когда на каждом шаге при увеличении номера порта он закрывается на целевом сервере.

    Запускаем программу точно так же через консоль. У него тоже есть свои настройки.

    Трассировка: что это такое, для чего она нужна и как ею правильно пользоваться?

    Кстати, есть возможность использовать при трассировке протокол ICMP вместо UDP, для этого нужно добавить параметр «-I».

    Трассировка: что это такое, для чего она нужна и как ею правильно пользоваться?

    Но что, если вам нужно отслеживать UDP и использовать порты в Windows? Для этого вам нужно будет использовать стороннюю прошивку: «tcptrace». Вы можете использовать «tcptracoute» для трассировки маршрута по TCP (и UDP».

    WIFIELEK.RU