摘要:將IEEE 802.11b技術應用于工控網絡,必須對無線網關進行有效監控。文章介紹了無線網關接入工業以太網的原理和的功能,對SNMP(SimpleNetworkManagementProtocol)管理模型及協議體系結構進行了分析,詳細闡述了SNMP在嵌入式無線網關系統上的實現過程,并給出了測試結果。
關鍵詞:嵌入式Linux;SNMP;無線網關;管理模型
中圖分類號:TP393文獻標識碼:A文章編號:1009-3044(2008)23-927-03
The Realization of SNMP on Embedded Wireless Gateway
ZHU Bin, TAN Yong
(Physics and Electronic Information Department of Yangtze Normal University, Chongqing 408100, China)
Abstract: IEEE 802.11b technology is being used in industrial control networks, the need for effective monitoring and control of wireless gateways is necessary. This paper introduces the function of the wireless gateway and the principle that the wireless gateway access to industrial ethernet, it analysisess the management model and the architecture of protocol system of SNMP, and also gives a particular description of the realization process of SNMP on embedded wireless gateway. At last, it presents the experiment results.
Key words: embedded linux; SNMP; wireless Gateway; management model
1 引言
將IEEE 802.11b技術應用于工控網絡,工控網絡就在現場總線體系結構的基礎上兼有了無線通信的優點。與此同時,工控網絡規模的擴大,使其結構日趨復雜,如何對工控網絡進行有效監控,及時發現存在的故障和不安全因素,盡可能提高設備的利用率和運行效率,逐漸成為工控網絡管理者面臨的問題。
2 嵌入式無線網關
2.1 嵌入式無線網關接入工控網絡的模型
基于802.11b的工業現場設備接入工業以太網的協議模型如圖1所示,無線網關接入采用主從接入方式,所有基于802.11b的工業現場設備與 802.11b 無線網關連接,由802.11b無線網關負責無線通信管理和與有線網絡的連接。
協議模型中,RF物理層是802.11b協議模型的第1層,具有載波監聽,傳送和接收等功能。802.11b MAC,802.1d和802.2LLC(Logic Link Control)是802.11b協議模型第2層(數據鏈路層)。MAC 層具有無線介質訪問,網絡連接以及提供數據驗證和保密等功能。邏輯鏈路控制LLC 層定義了所有 802LAN 類型的差錯控制,包括 802.11b 的差錯控制。LLC具有傳統數據鏈路控制協議:高級數據鏈路控制(HDLC:High_ Level Data Link Control)的相似功能,提供尋址和數據鏈路控制服務。
2.2 通信原理
基于802.11b的無線終端工業現場設備→工業控制網絡通信時,基于802.11b的無線網關按照802.11b協議接收無線終端現場設備的數據包并按IEEE802.3協議進行封裝后,轉發到工控網絡;工控網絡→無線終端工業現場設備通信時,基于802.11b的無線網關將工控網絡傳來的數據包按802.11b協議進行封裝后,發送到無線終端現場設備;無線終端現場設備→無線終端現場設備通信時,若通信雙方相互同時處于對方的無線覆蓋區域,則可直接進行通信;若通信雙方處于不同無線基本服務區域BSS(Basic Service Set),可以先通過某一無線網關進入工控網絡(無線→有線),再由別的無線網關發送給相應的無線終端現場設備(有線→無線)。
3 SNMP體系結構
從上面的分析可以看出,對無線網關進行有效監控非常必要,這是無線工控網絡健康、高效運作的保證,而簡單網絡管理協議 SNMP (Simple Network Management Protocol)為實現這一目標提供了可能。
SNMP 管理模型包括四個部分:管理器(Manager)、管理代理(Agent)、管理信息庫(MIB:Management Information Base)、SNMP協議。管理器和被管代理之間的信息交換以類客戶/服務器的方式進行。管理器從管理代理處取得網絡結點的狀態數據,接收代理發來的Trap,將網絡的狀態及時反映給管理員,管理器在C/S結構中處于Client的地位。管理代理Agent在被管理的網絡設備中運行,在網絡管理中代表被管對象工作。代理收集所代表對象的狀態數據,在C/S結構中處于Server的地位,它對到來的數據請求做出響應,維護和報告被管理設備的有關信息。SNMP 管理信息庫 MIB(Management Information Base)是一個面向對象的數據庫,由 MIB 對象的信息單元組成。MIB 對象記錄管理設備的管理信息,每個對象用來代表一個網絡資源,代理通過 MIB 來表示所代表對象的各個方面的參數。SNMP 協議是一個應用層協議,在一個 SNMP 管理器和一個或多個分布式代理(Agent)之間進行雙向的數據交換。管理器通過SNMP協議,請求管理代理檢索和改變網絡設備的 MIB 信息,管理代理用 SNMP 協議向管理器主動報告網絡設備的狀態變化。
SNMP 協議體系結構由管理信息結構(SMI)、管理信息庫(MIB)和 SNMP 本身三部分組成。其中,SMI 和 MIB 兩個協議是關于管理信息的標準。SMI 是表示被管對象的描述工具,是 ISO 的抽象句法表示 ASN.1 的一個子集,其中詳細定義了 MIB 庫的組成結構。SNMP 組織體系結構如圖2所示。
4SNMP在嵌入式Linux上的實現
4.1 開發平臺構建
為便于調試,選擇直接在目標板上進行的開發模式,連線如圖3所示。在宿主機上運行 minicom 作為目標板的顯示終端,mount 宿主機硬盤,直接在目標板上調試應用。目標板上處理器為 MPC852T,操作系統是嵌入式 Linux ,編譯器則選擇 powerpc-linux-gcc。
4.2SNMP 代理的實現
MIB 是委托代理的關鍵,定義了可通過網絡管理協議進行訪問的管理對象的集合,是被管理對象的虛擬數據庫。MIB 可描述為一棵樹,各數據項構成樹的葉結點。每個 MIB 對象都有一個惟一的對象標識符(OID)來標識和命名,這個標識符取決于 MIB 對象在樹中的位置,對象的實例也有標識符,由對象類的對象標識符加上實例標識符構成的。
對默認的 SNMP 配置,代理已經包含了基本的 MIB 庫,但基本設備和廠家的私有MIB 需要加入,所以需要對 MIB 進行擴展。擴展 SNMP 代理程序有多種方法:靜態加載、動態加載共享鏈接庫和 AgentX 子代理協議擴展 [4],這里采用靜態加載方式。
編寫需加入的 MIB 庫文件。根據 ASN.1 標準語法創建MIB,MIB 庫文件的編寫是根據 SNMP 協議中 SMI 部分描述,SMI 所采用的是ASN.1 的一個子集。ASN.1 是一種可用來定義數據結構的語言,他的基本組成單元是模塊;結構定義以命名模塊的形式進行,然后模塊的名稱就可以被用來引用該結構,模塊的基本形式為:
DEFINITIONS : : =BEGIN
EXPORTS
IMPORTS
AssignmentList
END
EXPORTS結構表示該模塊中的一個定義可由其他模塊引入。IMPORTS接口表示有其他模塊中的哪一些類型和取值定義要被引入到該模塊中。AssignmentList 是賦值列表,是由類型賦值、取值賦值和宏定義組成。
編寫MIB模塊程序。MIB 模塊程序是為代理進程所在的網絡設備中的 MIB 變量設計的,用于判定所請求的對象是否在代理進程的 MIB 中、驗證對象的訪問方式、確定對象的位置以及讀取和設置對象的值。他包含一個頭文件(如devicecont rol. h)和源文件(如devicecont rol.c),并置于.../net SNMP/agent/mibgroup 中,編寫方法可參考源包中 example 模塊程序。
實現模塊程序靜態鏈接。在源包的一些文件(mib module includes.h、mib module inits.h等)中添加模塊程序文件或者通過在 MakeFile.in 文件中的 MIBS 里面添加 DEVICE CONTROL MIB. txt 重新生成 MakeFile 文件。
這樣,編譯生成的SNMP擴展代理程序中就包含了編寫的模塊程序。在usr/src/uClinux dist目錄下執行make user only命令可得到SNMP代理應用程序SNMPd 。
配置文件 snmpd.conf 和 snmp.conf 在 /usr/local/snmp/ 目錄下。前一個是 net-sump 代理的配置文件,包括擴展子代理、動態裝載模塊、訪問控制、系統信息、PASS-THROUGH 控制等。snmp.conf 是 net-snmp 應用程序的配置文件,大多是應用程序(命令)的缺省配置,如sump版本、community、端口等。重新定制 ramdisk ,運行./easy_build 得到新的 linux.bin,燒寫 linux.bin 即可。
5系統測試
在宿主機上建立一個 /snmplib 目錄,拷貝 libnetsnmpagent.so.5、libnetsnmphelpers.so.5、libnetsnmpmibs.so.5、ibnetsnmp.so.5 到該目錄下。完成配置和 mount 的工作后,板子可啟動 snmpd,在 shell 下面打上 /usr/local/snmp/sbin/snmpd 即可,或直接加在 /etc/rc.d/rc.local 中,可實現自動開機啟動了。開發板上電運行,在根目錄下鍵入相應的命令,即可得到如下結果:
# snmpwalk -v 1 localhost PUBLIC .1.3.6.1.4.1.2021.10.1.5.1
enterprises.ucdavis.laTable.laEnter.laLoadInt.1= 89
# snmpwalk -v 1 localhost PUBLIC .1.3.6.1.4.1.2021.10.1.5.2
enterprises.ucdavis.laTable.laEnter.laLoadInt.2 = 60
#snmpwalk -v 1 localhost PUBLIC .1.3.6.1.4.1.2021.10.1.5.3
enterprises.ucdavis:laTable.laEnter.laLoadInt.3 = 43
#snmpwalk -v 1 localhost PUBLIC .1.3.6.1.4.1.2021.9.1.9.1
enterprises.ucdavis.dSkTable.dskEnter.dskPercent.1 = 45
#snmpwalk -v 1 localhost PUBLIC .1.3.6.1.4.1.2021.9.1.9.2
enterprises.ucdavis.dskTable.dskEnter.dskPercent.2 = 60
#snmpwalk -v 1 localhost PUBLIC .1.3.6.1.4.1.2021.9.1.9.3
enterprises.ucdavis.dSkTable.dSkEnter.dskPercent.3 =23
#snmpdelta localhost public -Cp 10s
IF-MIB::ifInOctets.16777219
IF-MIB::ifOutOctets.16777219
6 結束語
目前,基于TCP/IP協議的工業以太網在組網時仍需要布線,但在工業現場,布線在某些場合下會受到限制,電纜的連接也限制了現場設備的移動和網絡結構的重組。將IEEE 802.11b技術應用于工控網絡,工控網絡就在現場總線體系結構的基礎上兼有了無線通信的優點,隨著網絡管理功能的逐步完善,基于802.11b的無線工業現場設備將在工業控制網絡中發揮越來越大的作用。
參考文獻:
[1] 崔金玲,閆娟.基于SNMP 的校園網網絡性能管理系統的實現[J].河南師范大學學報,2007,35(2):59-61.
[2] Wilmshurst. A design model for embedded systems[C].Newyork:Engineering Education: Innovations in Teaching, Learning and Assessment (Ref. No. 2001/046), IEE International Symposium, 2001:71-77.
[3] RFC 1157, Simple Network Management Protocol (SNMP) [S].
[4] Bourgonjon H, \"Embedded systems in consumer products\" in Lecture Notes in Computer Science, Lectures on Embedded Systems. Heidelberg: Springer-Verlag,1996,1494:395-403.
[5] 宋國榮,何欽銘.基于SNMP 可擴展代理的網絡仿真[J].微電子與計算機,2005,22(6):184-187.