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协议监听安全边界设备框架设计_第1张图片

SNMP封装层(核心配置封装)

SNMP封装层主要用来封装SNMP协议的核心配置内容

业务解析层(命令解析)

业务解析层主要用来生成提供给设备管理层的命令,作为命令的封装层.

设备管理层(应用逻辑解析)

设备管理层主要面向应用程序,使用SpringBoot为用户提供RESTFul的接口调用和解析.

 

 


 

你可能感兴趣的:(网络协议)