关于snmp代理端发送smnptrap的小记

简介:

       在snmp代理的开发过程中,我们经常需要发送告警信息到snmp服务站。正如我们所知道的,snmptrap发送到服务站的162号默认端口,并且采用的是udp方式通信。snmp目前有三个版本,其中v1、与v2在加密方面要逊色很多,而到了v3版本才将加密功能完善优化。V1的版本比较基础,V2版本在基于V1版本上增加了分布式管理等功能。

      这里我们主要分析一下v1、v2两个版本在发送snmptrap时的区别,仅作为参考使用

一  v1版本的snmptrap 

V1 snmptrap格式
snmptrap-v1-cpublicdst hostipenterprise idagent idtrap 类型trap的特殊标示snmp时间戳OID数据类型数据

 

字段含义:

dst hostip 为发送的目的地址,或者说是管理站的ip。

enterprise id为 私有oid的标示字段。可以为空,若为空的话,snmp默认id为1, 3, 6, 1, 4, 1, 3, 1, 1。

agent id 为发送snmptrap代理的ip,可以为空,为空的话snmptrap会主动去获取代理的ip(这就因代理的系统、软件的差别还不同了,snmp代理不一定能获取到所有类型系统的ip地址)

trap类型:

     0-代理进行了初始化(coldstart)

  1. 代理进行了重新初始化(warmstart)
  2. Linkdown
  3. Linkup
  4. 从SNMP管理进程接收到具有一个无效共同体的报文
  5. 一个EGP相邻路由器变为故障状态
  6. 自定义

trap的特殊标示:一般取0值就可以了。

snmp时间戳:可以为空,为空的话,系统会去查找最近一次重启代理进程(snmpd)的时间

OID:需要发送的OID值。

数据类型:待发送的数据类型,例如i 表示整数,s表示字符串。

数据:要发送的数据。

一个简单的例子

snmptrap -v1 -c public 192.168.0.102 1.3.6.1.4.1.1 192.168.0.102 6 10 100 1.3.6.1.9.9.44.1.2.1 i 12 1.3.4.1.2.3.1 s aaa
 

二、v2版本的snmptrap的格式相对来说比v1简单许多,兼容性和扩展性也好一些,建议使用V2版本的trap。

snmptrap V2版本格式
snmptrap-v 2c-cpublicdst hostiptrap时间戳snmptrap表示oidOID数据类型数据

字段分析:

dst hostip :为发送的目的地址,或者说是管理站的ip。

trap时间戳:snmp代理默认发送snmp的时间戳,时间戳的oid为默认1, 3, 6, 1, 2, 1, 1, 3, 0。如果这个不需要的话,大家可以去研究一下snmp源码,将其注释掉就行了。

snmptrap表示oid:默认为1, 3, 6, 1, 6, 3, 1, 1, 4, 1, 0。这也是snmp代理默认发送,如果大家不需要,也可以去源码中将其注释。

注意:在修改snmp代码时千万不要去修改snmo内核代码,这个是开发snmp的经验之谈。再没有充分证据之前,千万别去修改内核,包括get、set等开发,不然会引起你想不到的问题。

一个简单的例子

snmptrap -v 2c -c public 192.168.1.105 1 2 1.3.6.1.2.1.1.3.1.1.1 i 3


对于V3版本的trap,因涉及到加密认证,再次先不做介绍,后续有时间会更进。

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值