接続をテストする

GitHub でソースを見る

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

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

OTBR ウェブ GUI ホーム

OTBR Docker を実行しているマシンで、次のようにします。

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

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

パラメータ 値のサンプル
ネットワーク名 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 つ目の物理スレッドノードを使用してテストします。OTBR Docker でシミュレートされた RCP を使用する場合は、2 つ目のシミュレート ノードを使用してテストします。

物理スレッドノード

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

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

Nordic nRF52840 プラットフォームの作成とフラッシュの詳しい手順については、nRF52840 ボードと OpenThread Codelab を使用して Thread ネットワークを構築するをご覧ください。

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

    screen /dev/ttyACM1 115200
    

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

シミュレーションした Thread ノード

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

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

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

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

2 番目のノードを 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 スレッド ネットワークに参加する必要があります。状態は 2 分以内に router になります。

    state
    router
    

  4. ノードの IP アドレスの IPv6 アドレスに、Thread ネットワーク形成中に指定された fd11:22::/64 の on-mesh 接頭辞があることを確認します。

    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 番目のスレッドノードが OTBR Docker を介してインターネットと通信できるようになりました。