snmp协议
前言
随着互联网的发展,大数据、自动驾驶、云计算、元宇宙等技术的创新,互联网已经深入融入人们的生活。作为用户从来不会关注网络的崩溃、中断或者故障。但是作为运营商或者供应商而言,网络的错误、故障、中断每时每刻都有可能发生。
大型公司都有网络管理对网络进行性能监控、流量告警的管理,今天我们主要针对网络管理篇之snmp的学习。
一、snmp是什么?
简单网络管理协议(snmp)是专门设计用于在IP网络管理网络节点的一种协议,它是一种应用层协议。
1.1简介
SNMP是专门设计用于在IP网络管理网络节点(服务器、工作站、路由器、交换机及HUBS等)的一种标准协议,它是一种应用层协议。SNMP是网络管理员能(及事件报告)网络管理系统获知网络出现问题。
SNMP的前身是简单网关监控协议(SGMP),用来对通信线路进行管理。随后,人们对SGMP进行很大的修改,特别是加入符合Internet定义的SMI和MIB,改进后的协议就是著名的SNMP。基于TCP/IP的SNMP网络管理框架是工业上的现行标准,由3个部分组成,分别是管理信息结构SMI(Structure ofManagement Information)、管理信息库MIB和管理协议SNMP。
- SMI定义SNMP框架所用信息的组织和标识,为MIB定义定义管理对象及使用管理对象提供模版。
- MIB定义可以通过SNMP进行访问的管理员对象的集合。
- SNMP协议是应用层协议,定义网络管理员如何对代理进行的MIB对象进行读写操作。
SNMP 中的MIB是一种树状数据库,MIB管理的对象,就是树的端节点,每个节点都有唯一位置和唯一名字,IETF规定管理信息库对象识别符(Object Identifier) 唯一指定,其命名规则就是父节点作为子节点名字的前缀。
1.2 组成部分
&emsp 一个SNMP管理的网络由下列三个关键组件组成:
- 网络管理系统(Network-Management systems)
- 被管理的设备(managed device)
- 代理这(agent)
网络管理系统运行应用程序,以该应用程序监视并控制被管理的设备,也被为管理实体(managing entity),网络管理员在这与网络设备进行交互。网络管理系统提供网络管理需要大量的运行运算和记忆资源。一个被管理的网络可能存在一个以上的网络管理系统。
被管理的设备是一个网络节点,它包含在一个存在于被管理的网络中的SNMP代理者。被管理的设备通过管理信息库(MIB)收集并存储管理信息,并且让网络管理系统能够通过SNMP代理者取得这项信息。
代理者是一种存在于被管理的设备中的网络管理软件模块。代理者控制本地机器的管理信息,以和SNMP兼容的格式传送这项信息。
1.3 技术优点
SNMP是管理进程(NMS)和代理进程(agnet)之间的通信协议。它规定了在网络环境中对设备进行监视和管理的标准化管理框架、通信的公共语言、相应的安全和访问控制机制。网络管理员使用SNMP功能可以查询设备信息、修改设备的参数值、监控设备设备状态、自动发现网络故障、生成报告等。
SNMP具有以下技术优点:
- 基于TCP/IP互联网的标准协议,传输层协议一般采用UDP。
- 自动化网络管理。网络管理员可以利用SNMP平台在网络上的节点检索信息、修改信息、发现故障、完成故障诊断、进行容量规划和生成报告。
- 屏蔽不同设备的物理差异,实现对不同厂商产品的自动化管理。SNMP只提供最基本的功能集,使得管理任务与被管理设备的物理特性和实际网络类型相对对立,从而实现对不同厂商设备的管理。
- 简单的请求-应答方式和主动通告方式相结合,并有超时和重传机制。
- 报文种类少,报文格式简单,方便解析,易于实现。
- SNMPv3版本提供了认证和加密安全机制,以及基于用户和视图的访问控制功能,增强了安全性。
1.4 架构方式
1.4.1 主代理
主代理是一个可运行SNMP的网络组件上运行的软件,可回应从管理站发出的SNMP要求。它的角色类似客户端/服务器结构术语中的服务器。主代理依赖子代理提供有关特定功能的管理信息。
如果系统当前拥有多个可管理的子系统,主代理就会传递它从一个或者多个子代理收到的请求。这些子代理在一个子系统以及对那个子系统进行检测和管理操作的接口内为关心的对象建模。主代理和子代理的角色可以合并,在这种情况下我们可以简单的成为代理。
1.4.2 子代理
子代理时一个在运行SNMP的网络组建上的软件,运行在特定子系统的特定管理信息库(Management Information Base)中定义的信息和管理功能。
子代理的一些能力有:
- 搜集主代理的信息
- 配置主代理的参数
- 回应管理者的要求
- 产生告警或者陷阱
对协议和管理信息结构的良好分离使得使用SNMP来检测和管理同一网络内上百的子系统非常简单。MIB模型运行管理OSI参考模型的所有层,并可以扩展至诸如数据库,电子邮件以及J2EE参考模型之类的应用。
1.4.3 管理站
管理者或者管理站提供第三个组件。它和一个客户端/服务器结构下的客户端一样工作。它根据一个管理员或者应用程序的行为发出管理操作的请求,也接收代理处获得的TRAP。
1.5 协议种类
目前SNMP有3种:SNMPv1、SNMPv2、SNMPv3。第1版和第2版没有太大的差别,但是SNMPv2是增强版本,包含了其他协议操作。与前俩种相比,SNMPv3则包含更多安全和远程配置。为了解决不同SNNP版本间的不同兼容问题,RFC3584中定义了三者共存策略。
SNMP还包含一组由RMON、RMON2、MTB2、OCDS及OCDS定义的扩展协议。
1.6协议结构
SNMP是一种应用程序协议,封装在UDP中。各种版本的SNMP信息通用格式如下所示:
- Version Comnunity PDU
- Version:SNMP版本号。管理器和代理器必须使用相同版本的SNMP。需要删除具有不同版本号的信息,并不对他们作进一步的处理。
- Community:t团体名称,用于在访问代理器之前的认证管理器。
- PDU(协议数据单元):SNMPv1、v2和v3中的PDU类型和格式将在对应文件中作具体介绍。
2、SNMPWLAK命令
SNMPWALK是一个通过SNMP GET-NEXT类型PDU,实现对目标AGENT的某指定MIB分支信息进行完整提取输出的命令工作。
- 命令行
snmpwalk [选项] agent [oid]
选项参数,由于SNMP协议中,不同的协议版本存在不同的参数选项,一下参数按协议分开说明。
-
通用选项
1、-h:显示帮助
2、-v:1|2c|3指定SNMP协议版本
3、-V:显示当前SNMPWALK命令版本
4、-r:RETRIES指定重试次数,默认为0次
5、-t:TIMEOUT指定每次请求的等待超时时间,单位秒,默认为3秒
6、-Cc:指定当在WALK时,如果发现OID负增长将是否继续WALK -
V1、V2选项
1、-c:COMMUNITY指定共同体字符串 -
V3选项
1、-l:LEVEL指定安全级别:noAuthNoPriv|authNoPriv|authPriv
2、-u:USER-NAME安全名字
3、-a:PROTOCOL验证协议:MD5|SHA。如果-l指定为authNo Priv或authPriv时才需要。
4、-A:PASSPHASE验证字符串。如果-l指定为authNoPriv或authPriv时才需要。
5、-x:PROTOCOL加密协议:DES。如果-l 指定为authPriv时才需要。
6、-X:PASSPHASE加密字符串:如果-l 指定为authPriv时才需要。
系统参数(1.3.6.1.2.1.1) | |||
OID | 描述 | 备注 | 请求方式 |
1.3.6.1.2.1.1.1.0 | 获取系统基本信息 | 备注 | 请求方式 |
1.3.6.1.2.1.1.3.0 | 监控时间 | sysUptime | GET |
1.3.6.1.2.1.1.5.0 | 获取机器名 | SysName | GET |
1.3.6.1.2.1.1.7.0 | 机器提供的服务 | SysService | GET |
2.3 示例
- SNMPWALK V1版本
snmpwalk -v 1 -c rizhiyi 192.168.0.1 1.3.6
- SNMPWALK V2版本
snmpwalk -v 2c -c rizhiyi 192.168.0.1 1.3.6.1.2.1.2.2.1.2
- SNMPWALK V3版本
snmpwalk –v 3 –l authNoPriv –u gov –A MD5 –a “gov auth pass” –r 3 192.168.0.1 .1
技术交流QQ:870648354
才华不溢,梦想依旧
唯心沉淀,遨游宇宙