第25章 SNMP: 简单网络管理协议
25.8 管理信息库(续)
现在继续讨论M I B。我们仅仅介绍下列 M I B组:s y s t e m(系统标识)、i f(接口)、a t(地址转换)、i p、i c m p和t c p。
25.8.1 s y s t e m组s y s t e m组非常简单,它包含7个简单变量(例如,没有表格)。图2 5 - 1 6列出了s y s t e m组的名称、数据类型和描述。
可以对n e t b路由器查询一些简单变量:
回到图2 5 - 6中,s y s t e m的对象标识符在i n t e r n e t . p r i v a t e . e n t e r p r i s e s组(1 . 3 . 6 . 1 . 4 . 1)中,在Assigned Numbers RFC文档中可以确定下一个对象标识符(1 2)肯定是指派给了厂家(E p i l o g u e)。
同时还可以看出, s y s S e r v i c e s变量的值是4与8的和,它支持网络层(例如选路)和运输层的应用(例如端到端)。
25.8.2 interface组
在本组中只定义了一个简单变量,那就是系统的接口数量,如图2 5 - 1 7所示。
在该组中,还有一个表格变量,有 2 2列。表格中的每行定义了接口的一些特征参数。如图2 5 - 1 8所示。
可以向主机s u n查询所有这些接口的变量。如 3 . 8节中所示,我们还是希望访问三个接口,如果S L I P接口已经启动:
对于第1个接口,采用g e t操作提取5个变量值,然后用g e t - n e x t操作提取第2个接口的相同的5个参数。对于第3个接口,同样采用g e t - n e x t操作。
对于S L I P链路的接口类型,所报告的是一个点到点的专用串行链路,而不是 S L I P链路。此外,S L I P链路的速率没有报告。
这个例子对我们理解 g e t - n e x t操作和“先列后行”次序之间的关系十分重要。如果我们键入命令“next ifDescr.1”,则系统返回的是表格中的下一行所对应的变量,而不是同一行中的下个变量。如果表格是按照“先行后列”次序存放,我们就不能通过一个给定变
量来读取下一个变量。
25.8.3 a t组
地址转换组对于所有的系统都是必需的,但是在 M I B - I I中已经没有这个组。从 M I B - I I开始,每个网络协议组(如 I P组)都包含它们各自的网络地址转换表。例如对于 I P组,网络地址转换表就是i p N e t T o M e d i a T a b l e。
在该组中,仅有一个由3列组成的表格变量。如图2 5 - 1 9所示。我们将用s n m p i程序中的一个新命令来转储 ( d u m p )整个表格。向一个叫做 k i n e t i c s的路由器(该路由器连接了一个 T C P / I P网络和一个A p p l e Ta l k网络)查询其整个 A R P高速缓存。命令的输出是字典式排序的整个表格内容。
让我们来分析一下用t c p d u m p命令时的分组交互情况。当s n m p i要转储整个表格时,首先发出一条g e t - n e x t命令以取得表格的名称(在本例中是a t),该名称就是要获取的第一个表项。
然后在屏幕上显示的同时生成另一条g e t - n e x t命令。直到遍历完整个表格的内容后才终止。图25-20显示了在路由器中实际表格的内容。
注意图中,接口2的A p p l e Ta l k协议的物理地址是32 bit的数值,而不是我们所熟悉的以太网的48 bit物理地址。同时请注意,正如我们所希望的那样,在图中有一条记录和n e t b路由器(其I P地址是1 4 0 . 2 5 2 . 1 . 1 8 3)有关。这是因为n e t b路由器和k i n e t i c s路由器在同一个以太网中(1 4 0 . 2 5 2 . 1),而且k i n e t i c s路由器必需采用A R P来回送SNMP响应。
25.8.4 i p组
i p组定义了很多简单变量和3个表格变量。图2 5 - 2 1显示了所有的简单变量。
i p组中的第一个表格变量是 I P地址表。系统的每个 I P地址都对应该表格中的一行。每行中包含了5个变量,如图2 5 - 2 2所示。
同样可以向主机s u n查询整个I P地址表:
输出的接口号码可以和图 2 5 - 1 8中的输出进行比较,同样 I P地址和子网掩码可以和 3 . 8节中采用i f c o n f i g命令时的输出进行比较。
i p组中的第二个表是 I P路由表(请回忆一下我们在 9 . 2节中讲到的路由表),如图2 5 - 2 3所示。访问该表中每行记录的索引是目的 I P地址。
图2 5 - 2 4显示的是用s n m p i程序采用dump ipRouteTable命令从主机s u n得到的路由表。在这张表中,已经删除了所有 5个路由度量,那是由于这 5条记录的度量都是- 1。在列的标题中,对每个变量名称已经删除了 i p R o u t e这样的前缀。
为比较起见,下面的内容是我们用 n e t s t a t命令(在9 . 2节中曾经讨论过)格式显示的路由表信息。图2 5 - 2 4是按字典序显示的,这和n e t s t a t命令显示格式不同:
i p组的最后一个表是地址转换表,如图 2 5 - 2 5所示。正如我们前面所说的, a t组已经被删除了,在这里已经用I P表来代替了。
这里显示的是系统s u n上的A R P高速缓存信息:
sun % arp -a
svr4 (140.252.13.34) at 0:0:c0:c2:9b:26
bsdi (140.252.13.35) at 0:0:c0:6f:2d:40
相应的S N M P输出
25.8.5 i c m p组
i c m p组包含4个普通计数器变量( I C M P报文的输出和输入数量以及 I C M P差错报文的输入和输出数量)和2 2个其他I C M P报文数量的计数器: 11个是输出计数器,另外 11个是输入计数器。如图2 5 - 2 6所示。
对于有附加代码的 I C M P报文(请回忆一下图 6 - 3中,有 1 5种报文代表目的不可达),S N M P没有为它们定义专门的计数器。
25.8.6 t c p组
图2 5 - 2 7显示的是t c p组中的简单变量。其中的很多变量和图 1 8 - 1 2描述的T C P状态有关。
现在向系统s u n查询一些t c p组变量:
本系统(指 S u n O S 4 . 1 . 3)使用的是 Van Jacobson超时重传算法,超时定时器的范围在200 ms~12.8 s之间,并且对T C P连接数量没有特定的限制(这里的超时上限 12.8 s恐怕有错,因为我们在2 1章中曾经介绍大多数应用的超时上限是 64 s )。
t c p组还包括一个表格变量,即 T C P连接表,如图2 5 - 2 8所示。对于每个T C P连接,都对应表格中的一条记录。每条记录包含 5个变量:连接状态、本地 I P地址、本地端口号、远端 I P地址以及远端端口号。
让我们看一看在系统 s u n上的这个表。由于有许多服务器进程在监听这些连接,所以我们只显示该表的一部分内容。在转储全部表格的变量之前,我们必需先建立两条 T C P连接:
sun % rlogin gemini g e m i n i的I P地址是1 4 0 . 2 5 2 . 1 . 1 1
和
sun % rlogin localhost I P地址应该是1 2 7 . 0 . 0 . 1
在所有的监听服务器进程中,我们仅仅列出了 F T P服务器进程的情况,它使用 2 1号端口。
对于r l o g i n到g e m i n i,只显示一条记录,这是因为g e m i n i是另外一个主机。而且我们仅仅能够看到连接的客户端信息(端口号是 1 0 2 3)。但是Te l n e t连接,客户端和服务器端都显示(客户端口号是1 4 1 5,服务器端口号是2 3),这是因为这种连接通过环回接口。同时我们还可以看到,F T P监听服务器程序的本地I P地址是0 . 0 . 0 . 0。这表明它可以接受通过任何接口的连接。