Lorawan-stack: Создание устройств на дополнительном сервере присоединения

Созданный на 22 июн. 2020  ·  12Комментарии  ·  Источник: TheThingsNetwork/lorawan-stack

Резюме

Создавайте устройства с корневыми ключами на дополнительных серверах соединения, таких как Global Join Server

Почему нам это надо?

В настоящее время невозможно создать устройство, например, на сервере Global Join Server, и активировать его в регионе, размещенном в облаке TTI, через консоль. Требуется командная строка с нетривиальной конфигурацией. У нас возникнет такая же проблема в сети сообщества.

Мы хотим, чтобы люди использовали Global Join Server по умолчанию, чтобы с самого начала помещать ключи в нужное место.

Что там уже есть? Что ты видишь сейчас?

Консоль поддерживает два режима создания устройства; Внешний сервер присоединения (опыт отслеживается на https://github.com/TheThingsNetwork/lorawan-stack/issues/2119) и локальный сервер присоединения кластера. В # 2644 уже идут улучшения; это было бы продолжением шага мастера.

Чего не хватает? Что вы хотите увидеть?

Множественные варианты, настраиваемые. Например, в TTI Cloud Hosted:

  1. Создать на сервере Global Join Server; введенные ключи будут установлены на <tenant>.join.cloud.thethings.industries . Это означает межкластерный вызов
  2. Создать на локальном сервере присоединения кластера; введенные ключи будут настроены на кластер маршрутизации
  3. Используйте сторонний сервер присоединения (например, сервер присоединения Semtech); существующее поведение

Как вы предлагаете это реализовать?

Доступность, имя и адрес кластера являются конфигурацией. Нам понадобится следующая конфигурация:

console:
  extra-join-servers:
    - name: 'Global Join Server'
      address: 'join.cloud.thethings.industries'
      join-euis:
        - '70B3D57ED0000000/64'
    - name: 'My Custom Join Server'
      address: 'example.com'
      join-euis:
        - '0000000000000000/0'

Локальный кластерный сервер присоединения неявно доступен, если сервер присоединения включен в конфигурации консоли.

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

Как вы предлагаете это проверить?

  1. Отключить сервер присоединения к кластеру в консоли: должна быть возможность создавать устройства только на стороннем сервере присоединения
  2. С 1: настроить сервер присоединения к кластеру как дополнительный: extra-join-servers: [{ name: 'Test', address: 'localhost' }] : должно быть два варианта, с сервером присоединения к кластеру как «дополнительный», показанный как «Тест».

Можете ли вы сделать это самостоятельно и отправить запрос на слияние?

Можно просмотреть

console in progress uweb

Все 12 Комментарий

Просто для ясности:

В настоящее время невозможно создать устройство, например, на сервере Global Join Server, и активировать его в регионе, размещенном в облаке TTI, через консоль.

Это технически возможно, но конечное устройство необходимо зарегистрировать дважды: на внешнем JS, а затем в размещенном в облаке. Правильно?

Множественные варианты, настраиваемые. Например, в TTI Cloud Hosted:
1. Создать на сервере глобального соединения; введенные ключи будут установлены на.join.cloud.thethings.industries. Это означает межкластерный вызов
2. Создать на кластерно-локальном сервере соединения; введенные ключи будут настроены на кластер маршрутизации
3. Используйте сторонний сервер присоединения (например, сервер присоединения Semtech); существующее поведение

Итак, вариант 2 уже поддерживается в Консоли. Варианты 1 и 3 в некоторой степени поддерживаются, но кто-то (пользователь или производитель устройства должен зарегистрировать / потребовать конечное устройство на внешнем / стороннем JS). Если вы понимаете это правильно, все, что мы пытаемся сделать, - это упростить вариант 1, чтобы конечные устройства регистрировались только в CH один раз, а ключи автоматически сохранялись в GJS. Для варианта 3 текущей функциональности для external JS должно хватить. Это правильно?

Доступность, имя и адрес кластера являются конфигурацией. Нам понадобится следующая конфигурация:

Как это настроено? Это уже поддерживается в стеке?

Это технически возможно, но конечное устройство необходимо зарегистрировать дважды: на внешнем JS, а затем в размещенном в облаке. Правильно?

Да, но именно здесь создание и настройка сбивают с толку. Устройство создано на IS + JS, но еще не на NS + AS. Итак, он указан, но не полон. В кластере маршрутизации пользователю нужно будет перейти к устройству и «отредактировать» его.

Если вы понимаете это правильно, все, что мы пытаемся сделать, - это упростить вариант 1, чтобы конечные устройства регистрировались только в CH один раз, а ключи автоматически сохранялись в GJS.

да. Итак, для ясности: ручная вставка ключей все еще происходит, но теперь в консоли кластера маршрутизации.

Для варианта 3 текущей функциональности для external JS должно хватить. Это правильно?

Да, здесь нет никаких изменений, хотя мы могли бы сейчас назвать этот «сторонний сервер присоединения».

Как это настроено? Это уже поддерживается в стеке?

Нет, это новая конфигурация консоли.

Расширен пример с помощью префиксов JoinEUI для каждого сервера соединения. Это должно ограничить запись JoinEUI.

Повышение приоритета, поскольку концепция Global Join Server остается сложной задачей cc @benolayinka

Связанная заблокированная проблема: https://github.com/TheThingsNetwork/lorawan-stack/issues/2694

Надеюсь, не заблокировано улучшение формы UX в целом?

Я пытаюсь понять, что именно нужно от пользователя в каждом конкретном случае:

Вариант 1. Активировать на GJS
Пользователь вводит:
DevEUI - предоставляется mfr (или создается пользователем, если это arduino)
JoinEUI - предоставляется mfr (или создается пользователем, если это arduino)
AppKey - создается пользователем
NwkKey - создается пользователем
Присоединиться к серверу - флажок «также активировать на GJS» установлен по умолчанию.

Вариант 2: активировать на кластере JS
Пользователь вводит:
DevEUI - предоставляется mfr (или создается пользователем, если это arduino)
JoinEUI - предоставляется mfr (или создается пользователем, если это arduino)
AppKey - создается пользователем
NwkKey - создается пользователем
Присоединиться к серверу - снимите флажок "использовать GJS"

Вариант 3: сторонний JS
DevEUI - должен быть предоставлен производителем
JoinEUI - должен быть предоставлен производителем
AppKey - создается пользователем
NwkKey - создается пользователем
Присоединиться к серверу - выберите «сторонний»

два дополнительных qs

  1. Означает ли это, что пользователи могут зарегистрировать любую пару DevEUI / JoinEUI в GJS? разве это не открывает дверь для конфликтов?
  2. каков процесс последующей активации устройства в другом кластере, которое ранее было зарегистрировано в GJS?

@benolayinka ваше понимание правильное. Незначительное замечание: _provisioning_ происходит (1) на GJS или (2) кластерном JS, или инициализация уже произошла на (3) внешнем сервере соединения. В варианте 3 нет никаких сгенерированных или предоставленных корневых ключей: это как сейчас.

  • Означает ли это, что пользователи могут зарегистрировать любую пару DevEUI / JoinEUI в GJS? разве это не открывает дверь для конфликтов?

Да, но это уже так. Мы выясним это позже, когда заявим о праве собственности на устройство.

2. каков процесс последующей активации устройства в другом кластере, которое ранее было зарегистрировано в GJS?

Это в основном (3): значит, устройство уже подготовлено. Поэтому в вариантах 1 и 2 должно быть ясно, что речь идет о предоставлении ключей (и пользователь выбирает где), а вариант 3 указывает на уже подготовленное устройство.

@bafonins что это заблокировано?

Удаление prio/medium

@johanstokking Пользовательский интерфейс заблокирован на https://github.com/TheThingsNetwork/lorawan-stack/issues/2813.

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

Включите это в новые экраны для создания конечного устройства.

Заменено на # 3770

Была ли эта страница полезной?
0 / 5 - 0 рейтинги