接続をテストする

GitHub でソースを見る

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

Thread ネットワークを形成する

OTBR ウェブ GUI のホーム

OTBR Docker を実行しているマシンで、次のコマンドを実行します。

ブラウザ ウィンドウを開き、127.0.0.1:8080 に移動します。OTBR Docker が正しく実行されている場合、OTBR ウェブ GUI が読み込まれます。

[フォーム] メニュー オプションを選択し、デフォルトの認証情報を変更します。デフォルトのチャネルとオンメッシュ プレフィックスの値をそのまま使用することをおすすめします。いずれの方法でも、後で別の Thread ノードをテストできるように、値をメモしておきます。

パラメータ 値のサンプル
ネットワーク名 OTBR4444
PAN ID 0x4444
ネットワーク キー 33334444333344443333444433334444
拡張 PAN ID 3333333344444444
パスフレーズ 444444
チャンネル 15
オンメッシュ プレフィックス fd11:22::

[FORM] を選択して Thread ネットワークを形成します。OTBR Docker を実行しているターミナル ウィンドウで出力を確認します。オンメッシュ プレフィックスと SLAAC アドレスの追加に関する otbr-agent ログ出力が表示されます。

otbr-agent[224]: [INFO]-CLI-----: execute command: prefix add fd11:22::/64 pasor

この出力は、Thread ネットワークのインターネット接続に必要です。

2 つ目の Thread ノードを起動する

OTBR Docker が稼働したら、スタンドアロンの Thread ノードを Thread ネットワークに追加し、インターネットに接続されていることをテストします。

OTBR Docker で物理 RCP を使用する場合は、2 つ目の物理 Thread ノードを使用してテストします。OTBR Docker でシミュレートされた RCP を使用する場合は、2 番目のシミュレートされたノードを使用してテストします。

物理スレッドノード

任意の対応プラットフォームでスタンドアロン Thread ノードをビルドしてフラッシュします。このノードは、特定のビルドスイッチでビルドする必要はありません。

基本的なビルド手順については、OpenThread をビルドするをご覧ください。

Nordic nRF52840 プラットフォームのビルドと書き込みの詳細な手順については、nRF52840 ボードと OpenThread Codelab を使用して Thread ネットワークを作成するをご覧ください。

  1. ビルドと書き込みが完了したら、OTBR Docker を実行しているマシンに Thread デバイスを USB 経由で接続します。新しいターミナル ウィンドウで screen を使用して CLI にアクセスします。たとえば、デバイスがポート /dev/ttyACM1 にマウントされている場合:

    screen /dev/ttyACM1 115200
    

  2. Enter キーを押して、> OpenThread CLI プロンプトを表示します。

シミュレートされたスレッドノード

  1. OTBR Docker を実行しているマシンで新しいターミナル ウィンドウを開きます。

  2. CLI アプリケーションを起動して、シミュレートされたノードを起動します。

    cd ~/openthread
    ./build/simulation/examples/apps/cli/ot-cli-ftd 2
    

  3. Enter キーを押して、> OpenThread CLI プロンプトを表示します。

2 番目のノードを Thread ネットワークに接続する

物理 Thread ノードまたはシミュレートされた Thread ノードの OpenThread CLI を使用して、OTBR Docker によって作成された Thread ネットワークにノードを参加させます。

  1. OTBR Docker で必要な最小値を使用して、ノードの Thread ネットワーク認証情報を更新します。

    dataset networkkey 33334444333344443333444433334444
    Done
    dataset commit active
    Done
    

  2. Thread インターフェースを表示して Thread を開始します。

    ifconfig up
    Done
    thread start
    Done
    

  3. ノードは OTBR Thread ネットワークに自動的に接続されます。2 分以内に、その状態は router になります。

    state
    router
    

  4. ノードの IP アドレスを調べて、Thread ネットワーク形成時に指定したメッシュ上の接頭辞が 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 アドレスは Thread ネットワークの NAT64 プレフィックスと組み合わせて自動的に IPv6 に変換されます。

  1. Thread ネットワークの NAT64 プレフィックスを表示するには:

    netdata show
    Prefixes:
    fd11:22:0:0::/64 paros med d400
    Routes:
    fdb5:7875:8e0e:2:0:0::/96 sn low d400
    fd11:1111:1122:2222::/64 s med d400
    Services:
    44970 5d fd5179ed685532847aaa91505f016bbad11f s d400
    44970 01 00000500000e10 s d400
    Done
    
    ここで、fdb5:7875:8e0e:2:0:0::/96 は Thread ネットワークの NAT64 プレフィックスです。

  2. スタンドアロン Thread ノードの CLI から IPv4 アドレスに ping を実行して、インターネット接続をテストします。

    ping 8.8.8.8
    Pinging synthesized IPv6 address: fdb5:7875:8e0e:2:0:0:808:808
    16 bytes from fdb5:7875:8e0e:2:0:0:808:808: icmp_seq=15 hlim=119 time=48ms
    

完了しました。これで、2 番目の Thread ノードは OTBR Docker を介してインターネットと通信できるようになりました。