SNMP 的工作原理
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操作中应用。代理者可以与多个管理站建立多个共同体,同*个管理站可以出现在不同的共同体中。
由于共同体是在代理者处本地定义的,因此不同的代理者处可能会定义相同的共同体*。共同体*相同并不意味者共同体有什么相似之处,因此,管理站必须将共同体*与代理者联系起来加以应用。