背景
隨著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、Te.NET、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 物聯網平臺的安全隧道功能,我們可以實現可實現遠程訪問、遠程診斷和管理設備,避免出差旅途奔波,降低企業運營成本。
原文鏈接:
https://mp.weixin.qq.com/s/Sun7LY3QbAFE9Yc6eNl_lw轉載自:loT物聯網技術
文章來源于知間
原文鏈接:不想出差,基于安全隧道技術在家搞定 IoT 設備遠程故障診斷和恢復
本文來源網絡,免費傳達知識,版權歸原作者所有。如涉及作品版權問題,請聯系我進行刪除。