SNMP(Simple Network Management PRotocol,简单网络治理协议)首先是由IETF的研究小组为了解决Internet上的路由器治理问题而提出的。SNMP的设计原则是简单 性和扩展性。简单性是通过信息类型限制、请求响应或协议而取得。扩展性是通过将治理信息模型与协议、被治理对象的具体规定(MIB)分离而实现的。
网络治理体系结构
SNMP的网络治理模型包括以下要害元素:治理站、代理者、治理信息库、网络治理协议。治理站一般是一个分立的设备,也可以利用共享系统实现。治理站作为网络治理员与网络治理系统的接口,它的基本构成为:一组具有分析数据、发现故障等功能的治理程序; 一个用于网络治理员监控网络的接口; 将网络治理员的要求转变为对远程网络元素的实际监控的能力; 一个从所有被管网络实体的MIB中抽取信息的数据库。
网络治理系统中另一个重要元素是代理者。装备了SNMP的平台,如主机、网桥、路由器及集线器均可作为代理者工作。代理者对来自治理站的信息请求和动作请求进行应答,并随机地为治理站报告一些重要的意外事件。
网络资源被抽象为对象进行治理。但SNMP中的对象是表示被管资源某一方面的数据变量。对象被标准化为跨系统的类,对象的集合被组织为治理信息库(MIB)。MIB作为设在代理者处的治理站访问点的集合,治理站通过读取MIB中对象的值来进行网络监控。治理站可以在代理者处产生动作,也可以通过修改变量值改变代理者处的配置。
治理站和代理者之间通过网络治理协议通信,SNMP通信协议主要包括以下能力。
Get:治理站读取代理者处对象的值。
Set:治理站设置代理者处对象的值。
Trap:代理者向治理站通报重要事件。
在标准中,没有非凡指出治理站的数量及治理站与代理者的比例。一般地,应至少要有两个系统能够完成治理站功能,以提供冗余度,防止故障。
网络治理协议环境
SNMP为应用层协议,是TCP/ip协议族的一部分。它通过用户数据报协议(UDP)来操作。在分立的治理站中,治理者进程对位于治理站中心的MIB的访问进行控制,并提供网络治理员接口。治理者进程通过SNMP完成网络治理。SNMP在UDP、IP及有关的非凡网络协议(如Ethernet、FDDI、X.25)之上实现。
每个代理者也必须实现SNMP、UDP和IP。另外,有一个解释SNMP的消息和控制代理者MIB的代理者进程。
图1描述了SNMP的协议环境。从治理站发出3类与治理应用有关的SNMP的消息GetRequest、GetNextRequest、SetRequest。3类消息都由代理者用GetResponse消息应答,该消息被上交给治理应用。另外,代理者可以发出Trap消息,向治理者报告有关MIB及治理资源的事件。
共同体和安全控制
网络治理是一种分布式的应用。与其他分布式的应用相同,网络治理中包含有一个应用协议支持的多个应用实体的相互作用。在SNMP网络治理中,这些应用实体就是采用SNMP的治理站应用实体和被治理站的应用实体。
SNMP网络治理具有一些不同于其他分布式应用的特性,它包含一个治理站和多个被治理站之间一对多的关系。
反过来,我们也要看到SNMP网络治理中还包含另外一种一对多的关系,即一个被治理站和多个治理站之间的关系。每个被治理站控制着自己的本地MIB,同时必须能够控制多个治理站对这个本地MIB的访问。这里所说的控制有以下三个方面:认证服务将对MIB的访问限定在授权的治理站的范围内;访问策略对不同的治理站给予不同的访问权限;代管服务提的是一个被治理站可以作为其他一些被治理站(托管站)的代管,这就要求在这个代管系统中实现为托管站服务的认证服务和访问权限。
以上这些控制都是为了被管系统保护它们的MIB不被非法地访问。SNMP通过共同体(community)的概念提供了初步和有限的安全能力。
SNMP用共同体来定义一个代理者和一组治理者之间的认证、访问控制和代管的关系。共同体是一个在被管系统中定义的本地概念。被管系统为每组可选的认证、访问控制和代管特性建立一个共同体。每个共同体被赋予一个在被管系统内部唯一的共同体名,该共同体名要提供给共同体内的所有治理站,以便它们在get和set操作中应用。代理者可以与多个治理站建立多个共同体,同一个治理站可以出现在不同的共同体中。
由于共同体是在代理者处本地定义的,因此不同的代理者处可能会定义相同的共同体名。共同体名相同并不意味者共同体有什么相似之处,因此,治理站必须将共同体名与代理者联系起来加以应用。