http://www.clnchina.com.cn/professional_certs/2011/0627/11299.shtml
最近在学习SNMP,MIB测试,碰到了SNMP v3,算是比较新的技术,在网上找了很多资料就没找到好的,现在自己研究,总结知识。
本内容的主要点在后面的SNMP v3的配置,纠结了很久,终于搞懂了。
另外SNMP测试可以使用iReasoning MIB,在http://www.ireasoning.com/ 可以下载到。
知识总结:
SNMP是Simple Network Manger Protocol(简单网络管理协议)的缩写,利用SNMP协议,网络管理员可以对网络上的节点进行信息查询、网络配置、故障定位、容量规划,网络监控和管理是SNMP的基本功能。
SNMP是一个应用层协议,为客户机/服务器模式,包括三个部分:
n SNMP网络管理器 //一般即为主机上的网管软件,HP OPENVIEW ,SOLDWIND 等,现今的大规模网络管理都使用此协议, UDP 162 由于trap消息为代理主动发送,此处需要端口号
n SNMP代理 //路由器交换机等网络设备上运行的SNMP程序,负责处理请 求及回应的 UDP 161
n MIB管理信息库 // 预先定义好的树形结构库,单个节点代表一个信息
MIB的相关概念:
下图为MIB的一个示例,很形象,学习过数据结果的一定不陌生,其它不多说。
上图中每个叶子节点代表一个属性,可以囊括网络产品的所有树形,如设备型号,电源状态,接口速率,流量类型等等。
如1.3.6.1.2.1.5 为节点ICMP,在网管软件中获取此节点与子节点的信息,可以得到所有与ICMP有关的信息与操作。
管理信息结构SMI(structure of management information) :
指定了在 SNMP 的 MIB 中用于定义管理目标的规则。
SMI 是一种语言,是为了确保网络管理数据的语法和语义明确和无二义性而定义的语言。 如整数型,浮点型,二进制型,IP地址类型,数据结构等。
它是定义被管理网络实体中特定数据的语言。
它定义了数据类型、对象模型,以及写入和修改管理信息的规则。读写权限。
目前的SNMP版本:
n SNMPv1 :简单网络管理协议的第一个正式版本,在RFC1157中定义。
n SNMPv2C:基于共同体(Community-Based)的SNMPv2管理架构, 在RFC1901中定义的一个实验性协议。
n SNMPv3 :通过对数据进行鉴别和加密,提供了以下的安全特性:
1) 确保数据在传输过程中不被篡改;
2) 确保数据从合法的数据源发出;
3) 加密报文,确保数据的机密性;
SNMPv2C是对SNMPV2的改进,增加了Get-bulk操作机制并且能够对管理工作站返回更加详细的错误信息类型。Get-bulk操作能够一次性地获取表格(注意与walk的区别,walk是获取所有表的信息)中的所有信息或者获取大批量的数据,从而减少请求-响应的次数。避免多次getnext.
SNMP管理操作:
SNMP协议中的NMS和Agent之间的交互信息,定义了6种操作类型:
1) Get-request操作:NMS从Agent提取一个或多个参数值。
2) Get-next-request操作:NMS从Agent提取一个或多个参数的下一个参数值。
3) Get-bulk操作:NMS从Agent提取批量的参数值;一个表格,SNMPV1不支持
4) Set-request操作:NMS设置Agent的一个或多个参数值。节点要有可写属性
5) Get-response操作:Agent返回的一个或多个参数值,是Agent对NMS前面3个操作的响应操作。
6) Trap操作:Agent主动发出的报文,通知NMS有某些事情发生。
将某些用户和一个组关联,再将某个组与某个视图关联。
snmp-server view view-name oid-tree {include | exclude} //定义可以被访问或者排除的MIB
snmp-server group groupname {v1 | v2c |v3 {auth | noauth | priv}} [read readview] [write writeview] [access {[ipv6 ipv6_aclname] [aclnum | aclname]}] //创建组并和视图关联
Ruijie(config)# snmp-server user username roupname {v1 | v2 | v3 [encrypted] [auth { md5|sha } auth-password ] [priv des56 priv-password] } [access {[ipv6 ipv6_aclname] [aclnum | aclname]}] //配置用户和组关联
配置实例:
1、snmpv1/v2模式均只要一条命令:
snmp-server comm. gaodong rw //gaodong相当于共享的密码,为明文传输
snmp-ser enable traps //开启trap通告
snmp host 192.168.225.147 traps gaodong //trap发往的主机地址
2、SNMP V3的配置
①认证不加密型:
snmp-server user gduser gdgroup v3 encrypted auth md5 gdong //用户名,组,认证方式,认证密码
snmp-server group gdgroup v3 auth read default write default //认证组赋予权限,auth为只认证不加密,其中default为默认的view视图,此view可自行定义,但有的设备不支持
snmp-server host 192.168.45.96 traps version 3 auth gduser //TRAP通告地址。指定用户名
snmp-server enable traps
snmp-server community gd rw
(红色部分均填写md5的认证模式---md5)
②、认证加密型:
snmp-server user gduser gdgroup v3 encrypted auth md5 gdong priv des56 gaod //指定认证加密的类型,密码,用户与组关联
snmp-server group gdgroup v3 priv read default write default //定义组的权限,priv为既认证又加密
snmp-server host 192.168.45.96 traps version 3 priv gduser
snmp-server enable traps
snmp-server community gd rw
③、不认证,不加密型:
snmp-server user gduser gdgroup v3 //用户名与组关联,指定版本号
snmp-server group gdgroup v3 noauth read default write default //定义组的权限,noauth为既不认证也不加密
snmp-server host 192.168.45.96 traps version 3 noauth gduser
snmp-server enable traps
snmp-server community gd rw
3 包含视图的配置实例:
以下的配置允许SNMPv3的管理者采用认证+加密模式通过用户名v3user对MIB-2(1.3.6.1.2.1)节点下的管理变量进行设置和查看。采用的认证模式为MD5,使用的认证密码为MD5-Auth,采用DES加密,加密密钥为DES-Priv。同时允许向192.168.65.199以SNMPv3格式发送Trap。发送Trap使用的用户名为v3user,采用认证+加密模式发送,采用的认证模式为MD5,使用的认证密码为MD5-Auth,采用DES加密,加密密钥为DES-Priv。
(config)# snmp-server view v3userview 1.3.6.1.2.1include
(config)# snmp-server group v3usergroup v3 priv read v3userview write v3userview
(config)# snmp-server user v3user v3usergroup v3 auth md5 md5-auth priv des56 des-priv
(config)# snmp-server host 192.168.65.199 traps version 3 priv v3user