traceroute

Обзор

Из-за ограниченной пропускной способности LoRa Meshtastic не отслеживает узлы, через которые сообщение передавалась к получателю. Однако начиная с прошивки 2.0.8 доступен модуль Traceroute, который может это показать.

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

Чтобы использовать его, убедитесь, что ваши устройства работают на прошивке версии 2.0.8 или выше.

Начиная с версии прошивки ≥ 2.5, записывается маршрут обратно к источнику вместе с коэффициентом сигнал/шум (SNR) для каждого звена. Узлы со старой прошивкой или те, которые не могут расшифровать traceroute, будут отображаться как "Unknown" (представлено ID, равным 4294967295 или 0xFFFFFFFF в шестнадцатеричном формате), если все узлы в маршруте используют как минимум версию прошивки 2.3.12.

Поведение повторителей

Узлы-повторители появятся в логе traceroute, если у них есть ключ шифрования, но если они отсутствуют в списке узлов, они могут отображаться как "Unknown" в зависимости от приложения.

Доступность клиента модуля Traceroute

      <Icon icon="mdi:android" height="1.5rem" style={{ marginRight: "0.25rem" }} /> Android
    </>
  ),
  value: "android",
},
{
  label: (
    <>
      <Icon icon="mdi:apple" height="1.5rem" style={{ marginRight: "0.25rem" }} /> Apple
    </>
  ),
  value: "apple",
},
{
  label: (
    <>
      <Icon icon="mdi:terminal" height="1.5rem" style={{ marginRight: "0.25rem" }} /> CLI
    </>
  ),
  value: "cli",
},
{
  label: (
    <>
      <Icon icon="mdi:internet" height="1.5rem" style={{ marginRight: "0.25rem" }} /> Web
    </>
  ),
  value: "web",
},

]}>

Android

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

Apple

В списке узлов долго нажмите на узел назначения и выберите 'Trace Route' для отправки запроса. В зависимости от количества прыжков это может занять некоторое время. На iOS/iPadOS 17 и macOS 14+ результаты будут показаны в логе Trace Route узла в деталях узла. Для более ранних версий проверьте Settings > Logging > Mesh Log.

CLI

Убедитесь, что CLI версии не ниже 2.0.6. Затем используйте эту команду:

```shell title="CLI traceroute command" meshtastic --traceroute 'destinationId'


Здесь вместо `destinationId` укажите ID узла назначения, прыжки к которому хотите отследить; его можно получить, выполнив `meshtastic --nodes`. В зависимости от ОС может потребоваться заключить ID в кавычки. Затем будет отправлено специальное сообщение для отслеживания прыжков. Пример вывода:

```shell title="Traceroute from !25048234 to !bff18ce4"
meshtastic --traceroute '!bff18ce4'
Connected to radio
Sending traceroute request to !bff18ce4 (this could take a while)
Route traced towards destination:
!25048234 --> !ba4bf9d0 (6.0dB) --> !bff18ce4 (-3.5dB)
Route traced back to us:
!bff18ce4 --> !ba4bf9d0 (-2.75dB) --> !25048234 (5.25dB)

Первый показанный ID — это устройство-источник, подключенное через CLI. Как показано на изображении выше, пакет прошел через один дополнительный узел к получателю и обратно.

Web

После выбора узла из списка нажмите кнопку "route" в правом верхнем углу, чтобы отправить запрос traceroute выбранному узлу. Результат будет отображен на странице сообщений узла.