Linux SNMPWALK:SNMP和SNMPWALK实用程序的概述
简单的网络管理协议(SNMP)是在八十年代后期创建的短期解决方案,以管理互联网上越来越多的网络节点。网络社区迅速采用SNMP,现在它是一个关于每个网络设备使用的标准网络管理协议。
SNMP现在是一个用于管理所有尺寸的网络的流行协议。它用于从设备(例如吞吐量和利用)的设备收集信息,但它也用于通过设置选项来配置设备。SNMP可在服务器,交换机,路由器,防火墙,打印机,笔记本电脑和平板电脑上提供所有类型的设备。
通过使用SNMP监视网络性能并收集统计和性能数据,网络管理系统可以以人类网络管理者以图形形式提供信息以审查。
通过在Udemy.com上课程了解有关Linux的更多信息。
SNMP模型
SNMP架构基于管理器/代理模型,由管理器元素,代理元素和设备管理信息的中央数据库组成。SNMP管理器(服务器)与SNMP代理接口,该代理程序驻留在远程设备上,沿着本地管理信息库(MIB)。
由于它们在同一设备上,代理直接与本地MIB接口,这是一个关于设备的信息,例如供应商,模型和修订,配置,性能,性能,吞吐量,状态等,所有信息收集在层次结构中。代理询问MIB并检索信息或设置配置参数。有两种类型的mibs:缩放者和表格。标量MIB表示单个对象实例,而表格MIB可以定义在MIB表中分组的多个相关对象实例。
对象标识符,OID,唯一地标识MIB层次结构中的托管对象。MIB层次结构与具有顶级MIB对象ID(OID)的树组织,属于不同的标准组织,其中分配给供应商的较低级别分支。供应商为自己的托管对象定义自己的私有分支机构。MIB通常在设备上预先配置,以及SNMP应用程序,但也可以通过供应商的开发人员进行学习的网站提供。
SNMP在基础上运行管理器元素通过SNMP代理发送请求和远程托管设备,询问MIB并返回响应。使用四个简单语句管理此简单协议:获取,下一步,设置和陷阱。
考虑一个简单的场景:
- 人类网络经理希望了解网关路由器上Internet WAN接口上的吞吐量和利用率
- 他要求SNMP网络管理器元素通过NMS(网络管理系统)或通过CLI提供该信息。
- SNMP网络管理器向SNMP代理发送驻留在网关路由器的SNMP代理,以从本地MIB获取该信息
- SNMP代理授权并检索有关Internet接口的OID的所需信息,即吞吐量和利用率,并将数据发送回NMS
- NMS更新其中央数据库并显示结果。
社区琴弦
SNMP社区字符串是SNMP用于粒度允许或限制对SNMP代理的访问和远程设备上的本地MIB的技术。代理商不得回答任何人。通常,信息将是公开和不受限制的。因此,某些设备配置了具有在某些OID上只读的公共字符串。通过访问列表设置了其他社区字符串,允许读/写函数以及一些是私有的。
SNMP命令
- get - 是从MIB检索OID的命令
- get-next - 是通过从一个oid到下一个oid的mib树的命令,这是命令snmp-walk是基于的。
- 设置 - 在参数中写入值
- 陷阱 - 由于传递的可配置阈值或激活触发器,发送错误消息或警报
SNMP通常用作网络管理系统的源,因为NMS可以挖掘多个供应商特定的SNMP状态和关于每个设备的配置信息来提供网络的整体视图。
SNMP走路
工具SNMPWalk不是SNMP协议的一部分,但它确实使用SNMP作为询问网络设备的方法。如果网络设备配置有公共字符串,则SNMPWAk可以与之通信。通过使用SNMP代理请求,Get-Next,SNMPWAk可以将OID指定为树中所希望获取信息的树中的起点。
snmpwalk命令必不可少使用公共社区字符串与设备连接。在该命令中,SNMPWALK问题将是一个OID参考点,通过使用Get-Next命令,它可以通过Hierarchal树的MIB的OID分支来传播,收集公共空密码上可用的所有信息。
安装snmpwalk.
包snmpwalk在大多数Linux存储库上,因此安装包不应该是一个问题。
在Redhat / Fedora / Centos:yum安装net-snmp-utils
Ubuntu:apt-get安装snmp
加载后,SNMPWALK命令参考如下所示,
用法:SNMPWALK [选项]代理[OID]
版本:5.4.2.1.
网页:http://www.net-snmp.org/
电子邮件:[电子邮件受保护]
选项:
-h,-help显示此帮助消息
-h显示配置文件指令理解
-v 1 | 2c | 3指定要使用的SNMP版本
-v,--version显示包版本号
SNMP版本1或2C特定
-c社区设置社区字符串
SNMP版本3具体
-a协议设置身份验证协议(MD5 | SHA)
-a passphrase集身份验证协议通过短语
-e Engine-ID设置安全引擎ID(例如800000020109840301)
-e Engine-ID设置上下文引擎ID(例如800000020109840301)
-l级别安全级别(noauthnopriv | authnopriv | authpriv)
-n上下文设置上下文名称(例如Bridge1)
-u用户名设置安全名称(例如BERT)
-x协议设置隐私协议(des | aes)
-X密码组集隐私协议通过短语
-z靴子,时间设定目的地发动机靴/时间
一般沟通选项
-r重试设置重试次数
一个snmpwalk示例命令
SNMPWALK的示例输出将检索系统下的所有变量:
#%snmpwalk -v 1 localhost公共系统
#system.sysdescr.0 =“sunos name sun4c”
#system.sysobjectId.0 = OID:Enterprises.ucdavis.ucdsnmpagent.sunos4
#system.sysuptime.0 = timeticks:(595637548)68天,22:32:55
#system.syscontact.0 =“[电子邮件受保护]>“
#system.sysname.0 =“riyadh_08_ws”
#system.syslocation.0 =“Riyadh,KSA”
#system.sysservices.0 = 72