第25章 SNMP: 简单网络管理协议

25.10 Trap

本章我们看到的例子都是从管理进程到代理进程的。当然代理进程也可以主动发送 t r a p到管理进程,以告诉管理进程在代理进程侧有某些管理进程所关心的事件发生,如图 2 5 - 1所示。t r a p发送到管理进程的1 6 2号端口。

在图2 5 - 2中,我们已经描述了 trap PDU的格式。在下面关于 t c p d u m p输出内容中我们将再一次用到这些字段。

现在已经定义了 6种特定的t r a p类型,第7种t r a p类型是由供应商自己定义的特定类型。图2 5 - 3 0给出了t r a p报文中t r a p类型字段的内容。

速读原著-TCP/IP(SNMP:Trap)_结点

用t c p d u m p命令来看看t r a p的情况。我们在系统s u n上启动S N M P代理进程,然后让它产生c o l d S t a r t类型的t r a p(我们告诉代理进程把t r a p信息发送到b s d i主机。虽然在该主机上并没有运行处理t r a p的管理进程,但是可以用t c p d u m p来查看产生了什么样的分组。回忆一下在图2 5 - 1中,t r a p是从代理进程发送到管理进程的,而管理进程不需要给代理进程发送确认。所以我们不需要t r a p的处理程序)。然后我们用s n m p i程序发送一个请求,但该请求的共同体名称是无效的。

这将产生一个a u t h e n t i c a t i o n F a i l u r e类型的t r a p。图2 5 - 3 1显示了命令的输出结果。

速读原著-TCP/IP(SNMP:Trap)_网络_02

首先注意一下两个 U D P数据报都是从 S N M P代理进程(端口是 1 6 1,图中显示的名称是s n m p)发送到目的端口号是1 6 2的服务器进程上的(图中显示的名称是 s n m p - t r a p)。

再注意一下C = t r a p s是t r a p报文的共同体名称。这是ISODE SNMP代理进程的配置选项。下一个要注意的是:第1行中的Tr a p(2 8)和第2行中的Tr a p(2 9)是P D U类型和长度。

两个输出行的第一项内容都是相同的 E : u n i x . 1 . 2 . 5。这代表企业名字段和代理进程的s y s O b j i e c t I D。它是图 2 5 - 6中1 . 3 . 6 . 1 . 4 . 1(i s o . o r g . d o d . i n t e r n e t . p r i v a t e .e n t e r p a r s e s)结点下面的某个结点,所以代理进程的对象标识是1 . 3 . 6 . 1 . 4 . 1 . 4 . 1 . 2 . 5。它的简称是:u n i x . a g e n t s . f o u r B S D - i s o d e . 5。最后一个数字“5”代表I S O D E代理进程软件的版本号。

这些企业名的值代表了产生t r a p的代理进程软件信息。输出的下一项是代理进程的 I P地址(1 4 0 . 2 5 2 . 1 3 . 3 3)。在第1行中,t r a p的类型显示的是c o l d S t a r t,第2行中,显示的是a u t h e n t i c a t i o n F a i l u r e。与之相对应的t r a p类型值是0和4(如图2 5 - 3 0所示)。由于这些都不是厂家自定义的t r a p,所以特定代码必须是0,在图中没有显示。

输出的最后分别是2 0和1 9 0 7,这是时间戳字段。它是 T i m e T i c k s类型的值,表示从代理进程初始化开始到 t r a p发生所经历了多少个百分之一秒。在冷启动 t r a p的情况下,在代理进程初始化后到t r a p的产生共经历了200 ms。同样,t c p d u m p的输出表明第2个t r a p在第1个t r a p产生的1 8 . 8 6 s后出现,这对应于打印出的 1 9 0 7个百分之一秒减去200 ms所得到的值。

图2 5 - 2表明t r a p报文还包含很多代理进程发送给管理进程的变量,但在这些在例子中没有再讨论。