构建 Thread 网络并测试其与互联网的连接。
启动 `ot-ctl` 会话
ot-ctl
会公开 OpenThread CLI 命令,如需了解详情,请参阅 OpenThread CLI 指南。
如果使用 Docker,请按如下方式启动 ot-ctl
会话:
docker exec -it otbr ot-ctl
如果使用原生主机,请按如下方式启动 ot-ctl
会话:
sudo ot-ctl
构建 Thread 网络
生成新的网络配置。
dataset init new
Done查看新的网络配置。
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将新数据集提交到非易失性存储设备中的有效运营数据集。
dataset commit active
Done启用 Thread 接口。
ifconfig up
Donethread start
Done在 Linux 主机控制台中(而非
ot-ctl
会话中),使用ifconfig
查看新的 Thread 网络接口:ifconfig wpan0
wpan0: flags=4305mtu 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 网络,并测试其是否已连接到互联网。
如需详细了解如何构建和刷写 Nordic nRF52840 平台,请参阅使用 nRF52840 开发板和 OpenThread Codelab 构建 Thread 网络。
构建并刷写后,在新终端窗口中使用
screen
访问 CLI。例如,如果设备安装在端口/dev/ttyACM1
上:screen /dev/ttyACM1 115200
按 Enter 键,调出
>
OpenThread CLI 提示。
将第二个节点加入 Thread 网络
使用第二个 Thread 节点的 OpenThread CLI,将该节点加入由 OTBR 创建的 Thread 网络。
使用 OTBR 中的最低要求值更新节点的 Thread 网络凭据:
dataset networkkey f366cec7a446bab978d90d27abe38f23
Donedataset commit active
Done调出 Thread 界面并启动 Thread:
ifconfig up
Donethread start
Done该节点应自动加入 OTBR Thread 网络。两分钟内,其状态应为
router
:state
router
Ping 公共地址
此时,您应该能够从独立线程节点对公共 IPv4 地址执行 ping 操作。由于 Thread 仅使用 IPv6,因此公共 IPv4 地址将与 Thread 网络中的 NAT64 前缀结合,自动转换为 IPv6。
如需查看 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 前缀。从独立 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 与互联网通信。