背景
随着IoT的快速发展,越来越多的设备使用IoT能力,实现远程的数据采集、数据分析、设备管理。然而故障诊断、设备配置等运维工作却依然在现场执行。如以下场景:
场景一:扫地机器人不工作,寄回厂家返修,厂家用软件工具检测发现,只是某个传感器沾灰了,擦一下就好了。
场景二:某企业门禁打卡异常,运维人员上门,发现是因异常断电导致配置文件错误,重新配置一下就恢复了。
类似场景还有很多,设备运维目前多数还是依赖现场运维的方式,时效性和经济性都不高,设备厂商付出了很大的成本却没有换来好的客户体验;
如果故障诊断工作能够提前,诊断后能远程操作恢复,将给企业和用户都带来极大的便利。
技术挑战
IoT设备和运维PC都能连网,为什么运维PC不能远程访问IoT设备?
-
没有公网IP:IoT设备一般没有公网IP,可通过NAT网关连接互联网,但不能被互联网外部设备通过公网IP直接访问。
-
没有访问权限:NAT网关都有自己的安全防护策略,不支持外网直接访问内网设备。
-
解决内网穿透问题,常见的解决方案有NAT穿透或者虚拟专用网络(VPN)。
-
NAT穿透:也叫P2P打洞,实现免服务器两个端点对点通信,但由于NAT网关类型多穿透过程复杂,以致成功率低,并不可靠;
-
虚拟专用网络(VPN):VPN也是一种远程访问技术,通过公网搭建专有网络。IoT设备一般通过VPN网关才能使用VPN,成本高、依赖外部网络部署。
IoT设备因运行网络环境碎片化,设备资源有限,以上两种内网穿透方式并不能很好满足IoT设备的远程访问需求。
阿里云物联网平台结合自身的消息传输能力,推出了安全隧道功能,提供易用、低成本、安全、可靠的远程访问IoT设备的能力。
安全隧道技术
通过物联网平台进行流转,提供给访问端与设备端之间安全可靠的双向数据流传输能力。该数据流同TCP的数据流一样,可确保数据是顺序到达的。用户可使用隧道传输任意协议的数据,如SSH、Telnet、FTP等TCP的应用协议数据,也支持自定义协议数据。
安全隧道会话:安全隧道的底层实现是TCP连接,在TCP/IP四层模型中,一个TCP连接上只有一个应用层,如HTTP、SSH。为了让单个隧道可被多个应用同时使用,安全隧道在应用层和传输层之间增加了会话层,数据收发以会话作为基本单元。隧道提供多会话管理能力,能让会话能像TCP连接一样使用,每个会话承载一个应用,单个隧道最大支持10个会话。
注:单个隧道的传输能力有上限,如果会话的数据过多,建议创建多个隧道。
安全隧道价值
安全隧道的核心是提供内网穿透的能力,打破用户在运维时的网络限制。除核心能力外,物联网平台安全隧道还具有以下特性,在使用成本、易用性、安全、可扩展等方向上都做了优化。
安全隧道技术方案
1.创建安全隧道
安全隧道功能打通了物联网平台的消息服务和隧道服务,通过消息服务可对设备的隧道完成创建、开启/关闭、删除,实现设备只需一套身份即可同时使用两种服务。
隧道创建的流程:
-
设备建连:设备使用MQTT协议连接消息服务,通过设备认证信息鉴权,完成消息链路搭建。
-
创建隧道:访问端通过云端api或者控制台完成隧道创建,返回隧道建连信息。
下发隧道建连信息:隧道创建后,物联网平台会给设备发送隧道建连信息,包含隧道令牌(token),用户自定义信息。 -
设备端隧道连接:设备端收到隧道建连信息后,连接隧道服务,通过隧道令牌(token)鉴权。
-
访问端隧道连接:访问端创建隧道成功后,也获得隧道建连信息,连接隧道服务。
访问端和设备端都连接上隧道服务后,即可使用隧道进行双向通信,以上过程都使用TLS加密,确保传输安全。
2.创建会话
隧道建立以后,由访问端发起会话,设备端响应会话。会话有个关键属性:会话类型,由用户定义,设备根据会话类型决定该会话数据的传输目的地。
建立会话前,用户需预设置会话类型与设备本地服务IP和端口的映射关系,如:[_SSH会话]–>[127.0.0.1: 22]。
安全隧道应用
完成隧道创建及会话创建后,可通过两种方式处理传输的数据,TCP本地代理方式和自定义处理方式。
TCP本地代理方式:会话的数据收发将由本地代理处理,本地代理会对接收到的数据透传给对应TCP服务。常见场景:外网通过TCP协议访问内网设备的TCP服务,设备端作为server,访问端作为client。
以SSH会话建连为例描述工作流程:
-
设备端代理:配置会话类型与服务地址的映射关系,连接上物联网平台隧道服务
-
访问端代理:配置监听端口号与会话类型的映射,连接上物联网平台隧道服务
-
SSH客户端:连接访问端代理,端口xxx。
-
访问端代理:接收端口xxx连接请求,根据端口识别为SSH会话,发起创建SSH类型会话
-
设备端代理:接收到SSH类型会话创建请求,根据会话类型找到服务地址[127.0.0.0:22],连接SSH服务,返回会话创建结果。
-
访问端代理:收到会话创建结果,反馈给SSH客户端
以上过程完成会话创建,后面的数据传输本地代理会透传数据,最终效果就像是SSH客户端直连SSH服务。
自定义处理方式:会话的数据收发将由用户自定义处理。常见场景:UDP协议使用隧道、串口传输转换为隧道传输。
对于非TCP协议的应用场景,用户可基于开源协议进行对接,也可基于SDK进行改造,修改SDK中关于会话的创建与数据收发的部分代码。
安全隧道扩展 – 远程登录
安全隧道很好的解决了IoT设备的远程访问问题,但用户在运维的时候,还是要先部署访问端,为进一步提高隧道的易用性,阿里云物联网平台针对安全隧道高频使用的场景–SSH登录设备,扩展了远程登录功能。实现免环境部署,在控制台即可登录设备,同时提供协作及容灾能力,支持远程登录分享、设备主动请求登录的特性。
不需要安装任何软件,在控制台(web页面)即可通过SSH远程登录设备,体验如同局域网登录设备。
结语
借助阿里云 IoT 物联网平台的安全隧道功能,我们可以实现可实现远程访问、远程诊断和管理设备,避免出差旅途奔波,降低企业运营成本。
往期推荐
☞ 中国云计算第一股关停 IoT云服务
☞ 2022年IoT平台趋势:私有化部署
☞ 5个值得分享的物联网创业失败教训
☞ 2021年4G通信模组企业排行
☞ 国内 4 大 IoT物联网平台选型对比
☞ 云厂商的 [IoT物联网平台] 不香了吗?
本文章来源于互联网,如有侵权,请联系删除!原文地址:不想出差,基于安全隧道技术在家搞定 IoT 设备远程故障诊断和恢复
课程背景 物联网应用开发,并不像 Web 开发那样有固定的模式和框架可以学习,开发者往往还是需要从协议这一层慢慢往上搭积木,学习曲线比较陡。本课程结合物联网应用开发常用的设计模式以及作者多年的开发经验,带你从 0 开始搭建一个物联网平台,希望本课程所体现的架构…