第16期2023年8月无线互联科技
Wireless Internet Technology
No.16August,2023
作者简介:张松(1998 ),男,河南长垣人,硕士研究生;研究方向:云计算技术㊂
∗通信作者:陈鲤文(1979 ),男,福建福州人,副教授,博士;研究方向:智能机器人,认知物联网㊂
基于OpenStack 的物联网云平台创新搭建
张㊀松,陈鲤文∗
(福建工程学院,福建福州350000)
摘要:云计算的技术特点是按需分配和管理计算资源,这为管理物联网边缘传感资源提供了技术参考㊂为实现物联网边缘传感资源的管理,文章提出了基于开源云架构OpenStack 和开源物联网解决方案Stack4Tings 构建了物联网云平台,通过在控制节点安装OpenStack 基础服务,在物联网节点安装Stack4Tings 相关服务,将搭载RK3568的开发板作为边缘传感资源进行实验测试,证明了物联网云平台的
可用性,实现了对边缘传感资源的管理,为大型物联网项目保护信息安全提供了方案参考㊂关键词:物联网;云计算;Stack4Tings ;OpenStack
中图分类号:TP31㊀㊀文献标志码:A 0㊀引言
㊀㊀云计算是指配置了相关的计算服务模块,用户根据自身项目需求选择服务器㊁系统等计算资源进行项目开发的技术㊂其技术特点可以扩展到物联网传感资源的管理,实现物联网和云计算的方法和技术的融合[1],这将会成为项目开发人员的另一种选择㊂大规模物联网项目中的传感器通常会有几个数量级的数量分散部署,物联网包含了物联对象的所有信息,不可避免地带来了信息安全问题㊂为了有效地管理边缘传感设备和物联网信息安全[2],迫切需要一种管理机制,即需要创建管理传感资源的动态基础设施的解决方案㊂因此,本文基于开源云架构OpenStack 和开源物联网解决方案Stack4Tings 构建了物联网云平台,能够管理边缘传感资源和保障物联网信息安全,为开发大型物联网项目提供了方案参考㊂
1㊀OpenStack 和Stack4Tings
1.1㊀OpenStack 简介及其组件
㊀㊀OpenStack 是一个旨在为公共及私有云的建设与管理提供软件支持的开源项目[3],各个组件之间相互关联,协同管理各类计算㊁存储和网络资源,其特点为模块松耦合㊁组件配置灵活和二次开发简单等㊂物联网云平台搭建选用的核心组件及其功能介
绍如下㊂(1)Keystone:身份认证服务[4],是OpenStack 框架中负责验证用户身份㊁设定访问服务
规则和签发服务令牌的组件㊂具体表现为访问资源和执行操作需要验证用户的身份与权限㊂Keystone
可以说是整个Openstack 框架的注册表,OpenStack 中各项服务都是通过Keystone 来注册其网络端口(服务访问的URL),在本平台中会注册物联网服务的网络端口进行功能调用,实现对边缘开发板实例的创建㊁查询和删除等㊂(2)Horizon:仪表盘服务,为OpenStack 提供了一个Web 前端的管理界面,管理员可以通过前端界面直观地看到各种操作结果与运行状态㊂
1.2㊀Stack4Ting 简介及其组件㊀㊀Stack4Things 是一个开源的物联网框架,由意大
利墨西拿大学的移动和分布式系统实验室开发[5]㊂Stack4Things 可以不用获取嵌入式设备的物理位置㊁网络配置和底层技术就能够管理物联网设备,是一个面向云的水平解决方案,提供物联网对象虚拟化㊁定制和编排服务㊂
Stack4Things 物联网框架主要包含3部分㊂
(1)IoTronic:物联网平台核心服务,部署在云基础设施侧,同OpenStack 其他服务类似,需要通过Keystone 注册获得其网络端口㊂该组件主要接收用户命令,传递命令到开发板,接收开发板的数据反馈到云端,完
成将OpenStack 云计算架构扩展到传感资源管理的任务㊂(2)Lighting -Rod:边缘开发板侧服务程序,完成来自云端用户命令的接收和与开发板上的外接传感资源交互的任务,同时将传感器获得的数据上传云端㊂(3)IoTronicClient:命令行工具,通过Keystone 服务认证的用户可以使用IoTronicClient 命令行工具输
入相关命令实现对开发板的创建㊁查询和删除等
操作㊂
2㊀物联网云平台的设计
㊀㊀本文设计了物联网平台的总体架构,如图1所示㊂总体架构主要分为两部分:云基础设施侧和边缘开发板侧,重点注重于OpenStack 组件和Stack4Tings 组件的分布情况㊂在云基础设施侧,Keystone 服务完成对用户的认证,IoTronic 组件代表了物联网云平台的核心,管理数据库,存储所有必要的信息㊂在边缘开发板侧,Lighting -Rod 作为板侧软件架构的核心,代表了云基础设施的接触点,通过WebSocket 全双工通道连接到一个特定的WAMP 路由器与IoTronic 进行通信,完成与云端收发命令和数据的任务
图1㊀物联网平台总体架构
同时,本文给出了云基础设施侧和边缘开发板侧之间具体的信息交互,如图2所示㊂假定用户已经通过身份认证,操作物联网云平台的具体信息流程如下:(1)用户通过命令行工具或者Web 前端界面连接到IoTronic 服务㊂(2)用户命令转化为对IoTronic
API 接口的调用,同时将调用消息放进RabbitMQ 消息队列㊂(3)IoTronic conductor 从消息队列中提取消息并查询数据库检查用户要操作的开发板是否已经注册,如果已注册则获取该开发板的WAMP 通信协议代理㊂(4)IoTronic conductor 向消息队列推送新的
消息,WAMP 通信协议代理从消息队列中提取消息,并在相应的WAMP 路由的主题上发布信息㊂(5)在边缘开发板侧,通过WAMP 库,Lighting -Rod 从路由上获得信息,同时打开反向套接字隧道连接到由云端IoTronic conductor 指定的网络套接字隧道代理,并且
生成一个TCP 端口㊂(6)隧道代理通过指定的端口发布一条用户命令被执行的消息到消息队列中㊂
(7)IoTronic API 接口从消息队列中提取消息显示在Web 前端界面
图2㊀物联网平台内部信息流
3㊀物联网云平台的搭建
3.1㊀OpenStack 基础云架构搭建
㊀㊀对于OpenStack 基础云架构的搭建主要包含以下几个步骤:(1)基础环境搭建㊂本次搭建采用一台4
核4G 内存㊁Centos7系统的虚拟机作为基础云架构的controller 节点㊂基础设置包括设置虚拟机双网卡模式(NAT 和主机模式),关闭防火墙并设置开机不启动,安装MySQL 数据库㊁RabbitMQ 消息队列服务㊁
Memcached 缓存服务等㊂(2)安装OpenStack 相关服务㊂Keystone 身份验证服务和Horizon 仪表盘服务,
本文采用的是先电云平台一键式搭建㊂(3)搭建成功验证㊂在浏览器上输入controller 节点的IP 地址进入云平台登录界面可以验证是否安装成功㊂云平台
登录界面如图3所示
图3㊀云平台登录界面
3.2㊀Stack4Things 物联网架构搭建
㊀㊀对于Stack4Things 物联网架构搭建主要包含以下几个步骤:(1)搭建前准备㊂在controller 节点准备完成后,需要在MySQL 数据库创建名为 iotronic 的数据库,使用Keystone 服务创建名为 iotronic 用户并将用户加入项目域,再创建名为 iot 的服务并为该服务注册网络端口以供用户访问㊂(2)Stack4Things
相关组件安装㊂此次搭建采用一台4核4G 内存㊁Ubuntu18.04系统的虚拟机作为IoTroinc 节点㊂安装Crossbar 服务,Crossbar 实现了开放式Web 应用程序消息传递协议(WAMP),上文提到的WAMP 路由由此服务提供㊂安装IoTroinc 服务,是物联网云平台的核心㊂安装apache2服务,作用为开放该节点特定的网路端口㊂(3)IoTroinc 服务相关进程开启㊂通过systemctl 命令开启conductor㊁WAMP agent 等进程,并
设置为开机自启动㊂3.3㊀边缘开发板侧架构搭建
㊀㊀对于边缘开发板侧架构的搭建主要包含以下几个步骤:(1)搭建前准备㊂本次搭建采用一块MPU 为RK3568的开发板,运行Debian10系统㊂安装JavaScript 运行环境NodeJS㊁反向代理服务器NGINX 和自动化安全证书管理工具Certbot㊂(2)Lighting -Rod 安装㊂安装完成后通过systemctl 命令运行Lighting -Rod㊂安装完成后登录界面如图4所示
图4㊀Lighting -Rod 登录界面
360云平台4㊀物联网平台测试
㊀㊀本次测试在云基础设施侧和边缘开发板侧分别测试㊂在云基础设施侧的测试为在controller 节点创建用户,用户通过IoTronicClient 命令行工具进行创建㊁查看和删除开发板设备实例㊂边缘开发板侧的测试为通过命令行配置数据并在Web 端登录开发板,与数据库中创建的开发板实例相匹配㊂
云基础设施侧测试:通过IotronicClient 命令行工具输入命令 iotronic board -create <name><code><type><latitude><longitude><altitude> ,<name>代表
要创建开发板的名字,<code >代表开发板唯一标识符,在边缘开发板侧实际注册时需要提供此标识符,当恶意攻击者要将设备接入云端会因数据库没有该实例或者无法提供开发板标识符而失败,从而保证了物联网信息安全㊂<latitude><longitude>和<altitude>分别代表纬度㊁经度和海拔,用于记录开发板设备安装的位置㊂输入命令 iotronic board -list 查看已创建
的开发板实例,输出为开发板的UUID㊁名字㊁类型㊁板侧Lighting -Rod 版本㊁引脚数量㊁在线状态等㊂可见当物联网项目部署在边缘的采集设备数量巨大时,可以在云端实时管理和查看设备是否还在正常运行㊂输入命令 iotronic board -delete <id -of -board> 删除
指定开发板实例㊂当不需要某处的数据采集时,可进行删除操作回收采集设备㊂本次测试是创建开发板实例㊁查看实例列表和删除开发板实例,测试结果皆成功,如图5所示㊂测试结果证明了,通过keystone 授权的用户可以对边缘传感资源进行管理,证明了物联网云平台的可用性
图5㊀创建㊁查看和删除开发板实例
边缘开发板侧测试:本次测试分为模拟未获取开发板实例标识符的攻击者恶意接入云端和云端用户
正常接入云端㊂在云端创建名为 rk3568 开发板实例的标识符为000001㊂在开发板安装Lighting -Rod 后,命令行输入lr_configure <code><wamp -url>注册
开发板,其中<code >为创建实例的标识符,<wamp -url>为WAMP 路由的URL㊂假定攻击者输入的命令为lr_configure 000002ws://192.168.100.40ʒ
8181,通过登录开发板Web 界面查看开发板状态如图6所示,结果显示该开发板没有接入云端㊂假定云端用户正常接入云端输入的命令为lr _configure
000001ws://192.168.100.40ʒ8181,通过登录开发板Web 界面查看开发板状态如图7所示,结果显示该开发板成功接入云端㊂两者相较物联网云平台保证了物联网项目的安全
图6㊀开发板未接入云端
5 结语
㊀㊀本文基于云计算开源项目OpenStack 和物联网开源项目Stack4Tings 构建了物联网云平台,将按需
分配和管理计算资源的云计算技术特点扩展到对物联网传感资源的管理,实现了物联网和云计算的方法和技术的融合㊂该物联网平台能够实现对边缘传感资源的管理,使得大型物联网项目部署传感资源更快捷,同时也能保障物联网信息的安全㊂下一步工作是将外接传感器的开发板应用到某个场景中,配合OpenStack 存储服务将采集的数据同步上传云端,同时进行网络前端的开发,实现一键式数据采集㊁上传㊁
存储和计算功能
图7㊀开发板成功接入云端
参考文献
[1]舒俊.云计算在物联网领域的应用研究[J ].中国高新科技,2023(2):109-111.
[2].云计算技术在基于信任的物联网中的应用[J ].无线互联科技,2023(6):103-105.
[3]曹海平.基于OpenStack 的云计算平台设计与实现[J ].信息记录材料,2023(4):237-239.
[4]尹誉衡.OpenStack Keystone 认证机制研究[J ].计算机技术与发展,2021(2):122-126.
[5]BRUNEO D ,DISTEFANO S.Stack4Things as a fog
computing platform for smart city applications :2016IEEE conference on computer communications workshops [C ].
New York :IEEE ,2016.
(编辑㊀沈㊀强)
Innovative construction of IoT cloud platform based on OpenStack
Zhang Song Chen Liwen ∗
Fujian University of Technology Fuzhou 350000 China
Abstract The technical feature of cloud computing is the on -demand allocation and management of computing
resources which provides a technical reference for managing edge sensing resources in the Internet of Things.To
achieve the management of edge sensing resources in the Internet of Things the article proposes a IoT cloud platform based on the open -source cloud architecture OpenStack and the open -source IoT solution Stack4Tings.By installing OpenStack basic services at the control node and Stack4Tings related services at the IoT node the development board
equipped with RK3568is used as edge sensing resources for experimental testing proving the usability of the IoT cloud
platform The management of edge sensing resources has been achieved providing a solution reference for protecting information security in large -scale IoT projects.
Key words IoT cloud computing Stack4Tings OpenStack