(重新)将现有的 Lora-wan 终端设备加入另一个网络服务器

物联网 联网 罗拉万 无线更新
2021-06-09 16:18:18

我们正在将 Lora-wan 网关和终端设备从 Loriot 转移到另一个开源网络服务器。但是,当我们尝试使用 OTAA 重新加入时,我们的某些设备遇到了问题。

将终端设备连接并加入另一个网络服务器的“最佳实践”是什么?您是否总是能够使用下行链路重置或重新加入设备,或者是否有另一种聪明的方法来做到这一点?

1个回答

不幸的是,LoRaWAN 1.0.x 规范没有定义任何标准方式让终端设备重新加入同一个或另一个 LoRaWAN 网络并生成新的会话密钥。这是一个很大的操作问题。想象一下如果您的生产网络服务器丢失(由于数据中心灾难)所有会话密钥会发生什么。所有设备都将断开连接,而无法重新连接。(LoRaWAN 1.1 引入了一种新的消息类型:重新加入请求,解决了这个问题。)

设备制造商通常在其固件的应用层实施专有解决方案,让设备在会话密钥丢失后加入同一个或新的网络。最常见的技术是在检测到网络服务器停止响应 LinkADRReq MAC 命令后(一段时间:例如:6 小时),设备发送新的 JoinRequests,直到新的或恢复的 NS 回复一个新的 JoinAccept 以便新的可以创建会话密钥。

根据我的经验,90% 的设备制造商(但不是全部)都实施了这项技术。因此,我建议使用以下程序将终端设备从旧 NS 移动到新 NS。

  1. 对连接到当前网络服务器的所有类型的设备执行实验室测试,并检查它们是否真的在一段时间未连接后尝试重新加入。(您可以从当前的 NS 中删除该设备,然后立即重新配置它,以确保它的会话密钥已被删除。)
  2. 从当前网络服务器中删除所有设备
  3. 在您的新网络服务器上配置您的所有设备
  4. 访问那些在未收到 LinkADRAns 消息时不会自动重新加入的设备 (<10%) 并手动重新启动它们。(在开始迁移过程之前,您必须在实验室测试期间识别所有这些设备)
  5. 等到其余设备重新加入新网络。

这个程序远不理想,但目前没有更好的方法。(理论上,您可以逐个设备地复制会话密钥,从旧 NS 到新 NS,但在实践中,它需要与新旧 NS 供应商进行额外的集成工作,这将太昂贵。)