具有 CoAP 和 NAT 穿越功能的物联网设备

Suk*_*fer 5 tcp nat coap iot

上下文:每个客户在 NAT 后面可以有 100-1000 个物联网设备。我们有多个客户。目的是从外部管理这些设备。设备使用 CoAP 协议,默认使用 udp。

限制很少。

  • 无法激活端口转发。
  • 无法打开 VPN 连接。
  • IoT 设备的本地网络无法进行任何更改。

问题 我们想随时从外部打开与设备的连接。但是有 NAT 阻止它。

选项 据我了解,设备必须打开初始请求才能进行通信。

以下哪个选项是关于可扩展性和效率的最佳选项?

  1. 每个节点发送 udp ping 以保持 NAT 连接打开。
  2. 每个节点使用 TCP 并发送 keepalive 以保持 NAT 连接打开。
  3. 每个节点与 udp 通信到 NAT 后面的本地代理。代理执行从 coap 到 http 的映射。代理使用 TCP 建立与服务器的连接,并发送 keepalive 以保持 NAT 连接打开。
  4. 与选项 3 相同,但本地代理使用 WebSocket 而不是普通 TCP。

非常感谢

小智 1

LWM2M 的官方答案是排队模式,请参阅https://www.slideshare.net/OpenMobileAlliance/oma-lwm2m-tutorial-by-arm-to-ietf-ace的幻灯片 30 或https://mbed的幻灯片 19 -media.mbed.com/filer_public/c1/c3/c1c35bec-5f0e-4a28-a422-115248c9a181/armmbed-lwm2m-webinar.pdf了解更多信息。因此,所提出的解决方案并未在上面的1.至4.中列出,而是使用LWM2M协议以注册更新的形式发送“ping”。

从安全角度来看,如果您部署到公共互联网,我建议:

a) 您必须使用 DTLS

b) 您应该支持设备固件更新,并能够非常快速地部署带补丁的新固件。

个人观点:LWM2M 从设计上就被打破了,因为它从物联网设备是服务器的(错误)想法开始。