|
SNMP定义了一个网络管理的体系框架。这个框架包括若干个运行代理(Agent)的节点(Node),至少一个管理工作站(Management Station);一个传递管理信息的管理协议。这个协议的操作必须在安全体制下实现。这个体制包括验证(Authentication)、授权(Authorization)、访问控制(Access Control)和保密策略(Privacy Policies)。
|
|
|
网络管理的实现过程:管理工作站主动向代理发送请求,要求得到关心的数据。代理在接到管理工作站的请求后,响应管理工作站的请求,把数据发送给管理工作站。这种收集数据的方式称为轮询(Polling)。除此以外,被管理设备中的代理可以在任何时候向网络管理工作站报告错误情况,例如预制定阈值越界程度等。这是基于中断(Interrupt-based)的方式。在SNMP中,后一种方式称作自陷(Trap)。
|
|
|
SNMPv2定义了7种操作(Operation),它们的具体内容分别如下。
|
|
|
(1)GetRequest:得到列表中的MO的值。
|
|
|
(2)GetNextRequest:得到列表中的每个MO的下一个MO的值。
|
|
|
|
|
|
(6)InformRequest:用于在管理工作站之间交换简单信息。
|
|
|
(7)SNMPv2-Trap:SNMPv2的自陷。
|
|
|
其中,GetRequeset、GetNextRequest、GetBulkRequest和SetRequest是管理工作站向代理发出的3类数据请求操作;Response则是代理向管理工作站发出的回答操作(如果需要);SNMPv2-Trap是代理在发现异常时向管理工作站发出的自陷操作。如果需要,一个管理工作站可以向另一个管理工作站发出InformRequest操作,相应的管理工作站用Response操作来回答。
|
|
|
管理工作站和代理之间互相发送SNMP消息(SNMP Message)。SNMP消息的开始是SNMP的版本号,随后是community(在下面介绍)的名称,接下来是SNMP的PDU(Protocol Data Unit)。SNMPv2的7种PDU对应7种操作,它们的格式如下图所示。限于篇幅,在这里不再介绍SNMPv2 PDU的细节。
|
|
|
|
|
网络是处于开放环境中,安全机制对于SNMP来说必不可少。SNMPv1和SNMPv2的安全机制都是基于community的。community是代理与一组管理工作站之间的关系,这个关系定义了它们之间的认证、访问控制及proxy属性。它是由代理在本地定义,每个community有唯一的名字。一个代理可以有多个community,不同的代理可以拥有同名的community。
|
|
|
从管理工作站发出的每一个SNMP消息中都包含一个community的名称(可以看成是密码)。SNMP通过这种方式实现认证。访问控制则是通过MIB视图(MIB View)和访问模式(Access Mode)的组合来实现的。MIB视图是MIB的子集(这个子集不需要属于MIB的同一个子树)。访问模式包括两种{READ-ONLY,READ-WRITE}。一个community同一个MIB视图和一种访问模式联系起来。这就意味着,不同的community对应不同的访问级别,从而实现了访问控制。
|
|
|