オンメッシュ コミッショニング

GitHub のソースを表示

コミッショナーと参加者

委任設定には、委任者ロールを持つデバイスと参加者ロールを持つデバイスの 2 台のデバイスが必要です。コミッショナーは、既存の Thread ネットワーク内の Thread デバイス、または Thread ネットワーク外のデバイス(スマートフォンなど)で、コミッショナーの役割を果たします。参加者は、Thread ネットワークに参加するデバイスです。

Thread コミッショナーは、ネットワークへのデバイスの認証に使用されます。ネットワーク鍵などの Thread ネットワーク認証情報を転送したり、所有したりすることはありません。

このガイドでは、外部のコミッショナーまたはボーダー ルーターを使用せずに、メッシュ上での基本的なコミッショニングについて説明します。外部コミッショナーの使用方法については、外部スレッドのコミッショニングをご覧ください。

仮想デバイスを使用した構成の例については、OpenThread シミュレーション Codelab をご覧ください。

ロールを有効にする

コミッショナー ロールと参加者ロールを有効にするには、次の cmake オプションを使用します。

オプション 説明
-DOT_COMMISSIONER=ON コミッショナーのロールが可能
-DOT_JOINER=ON 参加者のロールを有効にする

たとえば、ジョイナーのみで使用する CC2538 サンプル プラットフォームをビルドするには、次のコマンドを使用します。

./script/build -DOT_JOINER=ON

各バイナリを目的のデバイスにフラッシュします。一方のデバイスがコミッショナーとして機能し、もう一方が参加者として機能します。

サポートされているプラットフォームのビルドと書き込みの具体的な手順については、各プラットフォームの OpenThread リポジトリをご覧ください。リポジトリについては、OpenThread GitHub 組織をご覧ください。

ネットワークの作成

コミッショナーとして機能するデバイスにネットワークを作成します。

dataset init new
Done
dataset
Active Timestamp: 1
Channel: 13
Channel Mask: 07fff800
Ext PAN ID: d63e8e3e495ebbc3
Mesh Local Prefix: fd3d:b50b:f96d:722d/64
Network Key: dfd34f0f05cad978ec4e32b0413038ff
Network Name: OpenThread-8f28
PAN ID: 0x8f28
PSKc: c23a76e98f1a6483639b1ac1271e2e27
Security Policy: 0, onrcb
Done
dataset commit active
Done
ifconfig up
Done
thread start
Done

数秒待ってから、デバイスがスレッドリーダーになったことを確認します。

state
leader
Done

コミッショナー ロールを開始する

同じデバイスで、コミッショナーのロールを始めます。

commissioner start
Done

* ワイルドカードを使用すると、指定された参加者認証情報を持つすべての参加者がネットワークにコミッションを設定できます。Joiner 認証情報は、デバイスの事前共有キー(PSKd)を生成するために(拡張 PAN ID およびネットワーク名とともに)使用されます。PSKd は、スレッド コミッショニング中にデバイスを認証するために使用されます。参加者の認証情報はデバイスごとに一意である必要があります。

commissioner joiner add * J01NME
Done

特定の参加者に制限する

特定の Joiner デバイスに構成を制限するには、eui64 パラメータを使用します。これは、デバイスに工場で割り当てられた IEEE EUI-64 です。

ジョイナーとして機能するデバイスで EUI-64 を取得します。

eui64
2f57d222545271f1
Done

コミッショナー デバイスの commissioner joiner コマンドでは、* ワイルドカードの代わりにこの値を使用します。

commissioner joiner add 2f57d222545271f1 J01NME
Done

新入社員のロールを始める

参加者として機能するデバイスで出荷時設定にリセットし、委任者で指定された同じ参加者認証情報を使用して参加者ロールを有効にします。

factoryreset
ifconfig up
Done
joiner start J01NME
Done

数秒で確定します。

Join success!

参加デバイスがコミッショナーで正常に認証され、Thread ネットワークの認証情報を受け取った。

次に、参加デバイスで Thread を開始します。

thread start
Done

認証を検証する

参加デバイスの状態を確認して、ネットワークに接続されていることを確認します。2 分以内に、状態が子からルーターに移行します。

state
child
Done
...
state
router
Done