我们正在将 Lora-wan 网关和终端设备从 Loriot 转移到另一个开源网络服务器。但是,当我们尝试使用 OTAA 重新加入时,我们的某些设备遇到了问题。
将终端设备连接并加入另一个网络服务器的“最佳实践”是什么?您是否总是能够使用下行链路重置或重新加入设备,或者是否有另一种聪明的方法来做到这一点?
我们正在将 Lora-wan 网关和终端设备从 Loriot 转移到另一个开源网络服务器。但是,当我们尝试使用 OTAA 重新加入时,我们的某些设备遇到了问题。
将终端设备连接并加入另一个网络服务器的“最佳实践”是什么?您是否总是能够使用下行链路重置或重新加入设备,或者是否有另一种聪明的方法来做到这一点?
不幸的是,LoRaWAN 1.0.x 规范没有定义任何标准方式让终端设备重新加入同一个或另一个 LoRaWAN 网络并生成新的会话密钥。这是一个很大的操作问题。想象一下如果您的生产网络服务器丢失(由于数据中心灾难)所有会话密钥会发生什么。所有设备都将断开连接,而无法重新连接。(LoRaWAN 1.1 引入了一种新的消息类型:重新加入请求,解决了这个问题。)
设备制造商通常在其固件的应用层实施专有解决方案,让设备在会话密钥丢失后加入同一个或新的网络。最常见的技术是在检测到网络服务器停止响应 LinkADRReq MAC 命令后(一段时间:例如:6 小时),设备发送新的 JoinRequests,直到新的或恢复的 NS 回复一个新的 JoinAccept 以便新的可以创建会话密钥。
根据我的经验,90% 的设备制造商(但不是全部)都实施了这项技术。因此,我建议使用以下程序将终端设备从旧 NS 移动到新 NS。
这个程序远不理想,但目前没有更好的方法。(理论上,您可以逐个设备地复制会话密钥,从旧 NS 到新 NS,但在实践中,它需要与新旧 NS 供应商进行额外的集成工作,这将太昂贵。)