OT CLI を使用したセキュアな CoAP リソースへの接続テスト

GitHub でソースを表示

OpenThread は、Secure CoAP サーバーとクライアントの両方の機能を提供します。これにより、デバイスは Secure CoAP サーバー上のリソースに接続し、各リソースの現在の状態の変化を監視できます。

Secure CoAP は、Datagram Transport Layer Security(DTLS)を使用して、安全なエンドツーエンドの接続を確立します。

CLI で提供される Secure CoAP エージェントは、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 コマンドは、アルファベット順に coaps connect で始まります。

Secure CoAP サーバーとクライアント コマンドの使用例

この例では、基本的な CLI コマンドを使用して Secure CoAP サーバーとクライアントを起動し、Secure CoAP サーバーにテストリソースを作成し、Secure CoAP クライアントがそのリソースとやり取りします。サンプルデータは説明のみを目的としています。

DTLS 暗号スイートを構成する

coaps CLI には、PSK 鍵と X.509 証明書で使用できる psk コマンドと x509 コマンドが用意されています。コマンド構文と例については、coaps pskcoaps 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: で、その後に 16 進数形式のすべてのペイロード バイトが続きます。この例では、with payload: 68656c6c6f576f726c6400 は、リソースの現在のペイロードが 16 進数値 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 は、typecon または non-con の場合に、オプションの payload パラメータを使用する例です。詳細については、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

68656c6c6f7468657265payload 値は、ASCII コードバイト シーケンスに変換された文字列 hellothere です。