工业级 5G 无线路由器的软件研究与设计

2024-01-16 11:30申利民蒋应龙
电子制作 2023年24期
关键词:配置文件网管路由器

申利民,蒋应龙

(1.广州铁路职业技术学院,广东广州,510430;2.中认英泰检测技术有限公司,江苏苏州,215000)

0 引言

近年来,新一轮科技革命和产业变革快速发展,互联网由消费领域向生产领域快速延伸,工业经济向数字化、网络化、智能化深度拓展,互联网创新发展与新工业革命形成交融发展,形成了工业互联网[1]。通过跨设备、系统、厂区等生产要素互联互通,实现各种生产和服务资源更高效率、更加精准地优化配置,实现提质、增效、绿色、安全发展,推动制造业高端化、智能化、绿色化,大幅提升工业经济发展质量和效益。工业互联网的发展,需要工业级无线路由器,特别是在当前我国5G 网络在工业生产的逐渐普及,实现工业生产过程数字信号通过5G 工业路由器的信号传递,实现工业级5G 无线路由器软件安全稳定的应用成为行业紧迫需求。

1 5G 工业路由器的体系结构

5G 工业路由器的体系结构如图1 所示,嵌入式操作系统OpenWRT 运行在以处理器上IPQ8064,在其外设驱动的支持下提供给上层应用程序API 接口,以便应用程序开发调用。微处理器处理通信协议和应 用程序方面的操作。用嵌入式操作系统OpenWRT 进行系统任务的任务调度。5G 模块选用工业模组MH5000-31,此组核心采用华为巴龙5000 芯片,负责5G 数据处理。该体系结构采用模块化层次结构进行设计具有层次性好、易扩展、配置灵活、性能优 越的特点[2]。

图1 工业路由器体系结构图

2 5G 工业路由器的硬件组成

5G 工业路由器作为工业互联网数据接入设备,实现工业数据接入5G 通信网络发挥着重要作用。其中微处理芯片IPQ8064 包括一个总吞吐量为的网络加速器5Gbps,IPQ8064 通常在双核SMP Krait 上运行OpenWRT Linux IP 堆栈,而NSS 加速了网络流量(快速路径)。NSS 在Linux 的完全控制下运行堆栈NSS 中的规则由Linux 堆栈设置[3]。

工业级5G 无线路由器由图2 各部分组成,电源模块、电源控制电路、以太网芯片、中央处理器(central processing unit, CPU)、5G 模块及5G 天线、全球定位系统(Global Positioning System,GPS)天线、WiFi 模块及天线、存储芯片、USB 口、串口。其中以太网芯片组用来实现工业级5G 路由器与互联网数据互连,5G 模块实现工业级5G 路由器与移动、联通等电信运营商所运营的5G移动通信互连,并具备GPS 卫星导航定位的功能,存储芯片主要用来存储路由器程序及数据,电源模块主要用来给路由器供电,电源控制电路主要用来控制电源模块工作模式,CPU 微处理控制器主要用来集中控制管理。USB 接口、串口用来与外部数据交互。

图2 工业路由器硬件框图

3 5G 工业路由器软件结构平台

由于OpenWRT 系统对微处理器架构具有良好的适配性,5G 工业路由器使用OpenWRT 作为嵌入式操作系统,OpenWRT 高度模块化的特性非常适合进行定制化软件开发,能够满足系统的稳定性和功能需求[4]。5G 工业路由器软件平台架构如图3 所示,根据功能特性,5G 工业路由器软件平台分为数据接入层、数据分析层、接入控制层和应用服务层。其中数据接入层负责5G 数据、WiFi 数据等采集,数据分析层完成各种不同类型数据的分析处理,接入控制层完成对5G 工业路由接入设备的管理、命令的发放,应用服务层完成数据分析层数据的处理后的动态路由及本身设备日志及参数配置管,理路由器下连多种感知端设备,软件平台通过分析接口类型和协议种类,负责将数据在本地进行处理或者上传至物联管理平台。

图3 5G 工业路由器软件平台架构

4 工业路由器应用程序框图及启动流程

■4.1 工业路由器应用程序框图

系统应用程序框图如图4 所示,整个系统应用程序采用多任务并行方式执行。硬件检测采定时用轮询的方式实时检测相关硬件状态,如果检测到新事件产生,则通过消息方式告知应用程序消息处理任务,由其调用相应的任务处理函数,由OpenWrt 系统给每个任务分配不同的优先级,便于根据应用程序所处理任务的重要性的不同分配不同的优先级。WEB 网管管理任务主要在于启动WEBSERVER,对来自客户端浏览器IE 对工业路由器设备参数配置等请求的处理,CLI 串口管理任务主要通过串口RS232 查看、配置工业路由器的设备的参数设置,SNMP 网际管理任务通过SNMP 协议发送报文,使网络综合管理平台能够根据这个报文,管理工业路由器。WiFi/以太网数据处理任务,主要用来分析处理来自有线、无线以太网的数据,包括完成有线无线以太网内LAN 端口数据接收分析、路由转发等,5G 数据处理任务完成来自5G 网络的数据处分析处理,并将要处理控制命令发应用程序消息处理任务,由其调用回调函数完成数据中由转发。日志输出数据处理任务主要用来保存工业路由器在运行、调试时的关键信息,方便对设备的维护。应用程序消息处理任务用来完成各任务模块的消息的处理,主要实现通过消息的回调函数来实现,完成数据路由转发、配置参数生效等。

图4 系统应用程序框图

■4.2 工业路由器启动流程图

工业路由器的启动流程如图5 所示,工业路由器上电后,首先初始化硬件看门狗,使工业路由器在异常情况下能保障电路重启,接下来初始化配置模块,完成工业路由器工作时的参数配置,接下来启动日志模块,使设备在运行时能将触发的关键信息输出到日志文件,便于设备开发时调试,运行时维护、后期版本升级用,接下来启动CLI/WEB 网管模块,可通过串口及IE 浏览器对设备进行参数配置,然后再开启应用程序消息处理中心任务,完成应用层各任务间的消息处理,并完成对应的任务间消息处理函数,再初始化网口芯片,启动系统的网络服务功能,使工业路由器能通过以太网与互联网连接,然后启动5G 模块,使工业路由器能完成5G 网络数据通信,再启动WiFi 无线接入模块,使工业路由器能通过数据能通过无线接入以太网,接下来启动路由模块,完成接入工业路由器的数据路由,最后完成SNMP 模块启动,实现接入SNMP 协议的网际设备管理,再等待数据接入路由服务。

图5 工业路由器的启动流程图

图6 测试环境图

5 路由器应用软件设计及接口

■5.1 CLI 网管模块设计及接口设计

CLI 网管设置不同的用户权限。用户模式,只能查看简单的信息,不能执行配置保存操作。特权模式,用户模式下输入enble 进入,需密码验证。配置部分设备运行参数显示部分设备运行信息。全局配置模式,在特权模式下输入configure terminal 命令进入。配置全局设备运行参数,显示全局设备运行信息;接口配置模式,在全局模式下输入interface 命令进入。配置各种类型接口运行参数,显示各种类型接口运行信息;VLAN 配置模式,在全局模式下输入vlan 命令进入。配置vlan 接口运行参数,显示vlan 接口运行信息。主要接口函数如下:

void *rg_vtysh_pthread_entry(void *arg)

CLI 线程入口函数。

Void cmd_init (int terminal)

初始化命令接口,安装基本节点及命令。

■5.2 配置模块设计及接口设计

配置模块采用INI 文本配置方式。INI 文本配置文件直接保存到Flash 芯片,并且在文件的头部增加一个文件标识头部,记录文件的长度及后续配置数据的校验和,保障配置文件的完整性及正确性。该标识头不体现在实际导出导入的配置文件中,在实际读写配置文件时由程序自动处理。配置文件校验方式采用CRC 校验方式。为保证INI 文本配置文件的简洁性,同时加快配置文件生成及解析速度,对于默认值的参数,不写入配置文件,只有用户修改过的参数,方写入配置文件。设备启动时,先读取配置文件,对于配置文件中没有的配置数据,均取程序默认值。主要接口函数如下:

int rg_global_config_load_default(void)

恢复出厂默认值。

int rg_get_config_from_flash(void)

从Flash 中读取配置文件并进行解析。

■5.3 日志模块设计及接口设计

日志模块设计根据不同需按等级设计,其中设计七个等级供设备运行及调试用,如#define LOG_EMERG 0/*系统不可用*/、#define LOG_ALERT 1/*必须立即执行操作*/、# 定 义LOG_CRIT 2/* 临 界 条 件*/、# 定 义LOG_ERR 3/* 错 误 条 件*/、# 定 义LOG_WARNING 4/* 警 告 条 件*/等,日志模块输出目标(1)Syslog,包括本地(/var/log/messages.txt,重启后原内容不保留)及远端syslog 服务器。(2)串口。(3)Telnet 窗口。(4)以文件形式输出的FLASH 的JFFS 分区。主要接口函数如下:

int rg_log_config_get(RG_LOG_CMD cmd, void*value)

获取日志模块配置。

int rg_log_config_set(RG_LOG_CMD cmd, void*value)

设置日志模块配置。

■5.4 WEB 模块设计

WEB 网管提供浏览器访问、配置、维护设备功能。WEB 网管支持中文或者英文界面,用户在登录时选择中文或者英文界面进行登录。整体风格:各功能模块以垂直树形结构进行展开。如网络配置包括:接口管理:配置各网络接口及4G 接口的相关参数、VLAN 管理:VLAN 创建,设置接口模式(接口模式:Access、Trunk 及Hybrid,可配置许可VID 范围、WiFi 配置:DHCP 服务器配置:配置DHCP 服务器,可查看客户端列表、SNMP 配置:支持SNMPV1/V2/V3、VRRP 配 置: 支 持VRRP v2/v3, 各 子 功能模块再以TAB 页的形式进行配置,主要接口函数如下:

int rg_web_config_get(ENUM_WEB_CONFIG cmd,void *value)

int rg_web_config_set(ENUM_WEB_CONFIG cmd,void *value)

获取、设置web 模块相关参数。

int initWebs(int demo);初始化WEB 服务器。

■5.5 5G 模块接入步骤及数据结构

5G 模块接入步骤如:(1)生成lc_ether.ko 后,放入/lib/modules/内核版本/kernel/drivers/usb/net 下(需要建立文件夹net);(2)将ndis_app 下的profile.ini 设置APN 后,放入/usr/sbin/下;(3)编译生成libndis_dail.so;(4)编译生生ndis_connect 和ndis_disconnect;(5)加入ndis 驱动,执行命令modprobe lc_ether;(6)执行命令./ndis_connect;(7)执行命令udhcpc;(8)执行命令./ndis_disconnect 断开连接。主要接口函数如下:

int rg_mobile_if_get(RG_MOBILE_IF_CMD cmd,void *value, int index)

int rg_mobile_if_set(RG_MOBILE_IF_CMD cmd,void *value, int index)/

获取、设置5G 模块相关参数。

int rg_longsung_driver_install(void)/加载5G 模块驱动。/

void *rg_start_longsung_5g_thread(void *arg)/启动5G 拨号流程。/

5G 模块接口数据结构如下:

typedef struct

{

BOOL enable;

int tel_operator_type; /*网络供应商类型, 0-自动, 1-自定义(需配置apn/username/password 字段)*/

char apn[RG_MAX_LEN32];

char username[RG_MAX_LEN128];

char password[RG_MAX_LEN128];

……

} rg_mobile_net_config;

6 工业路由器安全设置

根据对路由器的安全威胁的种类不同采取不同的策略,对于攻击防御:采取防ARP 流量攻击、防DOS 攻击、防本地流量攻击(防本地管理流量和协议流量攻击)、端口过滤(开启过滤非法传输层报文)。对于防主机欺骗:采取静态IP-MAC 绑定、动态IP-MAC 绑定。支持包过滤:先选接口,再分别启用入方向及出方向ACE 规则。支持IP 地址、协议、端口、时间过滤。优化NAT 配置:NAT 接口配置(配置外网、内网接口)、网络地址转换、虚拟服务器(是将 “内网IP” 或“内网IP+端口” 映射成另一个“外网IP” 或“外网IP+端口” 的功能。在实际应用中,一般用于出差办公的场景)。

软件在设计时,严格按照模块化设计,并从架构上尽量降低模块间的耦合性,从而保障软件的可扩展性。为保证系统的稳定性,对系统出错处理做出如下两方面的处理:首先,引入看门狗机制,软件定期清狗。当系统发生严重错误时,由看门狗重新上电整个设备。其次,系统专门建立监控任务,监控系统任务运行的健康状况,并对可能出现的问题采取及时的措施,保障系统的稳定性。

7 测试与结束语

为了验证本待测5G 工业路由器的基本功能,搭建了以下的测试环境图,工业路由器放在工厂环境中。本测试环境搭建在局域网, 笔记本及工厂设备接在5G 工业路由器上,且配在同一网段,且笔记本电脑上安装有WireShark 协议分析工具,通过手机访问待测工业路由器的WEB 网管,以及通过待测工业路由器访问工厂设备,通过WireShark 协议分析,发现来手机的访问能通过互联网侧访问5G 工业路由器的WEB 网管,工厂设备也能通过5G 工业路由器的联入5G 网络,实现与互联网侧的数据交换。工业路由器在工厂环境中工作稳定。

本文提出的基于嵌入式的语音网关硬件利用高性能嵌入式微处理器IPQ8064 和华为5G 模块为核心构成,软件采用开源嵌入式操作系统及开源户协议栈为主,通过了与以太网与5G 网络的对通测试。

猜你喜欢
配置文件网管路由器
买千兆路由器看接口参数
提示用户配置文件错误 这样解决
路由器每天都要关
互不干涉混用Chromium Edge
忘记ESXi主机root密码怎么办
无线路由器的保养方法
打印机设置
“五制配套”加强网管
发射机房网管系统的设计原则及功能
网管支撑系统运行质量管控的研究与实现