表單執行緒網路

在 GitHub 上查看來源

建立 Thread 網路,並測試與網際網路的連線。

啟動 `ot-ctl` 工作階段

ot-ctl 會公開 OpenThread CLI 指令,詳情請參閱 OpenThread CLI 指南

如果使用 Docker,請按照下列步驟啟動 ot-ctl 工作階段:

docker exec -it otbr ot-ctl

如果使用原生主機,請按照下列步驟啟動 ot-ctl 工作階段:

sudo ot-ctl

建立 Thread 網路

  1. 產生新的網路設定。

    dataset init new
    Done
    
  2. 查看新的網路設定。

    dataset
    Active Timestamp: 1
    Channel: 15
    Wake-up Channel: 16
    Channel Mask: 0x07fff800
    Ext PAN ID: 39758ec8144b07fb
    Mesh Local Prefix: fdf1:f1ad:d079:7dc0::/64
    Network Key: f366cec7a446bab978d90d27abe38f23
    Network Name: OpenThread-5938
    PAN ID: 0x5938
    PSKc: 3ca67c969efb0d0c74a4d8ee923b576c
    Security Policy: 672 onrc 0
    Done
    
  3. 將新資料集提交至非揮發性儲存空間中的 Active Operational Dataset。

    dataset commit active
    Done
    
  4. 啟用 Thread 介面。

    ifconfig up
    Done
    thread start
    Done
    
  5. 在 Linux 主機主控台 (不在 ot-ctl 工作階段中) 中,使用 ifconfig 查看新的 Thread 網路介面:

    ifconfig wpan0
    wpan0: flags=4305  mtu 1280
            inet6 fe80::3c98:89e8:ddec:bda7  prefixlen 64  scopeid 0x20
            inet6 fd4d:b3e5:9738:3193:0:ff:fe00:fc00  prefixlen 64  scopeid 0x0
            inet6 fd4d:b3e5:9738:3193:0:ff:fe00:f800  prefixlen 64  scopeid 0x0
            inet6 fd4d:b3e5:9738:3193:39c4:ee02:ca9e:2b1d  prefixlen 64  scopeid 0x0
            unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  txqueuelen 500  (UNSPEC)
            RX packets 16  bytes 1947 (1.9 KiB)
            RX errors 0  dropped 3  overruns 0  frame 0
            TX packets 7  bytes 1152 (1.1 KiB)
            TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
    

顯示第二個 Thread 節點

在 OTBR 啟用及運作後,請將獨立的 Thread 節點新增至 Thread 網路,並測試網路連線功能。

請參閱「使用 nRF52840 開發板和 OpenThread 程式碼研究室建構 Thread 網路」,瞭解如何建構及刷新 Nordic nRF52840 平台的詳細操作說明。

  1. 建構及閃燈後,請在新的終端機視窗中使用 screen 存取 CLI。舉例來說,如果裝置已掛載至 /dev/ttyACM1 連接埠:

    screen /dev/ttyACM1 115200
    

  2. 按下 Enter 鍵,即可顯示 > OpenThread CLI 提示。

將第二個節點加入 Thread 網路

使用 OpenThread CLI 為第二個 Thread 節點,將節點加入由 OTBR 建立的 Thread 網路。

  1. 使用 OTBR 的最低必要值更新節點的 Thread 網路憑證:

    dataset networkkey f366cec7a446bab978d90d27abe38f23
    Done
    dataset commit active
    Done
    

  2. 顯示 Thread 介面並啟動 Thread:

    ifconfig up
    Done
    thread start
    Done
    

  3. 節點應會自動加入 OTBR Thread 網路。兩分鐘內,其狀態應為 router

    state
    router
    

對公開位址執行連線偵測

此時,您應該可以從獨立的執行緒節點 ping 公開 IPv4 位址。由於 Thread 只使用 IPv6,因此公開 IPv4 位址會與 Thread 網路中的 NAT64 前置字串結合,自動轉譯為 IPv6。

  1. 如要查看 Thread 網路中的 NAT64 前置字元,請按照下列步驟操作:

    netdata show
    Prefixes:
    fd3e:d39b:d91:1::/64 paros low 1800
    Routes:
    ::/0 s med 1800
    fd3e:d39b:d91:2:0:0::/96 sn low 1800
    Services:
    Contexts:
    fd3e:d39b:d91:1::/64 1 c
    Commissioning:
    12156 - - -
    
    fd3e:d39b:d91:2:0:0::/96 是 Thread 網路中的 NAT64 前置字元。

  2. 從獨立 Thread 節點的 CLI 連線偵測 (ping) IPv4 位址,測試其網際網路連線:

    ping 8.8.8.8
    Pinging synthesized IPv6 address: fd3e:d39b:d91:2:0:0:808:808
    16 bytes from fd3e:d39b:d91:2:0:0:808:808: icmp_seq=1 hlim=113 time=73ms
    1 packets transmitted, 1 packets received. Packet loss = 0.0%. Round-trip min/avg/max = 73/73.0/73 ms.
    Done
    

大功告成!第二個 Thread 節點現在可以透過 OTBR 與網際網路通訊。