stringtranslate.com

трассировка

В вычислительной технике и являются диагностическими командами интерфейса командной строки для отображения возможных маршрутов (путей) и задержек прохождения пакетов через сетьtraceroute Интернет - протокола (IP) . tracert

Команда сообщает время кругового пути пакетов, полученных от каждого последующего хоста (удалённого узла) по маршруту к месту назначения. Сумма средних времен в каждом прыжке является мерой общего времени, затраченного на установление соединения. Команда прерывается, если все (обычно три) отправленных пакета теряются более двух раз.

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

Для интернет-протокола версии 6 (IPv6) инструмент иногда имеет название [1] и . [2]traceroute6tracert6

Реализации

Команда доступна во многих современных операционных системах , обычно имеет имя tracerouteв Unix-подобных системах, таких как FreeBSD , macOS и Linux , и имя tracertв Windows и ReactOS .

Функциональность была доступна графически в macOS, но была объявлена ​​устаревшей с момента выпуска macOS Big Sur . [3]

Операционные системы на базе Windows NT также предоставляют PathPing , который объединяет функциональность ping и tracert.

Версия ReactOS была разработана Гедом Мерфи и распространяется по лицензии GPL . [4]

В операционных системах типа Unix traceroute по умолчанию отправляет последовательность пакетов протокола пользовательских датаграмм (UDP) с номерами портов назначения в диапазоне от 33434 до 33534; реализации traceroute, поставляемые с Linux , [5] FreeBSD , [6] NetBSD , [7] OpenBSD , [8] DragonFly BSD , [9] и macOS, включают возможность использования пакетов эхо-запросов ICMP ( -I ) или любого произвольного протокола ( -P ), такого как UDP, TCP с использованием пакетов TCP SYN или ICMP. [10]

В Windows tracert отправляет пакеты ICMP Echo Request, а не пакеты UDP, которые traceroute отправляет по умолчанию. [11]

Значение времени жизни (TTL), также известное как предел прыжка , используется для определения промежуточных маршрутизаторов, проходящих по направлению к месту назначения. Traceroute отправляет пакеты со значениями TTL, которые постепенно увеличиваются от пакета к пакету, начиная со значения TTL, равного единице. Маршрутизаторы уменьшают значения TTL пакетов на единицу при маршрутизации и отбрасывают пакеты, значение TTL которых достигло нуля, возвращая сообщение об ошибке ICMP ICMP Time Exceeded . [10] Для первого набора пакетов первый маршрутизатор получает пакет, уменьшает значение TTL и отбрасывает пакет, поскольку тогда его значение TTL равно нулю. Маршрутизатор отправляет сообщение ICMP Time Exceeded обратно источнику. Следующему набору пакетов присваивается значение TTL, равное двум, поэтому первый маршрутизатор пересылает пакеты, но второй маршрутизатор отбрасывает их и отвечает сообщением ICMP Time Exceeded. Действуя таким образом, traceroute использует возвращаемые сообщения ICMP Time Exceeded для создания списка маршрутизаторов, которые проходят пакеты, пока не будет достигнут пункт назначения, и возвращает сообщение ICMP Destination Unreachable, если используются пакеты UDP, или сообщение ICMP Echo Reply, если используются сообщения ICMP Echo. [10]

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

Отправитель ожидает ответ в течение заданного количества секунд. Если пакет не подтвержден в течение ожидаемого интервала, отображается звездочка.

Интернет-протокол не требует, чтобы пакеты следовали по одному и тому же маршруту к определенному месту назначения, поэтому перечисленные хосты могут быть хостами, которые прошли другие пакеты. Если хост на хопе #N не отвечает, хоп пропускается в выходных данных.

Если в сети есть брандмауэр и работают как Windows, так и Unix-подобные системы, для работы traceroute и получения ответов необходимо включить более одного входящего протокола через брандмауэр.

Некоторые реализации traceroute используют пакеты TCP, такие как tcptraceroute и traceroute четвертого уровня (lft). PathPing — это утилита, представленная в Windows NT , которая объединяет функциональность ping и traceroute. MTR — это расширенная версия ICMP traceroute, доступная для Unix-подобных и Windows-систем. Различные реализации traceroute все полагаются на пакеты ICMP Time Exceeded (type 11), отправляемые источнику.

В Linux tracepath — это утилита, похожая на traceroute, с основным отличием в том, что она не требует привилегий суперпользователя . [12]

Реализация traceroute от Cisco также использует последовательность датаграмм UDP , каждая с увеличивающимися значениями TTL , для недопустимого номера порта на удаленном хосте; по умолчанию используется порт UDP 33434. Расширенная версия этой команды (известная как расширенная команда traceroute) может изменить номер порта назначения, используемый сообщениями зонда UDP. [13]

Использование

Адреса маршрутизаторов могут быть наложены на карты их физического расположения. В этом примере показан запрос из Новой Зеландии на IP-адрес в Массачусетсе , который проходит по маршруту, проходящему через Европу .

Большинство реализаций включают опции для указания количества запросов для отправки на один переход, времени ожидания ответа, лимита переходов и порта для использования. Вызов traceroute без опций отображает список доступных опций

Для Linux man traceroute предоставляет более подробную информацию, включая отображаемые флаги ошибок.

Например:

$ traceroute  -w 3 -q 1 -m 16 example.com traceroute до example.com (93.184.216.34), 16 переходов максимум, пакеты по 52 байта 1 192.xxx (192.xxx) 5,152 мс 2 10.xxx (10.xxx) 12,767 мс 3 172.xxx (172.xxx) 11,638 мс 4 172.xxx (172.xxx) 13,193 мс 5 xxx.xxxcox.net (68.xxx) 20,624 мс 6 xxx.xxx.xxx.edgecastcdn.net (192.xxx) 56,205 мс 7 xxx.xxx.xxx.edgecastcdn.net (192.xxx) 24,573 мс 8 * 9 * 10 93.xxx (93.xxx) 22,810 мс 11 93.xxx (93.xxx) 20,235 мс      

В приведенном выше примере выбраны следующие параметры: ждать три секунды (вместо пяти), отправлять только один запрос на каждый переход (вместо трех), ограничивать максимальное количество переходов до 16 перед отказом (вместо 30), с example.com в качестве конечного хоста. В строках 8 и 9 (TTL 8 и 9) показаны звездочки, когда маршрутизатор не ответил в течение тайм-аута.

Ценить

Traceroute может помочь выявить неверные определения таблиц маршрутизации или брандмауэры, которые могут блокировать трафик ICMP или высокий порт UDP в ping-запросе Unix на сайт. [ уточнить ] Правильный ответ traceroute не гарантирует подключение для приложений, поскольку брандмауэр может разрешать пакеты ICMP, но не разрешать пакеты других протоколов.

Traceroute используется тестировщиками на проникновение для сбора информации о сетевой инфраструктуре и диапазонах IP-адресов вокруг заданного хоста.

Traceroute можно использовать для оптимизации загрузки данных. Если для одного и того же ресурса доступно несколько зеркал, можно отследить каждое зеркало, чтобы найти самое быстрое.

Происхождение

На странице руководства traceroute указано, что оригинальная программа traceroute была написана Ван Якобсоном в 1987 году по предложению Стива Диринга , и что Гай Элмес и Мэтт Матис также придумали эту идею одновременно с Дирингом. [14] Автор программы ping Майк Муусс утверждает на своем веб-сайте, что traceroute была написана с использованием поддержки ядра ICMP, которую он ранее закодировал для включения сырых сокетов ICMP, когда впервые написал программу ping. [15]

Ограничения

Traceroute имеет несколько ограничений. [16] Traceroute обнаруживает пути не на уровне маршрутизатора, а на уровне интерфейса. Другое ограничение появляется, когда маршрутизаторы не отвечают на зонды или когда маршрутизаторы имеют ограничение на количество ответов ICMP. [17] При наличии балансировки нагрузки трафика traceroute может указывать на путь, который на самом деле не существует; чтобы минимизировать эту проблему, существует модификация traceroute, называемая Paris-traceroute, [18] которая сохраняет идентификатор потока зондов, чтобы избежать балансировки нагрузки.

Смотрите также

Ссылки

  1. ^ "Traceroute6(8) - страница руководства Linux".
  2. ^ "Tracert6(8): Инструмент трассировки маршрута IPv6 - страница руководства Linux".
  3. ^ Россингол, Джо (23 июня 2020 г.). «Сетевая утилита устарела в macOS Big Sur». MacRumors .
  4. ^ tracert.cpp на GitHub
  5. ^ traceroute(8)  –  Руководство программиста Linux – Администрирование и привилегированные команды
  6. ^ traceroute(8)  –  Руководство системного администратора FreeBSD
  7. ^ traceroute(8)  –  Руководство администратора системы NetBSD
  8. ^ traceroute(8)  –  Руководство системного администратора OpenBSD
  9. ^ traceroute(8)  –  Руководство по обслуживанию и эксплуатации системы DragonFly BSD
  10. ^ abc Comer, Douglas (2004). Компьютерные сети и Интернеты с Интернет-приложениями . Pearson Education, Inc. стр. 360–362. ISBN 978-0131433519.
  11. ^ "Tracert". Microsoft Docs . 3 февраля 2023 г. Получено 29 июля 2023 г.
  12. ^ "tracepath(8) – страница руководства Linux". linux.die.net . Получено 21.06.2015 .
  13. ^ "Понимание команд Ping и Traceroute". Cisco IOS Software Releases 12.1 Mainline . cisco.com. 2006-11-29 . Получено 2013-12-08 .
  14. ^ "исходный код traceroute6.c". 2022-10-04 . Получено 2023-09-17 .
  15. ^ «История программы PING».
  16. Рэй Белвилл (3 марта 2017 г.). «Ограничения Traceroute объяснены».
  17. ^ Marchetta, P.; Montieri, A.; Persico, V.; Pescapé, A.; Cunha, Í; Katz-Bassett, E. (июнь 2016 г.). Как и насколько traceroute запутывает наше понимание сетевых путей . Международный симпозиум IEEE 2016 года по локальным и городским сетям (LANMAN). стр. 1–7. doi :10.1109/lanman.2016.7548847. ISBN 978-1-4673-9882-4. S2CID  4643833.
  18. ^ "Paris Traceroute". paris-traceroute.net . Получено 2017-06-10 .

Дальнейшее чтение

Внешние ссылки