Как проверить ping и трассировку через командную строку

Поиск оптического кабеля

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

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

Параметры генераторов сигналов

Основными параметрами являются мощность и частота наводимого сигнала, которая может быть постоянной или в виде нескольких чередующихся (до четырех) величиной 0,2-130 кГц. Сигнал подается разными способами:

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

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

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

Кроме того, метод с индуктивной антенной применяют для нахождения коммуникаций, пересекающих путь основной линии с передатчиком. Для этого с приемниками вдоль кабеля перемещаются 2 человека на расстоянии 20 м.

Кроме антенны применяются другие индуктивные устройства сопряжения, которые не надо подключать к проводникам. При этом сигнал подается только на один кабель.

Рендеринг наших первых сфер

противоположномза камерой

За камерой
Между камерой и плоскостью проекции
Сцена

передзазабудем

O = <0, 0, 0>
for x in [-Cw/2, Cw/2] {
    for y in [-Ch/2, Ch/2] {
        D = CanvasToViewport(x, y)
        color = TraceRay(O, D, 1, inf)
        canvas.PutPixel(x, y, color)
    }
}
CanvasToViewport(x, y) {
    return (x*Vw/Cw, y*Vh/Ch, d)
}
TraceRay(O, D, t_min, t_max) {
    closest_t = inf
    closest_sphere = NULL
    for sphere in scene.Spheres {
        t1, t2 = IntersectRaySphere(O, D, sphere)
        if t1 in  and t1 < closest_t
            closest_t = t1
            closest_sphere = sphere
        if t2 in  and t2 < closest_t
            closest_t = t2
            closest_sphere = sphere
    }
    if closest_sphere == NULL
        return BACKGROUND_COLOR
    return closest_sphere.color
}

какой-то

IntersectRaySphere(O, D, sphere) {
    C = sphere.center
    r = sphere.radius
    oc = O - C

    k1 = dot(D, D)
    k2 = 2*dot(OC, D)
    k3 = dot(OC, OC) - r*r

    discriminant = k2*k2 - 4*k1*k3
    if discriminant < 0:
        return inf, inf

    t1 = (-k2 + sqrt(discriminant)) / (2*k1)
    t2 = (-k2 - sqrt(discriminant)) / (2*k1)
    return t1, t2
}
viewport_size = 1 x 1
projection_plane_d = 1
sphere {
    center = (0, -1, 3)
    radius = 1
    color = (255, 0, 0)  # Красный
}
sphere {
    center = (2, 0, 4)
    radius = 1
    color = (0, 0, 255)  # Синий
}
sphere {
    center = (-2, 0, 4)
    radius = 1
    color = (0, 255, 0)  # Зелёный
}

Исходный код и рабочее демо >>

Описание

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

Такое поведение математически описано в уравнении рендеринга. Данное уравнение пытается решить алгоритмы трассировки пути.

Трассировка пути не является простой трассировкой лучей с неограниченным количеством отражений лучей (т. е. с рекурсивной глубиной). В традиционной трассировке лучей свет вычисляется в момент непосредственного пересечения луча с диффузной поверхностью. При трассировке пути новый луч генерируется случайным образом внутри полусферы объекта и потом трассируется до тех пор, пока не пересечётся с источником света, что может и не случиться. При трассировке пути путь луча может пересечься с множеством диффузных поверхностей до того, как пересечься с источником света.

Псевдокод, реализующий трассировку пути, может выглядеть следующим образом:

  Color TracePath(Ray r,depth) {
    if(depth == MaxDepth)
      return Black;  // bounced enough times
    
    r.FindNearestObject();
    if(r.hitSomething == false)
      return Black;  // nothing was hit
    
    Material m = r.thingHit->material;
    Color emittance = m.emittance;
    
    // pick a random direction from here and keep going
    Ray newRay;
    newRay.origin = r.pointWhereObjWasHit;
    newRay.direction = RandomUnitVectorInHemisphereOf(r.normalWhereObjWasHit);
    float cos_t = DotProduct(newRay.direction, r.normalWhereObjWasHit);
    
    Color BRDF = m.reflectancePI;
    float scale = 1.0*PI;
    Color reflected = TracePath(newRay,depth+1);
    
    // return emittance + ( BRDF * scale * cos_t * reflected );
    return emittance + ( BRDF * scale * reflected );
  }

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

Трассировка кабельных линий

Распространены подземные локаторы узкой специализации, позволяющие обнаруживать кабели, уложенные открытым способом или в каналах на глубине до 2 м. В их функции может входить определение глубины залегания и место замыкания оплетки или жил на землю. Устройства применяют для трассировки под землей или в зданиях.

Трассировка кабеля в помещениях производится универсальными приборами с полным набором функций. С их помощью можно обнаружить проводник под штукатуркой, за панелями, в бетонном полу и за подвесным потолком. Сигнал подается от индуктивного хомута с обнаружением на расстоянии 1,5 км. Он хорошо распознается на слух, если состоит из двух попеременно подаваемых частот. Для штыревой антенны жилы держат разомкнутыми или замкнутыми на высокоомную нагрузку. Для обнаружения кабеля магнитной катушкой его проводники замыкают накоротко или через низкоомный резистор.

Сцена

сцену

Часть I: трассировка лучей

обязаныШвейцарский ландшафтГрубая аппроксимация ландшафта

Для каждого пикселя холста
    Закрасить его нужным цветом
Разместить глаз и рамку в нужных местах
Для каждого пикселя холста
    Определить квадрат сетки, соответствующий этому пикселю
    Определить цвет, видимый сквозь этот квадрат
    Закрасить пиксель этим цветом

Основы трассировки лучей

сейчасположением камерыокном просмотра (viewport)областью видимости (field of view)

Разместить глаз и рамку в нужных местах (1)
Для каждого пикселя холста
    Определить квадрат сетки, соответствующий этому пикселю (2)
    Определить цвет, видимый сквозь этот квадрат (3)
    Закрасить пиксель этим цветом (4)

Такая непохожая трассировка

  • оснащение приложений и middleware средствами контроля;
  • передача распределенного контекста;
  • сбор трассировок;
  • хранение трассировок;
  • их извлечение и визуализация.

записи в блогеон делает Twitter быстрееинструменты APMПрим. перев.: Дабы дальнейший текст воспринимался лучше, определим два базовых термина согласно документации проекта OpenTracing:

  • Span — базовый элемент распределенной трассировки. Представляет собой описание некоего рабочего процесса (например, запроса к базе данных) с названием, временем начала и окончания, тегами, логами и контекстом.
  • Span’ы обычно содержат ссылки на другие span’ы, что позволяет объединять множество span’ов в Trace — визуализацию жизни запроса в процессе его перемещения по распределенной системе.

универсальная передача контекста

  • Например, Uber использует результаты трассировки для разграничения тестового трафика и production-трафика.
  • Facebook использует данные trace’ов для анализа критического пути и для переключения трафика во время регулярных тестов аварийного восстановления.
  • Также соцсеть применяет блокноты Jupyter, позволяющие разработчикам выполнять произвольные запросы на результатах трассировки.
  • Приверженцы LDFI (Lineage Driven Failure Injection) используют распределенные trace’ы для тестирования с внедрением ошибок.

отладкивсе жеtraceview«диаграммой Ганта»«каскадной диаграммой»traceviewподразумеваюtraceviewвизуализация (traceview)traceviewсетовала(high-cardinality)меж- и внутри-tracetraceview

Комплект для трассировки кабеля TEMPO CTS 132j

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

Функции распределения рассеивания

Изображение функций распределения двунаправленного рассеивания

Отражающие способности поверхностей — количество отраженного света, его направление и цвет, — моделируются с использованием двулучевой функции отражательной способности. Эквивалентом перенесённого света (света, прошедшего через объект) является функция двунаправленного поверхностного рассеивания отражения (англ. Bidirectional scattering distribution function). Трассировщик пути может воспользоваться всеми преимуществами сложных, тщательно смоделированных или вычисленных функций распределения, которые определяют внешний вид («материал», «текстура» и «затенённость» в терминах компьютерной графики) объекта.

История

Уравнение рендеринга и его применение в компьютерной графике было представлено Джеймсом Кадзией (англ. James Kajiya) в 1986 году. Эта презентация была первым описанием алгоритма трассировки пути. Позже в этом году Лафортюн (англ. Lafortune) предложил много усовершенствований алгоритма, в том числе путём двунаправленной трассировки пути.

Metropolis light transport (англ.), метод возмущений ранее найденных путей для увеличения производительности в сложных сценах, был представлен в 1997 году Эриком Вичем (англ. Eric Veach) и Леонидасом Гуибасом (англ. Leonidas J. Guibas).

Через некоторое время графические процессоры достигли такого уровня развития, что смогли вызвать интерес к ним в плане перенесения на них расчётов трассировки пути. Тим Пюрселл (англ. Tim Purcell) в 2002 году первым представил алгоритм глобального освещения, который работал на графическом процессоре. В 2009 году Владимир Койлазов продемонстрировал первую коммерческую реализацию алгоритма трассировки пути, работающую на графическом процессоре. Этому способствовало созревание GPGPU-ориентированных инструментов программирования, таких как CUDA и OpenCL.

В 2015 году планируется перенос трассировки пути на DirectX 12 и Vulkan API. Работы над первым уже ведутся.

Инструментирование трассировки и распределенные приложенияTrace Instrumentation and Distributed Applications

При создании распределенного приложения тестирование приложения способом, которым оно будет использоваться, может показаться сложной задачей.When you create a distributed application, you might find it difficult to test the application in the manner in which it will be used. Немногие группы разработчиков имеют возможность протестировать все возможные сочетания операционных систем или веб-браузеров (в том числе все параметры локализованных версий) или смоделировать большое число пользователей, которые будут обращаться к приложению одновременно.Few development teams have the capability to test all possible combinations of operating systems or Web browsers (including all the localized language options), or to simulate the high number of users that will access the application at the same time. В таких обстоятельствах невозможно протестировать реакцию распределенного приложения на большую нагрузку, различные настройки и разные действия конечных пользователей.Under these circumstances, you cannot test how a distributed application will respond to high volumes, different setups, and unique end-user behaviors. Кроме того, многие компоненты распределенного приложения не имеют пользовательского интерфейса, с которым можно взаимодействовать напрямую или просматривать активность этих компонентов.Also, many parts of a distributed application have no user interface with which you can interact directly or view the activity of those parts.

Однако вы можете компенсировать это, позволив распределенным приложениям описывать определенные события, интересующие системных администраторов, особенно то, что работает неправильно, путем инструментирования приложения, то есть путем размещения операторов трассировки в стратегически важных местах кода.However, you can compensate for this by enabling distributed applications to describe certain events of interest to system administrators, especially things that go wrong, by instrumenting the application — that is, by placing trace statements at strategic locations in your code. Затем, если во время выполнения произойдет что-либо неожиданное (например, слишком большое время отклика), можно будет определить вероятную причину.Then if something unexpected occurs at run time (for example, excessively slow response time), you can determine the likely cause.

Операторы трассировки помогают избежать сложностей проверки исходного кода, его изменения, перекомпиляции, а также попыток воспроизвести ошибку времени выполнения в среде отладки.With trace statements you can avoid the difficult task of examining the original source code, modifying it, recompiling, and attempting to produce the run-time error within the debugging environment. Помните, что можно инструментировать приложение не только для отображения ошибок, но также для наблюдения за производительностью.Remember that you can instrument an application not only to display errors, but also to monitor performance.

Как читать результат трассировки

Как проверить ping и трассировку через командную строку

В

Второй, третий и четвертый столбцы содержат значения RTT – времени, прошедшего от момента отправки запроса до получения ответа (как вы помните, партия состоит из трех пакетов). Чем оно меньше, тем быстрее осуществляется передача. Если оно больше 4 секунд, интервал ожидания считается превышенным.

Последний столбец – это имена и адреса промежуточных и конечного узлов.

Звездочки вместо значений не всегда указывают на недоступность или неисправность сетевого устройства (как пишут в некоторых источниках). Чаще всего это просто настройка, не позволяющая отправлять ответные ICMP-сообщения (меры по защите веб-узла от DDoS-атак). Если ваш запрос благополучно достиг конечной точки за приемлемое время, беспокоиться не о чем.

Причиной сбоя доставки ICMP-пакетов (если запрос так и не дошел до адресата) может быть неработоспособность (отключение или неисправность) сетевого устройства или политика безопасности (блокировка данного действия администратором сети).

Особенности поиска коммуникаций

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

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

Проверку глубины залегания трассы делают на разных расстояниях от земли. При этом полученные значения должны отличаться на величину перемещения щупа.

Особенности поиска коммуникаций

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

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

Проверку глубины залегания трассы делают на разных расстояниях от земли. При этом полученные значения должны отличаться на величину перемещения щупа.

Трассировка кабельных линий

Распространены подземные локаторы узкой специализации, позволяющие обнаруживать кабели, уложенные открытым способом или в каналах на глубине до 2 м. В их функции может входить определение глубины залегания и место замыкания оплетки или жил на землю. Устройства применяют для трассировки под землей или в зданиях.

Трассировка кабеля в помещениях производится универсальными приборами с полным набором функций. С их помощью можно обнаружить проводник под штукатуркой, за панелями, в бетонном полу и за подвесным потолком. Сигнал подается от индуктивного хомута с обнаружением на расстоянии 1,5 км. Он хорошо распознается на слух, если состоит из двух попеременно подаваемых частот. Для штыревой антенны жилы держат разомкнутыми или замкнутыми на высокоомную нагрузку. Для обнаружения кабеля магнитной катушкой его проводники замыкают накоротко или через низкоомный резистор.

Производительность

Трассировщик пути постоянно производит выборку (англ. sampling — семплинг) пикселей изображения. Изображение становится различаемым только тогда, когда проведено несколько выборок на один пиксель, вплоть до 100 выборок на пиксель. Как правило, для обычных изображений и для уменьшения цифрового шума до приемлемого уровня делают около 5000 выборок. Однако для патологических (англ.) случаев количество выборок становится намного больше. Процесс рендеринга может занять часы и дни в зависимости от сложности сцены и производительности аппаратного и программного обеспечения. Современные реализации графических процессоров обещают от 1 до 10 миллионов выборок в секунду, что делает возможным сгенерировать относительно бесшумное изображение приемлемого качества в течение нескольких секунд или минут. Цифровой шум создаёт особую проблему для анимации, создавая, как правило, нежелательный эффект «зернистости» изображения.

Группа методов Metropolis light transport (англ.) слегка изменяют ранее оттрассированные успешные пути и производит более важные для изображения выборки первыми. Это может привести к снижению шумности изображения и снижению количества выборок.

Довольно трудно справедливо оценить уровень производительности рендерера. Один подход заключается в подсчёте выборок (семплов) за секунду, другой подсчитывает количество путей, которые могут быть оттрассированными и добавленными к изображению за секунду. Результаты этих методов значительно варьируются в зависимости от сцены и зависят от «глубины пути», то есть от того, сколько раз лучу позволяется отразиться от объекта, прежде чем он будет остановлен. Результат измерения производительности также сильно зависит от используемого аппаратного обеспечения. Наконец, один рендерер может производить много низкокачественных выборок, тогда как другой может вывести финальное изображение быстрее, используя меньшее количество более высококачественных выборок.

traceroute

Как пользоваться traceroute

Для запуска трассировки достаточно указать IP или сайт, до которого вы хотите проследить маршрут:

traceroute IP_или_ДОМЕН

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

Методы трассировки в traceroute

В современном сетевом окружении традиционные методы трассировки не всегда применимы из-за широкого распространения файерволов. Такие файерволы фильтруют «маловероятные» UDP порты или даже ICMP echo пакеты. Для решения этой проблемы реализованы некоторые дополнительные методы трассировки сети (включая tcp). Эти методы пытаются использовать другие протокол и порт источника/назначения, чтобы обойти файерволы (чтобы файерволы воспринимали их как просто начало сетевой сессии разрешённого типа).

У разных методов есть специфичные для них опции — они зависят от используемого протокола. Эти опции метода можно указать с помощью опции -O. Несколько опций разделяются запятой (или используйте в командной строке несколько -O). Каждый метод может иметь свои собственные особенные опции или может не иметь из вовсе.

default

Метод по умолчанию — используется если не указан другой, либо можно указать явно опцией -M default. Это традиционный, древний метод трассировки маршрута.

Пакетами зондирования являются udp датаграммы с так называемым «unlikely» (маловероятным) портом назначения. Первым «unlikely» портом зондирования является 33434 затем для каждого следующего зонда он увеличивается на единицу. Поскольку ожидается, что порт не используется, то хост назначения обычно возвращает конечный ответ «icmp unreach port». Номер порта можно поменять (об этом ниже).

Данный метод могут выполнять непривилегированные пользователи.

icmp

Сейчас это самый типичный метод, он использует в качестве зондов пакеты icmp echo. Если вы можете пинговать хост назначения, то icmp трассировка также применима. Для выбора этого метода используется опция -M icmp или её короткий вариант -I.

Этот метод разрешён для непривилегированных пользователей.

У этого метода имеется две специфичные опции

raw

Использовать только сырые сокеты (традиционный способ).

По умолчанию этот методы пробуется первым (по причинам совместимости), затем новые сокеты dgram icmp в качестве резервного варианта.

dgram

Использовать только сокеты dgram icmp

tcp

Хорошо известный современный метод, предназначен для обхода файерволов. Для использования укажите опцию -M tcp либо короткий вариант -T. Использует постоянный порт назначения (по умолчанию это 80, http).

Если на сетевом пути трассировки присутствуют какие-либо фильтры, то весьма вероятно, что фильтруются «необычные» udp порты (такие, как используется методом по умолчанию) или даже icmp echo (как для icmp), и весь процесс трассировки остановится на таком файерволе. Для обхода сетевого фильтра нам нужно использовать только комбинации из разрешённой пары протокол/порт. Если мы делаем трассировку, допустим, до почтового сервера, то весьма вероятно, что с помощью -T -p 25 мы можем достичь его, даже если с помощью -I не получается это сделать.

Этот метод использует хорошо известную «технику полуоткрытых соединений», благодаря которой приложения на компьютере назначения вовсе не видят наши пакеты для исследования (зонды). Обычно отправляется tcp syn. Для портов, которые не прослушиваются, мы получаем ответ tcp reset — и всё готово. Для активно прослушиваемых портов мы получаем tcp syn+ack, но отвечаем на это tcp reset (вместо ожидаемого tcp ack), таким образом удалённая tcp сессия сбрасывается, а прослушивающее порт приложение даже не получает уведомление.

Для метода tcp имеется несколько опций:

syn,ack,fin,rst,psh,urg,ece,cwr

Устанавливает определённые tcp флаги для пакета зондирования, можно использовать любую их комбинацию.

flags=ЧИСЛО

Устанавливает поле флагов в tcp заголовке на точное ЧИСЛО.

ecn

Отправляет пакет syn с флагами tcp ECE и CWR (для Explicit Congestion Notification, rfc3168).

sack,timestamps,window_scaling

Использует соответствующую опцию tcp заголовка в исходящем пакете зондирвоания.

sysctl

Использует настройки текущей sysctl (/proc/sys/net/*) для опций tcp заголовка для вышеприведённых опций и ecn. Всегда установлено на значение по умолчанию, если ничего не указано.

mss=ЧИСЛО

Использовать значение ЧИСЛО для опции tcp заголовка maxseg (когда syn).

info

Печатать tcp флаги финальных tcp ответов когда достигнут целевой хост. Помогает определить, прослушивает ли приложение порт и другие полезные вещи.

Опциями по умолчанию являются syn,sysctl.

tcpconn

Начальная реализация tcp метода просто использующего вызов connect(2), который открывает полную tcp сессию. Не рекомендуется для нормального использование, поскольку всегда влияет на приложение прослушивающее порт на хосте назначения.

Для задействования этого метода используйте опцию -M tcpconn.

udp

Использует udp датаграммы с постоянным портом назначения (по умолчанию 53, dns). Также предназначена для обхода файерволов. Для использования этого метода трассировки укажите опцию -M udp или сокращённый вариант -U.

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

(К счастью, кажется что по крайней мере DNS серверы присылают какой-то ответ).

Этот метод не требует повышенных прав.

udplite

Использует для зондов датаграммы udplite (с постоянным портом назначения, по умолчанию 53). Для активации этого метода укажите опцию -M udplite или -UL.

Этот метод не требует повышенных прав.

Опции:

coverage=ЧИСЛО

Устанавливает покрытие отправки udplite на ЧИСЛО.

dccp

Использует для зондов пакеты DCCP Request (rfc4340). Этот метод можно задействовать опциями -M dccp или -D.

Этот метод использует такую же «технику полуоткрытых соединений», которая используется для TCP. Портом назначения по умолчанию является 33434.

Опции:

service=ЧИСЛО

Устанавливает сервисный код DCCP на ЧИСЛО (по умолчанию это 1885957735).

raw

Этим методом отправляются сырые пакеты указанного протокола. Для вызова этого метода используйте опцию -M raw или -P ПРОТОКОЛ.

Не используется специфичные для транспортных протоколов заголовки, только заголовки IP протокола.

Подразумевает -N 1 -w 5 .

Опции:

protocol=ПРОТОКОЛ

Использовать IP ПРОТОКОЛ (по умолчанию 253).

Чуть выше описаны принципы работы трассировки — отправка пакетов с постоянно увеличивающимся сроком жизни. На самом деле — все пакеты (с TTL 1, с TTL 2, с TTL 3 и т. д.) можно отправить одновременно. И именно так это и происходит — по умолчанию отправляются 16 пакетов за раз (количество можно изменить опцией -N). Это делается для ускорения трассировки.

Поэтому в действительности трассировка выполняется очень быстро. Те 1-2 секунды, которые как нам кажется определяются узлы сети, на самом деле тратятся на получение имён хостов для IP. С помощью опции -n это можно отключить.

Используя программу time можно замерить время выполнения программы с опцией -n и без неё:

time traceroute -n google.com

Как проверить ping и трассировку через командную строку

time traceroute google.com

Время выполнения самой трассировки 0,206s, а время трассировка+определение имени хостов получилось 2,360s, то есть в 10 раз дольше.

Трассировка IPv6

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

С помощью опций -4 и -6 можно явно указать желаемый протокол.

Например:

traceroute -6 -n google.com

Как проверить ping и трассировку через командную строку

Сеть, из которой делается трассировка с опцией -6, должна поддерживать IPv6, иначе ничего не получится.

Изменение порта

Поменять порт назначения можно с помощью опции:

-p ПОРТ, --port=ПОРТ

Для UDP трассировки указанный порт будет использовать в качестве базового (номер порта назначения будет увеличиваться для каждого зонда).

Для ICMP трассировки указанное число будет использоваться в качестве начальное значение ICMP последовательности (также увеличенное для каждого зонда).

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

Обычно это не требуется, но также можно указать и порт источника, это делается опцией:

--sport=ПОРТ

Эта опция подразумевает -N 1 -w 5 . Обычно исходные порты (если это примениму к выбранному методу трассировки) выбираются системой.

С помощью опции -f можно указать номер узла, с которого следует начать трассировку. По умолчание значение равно 1.

С помощью опции -m можно указать максимальное число хопов для трассировки, по умолчанию установлено на 30.

Выбор интерфейса для трассировки

По умолчанию пакеты отправляются с того интерфейса, для которого настроен маршрут по умолчанию. Но следующей опцией можно сделать так, что traceroute будет отправлять пакеты с указанного в строке команды интерфейса:

-i ИНТЕРФЕЙС, --interface=ИНТЕРФЕЙС

Как показать к какой автономной системе принадлежит узел при трассировке

Каждый IP адрес привязан к Автономной системе (AS). С помощью опции -A вы можете включить запрос номера AS для каждого узла по пути трассировки, например:

sudo traceroute -A -n suip.biz

Пример вывода:

 1  192.168.1.1   1.102 ms  1.708 ms  2.720 ms
 2  10.20.48.1   7.121 ms  7.168 ms  11.242 ms
 3  10.246.245.241   15.368 ms  15.812 ms  15.788 ms
 4  10.185.252.29   16.243 ms  16.213 ms  16.181 ms
 5  58.97.121.237 [AS38082/AS7470]  16.802 ms  16.776 ms  16.976 ms
 6  171.102.247.244 [AS38082/AS7470]  17.405 ms 171.102.247.114 [AS38082/AS7470]  16.320 ms 171.102.247.74 [AS38082/AS7470]  21.324 ms
 7  171.102.250.1 [AS38082/AS7470]  20.946 ms  20.521 ms  21.542 ms
 8  171.102.254.232 [AS38082/AS7470]  21.896 ms  22.789 ms  23.755 ms
 9  171.102.250.156 [AS38082/AS7470]  23.431 ms  23.036 ms  24.393 ms
10  122.155.224.197   26.448 ms 122.155.226.85   25.531 ms 122.155.226.89   26.770 ms
11  61.19.9.66 [AS4651/AS3549]  76.868 ms  77.298 ms  56.532 ms
12  * * *
13  87.226.181.87   306.596 ms  306.452 ms 87.226.183.87   306.332 ms
14  81.177.108.86   307.373 ms  307.322 ms  307.328 ms
15  94.142.138.40   307.290 ms  307.268 ms  307.211 ms
16  185.117.153.79   307.185 ms  307.181 ms  306.512 ms

Как проверить ping и трассировку через командную строку

Как можно видеть, автономная система не определена для локальных IP 10.*.*.* — что вполне логично, так как эти адреса никому не назначены. Что касается адреса 192.168.1.1 и автономной единицы AS198949, то это какая-то ошибка.

Как можно увидеть из вывода предыдущей команды, первые четыре узла имеют локальный IP адреса. Узлы с 5 по 9 принадлежат одной автономной системе AS38082/AS7470. Предпоследние два узла принадлежат одной автономной системе AS12389 и последние два узла также принадлежат одной автономной системе AS48666 — интернет-провайдеру, на котором размещён сайт suip.biz.

Опции traceroute

У команды traceroute имеются и другие опции которые могут вам пригодиться. Вы можете ознакомиться с ними в справочной странице данной программы:

man traceroute