表單執行緒網路

在 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 與網際網路通訊。