1. Thread边界路由工程概述
Thread是一种基于IEEE 802.15.4物理层、面向低功耗IPv6物联网设备的网状网络协议。它把6LoWPAN压缩、IPv6寻址、Mesh路由、UDP传输、链路层安全与网络管理整合为一套可自愈的网状网络,常用于智能家居、楼宇照明、传感器网络和工业监测。与Wi-Fi、蓝牙Mesh、Zigbee相比,Thread的关键差异在于:它原生使用IPv6,每个节点拥有可路由地址,网络可通过边界路由器与外部IP网络直接互通,而不需要复杂的应用层网关做协议翻译。
Thread网络中的设备分为两类角色。终端设备(End Device)通常是电池供电的传感器、开关或门锁,它们通过父节点接入网络,可休眠以节省功耗。路由器(Router)由市电供电,承担转发、路由维护和网络扩展职责,Thread最多允许32个活跃路由器,其余路由器可退化为“可路由终端”(REED)以降低开销。边界路由器(Border Router)则是Thread网络与外部网络之间的桥梁,它同时连接Thread网状网络和另一个IP网络(如以太网、Wi-Fi或蜂窝网络),并对外通告Thread前缀,使外部主机能够访问Thread内的设备。
边界路由器的作用远不止“转发IP包”。它通常承担以下职责:第一,提供IPv6前缀代理(NCP/OTBR中的Prefix Delegation),把外部网络分配的前缀引入Thread网络;第二,运行mDNS/DNS-SD服务发现,让外部设备通过服务名找到Thread内的节点;第三,提供NAT64或IPv4可达性,使仅支持IPv4的云服务能够访问Thread设备;第四,维护Thread网络与外部网络之间的路由和防火墙策略;第五,在Thread网络内部,边界路由器还常兼任Leader或Router角色,参与Mesh路由维护。因此,边界路由器既是“网关”,也是“路由器”,还是“服务代理”。
Silicon Labs为Thread边界路由提供了完整的软硬件方案。硬件侧,EFR32MG系列SoC(如MG21、MG24)集成2.4GHz射频、Cortex-M33内核和硬件加密加速器,可作为Thread RCP(Radio Co-Processor)或SoC运行完整协议栈。软件侧,Silicon Labs提供Gecko SDK、Simplicity Studio、OpenThread和ot-br-posix(OpenThread Border Router)参考实现。典型架构是:EFR32MG运行OpenThread RCP固件,通过UART或SPI连接到运行Linux的主机(如Raspberry Pi或i.MX平台),主机上运行otbr-agent和wpantund,对外通过以太网或Wi-Fi连接云端。这种“RCP+主机”架构把实时射频任务与IP服务分离,便于升级和调试。
学习Thread边界路由工程,建议按“协议基础→OpenThread API→RCP固件→主机侧otbr-agent→服务发现与NAT64→安全与运维”的路径推进。先理解Thread的Mesh路由、MLE、CoAP和6LoWPAN,再掌握OpenThread的CLI和API,然后动手烧录RCP固件、配置otbr-agent、验证前缀通告和mDNS,最后处理边界路由的故障排查与性能调优。下面这张图展示了Thread边界路由器在整体网络中的位置,以及Silicon Labs方案中RCP与主机侧的连接关系。
从图中可以看到,Thread Mesh网络内部由路由器节点和终端设备组成,边界路由器位于Mesh与外部IP网络之间。Silicon Labs方案中,EFR32MG作为RCP通过UART/SPI与Linux主机通信,主机侧运行otbr-agent和wpantund,负责前缀通告、mDNS服务发现、NAT64和防火墙策略。外部云平台通过IPv6或NAT64访问Thread设备。理解这张拓扑,是后续配置RCP固件、调试otbr-agent和排查边界路由故障的基础。