一套完整的SNMP系统主要包括:
管理信息库(MIB)
管理信息结构(SMI)
SNMP报文协议
管理信息结构(SMI)--定义了SNMP框架所用信息的组织、组成和标识,奠定了描述MIB对象和描述协议如何交换信息的基础。
v1、v2c、v3,功能是依次递增的,用的最多的是V2版本。
端口出现问题时可以发送警告信息; 以图形方式显示网络错误; 以图表的方式显示网络设备的带宽使用情况,可按端口,数据流向等分类。
SNMP设备包含了一个配置好的SNMP代理。网络管理系统(NMS)会与每个网络设备上的SNMP代理进行对话。
第一步:解码生成用内部数据结构表示的报文,解码依据ASN.1的基本编码规则。 第二步:取出报文中的版本号,如果与Agent支持的SNMP版本一致则继续第三步,不一致则丢弃该报文,不做进一步处理。 第三步:取出报文中的团体名,团体名由请求端填写。若团体名相符则继续第四步,若不相符则丢弃该报文,不做进一步处理,同时产生一个陷阱报文。 第四步:从通过验证的ASN.1对象中提取协议数据单元PDU,若成功则处理PDU,结果并生成一个报文,该报文的发送目的地址应与收到报文的源地址一致;如果失败,丢弃报文,不做进一不处理。
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个版本,也可设置其中一个版本。
snmpwalk是SNMP的一个工具,使用SNMP的GETNEXT请求查询指定OID(SNMP协议中的对象标识)入口的所有OID树信息。常用snmpwalk获取支持SNMP的网络设备信息,snmpwalk可以收集交换机、路由器的cpu、内存、端口流量等信息。
snmpwalk -v 2c -c community IP ifNumber
snmpwalk -v 2c -c community IP ifIndex
snmpwalk -v 2c -c community IP ifAdminStatus
snmpwalk -v 2c -c community IP ifOperStatus
snmpwalk -v 2c -c community IP ifDescr
snmpwalk -v 2c -c community IP ifType
snmpwalk -v 2c -c community IP ifinOctets
snmpwalk -v 2c -c community IP ifoutOctets
snmpwalk -v 2c -c community IP OID
ifType 端口的类型; ifDescr 端口类型的描述 有GigabitEthernet、FastEthernet等; ifMtu 可传输数据包的最大字节数; ifinOctets 端口输入的字节数; ifoutOctets 端口输出的字节数; ifIndex 桥接端口对应的端口; ifSpeed 端口速率; ifPhysAddress 端口的数据链路地址; ifAdminStatus 端口的管理状态,即端口的配置状态; ifOperStatus 端口的操作状态,即实际工作状态,若端口没有插线则状态为“down”; ifLastChange 端口最后更新成当前操作状态的时刻; ifInUcastPkts 通过上层协议传递到子网的单播报文数; ifInNUcastPkts 传递给上层网络协议的非单报文数; ifInDiscards 被丢弃的输入报文数,并且这些报文不会被传递给上层网络协议; ifInErrors 流入的错误报文数,由于错误使得这些报文不会被传递给上层网络协议; ifInUnknownProtos 由于未知或不支持的网络协议而丢弃的输入报文的数量; ifOutUcastPkts 需要发送给一个网络单播地址的报文数,包括丢弃的或未发送的报文数; ifOutNUcastPkts需要发送给一个非单播地址的报文数,包括丢弃的或未发送的报文数; ifOutDiscards 由于某种与特定错误条件无关的原因,而不能发送的报文数; ifOutErrors 由于错误而不能发送的报文数量; ifOutQLen 网络设备上的输出报文队列长度; ifSpecific MIB引用定义,指向一个用于实现该网络端口的特定介质类型; atIfIndex 指向每个特定映射; atPhysAddress 介质相关的物理地址(是一个有效的IP地址); atNetAddress 介质相关物理地址所关联的IP地址。
本文作者:方 威(上海新炬中北团队)
本文来源:“IT那活儿”公众号
文章转载自IT那活儿,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。