微波EDA网,见证研发工程师的成长!
首页 > 射频和无线通信 > 射频无线通信文库 > 一种支持SNMP V3的代理平台设计方案

一种支持SNMP V3的代理平台设计方案

时间:10-26 来源:电子产品世界 点击:

认证失败。

6:代理实体的USM模块根据SNMP消息中的私密化参数,以及LCD中用户的私密化算法,对范围PDU进行解密。

7:USM模块将通过认证,并解密的SNMP消息,提供给SNMP引擎进一步处理。

8:代理实体的SNMP引擎生成了SNMP消息,准备发送给管理实体之前的“认证且私密”过程,与上述过程类似。

对于“认证无私密”的处理过程,则可省略上述过程的2,6两步。

3.2 VACM的验证流程

在通常的网管实践中,常常遇到一系列安全问题,如非法的管理者,对某OID进行操作;

合法的管理者,对某未授权的OID进行操作;合法的管理者,对某授权的OID进行未授权的操作等等.这些问题实际上是代理实体中的SNMP应用(包括命令应答器,通知生成器)在处理SNMP消息中的PDU时需要控制的,VACM(基于视图的访问控制模型)是这样一种访问控制方案,通过在代理实体的VACM MIB定义的用户所能访问的MIB视图的对应关系,来决定一个SNMP协议操作,是否能够访问一个MIB对象。VACM LCD的表格如下表所示:

表1:VACM LCD所包含的表格

VACM的验证流程如下:

1:在vacmSecurityToGroupTable表中查找由securityName和securityModel的组合所确定的请求访问操作的用户是否是这个SNMP引擎所配置的某个组的成员,若存在则返回组名groupName。不存在则报告错误(noGroupName)

2:在vacmContextTable中查询contextName,如果不存在,则报告错误(noSuchContext)

3:使用vaemAeeessTable将groupName、contextName以及securityModel、securityLevel的组合映射到一个MIB视图,将要使用的MIB视图取决于ViewType。MIB视图定义的是该用户可以访问的MIB变量。

4: 根据MIB视图,利用vacmViewTreeFamilyTable表检查是否可以访问PDU变量绑定中的MIB对象。

3.3 IPV4和IPV6的兼容设计

为了使代理实体同时支持与IPV4和IPV6管理实体的交互,需要代理实体运行的环境,运行IPV4和IPV6双协议栈,同时,代理实体作为一个IPV6服务器或客户端存在。

对于一个IPV6的双栈服务器来说,其与IPV4,IPV6客户端的交互过程为:对于IPV4客户端,向IPV6服务器的IPV4地址发送请求。其发送的IP报文,在IPV6服务器中,被交付给IPV4协议栈,在上行时,客户端的IPV4地址,被映射成IPV6地址,并由IPV6服务器应用处理,IPV6服务器在向IPV4客户端返回信息时,下行时,选择IPV4协议栈。对于IPV6客户端,则向IPV6服务器的IPV6地址发送请求,其发送的IP报文,在IPV6服务器中,被交付给IPV6处理。由以上分析可知,代理实体作为IPV6服务器,可以处理IPV4,IPV6客户端(管理实体)的请求。条件是,IPV6服务器需要配置IPV4,IPV6地址。IPV4客户端访问代理实体时,需要使用其IPV4地址。

当代理实体为IPV6客户端,与IPV4,IPV6服务器的交互情况为:对于IPV6客户端,向IPV4服务器的IPV4地址发送请求之前,需要将IPV4服务器的IPV4地址映射成IPV6地址。其发送的IP报文,在IPV6客户端中,被交付给IPV4协议栈,在上行时,客户端的IPV4地址,被映射成IPV6地址,并由IPV6客户端应用处理。对于IPV6客户端,向IPV6服务器的IPV6地址发送请求,其发送的IP报文,在IPV6客户机中使用IPV6协议栈。由以上分析可知,代理实体作为IPV6客户机,可以与IPV4,IPV6服务器(管理实体)交互,条件是,代理实体作为IPV6客户机与IPV4服务器交互时,需要使用IPV4服务器的IPV4地址映射的IPV6地址。

通过以上分析可知,当代理实体运行在双栈主机环境下,且配置有IPV4,IPV6两个地址时,且代理实体以IPV6服务器或客户端存在时,它既能与IPV6对端通信,也能与IPV4对端通信。如果代理实体所运行的环境不支持IPV6,则代理实体作为一个IPV4服务器与客户端运行。此时,不能保证与IPV6对端互通。

3.4 SNMP并发处理机制

同时处理多个SNMP请求,需要为每一个SNMP请求分派一个线程(任务),但是为每一个SNMP请求临时创建一个线程的方式,在性能上是低效的,而且会大量的占用系统的资源。

采用线程(任务)池技术,在系统初始化阶段,预先创建一定数量的线程(任务),加入到线程(任务)池中,同时标记这些线程(任务)为空闲状态。当有SNMP消息需要处理时,从线程(任务)池中,找到一个标记为空闲状态的线程(任务),用于SNMP消息的处理,此时该线程(任务)状态标记为“处理中”状态。当SNMP消息处理完毕后,此时该线程(任务)状态标记为“空闲”状态。

使用线程(任务)池技术,一方面减少了创建线程(任务)的开销,另一方面减少了同时存在于系统中的线程(任务)的总数。在保证系统性能的同时,提高了系统

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top