1、SNMP协议

SNMP即简单网络管理协议,是监视网络设备(包括路由器、交换机、防火墙)性能的通用方法。通过SNMP管理站点,可以查看网络设备性能的图表。

一套完整的SNMP系统主要包括:

  • 管理信息库(MIB)
  • 管理信息结构(SMI)
  • SNMP报文协议

管理信息库MIB--被管理的设备资源都表示成一个对象,MIB是被管理对象的集合,定义了被管理对象的一系列属性:对象的名称、对象的访问权限和对象的数据类型等。每个SNMP设备(Agent)都有自己的MIB。MIB也可以看作是NMS(网络管理系统)和Agent之间的沟通桥梁

管理信息结构(SMI)--定义了SNMP框架所用信息的组织、组成和标识,奠定了描述MIB对象和描述协议如何交换信息的基础。

2、SNMP版本

v1、v2c、v3,功能是依次递增的,用的最多的是V2版本

1. SNMPv1

是 SNMP 协议的最初版本,提供最小限度的网络管理功能。

SNMPv1 的 SMI 和 MIB 都比较简单,且存在较多安全缺陷。SNMPv1采用团体名认证。团体名的作用类似于密码,用来限NMS对Agent的访问。

如果 SNMP 报文携带的团体名没有得到 NMS/Agent 的认可,该报文将被丢弃。SNMPV1 是一种简单的请求/响应协议,网络管理系统发出一个请求,管理器则返回一个响应。

2. SNMPv2c

同SNMPv1一样也采用团体名认证。兼容SNMPv1的同时又扩充了功能,提供了更多的操作类型(GetBulk--批量获取操作等),支持更多的数据类型(Counter32等),提供了更丰富的错误代码,能够更细致地区分错误。SNMPV2添加和增强了有关协议操作。

3. SNMPv3

主要在安全性方面进行了增强,它采用了 USM(基于用户的安全控制模型)和 VACM(基于视图的访问控制模型) 技术。USM 提供了认证和加密功能,VACM 确定用户是否允许访问特定的 MIB 对象以及访问方式。

SNMP可以做什么:

  • 端口出现问题时可以发送警告信息;
  • 以图形方式显示网络错误;
  • 以图表的方式显示网络设备的带宽使用情况,可按端口,数据流向等分类。

3、SNMP运行过程

SNMP设备包含了一个配置好的SNMP代理。网络管理系统(NMS)会与每个网络设备上的SNMP代理进行对话。

网络设备上的AGENT从UDP端口161接收的串行化请求报文,经解码、团体名验证、分析得到管理变量在MIB树中对应的节点,从相应的模块中得到管理变量的值,再形成响应报文,编码发送返回。请求端得到响应报文后,再经同样的处理来显示结果。

处理过程分为四步:

  • 第一步:解码生成用内部数据结构表示的报文,解码依据ASN.1的基本编码规则。
  • 第二步:取出报文中的版本号,如果与Agent支持的SNMP版本一致则继续第三步,不一致则丢弃该报文,不做进一步处理。
  • 第三步:取出报文中的团体名,团体名由请求端填写。若团体名相符则继续第四步,若不相符则丢弃该报文,不做进一步处理,同时产生一个陷阱报文。
  • 第四步:从通过验证的ASN.1对象中提取协议数据单元PDU,若成功则处理PDU,结果并生成一个报文,该报文的发送目的地址应与收到报文的源地址一致;如果失败,丢弃报文,不做进一不处理。

常用的SNMP配置命令:

  • snmp-agent sys-info contact

    设置管理员的标识及联系方法,contact可自定义。

  • snmp-agent sys-info location

    设置交换机的位置信息,初始一般没有设置。

  • snmp-agent community read test

    设置SNMP Community,使用Community连接网络设备时,只可以读取其SNMP信息,test也可以自定义。

  • snmp-agent community write private

    设置SNMP Community,使用Community连接网络设备时,不仅可以读取其SNMP信息,还可以将值写入SNMP的MIB对象,实现对设备进行配置。Private同样可自定义。

  • snmp-agent sys-info version all

    设置网络设备支持的SNMP协议,有v1,v2c,v3这3个版本,设置all则同时支持这3个版本,也可设置其中一个版本。

4、snmpwalk工具

snmpwalk是SNMP的一个工具,使用SNMP的GETNEXT请求查询指定OID(SNMP协议中的对象标识)入口的所有OID树信息。常用snmpwalk获取支持SNMP的网络设备信息,snmpwalk可以收集交换机、路由器的cpu、内存、端口流量等信息。

①、服务器安装snmp

yum install -y net-snmp net-snmp-devel net-snmp-utils
sudo apt-get install snmpd 
sudo apt-get install snmp
systemctl start snmpd
systemctl enable snmpd

为了获取所有的数据,修/etc/snmp/snmpd.conf,添加最后一行

view systemonly included .1.3.6.1.2.1.1 
view systemonly included .1.3.6.1.2.1.25.1 
view systemonly included .1 
service snmpd restart 

使用下面命令测试

snmpwalk -help

如果显示帮助信息,则安装成功。

②、检查上面列出的安装包是否已经安装

rpm -qa | grep snmp

检查

net-snmp-5.3.2.2-9.el5.x86_64.rpm
net-snmp-devel-5.3.2.2-9.el5.x86_64.rpm (非必须安装包)
net-snmp-libs-5.3.2.2-9.el5.x86_64.rpm
net-snmp-utils-5.3.2.2-9.el5.x86_64.rpm

四个包是否安装,用同样的方式检查其他安装包是否安装。

如果已经安装,为了保持安装的rpm包的一致性,建议删除已经安装的包,

删除命令为rpm -e --nodeps rpm包名

--nodeps表示忽略依赖。

③、snmpwalk基本语法

参数说明
 –h:显示帮助。
 –v:指定snmp的版本, 1或者2c或者3。
 –c:指定连接设备SNMP密码。
 –V:显示当前snmpwalk命令行版本。
 –r:指定重试次数,默认为0次。
 –t:指定每次请求的等待超时时间,单为秒,默认为3秒。
 –l:指定安全级别:noAuthNoPriv|authNoPriv|authPriv。
 –a:验证协议:MD5|SHA。只有-l指定为authNoPriv或authPriv时才需要。
 –A:验证字符串。只有-l指定为authNoPriv或authPriv时才需要。
 –x:加密协议:DES。只有-l指定为authPriv时才需要。
 –X:加密字符串。只有-l指定为authPriv时才需要。

④、snmpwalk用法举例

snmpwalk -v [版本] -c [交换机SNMP密码] [交换机IP地址]

如:snmpwalk -v 2c -c switch123 192.168.31.233

回车会显示所有的OID值信息。

Copyright © https://yan-jian.com 2023 all right reserved更新时间: 2024-01-04 18:11:57

results matching ""

    No results matching ""