メッシュのコミッション

GitHub でソースを見る

コミッショナーとジョイナー

コミッショナーには、コミッター ロールのあるデバイスと 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
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 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
Done
joiner start J01NME
Done

確認が完了するまで数秒待ちます。

Join success!

Joiner デバイスはコミッショナーで自ら認証され、Thread ネットワーク認証情報を受信しました。

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

thread start
Done

認証を検証する

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

state
child
Done
...
state
router
Done