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

GitHub 上のソースを見る

コミッショナーと参加者

コミッショニングには、Commissioner ロールを持つデバイス 1 台と、Joiner ロールを持つデバイス 1 台が必要です。コミッショナーは、既存の Thread ネットワーク内の Thread デバイス、またはコミッショナーの役割を果たす Thread ネットワーク外のデバイス(スマートフォンなど)のいずれかです。Joiner は、Thread ネットワークへの参加を希望するデバイスです。

Thread Commissioner は、デバイスをネットワークに認証するために使用されます。ネットワーク キーなどの Thread ネットワーク認証情報を転送したり、所有したりしません。

このガイドでは、外部の Commissioner や Border Router を使用しない、基本的なオンメッシュのコミッショニングについて説明します。外部 Commissioner の使用方法については、外部 Thread Commissioning をご覧ください。

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

ロールを有効にする

Commissioner ロールと Joiner ロールを有効にするには、次の cmake オプションを使用します。

オプション 説明
-DOT_COMMISSIONER=ON Commissioner ロールを有効にする
-DOT_JOINER=ON 参加者ロールを有効にする

たとえば、CC2538 のサンプル プラットフォームを Joiner 専用としてビルドするには:

./script/build -DOT_JOINER=ON

各バイナリを目的のデバイスに書き込みます。1 つのデバイスはコミッショナーとして機能し、もう 1 つのデバイスはジョイナーとして機能します。

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

ネットワークの作成

Commissioner として機能するデバイスでネットワークを作成します。

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

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

state
leader
Done

コミッショナーの役割を開始する

同じデバイスで、Commissioner ロールを開始します。

commissioner start
Done

* ワイルドカードを使用して、指定された Joiner Credential を持つ任意の Joiner がネットワークにコミッショニングできるようにします。Joiner Credential は、(Extended PAN ID と Network Name とともに)デバイスの事前共有キー(PSKd)を生成するために使用されます。PSKd は、Thread Commissioning 中にデバイスの認証に使用されます。Joiner Credential はデバイスごとに一意である必要があります。

commissioner joiner add * J01NME
Done

特定の Joiner に制限する

コミッショニングを特定の Joiner デバイスに制限するには、デバイスの工場出荷時に割り当てられた IEEE EUI-64 である eui64 パラメータを使用します。

Joiner として機能するデバイスで、EUI-64 を取得します。

eui64
2f57d222545271f1
Done

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

commissioner joiner add 2f57d222545271f1 J01NME
Done

参加者ロールを開始する

Joiner として機能するデバイスで、出荷時の設定にリセットしてから、Commissioner で指定した Joiner 認証情報と同じ Joiner 認証情報を使用して Joiner ロールを有効にします。

factoryreset
ifconfig up
Done
joiner start J01NME
Done

数秒待って確認します。

Join success!

Joiner デバイスは Commissioner で認証され、Thread ネットワークの認証情報を取得しました。

次に、Joiner デバイスで Thread を起動します。

thread start
Done

認証を検証する

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

state
child
Done
...
state
router
Done