SNMP協議監聽安全邊界設備框架設計

說在前面

本文的側重點是在SNMP協議監聽安全邊界設備的框架設計,作爲此次框架設計的記錄和反思,更多的是記錄思路,而不是SNMP監聽的使用.

SNMP應用場景

SNMP 協議是專門設計用於在 IP 網絡管理網絡節點(服務器、工作站、交換機等)的一種標準協議。SNMP協議是一個應用層協議,可以讓網絡管理系統遠程管理所有支持這種協議的網絡設備,包括監視網絡狀態、修改網絡設備配置、Trap方式接收網絡事件警告等,及時發現並解決網絡問題以及規劃網絡增長。因此,SNMP爲不同種類、不同廠家生產、不同型號的設備,定義一個統一的接口和協議,使得管理員可以使用統一的網絡管理界面對這些不同物理空間的網絡設備進行管理,大大提高網絡設備管理的效率。

SNMP協議

SNMP協議主要分爲兩部分:SNMP管理站和SNMP代理。

SNMP管理站是一箇中心節點(Master):負責收集維護各個SNMP元素的信息,並對這些信息進行處理,最後反饋給網絡管理員;SNMP代理是運行在各個被管理的網絡節點之上,負責收集統計所在節點的各項信息,並且負責與SNMP管理站根據MIB定義交互,接收並執行管理站的命令,向管理站返回各種本地的網絡信息。

SNMP管理站和SNMP代理之間是鬆散耦合的。他們之間的通信是通過UDP協議完成的。一般情況下,SNMP管理站通過UDP協議向SNMP代理髮送各種命令,當SNMP代理收到命令後,返回SNMP管理站需要的參數。但是當SNMP代理檢測到網絡元素異常的時候,也可以主動向SNMP管理站發送消息,通告當前異常狀況。

SNMP協議根據定義的mib庫信息與被管理節點進行數據交互,獲取數據的方式主要有三種:GET、SET、TRAP。

GET、SET方法是管理節點向被管理節點send請求,被管理節點返回response報文,由管理節點解析。

TRAP方法是封裝了UDP信息,管理站開啓監聽本地的一個端口,缺省採用162端口,類似於在自己家門口放置一個信箱,被管理節點把上報信息就主動上報給管理站的該端口,管理站收到信息就做相應處理。

本文中的監聽框架基於SNMP4j實現,SNMP4J是一個用Java來實現SNMP(簡單網絡管理協議)協議的開源項目.它支持以命令行的形式進行管理與響應。

監聽框架搭建

首先根據JAVA的設計原則,把框架中核心的部分拆分成如下圖所示的5個模塊,主要分爲三層:SNMP封裝層(核心配置封裝)、業務解析層(命令解析)、設備管理層(應用邏輯解析)。

打一個比較形象的比方:對於用戶來說計算機的邏輯,我們看到的是計算機的應用界面,用戶做的操作會被設備管理層獲取並解析,計算機把要獲取的內容向業務解析層獲取,業務解析層是命令的封裝,命令真正的獲取還是要從計算機底層去獲取並層層返回並由上層一層層封裝結果,最終返回的是用戶友好的結果。

SNMP封裝層(核心配置封裝)

SNMP封裝層主要用來封裝SNMP協議的核心配置內容

業務解析層(命令解析)

業務解析層主要用來生成提供給設備管理層的命令,作爲命令的封裝層.

設備管理層(應用邏輯解析)

設備管理層主要面向應用程序,使用SpringBoot爲用戶提供RESTFul的接口調用和解析.

 

 


 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章