snmptrap作用,SNMPTRAP
在“snmpwalk的介绍和使用”一文中,介绍了net-snmp的snmpwalk的使用方法。众所周知,net-snmp也有trap的命令程序,可以用来测试snmp的trap方法(包括inform方法)。这些命令程序是:snmptrap、snmpinform和snmptrapd。其中包括:
Snmptrap:可以模拟snmp代理向snmp管理端(一般称为网络管理、SNMP管理器或SNMP客户端)发送陷阱;
Snmpinform:可以模拟snmp代理向snmp管理端发送inform请求(Trap是发送给SNMP管理器通知网络状态的警告消息,inform是需要SNMP管理器确认接收的陷阱。与Inform相比,Trap通知方式是不可靠传输,因为snmp管理端在收到Trap通知后不需要回复任何确认信息,所以snmp代理无法知道Trap通知是否已经被snmp管理端正确接收);
Snmptrapd:模拟snmp管理端接收trap/inform通知的程序;
从上面可以看出,通过上面的三个命令程序,我们可以研究snmp的陷阱行为和消息。如果你正在开发snmp代理的trap功能,但是没有snmp管理终端,这三个程序可以帮到你很多。下面详细介绍这三个命令程序的具体用法。
snmptrapd的配置和使用
Snmptrapd.conf文件
和snmp代理一样,snmptrapd需要一个配置文件才能运行,否则会提示无法接收陷阱信息。snmptrapd需要的配置文件名叫做snmptrapd.conf安装net-snmp后,这个配置文件默认不可用,所以需要新建一个文件。文件snmptrapd.conf可以放在net-snmp的安装路径中,也可以放在其他路径中,但需要在启动时指定。建立后,添加以下文件内容:
authCommunity日志,执行,网络公共
上述声明指出了snmp“通知”的允许操作,其中“公共”作为“团体”请求[参见参考文献2]。以上是比较简单的配置,但是可以让snmptrapd程序正确运行并接收trap包。snmptrapd.conf文件更详细的配置及其解释参考[1]。
运行snmptrapd程序
sudo snmptrapd-C-C Documents/snmptrapd . conf-df-Lo
上述命令中的选项表示:
-C:表示配置文件snmptrapd.conf在默认路径下,不使用net-snmp
-c:指定snmptrapd.conf文件;
-d:显示接收和发送的数据报,通过该选项可以看到数据报;
-f:默认情况下,snmptrapd在后台运行。有了这个选项,就意味着在前台运行;
-L:指定记录日志的位置,后面的O表示直接输出到屏幕。如果后面跟F,表示日志记录在指定的文件中;
snmptrap的使用
Snmptrap可以模拟发送不同snmp协议版本的trap包。snmptrap在各个协议版本中的使用方法略有不同。
一种发送V1版本陷阱消息的方法
sudo snmptrap-v1-c public 10 . 10 . 12 . 219 1 . 3 . 6 . 1 . 4 . 1 . 1 10 . 10 . 12 . 219 2 3 1000 1 . 3 . 6 . 1 . 9 . 44 . 1 . 2 . 1 I 12 1 . 3 . 4 . 1 . 2 . 3 . 1s test _ snmptrap
上述指令参数的含义如下:
在上面的例子中,snmptrapd和snmptrapd都是在虚拟Ubuntu中执行的,因此snmp管理IP与snmp代理IP相同。执行后,可以在执行snmptrapd的窗口中接收数据,如下所示:
04 01 01 40 04 0A 0A 0C DB 02 01 02。….@…… .
0032:02 01 03 43 02 03 E8 30 29 30 0E 06 09 2B 06 01…C…0).
0048:09 09 2C 01 02 01 02 01 0C 30 17 06 06 2B 04 01.……0… .
0064:02 03 01 04 0D 74 65 73 74 5F 73 6E 6D 70 74 72….test_snmptr
0080: 61 70美联社
2013-03-23 17:44:32 Ubuntu . local[10 . 10 . 12 . 219](via UDP:[10 . 10 . 12 . 219]:52930)陷阱,SNMP v1,社区公共
SNMPv2-SMI:enterprises.1链接中断陷阱(3)正常运行时间:0:00:10.00
SNMP v2-SMI:internet . 9 . 9 . 44 . 1 . 2 . 1=INTEGER:12 snmpv 2-SMI:org . 4 . 1 . 2 . 3 . 1=STRING:" test _ snmptrap "
Snmptrapd收到一个陷阱类型为2(即链接关闭类型)且功能代码为3的陷阱数据包。
一种发送V2版本陷阱消息的方法
从上面可以看出,V1版发送trap包时有很多参数比如uptime,但是在V 2c版是给指令程序的。
sudo snmptrap-v 2c-c public 10 . 10 . 12 . 219 AAA 1 . 3 . 6 . 1 . 4 . 1 . 2345 SNMP v2-MIB:sys location . 0s 就在这里
上面指令各项参数的意思分别为:
“aaa”:分别是简单网络管理协议简单网络管理协议代理的互联网协议(互联网协议)和主机名称,主机名称可以为空;
1.3.6.1.4.1.2345:企业OID,企业-OID;
SNMPv2-MIB:sysLocation.0 s "就在这里":分别是:数据OID,数据类型、数据值。
使用V2c版本,是不是省了很多,不用输入很多的参数选项。执行指令后,snmptrapd收到如下数据信息:
从用户数据报协议(User Datagram Protocol)收到75字节:[10.10.12.219]:40033
0000:30 49 02 01 01 04 06 70 75 62 6C 69 63 A7 3C 02 0I….公共的。
2E 30 15 06.
2B 06 01 06 03 01 01 04 01 00 06 07 2B 06 01.
2B 06 01 02 01 01 06 00……)0……
6A 75 73 74 20 68 65 72 65.就在这里
Ubuntu。本地[UDP:[10。10 .12 .219]:40033]:
SNMP v2-MIB:snmptrapoid。0=OID:SNMP v2-SMI:企业。2345 SNMP v2-MIB:sys位置。0=字符串:就在这里
snmpinform的使用方法
snmpinform的使用跟snmptrap的使用方法是一样的,在这里就不多介绍和说明了。最后,贴上它们的使用帮助信息:
用法:snmptrap[选项]代理陷阱-参数
版本:5.3.0.1
网络:http://www.net-snmp.org/
电子邮件:net-snmp-coders@lists.sourceforge.net
选项:
救命啊显示此帮助消息
-理解高清显示配置文件指令
-v1 2c 3指定要使用的简单网络管理协议(Simple Network Management Protocol)版本
-V,-版本显示软件包版本号
简单网络管理协议(Simple Network Management Protocol)版本一或2c特定
-c社区设置社区字符串
简单网络管理协议(Simple Network Management Protocol)版本3特定
-协议集认证协议(MD5SHA)
-密码短语集身份验证协议密码短语
-e引擎ID设置安全引擎ID(例如800000020109840301)
-E引擎-IDset上下文引擎ID(例如800000020109840301)
水平设置安全级别(noAuthNoPriv authNoPriv authPriv)
语境设置上下文名称(例如桥1)
-你用户名设置安全名称(例如伯特)
加在以-u结尾的法语词源的名词之后构成复数协议集隐私协议(DESAES)
加在以-u结尾的法语词源的名词之后构成复数密码设置隐私协议密码
-Z型靴子,时间设定目的地引擎启动/时间
常规通信选项
-r次重试设置重试次数
超时请求超时(秒)
排除故障
-十六进制的ddump输入/输出数据包
-D令牌[,]打开指定令牌的调试输出
(全部给出极其详细的调试输出)
常规选项
-m MIB[:]加载给定的管理信息库列表(全部加载所有内容)
-M目录[:]在给定的目录列表中查找管理信息库
-P MIBOPTSToggle控制管理信息库解析的各种缺省值:
u:允许在管理信息库符号中使用下划线
丙:不允许使用"-"来结束注释
d:保存管理信息库对象的描述
e:当管理信息库符号冲突时禁用错误
女:当管理信息库符号冲突时启用警告
女:当管理信息库符号冲突时启用详细警告
r:替换最新模块中的管理信息库符号
-O OUTOPTSToggle控制输出显示的各种默认值:
0:打印一位数十六进制字符的前导0
答:以美国信息交换标准码格式打印所有字符串
不要分解似…的指数
e:打印数字清单
e:字符串索引中的转义引号
女:在输出上打印完整的似…的
n:用数字打印似…的
问:快速打印以便于解析
问:带等号的快速打印
只印似…的最后的象征元素
学生:打印管理信息库模块编号加上最后一个元素
t:打印未解析为数字整数的时间标签
t:打印人类可读的文本以及十六进制字符串
u:使用UCD式前缀抑制打印似…的
u:不打印单位
五:仅打印值(非OID=值)
x:以十六进制格式打印所有字符串
x:扩展索引格式
-我不在切换控制输入解析的各种缺省值:
乙:进行最佳/正则表达式匹配来查找管理信息库节点
不要应用显示提示
r:不检查范围/类型合法性的值
随机访问似…的标签
u:顶级似…的必须有"."前缀(UCD风格)
s后缀:在解析之前给所有文本似…的附加后缀
s前缀:在解析之前在所有文本似…的前面加上前缀
-L LOGOPTSToggle控制日志记录的各种默认值:
e:记录到标准错误
o:记录到标准输出
根本不要登录
f文件:记录到指定的文件
s工具:记录到系统日志(通过指定的工具)
(变体)
[EON]优先级:记录到标准错误,对于"优先级"及以上级别,输出或/dev/null
[EON] p1-p2:记录级别" p1 "到" p2 "的标准错误、输出或/dev/null
[FS] pri令牌:记录到"优先级"及以上级别的文件/系统日志
[FS] p1-p2标记:记录到级别" p1 "到" p2 "的文件/系统日志
-丙应用程序设置各种特定于应用程序的行为:
我:发送通知而不是陷阱
-第一版阱-参数:
企业似…的代理陷阱类型特定类型正常运行时间[OID类型值]…
或者
-v 2捕集阱-参数:
正常运行时间梯形[OID类型值] …
如果还不明白的,可以看一下下面的参考资料,或许对你有帮助。
参考资料
[1]http://blog . . net/dumeifang/article/details/4201860
[2]http://hi . Baidu . com/snail zone/item/73b 4541 c 104154701009 b590
[3]http://blog . China UNIX . net/uid-677314-id-83386 . html
[4]http://blog . . net/FX Zhang/article/details/5408827