SNMP及日志管理
SNMP(Simple Network Managemant Protocol,简单网络管理协议)提供了一种从网络设备中收集网络管理信息的方法,也为设备向网络管理工作站报告问题和错误提供了一种方法。SNMP可以屏蔽不同设备的物理差异,实现不同厂商产品的自动化管理。
SNMP已经成为IP领域网络管理的标准协议,并被广泛应用。
ISO(International Organization For Standardization,国际化标准组织)定义的网络管理关键功能有:
- 故障管理:对网络中的问题或故障进行定位的过程。通过提供快速检查问题并启动恢复过程的工具,使网络的可靠性增强。
- 计费管理:测量用户对网络的资源使用情况,并据此建立度量标准,设定额度,确定费用以及给用户开具账单。
- 配额管理:从网络获取数据,并使用这些数据对网络设备的配置进行管理的过程。目标是监视网络运行的环境和状态,改变和协调网络设备的配置,确保网络有效和可靠的运行。
- 性能管理:保证网络保持在可通过和不拥塞的状态,为用户提供更好的服务。目标是通过监控网络的运行状态、调整网络参数来改善网络的性能,确保网络的安全运行。
- 安全管理:通过控制信息的访问点保护网络中的敏感信息。
网络管理面临的挑战
- 网络规模越来越大;
- 网络设备越来越多样性;
- 自动化管理成为网络管理的基本需求;
SNMP提供了一种对多供应商、可协同操作的网络管理工具,成为应用广泛的IP网络管理协议
- SNMP协议实现简单,适合IP网络管理要求;
- SNMP能够花费最少的人力、设备、资金提供更智能的网络管理服务。
SNMP基本架构
- 网络管理站(NMS)
- NMS通常是一个独立的设备,上面运行着网络管理的应用程序。网络管理应用程序能够提供一个非常友好的人机交互界面,网络管理员能够通过它来完成绝大多数的网络管理工作。
- NMS通过SNMP协议从SNMP Agent获取管理信息,并且监听UDP162端口,接收SNMP Agent发送的Trap/警告信息。同时NMS还努力的做到提供失效管理、安全管理、计费管理、配置管理和性能管理。
- 代理器(Agent)
- SNMP Agent是驻留在被管理设备的一个软件模块,它主要负责如下管理任务:
- 监听UDP 161 端口,接收和处理来自NMS的请求报文,并将处理结果返回给NMS;
- 在一些紧急情况下,SNMP Agent还会主动发送Trap告警报文给NMS;
- SNMP Agent是驻留在被管理设备的一个软件模块,它主要负责如下管理任务:
- SNMP协议
- NMS与被管理设备之间的交互遵循SNMP协议规定;
- 管理信息库(MIB)
- MIB是存储在被管理设备中的管理信息数据库;
管理信息库(MIB)
- MIB是一个被管理对象的集合;
- 定义被管理对象的一系列的属性;
- MIB通过SMI进行组织和定义;
SNMP版本
常用的SNMP有三个版本
- SNMP v1 :RFC 1157定义
- SNMP v2c :RFC 1901~RFC1908定义
- SNMP v3:RFC3411~RFC3418定义
目前正是SNMP标准版本为 SNMP v3。
- SNMPv1和SNMPv2c在安全性上完全一样,都采用了基于团体名的鉴别机制,由于团体名在报文中采用明文方式传输,因此安全性非常有限。
- SNMPv1和SNMPv2c作为一种简单的鉴别协议,可以用在完全信任的网络中,可以简化实现和提高管理效率。但是对于非信任网络,需要提供一种更安全可靠的管理协议,SNMPv3就是在这种要求下产生的。
- SNMPv3在SNMPv2c基础上发展而来,协议操作上没有大的变化,在安全性方面有了实质的改进。它提供了基于指纹的认证机制、报文加密机制和基于MIB视图的访问控制机制。
PDU支持情况 | 安全级别 | 认证 | 加密 | |
---|---|---|---|---|
SNMPv1 | Get、GetNext、Set、Trap、GetResponse | noAuthNoPriv | community | NO |
SNMPv2c | Get、GetNext、Set、Trap、Inform、GetResponse、GetBulk | noAuthNoPriv | community | No |
SNMPv3 | Get、GetNext、Set、Trap、Inform、GetResponse、GetBulk | noAuthNoPriv、AuthNopriv、AuthPriv | MD5、SHA | DES、AES |
SNMP配置
代码语言:javascript复制[SWA]snmp-agent #启动SNMP Agent服务
[SWA]snmp-agent sys-info version {all {v1|v2c|v3}} #配置SNMP运行版本
[SWA]snmp-agent mib-view {excluded | included} [view-name] [oid-tree] [mask mask-value] #创建MIB视图内容
- excluded:表示当前视图不包括该MIB子树的任何节点(即禁止访问MIB子树的所有节点);
- included:表示当前视图包括该MIB子树的所有节点(即允许访问MIB子树的所有节点);
- view-name:视图名,为1~32个字符的字符串;
- oid-tree:MIB子树,用子树根节点的OID(如1.4.5.3.1)或名称(如 system)表示。OID是由一系列的整数组成,标明节点MIB树中的位置,它能唯一标识一个MIB库中的对象。
- mask mask-value:对象子树的掩码,十六进制数,长度为1~32中的偶数。
创建SNMPv3组
代码语言:javascript复制[SWA]snmp-agent group v3 [group-name] {authentication | privacy} {read-view read-view | write-view write-view | notify-view notify-view} [acl acl-number | acl ipv6 ipv6-acl-number]
- [group-name]:SNMP组名,为1~32个字符的字符串,区分大小写。
- authentication:指明对报文进行认证但不加密。
- privacy:指明对报文进行认证和加密。
- read-view [read-view]:只读视图名,为1-32个字符的字符串。缺省值为ViewDefault。
- write-view [write-view]:读写视图名,为1-32个字符的字符串。缺省情况下未配置读写视图,即NMS不能对设备的所有MIB对象进行写操作。
- notify-view [notify-view]:可以发Trap消息的视图名,为1-32个字符的字符串。缺省情况下,未配置Trap消息视图,即Agent不会向NMS发送Trap信息。
创建SNMPv3用户
代码语言:javascript复制[SWA]snmp-agent usm-user v3 [user-name] [group-name] simple authentication-mode md5 SWAauthkey privacy-mode des56 SWAprivkey
SNMP配置示例
要求网管使用SNMPv3管理设备,用户名为 bob ,该用户的访问要求认证加密,并且该用户对MIB-2中的非atTable内的节点有读或写权限。
代码语言:javascript复制[H3C]snmp-agent mib-view included bobview mib-2
[H3C]snmp-agent mib-view excluded bobview atTable
[H3C]snmp-agent group v3 bobgroup privacy read-view bobview write-view bobview
[H3C]snmp-agent usm-user v3 bob bobgroup simple authentication-mode md5 bobauthkey privacy-mode des56 bobprivkey