コミッショナーには、コミッター ロールのあるデバイスと 1 つ(Joiner ロール)を持つデバイスが必要です。コミッショナーは、既存の Thread ネットワーク内の Thread デバイス、または コミッター ロールを実行する Thread ネットワーク外のデバイス(スマートフォンなど)です。Joiner は、Thread ネットワークへの参加をリクエストしているデバイスです。
Thread Commissioner はデバイスをネットワーク上で認証するために使用されます。ネットワーク キーなどの Thread ネットワーク認証情報を転送または所有することはありません。
このガイドでは、外部コミッショナーまたはボーダー ルーターを使用しない、基本的なメッシュでのコミッショニングについて説明します。外部コミッショナーの使用方法については、外部スレッド コミッショニングをご覧ください。
仮想デバイスを使用してコミッションの例については、OpenThread シミュレーション Codelab をご覧ください。
ロールを有効にする
コミッタとコメンターのロールを有効にするには、次の cmake オプションを使用します。
オプション | 説明 |
---|---|
-DOT_COMMISSIONER=ON |
コミッショナーのロールを有効にする |
-DOT_JOINER=ON |
Joiner ロールを有効にする |
たとえば、Joiner としてのみ使用する CC2538 サンプル プラットフォームをビルドするには、次のようにします。
./script/build -DOT_JOINER=ON
各バイナリを目的のデバイスにフラッシュします。一方のデバイスはコミッショナーとして機能し、もう一方のデバイスはコミッショナーとして機能します。
サポートされているプラットフォームの構築やフラッシュに関する具体的な手順については、各プラットフォームの OpenThread リポジトリをご覧ください。OpenThread GitHub 組織を参照して、リポジトリを見つけます。
ネットワークの作成
コミッショナーとして機能するデバイス上にネットワークを作成します。
dataset init new
Donedataset
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 Donedataset commit active
Doneifconfig up
Donethread start
Done
数秒待ってから、デバイスが Thread リーダーになったことを確認します。
state
leader
Done
コミッショナーのロールを開始する
同じデバイスでコミッショナーのロールを開始します。
commissioner start
Done
ワイルドカードを使用して * 指定すると、指定した Joiner 認証情報を持つすべての Joiner がネットワークにアクセスできるようになります。Joiner 認証情報が(拡張 PAN ID およびネットワーク名とともに)デバイスの事前共有キー(PSKd)を生成します。PSKd は、Thread のコミッション中にデバイスを認証するために使用されます。Joiner Credential はデバイスごとに一意である必要があります。
commissioner joiner add * J01NME
Done
特定の結合者に制限
特定の Joiner デバイスにコミッションを制限するには、eui64
パラメータを使用します。これは、デバイスで工場出荷時に割り当てられた IEEE EUI-64 です。
Joiner として機能するデバイスで EUI-64 を取得します。
eui64
2f57d222545271f1
Done
コミッショナー デバイスの commissioner joiner
コマンドで、ワイルドカード(*)の代わりにその値を使用します。
commissioner joiner add 2f57d222545271f1 J01NME
Done
Joiner のロールを開始する
Joiner として機能するデバイスで工場出荷時リセットを行い、コミッターで指定された同じ Joiner Credential を使用して Joiner ロールを有効にします。
factoryreset
ifconfig up
Donejoiner start J01NME
Done
確認が完了するまで数秒待ちます。
Join success!
Joiner デバイスはコミッショナーで自ら認証され、Thread ネットワーク認証情報を受信しました。
Joiner デバイスで Thread を起動します。
thread start
Done
認証を検証する
Joiner デバイスの状態を調べて、Joiner デバイスがネットワークに接続されたことを確認します。2 分以内に、子からルーターに状態が遷移します。
state
child Done ...state
router Done