Проверка подключения к защищенному ресурсу CoAP с помощью OT CLI

Посмотреть исходный код на GitHub

OpenThread предлагает как серверную, так и клиентскую функциональность Secure CoAP, позволяя устройствам подключаться к ресурсам на сервере Secure CoAP и отслеживать каждый ресурс на предмет изменения его текущего состояния.

Secure CoAP использует Datagram Transport Layer Security (DTLS) для установления безопасных сквозных соединений.

Агент Secure CoAP, предоставленный в CLI, может действовать как клиент Secure CoAP или сервер Secure CoAP.

В этом руководстве представлены основные задачи, в которых используются некоторые из наиболее распространенных команд Secure CoAP ( coaps ).

Безопасные команды CoAP

Чтобы просмотреть список команд Secure CoAP, введите help :

coaps help
connect
delete
disconnect
get
isclosed
isconnactive
isconnected
post
psk
put
resource
set
start
stop
x509
Done

Справочник команд CLI

Описания и синтаксис всех команд см. в Справочнике команд CLI. Команды Secure CoAP начинаются в алфавитном порядке с coapsconnect .

Пример использования команд сервера Secure CoAP и клиента

В этом примере используются базовые команды CLI для запуска сервера и клиента Secure CoAP, создания тестового ресурса на сервере Secure CoAP и взаимодействия клиента Secure CoAP с ресурсом. Данные выборки используются в иллюстративных целях.

Настройка наборов шифров DTLS

Интерфейс командной строки coaps предоставляет команды psk и x509 , которые можно использовать с ключом PSK и сертификатом X.509. Синтаксис команд и примеры см. в документах coaps psk и coaps x509 .

Настройте сервер Secure CoAP

На узле сервера Secure CoAP выполните следующие действия:

  1. Запустите агент Secure CoAP.

    coaps start
    Done
    
  2. Создайте тестовый ресурс.

    coaps resource test-resource
    Done
    

Настройте клиент Secure CoAP

На клиентском узле Secure CoAP выполните следующие действия:

  1. Запустите агент Secure CoAP:

    coaps start
    Done
    
  2. Запустите команду connect , чтобы инициализировать сеанс DTLS с партнером:

    coaps connect fdde:ad00:beef:0:9903:14b:27e0:5744
    Done
    coaps connected
    
  3. Запустите команду get , чтобы получить информацию о ресурсе:

    coaps get test-resource
    Done
    coaps response from fdde:ad00:beef:0:9903:14b:27e0:5744 with payload: 68656c6c6f576f726c6400
    

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

  4. Вы можете изменить ресурс с помощью команды put :

    coaps put test-resource con hellothere
    Done
    coaps response from fdde:ad00:beef:0:9903:14b:27e0:5744
    

    В этом примере con означает, что вы хотите, чтобы надежное сообщение, полученное с использованием подтверждаемого сообщения ( con ), было отправлено на сервер Secure CoAP. По умолчанию отправляется неподтверждаемое ( non-con ) сообщение.

    Строка hellothere — это пример использования необязательного параметра payload , когда typecon или non-con . Для получения дополнительной информации обратитесь к Coaps Put .

    Сервер отвечает своим адресом IPv6, чтобы указать, что запрос был обработан.

Ответы отправляются на сервер Secure CoAP.

На сервере выходные данные этого примера будут выглядеть примерно так:

coaps request from fdde:ad00:beef:0:9e68:576f:714c:f395 GET
coaps response sent
coaps request from fdde:ad00:beef:0:9e68:576f:714c:f395 PUT with payload: 68656c6c6f7468657265
coaps response sent

Значение payload 68656c6c6f7468657265 — это строка hellothere преобразованная в последовательность байтов кода ASCII.