SNMP(简单网络管理协议)在网络设备的运行监控管理上发挥着很重要的作用。SNMP是标准化的协议,简单地说,管理的设备称为SNMP代理(SNMP agent),它们负责提供信息给网管软件(SNMP manager),由网管软件把这些信息用图形化的方式呈现出来。每个SNMP代理维护着一个数据库,称为管理信息库(MIB),其中存储了大量的关于设备操作的数据,而SNMP协议正是用来收集这些数据到网管软件。
从技术上说,SNMP包含四个主要部分:
1)数据定义:针对代理和管理软件定义了数据的语法结构,又成为管理信息结构(SMI)。
2MIB库:根据不同应用领域,不同厂家设备,定义了各种各样的MIB库,MIB的定义必须遵循SMI版本的要求。
3)协议:用来在代理和管理程序之间交换管理数据的消息。
4)安全和管理:定义如何对数据的交换实行安全保护。
 
SNMP的版本
1SNMPv1:使用的是SMIv1,使用community来简单认证,开始使用MIB-I
2SNMPv2:使用的是SMIv2,不需要使用community,增加了GetBulkInform消息,开始使用MIB-II
3SNMPv2c:允许SNMPv1格式的communitySNMPv2下使用,其他与SNMPv2同。
4SNMPv3:相比于SNMPv2,主要增加了安全保护(但仍然支持community),使用MIB-II
 
SNMP协议的消息
SNMP使用UDP来传输数据,主要消息如下表:
消息
最开始使用的版本
响应消息
一般由谁发送
主要目的
Get
1
Response
Manager
请求一个简单变量值
GetNext
1
Response
Manager
请求MIB树中下一个简单MIB叶子值
GetBulk
2
Response
Manager
请求多个连续MIB值,主要用来获取复杂数据结构
Response
1
None
Agent
用来响应GetSet请求
Set
1
Response
Manager
告知agent设置一个变量的值
Trap
1
None
Agent
agent发送未请求信息给manager,例如当接口失效时
Inform
2
Response
Manager
SNMP manager之间用来交换MIB数据
 
SNMP协议的主要工作过程:
1Get过程:manager发送三种Get消息向agent请求信息,agent发送Response消息响应。
2Set过程:manager发送Set消息要求agent修改某变量值,agent设置此值,并发送Response消息响应。
3Trap过程:如果agent遇到什么紧急状态,发送Trap消息给manager,管理软件会把这类告警信息迅速呈现出来。
4Inform过程:两个manager之间发送Inform消息交换MIB信息。
 
SNMPMIB
MIB库有两个标准版本:MIB-IRFC 1156)和MIB-IIRFC 1213)。SNMPv1也可以使用MIB-II。后来MIB库的定义放开了,现在各个设备供应厂商都可以创建自己的MIB库。
远程监控MIBRMON, RFC 2819)也是一个很重要的标准化MIB。支持RMON MIBagent可以使用Set命令进行编程,可以捕获IP包、统计流量、阈值控制等。
 
SNMP安全性
SNMPv3在安全性上比以前版本有所增强,主要表现在两个方面:
1)认证方法:支持MD5SHA
2)加密方法:支持DES