SNMP Trap调试记录[通俗易懂]

SNMP Trap调试记录[通俗易懂]目录一、Trap与Inform二、Trap1、Agent端工作流程2、Manager端工作流程3、流程图三、调试四、SNMP中预定义的trap一、Trap与InformSNMPInformRequests功能允许路由器向SNMP管理器发送通知请求。路由器可以在发生特定事件时向SNMP管理器发送通知。例如,代理路由器可能在自身遇到错误情况时向管理器发…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

目录

一、Trap与Inform

二、Trap

1、Agent端工作流程

2、Manager端工作流程

3、流程图

三、调试

四、SNMP中预定义的trap


 


一、Trap与Inform

SNMP Inform Requests功能允许路由器向SNMP管理器发送通知请求。

路由器可以在发生特定事件时向SNMP管理器发送通知。例如,代理路由器可能在自身遇到错误情况时向管理器发送消息。通知有两种格式:Trap和Inform。

Trap是不可靠的,因为接收器在收到Trap时不发送任何确认。发件人无法确定是否收到了Trap。但是,接收Inform请求的SNMP代理使用SNMP response PDU确认该消息。如果代理未收到Inform请求,则不会发送回复。如果发送方从未收到响应,则可以再次发送Inform请求。因此,Inform更有可能到达其预期目的地。

因为它们更可靠,所以Inform在路由器和网络中消耗更多资源。与Trap一起发送时丢弃的Trap不同,必须在内存中保留Inform请求,直到收到响应或请求超时。此外,Trap仅发送一次,而Inform可能会重试几次。重试会增加流量并导致网络上的开销增加。因此,Trap和Inform请求提供了可靠性和资源之间的权衡。如果SNMP管理器收到每个通知很重要,请使用Inform请求。另一方面,如果您担心网络上的流量或路由器中的内存,并且您不需要接收每个通知,请使用Trap。

二、Trap

SNMP Trap是SNMP的一部分,当被监控段出现特定事件,可能是性能问题,甚至是网络设备接口宕掉等,代理端会给管理站发告警事件。通过告警事件,管理站可以通过定义好的方法来处理告警。

1、Agent端工作流程

①编写MIB文件,确定好TRAP名称等信息(一般MIB设备厂商会提供)

②命令方式:发送各种TRAP命令(Manager地址后面一定要加端口号162),在Manager端看反应结果,在Agent端无反应

③自动触发:配置snmpd.conf设置触发TRAP,系统发生某类错误时会自动触发相应类型的TRAP,发送给Manager

④程序方式:一部份TRAP需要写C语言程序,用相应的api(send_easy_trap或send_v2trap)发送

2、Manager端工作流程

①配置snmptrapd.conf文件,设置访问权限

②将MIB文件导入到mibs文件夹中

③用perl等脚本语言编写处理trap的程序

④配置snmptrapd.conf文件,添加traphandler项,将不同的TRAP对应到不同的处理程序上

3、流程图

SNMP Trap调试记录[通俗易懂]

图中在测试机 M1 上启动 snmptrapd 进程,并且在 UDP 162 端口上监听 SNMP Trap 信息,一旦收到 Trap,snmptrapd 将所接收到的 Trap 信息内容打印到一个本地的文本文件中。 机器 M2 模拟发送 SNMP Trap 的设备,将调用 net-snmp 的命令行程序 snmptrap 发送一个 Trap。

三、调试

snmptrapd安装路径:/usr/local/sbin/snmptrapd

其配置文件路径:/usr/local/sbin/snmptrapd.conf

添加如下配置文件内容:

authCommunity log,execute,net public

上面语句指明以“public”为“community”请求的snmp “notification”允许的操作。上面添加的是比较简单的配置,但可使snmptrapd程序运行起来并正确接收trap包。

服务器运行:

sudo snmptrapd -d -f -Lo

SNMP Trap调试记录[通俗易懂]

上面命令中的选项表示:

-C:表示不使用net-snmp默认路径下的配置文件snmptrapd.conf;

-c:指定snmptrapd.conf文件;

-d:显示收到和发送的数据报,通过这个选项可以看到数据报文;

-f:默认情况下,snmptrapd是在后台中运行的,加上这个选项,表示在前台运行;

-L:指定日志记录在哪里,后面的o表示直接输出到屏幕上,如果是跟着f表示日志记录到指定的文件中;

可通过snmptrapd -h查看命令帮助了解该命令的使用。

客户端运行:

sudo snmptrap -v1 -c public [管理端IP] 1.3.6.1.4.1.1  [代理端IP]  2 3 1000 1.3.6.1.9.9.44.1.2.1 i 12 1.3.4.1.2.3.1 s test_snmptrap

各参数含义:

SNMP Trap调试记录[通俗易懂]

snmptrapd和snmptrap都在虚拟Ubuntu中执行的,所以snmp管理端IP和snmp代理IP一样。执行后,在执行snmptrapd的窗口中可接收到数据,如下:

Received 82 byte packet from UDP: [192.168.11.129]:38271->[192.168.11.129]:162

0000: 30 50 02 01  00 04 06 70  75 62 6C 69  63 A4 43 06    0P.....public.C.

0016: 06 2B 06 01  04 01 01 40  04 C0 A8 0B  81 02 01 02    .+.....@........

0032: 02 01 03 43  02 03 E8 30  29 30 0E 06  09 2B 06 01    ...C...0)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                                                 ap



2019-05-22 10:49:36 61 [192.168.11.129] (via UDP: [192.168.11.129]:38271->[192.168.11.129]:162) TRAP, SNMP v1, community public

SNMPv2-SMI::enterprises.1 Link Down Trap (3) Uptime: 0:00:10.00

SNMPv2-SMI::internet.9.9.44.1.2.1 = INTEGER: 12 SNMPv2-SMI::org.4.1.2.3.1 = STRING: "test_snmptrap"

SNMP Trap调试记录[通俗易懂]

上线:

SNMP Trap调试记录[通俗易懂]

下线(服务器端):

SNMP Trap调试记录[通俗易懂]

上线(代理端):

SNMP Trap调试记录[通俗易懂]

上线(服务器端):

SNMP Trap调试记录[通俗易懂]

测试(服务器端):

SNMP Trap调试记录[通俗易懂]

四、SNMP中预定义的trap

snmp协议中定义了6种基本的trap,这6种trap可以涵盖大部分设备的主要状态改变,与企业自定义trap配合使用,就可以处理几乎所有的重要状态改变情况。

(1).coldStart:snmp发送实体正在重新初始化,以修改代理的配置或协议实例的实现,特别是由于崩溃或重大故障而引起的意外重启。

(2).warmStart:发送实体正在重新初始化,但不修改代理的配置或协议实例的实现。

(3).linkDown:表示代理的一个通信连接失败。

(4).linkUP:表示代理的一个通信连接成功。

(5).authenticationFailure:表示发送方的snmp消息检验失败

(6).egpNeighborLoss:表示发送协议实体的EGP邻居已被标记为Down,相邻关系已经不存在。

 企业专用trap:snmp定义的6个trap可以涵盖大部分的情况,但是很多情况下设备有自己特殊的状态,企业也希望发送或接收自己定义的trap以得到特殊的消息。使用trap定义宏就可以定义企业自己的trap。企业设备发送自定义trap时,必须同时定义trap的MIB一起分发出去,否则,其他管理站不能识别自定义trap的格式。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/171354.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • activexobject java_ActiveXObject[通俗易懂]

    activexobject java_ActiveXObject[通俗易懂]只有IE浏览器才支持这个构造函数,可以用这个来判断,当前是否为IE浏览器varisIE=!!window.ActiveXObject;在IE的不同版本下,要创建XHR对象,也需要通过这个构造函数来创建(构造时的参数不一样)。因为ActiveXObject的使用容易存在安全问题,如IE11中报错Automation服务器不能创建对象解决办法:Internet选项-安全-自定义安全级别-启用“对未…

    2022年10月15日
  • intellijidea激活码【最新永久激活】

    (intellijidea激活码)2021最新分享一个能用的的激活码出来,希望能帮到需要激活的朋友。目前这个是能用的,但是用的人多了之后也会失效,会不定时更新的,大家持续关注此网站~IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.cn/100143.html…

  • 8.WLAN频段介绍_频段与信道「建议收藏」

    8.WLAN频段介绍_频段与信道「建议收藏」频段与信道1、ISM频段一、pandas是什么?二、使用步骤1.引入库2.读入数据总结1、ISM频段一、pandas是什么?示例:pandas是基于NumPy的一种工具,该工具是为了解决数据分析任务而创建的。二、使用步骤1.引入库代码如下(示例):importnumpyasnpimportpandasaspdimportmatplotlib.pyplotaspltimportseabornassnsimportwarningswarnings.fil

  • mysql数据类型tinyint_mysql字段类型长度

    mysql数据类型tinyint_mysql字段类型长度在MySQL的数据类型中,Tinyint的取值范围是:带符号的范围是-128到127。无符号的范围是0到255(见官方《MySQL5.1参考手册》http://dev.mysql.com/doc/refman/5.1/zh/column-types.html#numeric-types)。Tinyint占用1字节的存储空间,即8位(bit)。那么Tinyint的取值范围怎么来的呢?我们先看无符号…

  • IDEA导入jar包[通俗易懂]

    IDEA导入jar包[通俗易懂]一、导入1、java项目在没有导入该jar包之前,如图:2、点击File->ProjectStructure(快捷键Ctrl+Alt+Shift+s),点击ProjectStructure界面左侧的“Modules”如图:3、在“Dependencies”标签界面下,点击右边绿色的“+”号,选择第一个选项“JARsord…

  • 网络带宽是什么?「建议收藏」

    网络带宽是什么?「建议收藏」1.网络带宽是指单位时间内能传输的数据量,带宽是为了表示网络中传送数据的能力。2.它的单位是bit/s.实际上4M带宽,由于bit和byte之间的转换,实际上理论传输速率为512KB/s

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号