Каковы существенные различия между трассой и traceroute?

49

Недавно я немного прочитал статью о HowToGeek, которая немного меня почесала. У меня довольно мало опыта работы с Linux, поэтому, простите меня, если это начальный уровень:

  

"Команда tracepath похожа на traceroute, но она не требует привилегий root."

     

Ссылка

Как traceroute и tracepath выполняют аналогичную функцию, иначе?

Что делает traceroute, который требует привилегий root, что трассировка не поддерживает?

Существуют ли сценарии, в которых следует предпочесть трассировку traceroute или наоборот?

    
задан Iszi 19.03.2012 в 15:23
источник

4 ответа

46

Как traceroute и tracepath выполняют аналогичную функцию, иначе?

Обе программы по существу делают одно: отправлять и получать определенные IP-пакеты.

Для этого вы можете использовать API обычных сокетов, или вы можете манипулировать сырыми пакетами из интерфейса. API сокетов не требует прав root, потому что он довольно безопасен. Существуют встроенные механизмы для предотвращения доступа одной программы к IP-пакетам, которые сделала другая программа.

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

Что делает traceroute, который требует привилегий root, этот путь трассировки не работает?

Он обрабатывает необработанные пакеты.

Чтобы манипулировать необработанными пакетами, вам нужны привилегии root, потому что при этом вы обойдете механизмы безопасности API сокетов. Вы получаете доступ к коммуникациям всех других процессов и пользователей, использующих этот интерфейс. Просто подумайте о том, что может сделать вирус, если он сможет манипулировать необработанными пакетами.

Существуют ли сценарии, где следует предпочитать трассировку трассировки через traceroute или наоборот?

  

Одна расширенная команда, доступная в Traceroute, - это возможность запуска   трассировка сети с использованием протокола IPv4 или IPv6. Также возможно   выбирать между форматами данных ICMP, TCP или UDP для зонда. Трассировка   может выбрать конкретные маршруты для зонда и выбрать, какой порт   отправить. Он может устанавливать ограничения на минимальный и максимальный TTL для   принять от исходящего зонда. Кроме того, Traceroute может показать   время ожидания ответов, а также количество отправляемых пакетов   в каждом зонде и сколько зондов отправить. Некоторые из этих команд могут   не поддерживаются сетевым оборудованием по пути, что может   прекратите зондирование до того, как оно достигнет целевого назначения.

Источники: 1 2 3

    
ответ дан Galgalesh 09.03.2014 в 13:11
источник
8

Вы можете использовать traceroute для расширенной сетевой трассировки, вы можете выбирать между протоколами IPv4 и Ipv6, вы также можете выбирать между форматами данных ICMP, TCP или UDP для зонда.

Таким образом, traceroute имеет более продвинутые параметры, чем tracepath , который использует UDP-пакеты для трассировки.

Теперь о привилегиях суперпользователя :

вы можете использовать traceroute как с обычным пользователем, так и с суперпользователем, который зависит от опции , которую вы хотите использовать, вот пример:

Здесь мы используем пакеты UDP , которым не нужны привилегии суперпользователя

Здесь мы используем ICMP эхо-пакеты, которым нужны привилегии.

В пакетах ICMP вы можете совершить DDOS-атаку.

Чтобы узнать о параметрах ICMP Страница пользователя Traceroute

Чтобы просмотреть тип traceroute в терминале man traceroute

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

Чтобы вы могли это увидеть, когда вы пытаетесь выполнить ping так, чтобы сайты, такие как www.microsoft.com , ваш ping не удался даже в Интернете, а также потому, что маршрутизаторы Microsoft блокируют ICMP_requests.

Таким образом, linux защищает систему от непривилегированного пользователя, поэтому они не могут использовать эти команды для атаки.

    
ответ дан nux 04.03.2014 в 02:19
4

Я думаю, вы должны прочитать это Ссылка

Из приведенной выше ссылки:

  

TracePath

     

Трассировка отслеживает путь к назначенному сетевому адресу, сообщая о «времени жизни» или времени задержки TTL и максимальных единицах передачи (MTU) на этом пути. Эта команда может быть запущена любым пользователем, имеющим доступ к приглашению командной строки.

  

Основы Traceroute

     

Traceroute по существу совпадает с Tracepath, за исключением того, что по умолчанию он будет давать только значение TTL. Если вам нужны дополнительные данные, вы должны запросить эти переменные в командной строке. Кроме того, traceroute требует доступа суперпользователя для запуска команды в ящике Linux, а некоторые продвинутые запросы данных могут не поддерживаться всеми маршрутизаторами по пути. В среде Windows любой пользователь, имеющий доступ к командной строке, может запускать Traceroute.

    
ответ дан Ten-Coin 19.03.2012 в 15:32
1

ping и traceroute используют протокол ICMP. Подобно UDP и TCP, это доступно через обычный сокет API. Только номера портов UDP и TCP менее 1024 защищены от использования, кроме как от root. ICMP доступен всем пользователям.

Если вы действительно хотите посмотреть, как работают ping и traceroute, вы можете загрузить пример реализации кода C из CodeProject .

Короче говоря, они просто открывают ICMP-сокет, а traceroute изменяет приращения TTL с помощью setsockopt до достижения цели.

Источник: Ссылка

    
ответ дан Ahmadgeo 07.03.2014 в 16:15