трассировка маршрута
Оригинальный автор(ы) | От Джейкобсона |
---|---|
Первоначальный выпуск | 1987 год |
Платформа | Unix-подобные системы |
Тип | Команда |
Разработчик(и) | Microsoft , участники ReactOS |
---|---|
Платформа | Windows , РеактОС |
Тип | Команда |
Лицензия | Microsoft Windows: проприетарное коммерческое программное обеспечение. ReactOS: Стандартная общественная лицензия GNU |
В вычислениях , traceroute
и tracert
— это диагностические интерфейса командной строки команды для отображения возможных маршрутов (путей) и задержек передачи пакетов по Интернет-протокола (IP) сети .
Команда сообщает время прохождения пакетов туда и обратно, полученных от каждого последующего хоста (удаленного узла) на пути к месту назначения. Сумма среднего времени в каждом прыжке является мерой общего времени, затраченного на установление соединения. Команда прерывается, если все отправленные пакеты (обычно три) теряются более двух раз.
Ping , с другой стороны, вычисляет только окончательное время прохождения туда и обратно от точки назначения.
Для Интернет-протокола версии 6 (IPv6) инструмент иногда имеет название traceroute6
[1] и tracert6
. [2]
Реализации
[ редактировать ]Команда доступна во многих современных операционных системах и обычно называется traceroute
в Unix-подобных системах, таких как FreeBSD , macOS и Linux , и называется tracert
в Windows и ReactOS .
Эта функциональность была доступна в графическом виде в macOS, но устарела с момента выпуска macOS Big Sur . [3]
Windows NT Операционные системы на базе также предоставляют PathPing , который сочетает в себе функциональность ping и Tracert.
Версия ReactOS была разработана Гедом Мерфи и распространяется под лицензией GPL . [4]
В Unix-подобных операционных системах трассировка по умолчанию отправляет последовательность пакетов протокола пользовательских дейтаграмм (UDP) с номерами портов назначения в диапазоне от 33434 до 33534; реализации трассировки, поставляемые с Linux , [5] FreeBSD , [6] НетБСД , [7] OpenBSD , [8] Драгонфлай БСД , [9] и macOS включают возможность использовать эхо-запроса ICMP пакеты ( -I ) или любой произвольный протокол ( -P ), например UDP, TCP с использованием пакетов TCP SYN или ICMP. [10]
В Windows трассировка отправляет пакеты эхо-запроса ICMP, а не UDP-пакеты, которые трассировка отправляет по умолчанию. [11]
Значение времени жизни (TTL), также известное как предел прыжков , используется при определении промежуточных маршрутизаторов, через которые проходит путь к пункту назначения. Traceroute отправляет пакеты со значениями TTL, которые постепенно увеличиваются от пакета к пакету, начиная со значения TTL, равного единице. Маршрутизаторы уменьшают значения TTL пакетов на единицу при маршрутизации и отбрасывают пакеты, значение TTL которых достигло нуля, возвращая сообщение об ошибке ICMP ICMP Time Exceeded . [10] Для первого набора пакетов первый маршрутизатор получает пакет, уменьшает значение TTL и отбрасывает пакет, поскольку тогда его значение TTL равно нулю. Маршрутизатор отправляет сообщение ICMP Time Exceeded обратно источнику. Следующему набору пакетов присваивается значение TTL, равное двум, поэтому первый маршрутизатор пересылает пакеты, но второй маршрутизатор отбрасывает их и отвечает сообщением ICMP Time Exceeded. Действуя таким образом, трассировка использует возвращенные сообщения ICMP Time Exceeded для создания списка маршрутизаторов, через которые проходят пакеты, пока не будет достигнут пункт назначения, и возвращает сообщение ICMP Destination Unreachable, если используются UDP-пакеты, или сообщение ICMP Echo Reply, если ICMP Echo. сообщения используются. [10]
Значения временных меток, возвращаемые для каждого маршрутизатора на пути, представляют собой значения задержки ( латентности ), обычно измеряемые в миллисекундах для каждого пакета.
Отправитель ожидает ответа в течение заданного количества секунд. Если пакет не подтвержден в течение ожидаемого интервала, отображается звездочка.
Интернет-протокол не требует, чтобы пакеты следовали по одному и тому же маршруту к определенному пункту назначения, поэтому перечисленные хосты могут быть хостами, через которые прошли другие пакеты. Если хост на прыжке #N не отвечает, переход пропускается в выходных данных.
Если в сети есть брандмауэр и работают как Windows, так и Unix-подобные системы, необходимо включить более одного протокола, входящего через брандмауэр, чтобы трассировка работала и получала ответы.
Некоторые реализации трассировки используют TCP-пакеты, такие как tcptraceroute и трассировка четвертого уровня (lft). PathPing — это утилита, представленная в Windows NT , которая сочетает в себе функции проверки связи и трассировки. MTR — это расширенная версия трассировки ICMP, доступная для Unix-подобных и Windows-систем. Все различные реализации трассировки полагаются на отправку пакетов ICMP Time Exceeded (тип 11) источнику.
В Linux трассировка — это утилита, похожая на трассировку, с основным отличием от того, что не требуются права суперпользователя . [12]
Реализация трассировки Cisco также использует последовательность дейтаграмм UDP , каждая с возрастающим значением TTL , к недопустимому номеру порта на удаленном хосте; по умолчанию используется UDP-порт 33434. Расширенная версия этой команды (известная как расширенная команда трассировки ) может изменить номер порта назначения, используемый сообщениями проверки UDP. [13]
Использование
[ редактировать ]Большинство реализаций включают параметры для указания количества запросов, отправляемых на каждый переход, времени ожидания ответа, ограничения количества переходов и используемого порта. Вызов трассировки без параметров отображает список доступных параметров.
Для Linux man трассировка предоставляет более подробную информацию, включая отображаемые флаги ошибок.
Например:
$ traceroute -w 3 -q 1 -m 16 example.com
traceroute to example.com (93.184.216.34), 16 hops max, 52 byte packets
1 192.x.x.x (192.x.x.x) 5.152 ms
2 10.x.x.x (10.x.x.x) 12.767 ms
3 172.x.x.x (172.x.x.x) 11.638 ms
4 172.x.x.x (172.x.x.x) 13.193 ms
5 xxx.x.x.x.cox.net (68.x.x.x) 20.624 ms
6 xxx.xxx.xxx.edgecastcdn.net (192.x.x.x) 56.205 ms
7 xxx.xxx.xxx.edgecastcdn.net (192.x.x.x) 24.573 ms
8 *
9 *
10 93.x.x.x (93.x.x.x) 22.810 ms
11 93.x.x.x (93.x.x.x) 20.235 ms
В приведенном выше примере выбранные параметры: ждать три секунды (вместо пяти), отправлять только один запрос на каждый переход (вместо трех), ограничивать максимальное количество переходов до 16 перед отказом (вместо 30), с example.com в качестве конечного хоста. В строках 8 и 9 (TTL 8 и 9) отображаются звездочки, если маршрутизатор не ответил в течение таймаута.
Ценить
[ редактировать ]Traceroute может помочь выявить неправильные определения таблицы маршрутизации или брандмауэры, которые могут блокировать трафик ICMP или UDP с высоким портом при проверке связи Unix на сайте. [ объяснить ] Правильный ответ трассировки не гарантирует подключения приложений, поскольку межсетевой экран может разрешать пакеты ICMP, но не разрешать пакеты других протоколов.
Traceroute используется тестировщиками на проникновение для сбора информации о сетевой инфраструктуре и диапазонах IP-адресов вокруг данного хоста.
Traceroute можно использовать для оптимизации загрузки данных. Если для одного и того же ресурса доступно несколько зеркал, каждое зеркало можно отследить, чтобы найти самое быстрое.
Происхождение
[ редактировать ]по трассировке На странице руководства указано, что исходная программа трассировки была написана Ван Джейкобсоном в 1987 году по предложению Стива Диринга , и что Гай Алмс и Мэтт Матис также придерживались этой идеи одновременно с Дирингом. [14] Автор ping программы Майк Муусс заявляет на своем веб-сайте, что трассировка была написана с использованием поддержки ICMP ядра, которую он ранее запрограммировал для включения необработанных сокетов ICMP, когда впервые писал программу ping. [15]
Ограничения
[ редактировать ]Traceroute имеет множество ограничений. [16] Traceroute обнаруживает пути не на уровне маршрутизатора, а на уровне интерфейса. Другое ограничение появляется, когда маршрутизаторы не отвечают на запросы или когда маршрутизаторы имеют ограничение на ответы ICMP. [17] При наличии балансировки нагрузки трафика трассировка может указывать путь, которого на самом деле не существует; Чтобы минимизировать эту проблему, существует модификация трассировки под названием Paris-traceroute, [18] который сохраняет идентификатор потока зондов, чтобы избежать балансировки нагрузки.
См. также
[ редактировать ]- Сервер Зеркального стекла
- netsniff-ng — набор сетевых инструментов Linux с утилитой трассировки автономной системы.
Ссылки
[ редактировать ]- ^ «Traceroute6(8) — справочная страница Linux» .
- ^ «Tracert6(8): инструмент трассировки IPv6 — справочная страница Linux» .
- ^ Россингол, Джо (23 июня 2020 г.). «Сетевая утилита устарела в macOS Big Sur» . МакСлухи .
- ^ Tracert.cpp на GitHub
- ^ Linux программиста Руководство – Администрирование и привилегированные команды –
- ^ FreeBSD системного администратора Руководство –
- ^ NetBSD . системного администратора Руководство –
- ^ OpenBSD системного менеджера Руководство –
- ^ DragonFly BSD. по обслуживанию и эксплуатации системы Руководство –
- ^ Jump up to: а б с Комер, Дуглас (2004). Компьютерная сеть и Интернет с интернет-приложениями . Pearson Education, Inc., стр. 360–362. ISBN 978-0131433519 .
- ^ «Трассерт» . Документы Майкрософт . 3 февраля 2023 г. Проверено 29 июля 2023 г.
- ^ «tracepath(8) — справочная страница Linux» . linux.die.net . Проверено 21 июня 2015 г.
- ^ «Понимание команд Ping и Traceroute» . Выпуски программного обеспечения Cisco IOS 12.1 Mainline . Cisco.com. 29 ноября 2006 г. Проверено 8 декабря 2013 г.
- ^ «Исходный код Traceroute6.c» . 04.10.2022 . Проверено 17 сентября 2023 г.
- ^ «История программы PING» .
- ^ Рэй Бельвиль (3 марта 2017 г.). «Объяснение ограничений Traceroute» .
- ^ Маркетта, П.; Монтьери, А.; Персико, В.; Пескапе, А.; Кунья, О; Кац-Бассетт, Э. (июнь 2016 г.). Как и насколько трассировка запутывает наше понимание сетевых путей . Международный симпозиум IEEE по локальным и городским сетям 2016 г. (LANMAN). стр. 1–7. дои : 10.1109/lanman.2016.7548847 . ISBN 978-1-4673-9882-4 . S2CID 4643833 .
- ^ «Парижский трейсерут» . Париж-traceroute.net . Проверено 10 июня 2017 г.
Дальнейшее чтение
[ редактировать ]- Фриш, Элин (2001). Карманный справочник по командам Windows 2000 . О'Рейли . ISBN 978-0-596-00148-3 .
- Станек, Уильям Р. (2008). Карманный консультант администратора командной строки Windows, 2-е издание . Майкрософт Пресс . ISBN 978-0735622623 .
- Барретт, Дэниел Дж. (2012). Карманное руководство по терминалу Macintosh: возьмите на себя управление своим Mac . О'Рейли . ISBN 978-1449328986 .
Внешние ссылки
[ редактировать ]- RFC 1393 : Traceroute с использованием опции IP Internet RFC
- Как работает трассировка – InetDaemon
- Tracert — справочник по командной строке Windows XP