申利民,蔣應(yīng)龍
(1.廣州鐵路職業(yè)技術(shù)學院,廣東廣州,510430;2.中認英泰檢測技術(shù)有限公司,江蘇蘇州,215000)
近年來,新一輪科技革命和產(chǎn)業(yè)變革快速發(fā)展,互聯(lián)網(wǎng)由消費領(lǐng)域向生產(chǎn)領(lǐng)域快速延伸,工業(yè)經(jīng)濟向數(shù)字化、網(wǎng)絡(luò)化、智能化深度拓展,互聯(lián)網(wǎng)創(chuàng)新發(fā)展與新工業(yè)革命形成交融發(fā)展,形成了工業(yè)互聯(lián)網(wǎng)[1]。通過跨設(shè)備、系統(tǒng)、廠區(qū)等生產(chǎn)要素互聯(lián)互通,實現(xiàn)各種生產(chǎn)和服務(wù)資源更高效率、更加精準地優(yōu)化配置,實現(xiàn)提質(zhì)、增效、綠色、安全發(fā)展,推動制造業(yè)高端化、智能化、綠色化,大幅提升工業(yè)經(jīng)濟發(fā)展質(zhì)量和效益。工業(yè)互聯(lián)網(wǎng)的發(fā)展,需要工業(yè)級無線路由器,特別是在當前我國5G 網(wǎng)絡(luò)在工業(yè)生產(chǎn)的逐漸普及,實現(xiàn)工業(yè)生產(chǎn)過程數(shù)字信號通過5G 工業(yè)路由器的信號傳遞,實現(xiàn)工業(yè)級5G 無線路由器軟件安全穩(wěn)定的應(yīng)用成為行業(yè)緊迫需求。
5G 工業(yè)路由器的體系結(jié)構(gòu)如圖1 所示,嵌入式操作系統(tǒng)OpenWRT 運行在以處理器上IPQ8064,在其外設(shè)驅(qū)動的支持下提供給上層應(yīng)用程序API 接口,以便應(yīng)用程序開發(fā)調(diào)用。微處理器處理通信協(xié)議和應(yīng) 用程序方面的操作。用嵌入式操作系統(tǒng)OpenWRT 進行系統(tǒng)任務(wù)的任務(wù)調(diào)度。5G 模塊選用工業(yè)模組MH5000-31,此組核心采用華為巴龍5000 芯片,負責5G 數(shù)據(jù)處理。該體系結(jié)構(gòu)采用模塊化層次結(jié)構(gòu)進行設(shè)計具有層次性好、易擴展、配置靈活、性能優(yōu) 越的特點[2]。
圖1 工業(yè)路由器體系結(jié)構(gòu)圖
5G 工業(yè)路由器作為工業(yè)互聯(lián)網(wǎng)數(shù)據(jù)接入設(shè)備,實現(xiàn)工業(yè)數(shù)據(jù)接入5G 通信網(wǎng)絡(luò)發(fā)揮著重要作用。其中微處理芯片IPQ8064 包括一個總吞吐量為的網(wǎng)絡(luò)加速器5Gbps,IPQ8064 通常在雙核SMP Krait 上運行OpenWRT Linux IP 堆棧,而NSS 加速了網(wǎng)絡(luò)流量(快速路徑)。NSS 在Linux 的完全控制下運行堆棧NSS 中的規(guī)則由Linux 堆棧設(shè)置[3]。
工業(yè)級5G 無線路由器由圖2 各部分組成,電源模塊、電源控制電路、以太網(wǎng)芯片、中央處理器(central processing unit, CPU)、5G 模塊及5G 天線、全球定位系統(tǒng)(Global Positioning System,GPS)天線、WiFi 模塊及天線、存儲芯片、USB 口、串口。其中以太網(wǎng)芯片組用來實現(xiàn)工業(yè)級5G 路由器與互聯(lián)網(wǎng)數(shù)據(jù)互連,5G 模塊實現(xiàn)工業(yè)級5G 路由器與移動、聯(lián)通等電信運營商所運營的5G移動通信互連,并具備GPS 衛(wèi)星導航定位的功能,存儲芯片主要用來存儲路由器程序及數(shù)據(jù),電源模塊主要用來給路由器供電,電源控制電路主要用來控制電源模塊工作模式,CPU 微處理控制器主要用來集中控制管理。USB 接口、串口用來與外部數(shù)據(jù)交互。
圖2 工業(yè)路由器硬件框圖
由于OpenWRT 系統(tǒng)對微處理器架構(gòu)具有良好的適配性,5G 工業(yè)路由器使用OpenWRT 作為嵌入式操作系統(tǒng),OpenWRT 高度模塊化的特性非常適合進行定制化軟件開發(fā),能夠滿足系統(tǒng)的穩(wěn)定性和功能需求[4]。5G 工業(yè)路由器軟件平臺架構(gòu)如圖3 所示,根據(jù)功能特性,5G 工業(yè)路由器軟件平臺分為數(shù)據(jù)接入層、數(shù)據(jù)分析層、接入控制層和應(yīng)用服務(wù)層。其中數(shù)據(jù)接入層負責5G 數(shù)據(jù)、WiFi 數(shù)據(jù)等采集,數(shù)據(jù)分析層完成各種不同類型數(shù)據(jù)的分析處理,接入控制層完成對5G 工業(yè)路由接入設(shè)備的管理、命令的發(fā)放,應(yīng)用服務(wù)層完成數(shù)據(jù)分析層數(shù)據(jù)的處理后的動態(tài)路由及本身設(shè)備日志及參數(shù)配置管,理路由器下連多種感知端設(shè)備,軟件平臺通過分析接口類型和協(xié)議種類,負責將數(shù)據(jù)在本地進行處理或者上傳至物聯(lián)管理平臺。
圖3 5G 工業(yè)路由器軟件平臺架構(gòu)
系統(tǒng)應(yīng)用程序框圖如圖4 所示,整個系統(tǒng)應(yīng)用程序采用多任務(wù)并行方式執(zhí)行。硬件檢測采定時用輪詢的方式實時檢測相關(guān)硬件狀態(tài),如果檢測到新事件產(chǎn)生,則通過消息方式告知應(yīng)用程序消息處理任務(wù),由其調(diào)用相應(yīng)的任務(wù)處理函數(shù),由OpenWrt 系統(tǒng)給每個任務(wù)分配不同的優(yōu)先級,便于根據(jù)應(yīng)用程序所處理任務(wù)的重要性的不同分配不同的優(yōu)先級。WEB 網(wǎng)管管理任務(wù)主要在于啟動WEBSERVER,對來自客戶端瀏覽器IE 對工業(yè)路由器設(shè)備參數(shù)配置等請求的處理,CLI 串口管理任務(wù)主要通過串口RS232 查看、配置工業(yè)路由器的設(shè)備的參數(shù)設(shè)置,SNMP 網(wǎng)際管理任務(wù)通過SNMP 協(xié)議發(fā)送報文,使網(wǎng)絡(luò)綜合管理平臺能夠根據(jù)這個報文,管理工業(yè)路由器。WiFi/以太網(wǎng)數(shù)據(jù)處理任務(wù),主要用來分析處理來自有線、無線以太網(wǎng)的數(shù)據(jù),包括完成有線無線以太網(wǎng)內(nèi)LAN 端口數(shù)據(jù)接收分析、路由轉(zhuǎn)發(fā)等,5G 數(shù)據(jù)處理任務(wù)完成來自5G 網(wǎng)絡(luò)的數(shù)據(jù)處分析處理,并將要處理控制命令發(fā)應(yīng)用程序消息處理任務(wù),由其調(diào)用回調(diào)函數(shù)完成數(shù)據(jù)中由轉(zhuǎn)發(fā)。日志輸出數(shù)據(jù)處理任務(wù)主要用來保存工業(yè)路由器在運行、調(diào)試時的關(guān)鍵信息,方便對設(shè)備的維護。應(yīng)用程序消息處理任務(wù)用來完成各任務(wù)模塊的消息的處理,主要實現(xiàn)通過消息的回調(diào)函數(shù)來實現(xiàn),完成數(shù)據(jù)路由轉(zhuǎn)發(fā)、配置參數(shù)生效等。
圖4 系統(tǒng)應(yīng)用程序框圖
工業(yè)路由器的啟動流程如圖5 所示,工業(yè)路由器上電后,首先初始化硬件看門狗,使工業(yè)路由器在異常情況下能保障電路重啟,接下來初始化配置模塊,完成工業(yè)路由器工作時的參數(shù)配置,接下來啟動日志模塊,使設(shè)備在運行時能將觸發(fā)的關(guān)鍵信息輸出到日志文件,便于設(shè)備開發(fā)時調(diào)試,運行時維護、后期版本升級用,接下來啟動CLI/WEB 網(wǎng)管模塊,可通過串口及IE 瀏覽器對設(shè)備進行參數(shù)配置,然后再開啟應(yīng)用程序消息處理中心任務(wù),完成應(yīng)用層各任務(wù)間的消息處理,并完成對應(yīng)的任務(wù)間消息處理函數(shù),再初始化網(wǎng)口芯片,啟動系統(tǒng)的網(wǎng)絡(luò)服務(wù)功能,使工業(yè)路由器能通過以太網(wǎng)與互聯(lián)網(wǎng)連接,然后啟動5G 模塊,使工業(yè)路由器能完成5G 網(wǎng)絡(luò)數(shù)據(jù)通信,再啟動WiFi 無線接入模塊,使工業(yè)路由器能通過數(shù)據(jù)能通過無線接入以太網(wǎng),接下來啟動路由模塊,完成接入工業(yè)路由器的數(shù)據(jù)路由,最后完成SNMP 模塊啟動,實現(xiàn)接入SNMP 協(xié)議的網(wǎng)際設(shè)備管理,再等待數(shù)據(jù)接入路由服務(wù)。
圖5 工業(yè)路由器的啟動流程圖
圖6 測試環(huán)境圖
CLI 網(wǎng)管設(shè)置不同的用戶權(quán)限。用戶模式,只能查看簡單的信息,不能執(zhí)行配置保存操作。特權(quán)模式,用戶模式下輸入enble 進入,需密碼驗證。配置部分設(shè)備運行參數(shù)顯示部分設(shè)備運行信息。全局配置模式,在特權(quán)模式下輸入configure terminal 命令進入。配置全局設(shè)備運行參數(shù),顯示全局設(shè)備運行信息;接口配置模式,在全局模式下輸入interface 命令進入。配置各種類型接口運行參數(shù),顯示各種類型接口運行信息;VLAN 配置模式,在全局模式下輸入vlan 命令進入。配置vlan 接口運行參數(shù),顯示vlan 接口運行信息。主要接口函數(shù)如下:
void *rg_vtysh_pthread_entry(void *arg)
CLI 線程入口函數(shù)。
Void cmd_init (int terminal)
初始化命令接口,安裝基本節(jié)點及命令。
配置模塊采用INI 文本配置方式。INI 文本配置文件直接保存到Flash 芯片,并且在文件的頭部增加一個文件標識頭部,記錄文件的長度及后續(xù)配置數(shù)據(jù)的校驗和,保障配置文件的完整性及正確性。該標識頭不體現(xiàn)在實際導出導入的配置文件中,在實際讀寫配置文件時由程序自動處理。配置文件校驗方式采用CRC 校驗方式。為保證INI 文本配置文件的簡潔性,同時加快配置文件生成及解析速度,對于默認值的參數(shù),不寫入配置文件,只有用戶修改過的參數(shù),方寫入配置文件。設(shè)備啟動時,先讀取配置文件,對于配置文件中沒有的配置數(shù)據(jù),均取程序默認值。主要接口函數(shù)如下:
int rg_global_config_load_default(void)
恢復出廠默認值。
int rg_get_config_from_flash(void)
從Flash 中讀取配置文件并進行解析。
日志模塊設(shè)計根據(jù)不同需按等級設(shè)計,其中設(shè)計七個等級供設(shè)備運行及調(diào)試用,如#define LOG_EMERG 0/*系統(tǒng)不可用*/、#define LOG_ALERT 1/*必須立即執(zhí)行操作*/、# 定 義LOG_CRIT 2/* 臨 界 條 件*/、# 定 義LOG_ERR 3/* 錯 誤 條 件*/、# 定 義LOG_WARNING 4/* 警 告 條 件*/等,日志模塊輸出目標(1)Syslog,包括本地(/var/log/messages.txt,重啟后原內(nèi)容不保留)及遠端syslog 服務(wù)器。(2)串口。(3)Telnet 窗口。(4)以文件形式輸出的FLASH 的JFFS 分區(qū)。主要接口函數(shù)如下:
int rg_log_config_get(RG_LOG_CMD cmd, void*value)
獲取日志模塊配置。
int rg_log_config_set(RG_LOG_CMD cmd, void*value)
設(shè)置日志模塊配置。
WEB 網(wǎng)管提供瀏覽器訪問、配置、維護設(shè)備功能。WEB 網(wǎng)管支持中文或者英文界面,用戶在登錄時選擇中文或者英文界面進行登錄。整體風格:各功能模塊以垂直樹形結(jié)構(gòu)進行展開。如網(wǎng)絡(luò)配置包括:接口管理:配置各網(wǎng)絡(luò)接口及4G 接口的相關(guān)參數(shù)、VLAN 管理:VLAN 創(chuàng)建,設(shè)置接口模式(接口模式:Access、Trunk 及Hybrid,可配置許可VID 范圍、WiFi 配置:DHCP 服務(wù)器配置:配置DHCP 服務(wù)器,可查看客戶端列表、SNMP 配置:支持SNMPV1/V2/V3、VRRP 配 置: 支 持VRRP v2/v3, 各 子 功能模塊再以TAB 頁的形式進行配置,主要接口函數(shù)如下:
int rg_web_config_get(ENUM_WEB_CONFIG cmd,void *value)
int rg_web_config_set(ENUM_WEB_CONFIG cmd,void *value)
獲取、設(shè)置web 模塊相關(guān)參數(shù)。
int initWebs(int demo);初始化WEB 服務(wù)器。
5G 模塊接入步驟如:(1)生成lc_ether.ko 后,放入/lib/modules/內(nèi)核版本/kernel/drivers/usb/net 下(需要建立文件夾net);(2)將ndis_app 下的profile.ini 設(shè)置APN 后,放入/usr/sbin/下;(3)編譯生成libndis_dail.so;(4)編譯生生ndis_connect 和ndis_disconnect;(5)加入ndis 驅(qū)動,執(zhí)行命令modprobe lc_ether;(6)執(zhí)行命令./ndis_connect;(7)執(zhí)行命令udhcpc;(8)執(zhí)行命令./ndis_disconnect 斷開連接。主要接口函數(shù)如下:
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)/
獲取、設(shè)置5G 模塊相關(guān)參數(shù)。
int rg_longsung_driver_install(void)/加載5G 模塊驅(qū)動。/
void *rg_start_longsung_5g_thread(void *arg)/啟動5G 撥號流程。/
5G 模塊接口數(shù)據(jù)結(jié)構(gòu)如下:
typedef struct
{
BOOL enable;
int tel_operator_type; /*網(wǎng)絡(luò)供應(yīng)商類型, 0-自動, 1-自定義(需配置apn/username/password 字段)*/
char apn[RG_MAX_LEN32];
char username[RG_MAX_LEN128];
char password[RG_MAX_LEN128];
……
} rg_mobile_net_config;
根據(jù)對路由器的安全威脅的種類不同采取不同的策略,對于攻擊防御:采取防ARP 流量攻擊、防DOS 攻擊、防本地流量攻擊(防本地管理流量和協(xié)議流量攻擊)、端口過濾(開啟過濾非法傳輸層報文)。對于防主機欺騙:采取靜態(tài)IP-MAC 綁定、動態(tài)IP-MAC 綁定。支持包過濾:先選接口,再分別啟用入方向及出方向ACE 規(guī)則。支持IP 地址、協(xié)議、端口、時間過濾。優(yōu)化NAT 配置:NAT 接口配置(配置外網(wǎng)、內(nèi)網(wǎng)接口)、網(wǎng)絡(luò)地址轉(zhuǎn)換、虛擬服務(wù)器(是將 “內(nèi)網(wǎng)IP” 或“內(nèi)網(wǎng)IP+端口” 映射成另一個“外網(wǎng)IP” 或“外網(wǎng)IP+端口” 的功能。在實際應(yīng)用中,一般用于出差辦公的場景)。
軟件在設(shè)計時,嚴格按照模塊化設(shè)計,并從架構(gòu)上盡量降低模塊間的耦合性,從而保障軟件的可擴展性。為保證系統(tǒng)的穩(wěn)定性,對系統(tǒng)出錯處理做出如下兩方面的處理:首先,引入看門狗機制,軟件定期清狗。當系統(tǒng)發(fā)生嚴重錯誤時,由看門狗重新上電整個設(shè)備。其次,系統(tǒng)專門建立監(jiān)控任務(wù),監(jiān)控系統(tǒng)任務(wù)運行的健康狀況,并對可能出現(xiàn)的問題采取及時的措施,保障系統(tǒng)的穩(wěn)定性。
為了驗證本待測5G 工業(yè)路由器的基本功能,搭建了以下的測試環(huán)境圖,工業(yè)路由器放在工廠環(huán)境中。本測試環(huán)境搭建在局域網(wǎng), 筆記本及工廠設(shè)備接在5G 工業(yè)路由器上,且配在同一網(wǎng)段,且筆記本電腦上安裝有WireShark 協(xié)議分析工具,通過手機訪問待測工業(yè)路由器的WEB 網(wǎng)管,以及通過待測工業(yè)路由器訪問工廠設(shè)備,通過WireShark 協(xié)議分析,發(fā)現(xiàn)來手機的訪問能通過互聯(lián)網(wǎng)側(cè)訪問5G 工業(yè)路由器的WEB 網(wǎng)管,工廠設(shè)備也能通過5G 工業(yè)路由器的聯(lián)入5G 網(wǎng)絡(luò),實現(xiàn)與互聯(lián)網(wǎng)側(cè)的數(shù)據(jù)交換。工業(yè)路由器在工廠環(huán)境中工作穩(wěn)定。
本文提出的基于嵌入式的語音網(wǎng)關(guān)硬件利用高性能嵌入式微處理器IPQ8064 和華為5G 模塊為核心構(gòu)成,軟件采用開源嵌入式操作系統(tǒng)及開源戶協(xié)議棧為主,通過了與以太網(wǎng)與5G 網(wǎng)絡(luò)的對通測試。