OTBR Docker を起動したら、Thread ネットワークを形成し、インターネットへの接続をテストします。
Thread ネットワークを形成する

OTBR Docker を実行しているマシンで次の手順を行います。
ブラウザ ウィンドウを開き、127.0.0.1:8080 に移動します。OTBR Docker が正しく実行されている場合、OTBR Web GUI が読み込まれます。
[フォーム] メニュー オプションを選択して、デフォルトの認証情報の一部を変更します。デフォルトの Channel と On-Mesh Prefix の値をそのまま使用することをおすすめします。何を使用しても、後でそれを別個のスレッドノードをテストできるようにメモしておきます。
パラメータ | 値の例 |
---|---|
ネットワーク名 | OTBR4444 |
PAN ID | 0x4444 |
ネットワーク キー | 33334444333344443333444433334444 |
拡張 PAN ID | 3333333344444444 |
パスフレーズ | 444444 |
チャンネル | 15 |
オンメッシュ接頭辞 | fd11:22:: |
[FORM](フォーム)を選択して Thread ネットワークを形成します。OTBR Docker を実行しているターミナル ウィンドウで出力を確認します。on-mesh 接頭辞と SLAAC アドレスを追加すると、otbr-agent
のログ出力が表示されます。
otbr-agent[224]: [INFO]-CLI-----: execute command: prefix add fd11:22::/64 pasor
この出力は、Thread ネットワークのインターネット接続に必要です。
2 番目のスレッドノードを起動する
OTBR Docker を起動して実行した後、スタンドアロン Thread ノードを Thread ネットワークに追加し、インターネットに接続されているかどうかをテストします。
OTBR Docker で物理 RCP を使用する場合は、2 番目の物理スレッドノードを使用してテストします。OTBR Docker でシミュレートされた RCP を使用する場合は、2 番目のシミュレーション ノードを使用してテストします。
物理スレッドノード
任意の対応プラットフォームで、スタンドアロン スレッドノードを作成してフラッシュします。このノードは、特定のビルドスイッチでビルドする必要はありません。
基本的なビルド手順については、OpenThread をビルドするをご覧ください。
Nordic nRF52840 プラットフォームの構築とフラッシュの手順について詳しくは、nRF52840 ボードと OpenThread Codelab を使用してスレッド ネットワークを構築するをご覧ください。
ビルドしてフラッシュしたら、USB 経由で OTBR Docker を実行しているマシンに Thread デバイスを接続します。新しいターミナル ウィンドウで
screen
を使用して、CLI にアクセスします。たとえば、デバイスがポート/dev/ttyACM1
にマウントされている場合:screen /dev/ttyACM1 115200
Enter キーを押して
>
OpenThread CLI プロンプトを表示します。
シミュレートされたスレッドノード
OTBR Docker を実行しているマシンで新しいターミナル ウィンドウを開きます。
CLI アプリケーションを起動して、シミュレートされたノードを起動します。
cd ~/openthread
./output/simulation/bin/ot-cli-ftd 2
Enter キーを押して
>
OpenThread CLI プロンプトを表示します。
2 番目のノードを Thread ネットワークに接続する
物理ノードまたはシミュレートされた Thread ノードに OpenThread CLI を使用して、ノードを OTBR Docker によって作成された Thread ネットワークに接続します。
OTBR Docker の最小限の値を使用して、ノードの Thread ネットワーク認証情報を更新します。
dataset networkkey 33334444333344443333444433334444
Donedataset commit active
DoneThread インターフェースを起動して Thread を起動します。
ifconfig up
Donethread start
Doneノードが OTBR スレッド ネットワークに自動的に参加します。2 分以内に、状態が
router
になります。state
routerノードのネットワーク アドレスを作成するときに、スレッド ネットワーク作成時の指定に従って、
fd11:22::/64
というメッシュ上の接頭辞を持つ IPv6 アドレスがあることを確認します。ipaddr
fd11:22:0:0:614e:4588:57a1:a473 fd33:3333:3344:0:0:ff:fe00:f801 fd33:3333:3344:0:1b5f:db5:ecac:a9e fe80:0:0:0:e0c4:5304:5404:5f70:98cd
パブリック アドレスへの ping
この時点で、スタンドアロンの Thread ノードからパブリック IPv4 アドレスを ping できるはずです。Thread は IPv6 のみを使用するため、パブリック IPv4 アドレスを ping するには、IPv6 に変換し、OTBR のネットワーク アドレス変換(NAT)で使用される 64:ff9b::/64
のよく知られた接頭辞と組み合わせる必要があります。
変換された IPv4 アドレスを取得するには、findipv6.com などのウェブサイトを使用します。
テストする IPv4 アドレスを変換します。たとえば、IPv6 に変換された
172.217.164.110
は::ffff:acd9:a46e
です。結果の IPv6 アドレスの最後の 4 バイトのみを使用して、
64:ff9b::/64
のよく知られた接頭辞と組み合わせて新しい IPv6 アドレスを取得します。 64:ff9b::acd9:a46eスタンドアロン Thread ノードの CLI からこの新しい IPv6 アドレスを ping し、インターネット接続をテストします。このアドレスの ping は元の IPv4 アドレスの ping に似ています。
ping 64:ff9b::acd9:a46e
16 bytes from 64:ff9b:0:0:0:0:acd9:a46e: icmp_seq=1 hlim=118 time=45ms
完了しました。2 番目のスレッドノードは、OTBR Docker を介してインターネットと通信できるようになりました。