论文部分内容阅读
随着网络规模的不断扩大,网络已成为各种应用和信息服务的重要支柱和基础平台,网络管理也随之提到非常重要的位置上。网络管理是为满足用户安全、可靠、正常使用网络服务,以及保证网络正常、高效的运行而进行的一系列的监控、维护和管理操作。网络管理是网络能否发挥其重要作用的关键所在。 目前网络管理的事实标准是IETF制定的“简单网络管理协议(SNMP)”。1993年,IETF制定了SNMPv1,后又推出了SNMP的改进版本SNMPv2。1999年,正式发布了SNMPv3版本,它针对SNMPv1和SNMPv2的安全性缺陷增加了认证和数据保密方面的功能,为SNMP的大规模使用扫清了安全隐患。 遵循SNMP的网络管理系统包括Agent和Manager两部分,所有被管理的设备,包括路由器、网桥、服务器和工作站,都应该含有Agent模块,Agent模块负责: ■收集和维护本地信息; ■在收到Manager端的请求后,向Manager提供信息;或发生了异常时,向Manager发出告警; ■根据Manager要求,改变某些配置信息或操作参数; ■维护一个与设备密切相关的MIB(Management Information Base)。 Manager模块通过与Agent模块通信完成网络监控、管理和配置等功能,它提供查询和修改设备的状态和配置信息的手段,即支持SNMP协议所规定的标准操作——GET、GETNEXT、GETBULK、SET、TRAP和WALK,同时应该提供方便的用户接口,如图形或其它管理界面。 网络管理工作站(Manager)通过网络和被管理的设备相连,在被管理的设备内部或外部利用Agent负责维护本设备的当前状态、当前设置信息等,并且对网络管理工作站发出的请求作出适当的响应,以及当设备内部发生一定事件时,要按预先的设置向管理工作站发出告警信息(TRAP)。 当前不少厂家都开发了自主知识产权的基于SNMP协议的网络管理系统。这些网络管理系统当前都是运行在IPv4环境下的,随着下一代IP技术——IPv6的应用,这些网络管理系统将面临着向IPv6迁移的问题。目前还没有成熟的支持IPv6的SNMP软件包,因此开发一套基于IPv6的网络管理系统是十分必要的。 建立一套IPv6环境下的SNMPv3 API,是开发任何基于SNMP网络管理软件的前提,所以要在IPv6环境下实现SNMPv3,首要的任务是设计一套简单实用的SNMPv3 API,支持SNMPv3所规定的安全特性,包括用户认证和数据加密传输功能,同时,该API应该支持工Pv6网络,支持工Pv6网络环境下的开发。事实上,在SNMP协议中并没有定义它所应用的网络环境,这里所指的支持工Pv6网络包括两个含义:(1)SNMP报文可以在工Pv6网络上传输,即采用IPv6来封装SNMP报文;(2)使用该API建立的应用程序可以运行在工Pv6主机或网络设备上。它应该是简单的、高效的和容易移植的,任何网络管理功能都是建立在这个基础之上的。 在此API的基础上,设计开发更高层次的API,使得程序设计接口更简单,更容易为设计者使用,并提供使用这些高层API的程序事例,在实际实现时,我们也是把主要精力放在了sNMPv3 AP工的设计实现上。 为简化工Pv6下SNMPv3 API的设计任务,我们可以利用已经存在的软件包,通过对其进行改造和扩充来实现设计目标,实验中选择了UCD一SNMP4.ol进行扩展和延伸。因此SNMPv3 API设计的主要任务是,(1)移植UCD一SNMP软件包,使之完全支持IPv6和IPv4(通过条件编译选择v4或v6);(2)补充UCD一SNMP软件包中缺乏的安全机制;(3)选择合适的技术路线,使改动容易为开发者接受,对原软件包的改动小,容易理解。 由于本设计的是建立在现有的SNMP软件包之上,通过增加新的模块和对原代码的修改,使之支持工 Pv6,具体修改主要有以下几方面:.在Agent中增加IPv6 MIB支持模块;.修改原软件包中地址表示,为工Pv6分配额外空间,包括地址部 分和其他存储空间,同时保留原工Pv4数据结构;一修改IPv4与IPv6中不兼容函数,这些变化可以从RFC 2553和 RFC 2292中获得,同时这些变化也表现了线程由不安全到安全 的变化过程;.利用基本的AP工函数库,构建网络管理所需要的各组成部分。 整个任务可划分为三个部分:1、网络传输部分 通过定义合理的数据结构和函数,使得SNMP报文可以通过工Pv6网络传输,现有的SNMP软件包大多是通过工Pv4 UDP来承载的,为适应工Pv6环境,使用工Pv6 UDP承载,这可以通过修改有关工P地址的数据结构来实现。2、抽象SNMPv3 API 从应用程序结构图中抽象出必要的SNMP API,并按他们所实