ryg

Команда traceroute

Назначение:

В интернете существует огромное количество серверов соединенных между собой шлюзами. Проследить маршрут прохождения пакета (или найти тот, который теряет пакеты) крайне трудно. Traceroute использует поле ttl (time to live) в IP протоколе и пытается извлечь ICMP ответ TIME_EXCEED от каждого шлюза (gateway) встреченного на маршруте до необходимого сервера.

Обязательным параметром для команды является только IP адрес конечного сервера или его имя. По умолчанию пакет данных имеет дляину 40 байт, но может быть увеличен параметром после адреса сервера.

Синтаксис:

	
traceroute [-adeFISdNnrvx] [-A as_server] [-f first_ttl] [-g gateway] [-i iface] [-M first_ttl]
                [-m max_ttl] [-P proto] [-p port] [-q nqueries] [-s src_addr] [-t tos] [-w waittime]
                [-z pausemsecs] host [packetsize]

Параметры:

-a

Включить просмотр AS# на каждом встреченном узле

-A as_server

Включить просмотр AS# и использовать заданный сервер, вместо сервера по умолчанию

-d Включить уровень отладки сокетов
-D Когда после получения тестового пакета данных ICMP ответит, напечатать различия между переданным пакетом полученнм ICMP. Не измененные байты выделяются подчеркиванием.
-e Уклонение от файрволов. Использовать определенные порты для UDP и TCP проверок. Порт назначения не увеличивается с каждым отправленным пакетом
-f first_ttl Установить начальный параметр времени жизни (time-to-live)  d gthdjv bc[jlzotv gfrtnt
-F установить признак "не фрагментировать" (don't fragment bit)

-g gateway

Задать адреса шлюзов на маршруте (не более 8)
-i iface  
-I  
-M first_ttl  
-m max_ttl  
-n  
-P proto Отправлять пакеты по заданному протоколу. На данный момент поддерживаются : UDP, TCP, GRE и ICMP. другие протоколы тоже могут быть использованы (по имени или по номеру) хотя у traceroute нет специальных знаний про их формат пакетов. Данный параметр полезен для опрределение какой из узлов на маршруте блокирует пакет необходимого протокола. Дополнительная информация в разделе ошибки
-p port Определить протокол. Для UDP и UCP устанавливается базовый порт, который будет использован при проверке. (по умолчанию 33434).
-q nqueries Установить количество попыток на "ttl" в поле nqueries (по умолчанию три попытки)
-r Игнорировать стандартную таблицу маршрутов и отправить пакет непосредственно на сервер, как-будто он находится в Вашей сети. Если сервер не является напрямую подключен к Вашей сети, то будет возвращена ошибка. Используется для проверки ответа локальных серверов.
-s src_addr Использовать заданный IP адрес (не имя сервера) в качестве адреса от которого будут исходить тестовые пакеты. Предназначена для использования на серверах имеющих более одного адреса где этот параметр может быть указан для тестирования конкретного канала. Если указанный адресс не принадлежит компьютеру с которого ведется тестирование, то будет выдано сообщение об ошибке.
-S Вывести процент потерянных пакетов по каждому узлу
-t tos Установить тип сервиса (tos type-of-service) в отправляемых пакетах в заданное значение (по умолчанию "ноль"). Параметр может принимать значения от 0 до 255.Этот параметр предназначен для если в различных маршрутах используются разные  tos. Не все значения из диапазона 0-255 можно использовать (смотреть спецификации IP протокола). Возможные полезные значения '-t 16' (минимальная задержка) и '-t 8' (высокая пропускная способность)
-v Подробный отчет. Вывести отличные от TIME_EXCEED и UNREACHABLE пакеты на экран
-w Установить время ожидания (в секундах) ответа (по умолчанию 5 секунд)
-x  
-z pausemsecs  

Программа пытается проследить маршрут прохождения IP пакетов, которые следуют до заданного сервера путем отправления тестовых UDP пакетов с малым верменем жизни (ttl) и печатает значения параметра ICMP "time exceed" полученные от шлюза. Тестирование начинается со значения ttl равному одному и увеличивается на единицу пока на будет получен ICMP сигнал "порт недоступен", что будет означать что мы добрались до цели или не будет достигнуто максимально допустимое количество узлов на маршруте ( изменяется параметром -m). Будут сделаны три попытки (можно изменить параметром -q) для каждого ttl и их результаты будут показаны в строке вывода. Если ответы будут получены от разных шлюзов, то адрес каждого отвечающего будет напечатан. Есл иони не ответят в течение 5 секунд (парметр изменяется ключом -w) будет напечатана звездочка '*'.

Связанные команды:

ping - Протестировать сетевое соединение
netstat - показать маршруты и состояние сетевого соединения
ifconfig - настройка сетевого соединения
ipconfig - временная настройка сетевых соединений
scutil    - Управление параметрами системы и сети.
Весь список команд terminal Mac OS X