网络管理课后习题解答 下载本文

表3-6 对 象 ipRouteTable ipRouteEntry ipRouteDest 对象标识符 1.3.6.1.2.1.4.21 1.3.6.1.2.1.4.21.1 1.3.6.1.2.1.4.21.1.1 下一对象实例 1.3.6.1.2.1.4.21.1.1.10.10.10.10 1.3.6.1.2.1.4.21.1.1.10.10.10.10 1.3.6.1.2.1.4.21.1.1.10.10.10.10 1.3.6.1.2.1.4.21.1.1.11.11.11.11 1.3.6.1.2.1.4.21.1.3.4 1.3.6.1.2.1.4.21.1.3.4 1.3.6.1.2.1.4.21.1.3.5 1.3.6.1.2.1.4.21.1.7.9.9.9.9 1.3.6.1.2.1.4.21.1.7.9.9.9.9 1.3.6.1.2.1.4.21.1.7.8.8.8.8 1.3.6.1.2.1.4.21.1.x ipRouteDest.10.10.10.10 1.3.6.1.2.1.4.21.1.1.10.10.10.10 ipRouteDest.11.11.11.11 ipRouteMetricl ipRouteMetricl.4 ipRouteMetricl.5 ipRouteNextHop ipRouteNextHop.9.9.9.9 ipRouteNextHop.8.8.8.8 1.3.6.1.2.1.4.21.1.1.11.11.11.11 1.3.6.1.2.1.4.21.1.3 1.3.6.1.2.1.4.21.1.3.4 1.3.6.1.2.1.4.21.1.3.5 1.3.6.1.2.1.4.21.1.7 1.3.6.1.2.1.4.21.1.7.9.9.9.9 1.3.6.1.2.1.4.21.1.7.8.8.8.8

习 题 4

1. MIB-2中包括哪些组?分别是什么?

[解答] MIB-2包括11个功能组,分别是:System组、Interfaces组、At组、Ip组、Icmp组、Tcp组、Udp组、Egp组、Cmot组、Transmission组、Snmp组。

2. 通过MIB中的哪个对象,可以知道系统运行的时间?

[解答] 通过MIB中的sysUpTime,可以知道系统已经运行了多长时间。

3. 如果某主机的对象sysServices的值为68,则该主机提供了哪些协议层服务?

[解答] 主机的对象sysServices的值为68,即二进制数值为1000100B,该主机提供了第三层至第七层的协议层服务。

4. 对象ifOperStatus和ifAdminStatus的值分别为1和2,这说明什么?

[解答] ifAdminStatus对象和ifOperStatus对象都返回整数,值1表示Up,值2表示Down。把这两个对象结合在一起,失效管理应用可以确定接口的当前状态。

5. 如何计算接口的输入错误率、输出错误率、丢弃的输入包率和输出包率? [解答] 接口的输入和输出错误率计算如下:

输入错误百分率=ifInErrors/(ifInUcastPkts+ifInNUcastPkts)

输出错误百分率=ifOutErrors/(ifOutUcastPkts+ifOutNUcastPkts) 丢弃的输入包率=ifInDisscards/(ifInUcastPkts+ifInNUcastPkts)

丢弃的输出包率=ifOutDiscards/(ifOutUcastPkts+ifOutNUcastPkts)

6. 如何计算IP数据包的输入错误率、输出错误率、输入速率和转发速率?

[解答] IP输入错误率 =(ipInDiscards + ipInHdrErrors + ipInAddrErrors)/ ipInReceives IP输出错误率 =(ipOutDiscards + ipOutNoRoutes)/ ipOutRequests

IP输入速度 = (ipInReceivesy ? ipInReceivesx)/(y ? x) ipForwDatagrams告知设备对IP数据报转发的速率,如果在时刻x和时刻y被两次查询,则可得IP转发速度。

IP转发速度 = (ipForwGatagramsy ? ipForwDatagramsx)/(y ? x)

7. 如何计算ICMP分组的发送率和接收率?

[解答] 计算ICMP分组的发送率和接收率,必须首先获得实体发送和接收的分组的总数,这可以通过找出每个接口的输出分组和输入分组的总数完成,然后用icmpOutMsgs和icmpInMsgs去除以该和从而获得发送和接收ICMP分组的百分率。通过多次查询该对象,可以找出ICMP分组发送和接收实体的速率。

8. 通过哪些对象可以知道输入的Echo消息个数、输入的EchoReply消息个数和输入的超

时消息个数?

[解答] 通过icmpInEchos 可以知道输入的Echo消息个数;通过icmpInEchoReps可以知道输入的EchoReply消息个数;通过icmpInTimeExcds可以知道输入的超时消息个数。

9. 如何计算TCP段的输入速率和输出速率?

[解答] 让应用在不同的时间查询tcpInSegs和tcpOutSegs的值,可以检测TCP段的输入速率和输出速率。

10. 如何计算UDP包的输入速率和输出速率?

[解答] 查询udpInDatagrams和udpOutDategrams会产生数据报的输入速率和输出速率。

习 题 5

1.SNMPv1规定了哪些协议数据单元?分别有什么作用? [解答]

SNMPv1规定了如下协议数据单元:GetRequestPDU、GetNextRequestPDU、SetRequestPDU、GetResponsePDU、TrapPDU五种类型的PDU。

管理站通过GetRequestPDU、GetNextRequestPDU可以检索管理信息库中标量对象的值,GetNextRequest的作用与GetRequest基本相同,PDU格式也相同,唯一的差别是GetRequest检索变量名所指的是对象实例,而GetNextRequest检索变量名所指的是“下一个”对象实例,且并不要求变量名是对象标识符或者是实例标识符。 管理站使用SetRequestPDU设置管理信息库中标量对象的值,PDU格式与Get是相同的,但是在变量绑定表中必须包含要设置的变量名和变量值。

被管理对象通过GetResponsePDU响应管理站的检索与设置请求,GetResponse 操作具有原子性,即如果所有请求的对象值可以得到,则给予应答;反之,只要有一个对象的值得不到。

TrapPDU在被管理对象向管理站报告管理对象的状态变化时使用。

2.SNMP为什么不使用TCP传送报文? [解答]

因为SNMP协议采用管理站/代理工作方式,管理站与代理使用GetRequest、GetNextRequest、GetResponse报文实现请求与响应,因此不必建立TCP连接,而采用首部开销比TCP小的UDP报文形式。

3.简述SNMP报文的发送和接收过程。 [解答]

SNMP报文在管理站和代理之间传送,包含GetRequest、GetNextRequest和SetRequest的报文由管理站发出,代理以GetResponse响应。Trap报文由代理发给管理站,不需要应答。管理站可连续发出多个请求报文,然后等待代理返回应答报文。如果在规定的时间内收到应答,则按照请求标识进行配对,亦即应答报文必须与请求报文有相同的请求标识。 一个SNMP实体(PE)发送报文时执行下面的过程:首先按照ASN.1的格式构造PDU,交给认证进程;认证进程检查源和目标之间是否可以通信,如果通过这个检查则把有关信息(版本号、团体名和PDU)组装成报文;最后经过BER编码,将报文交传输实体发送出去。 一个SNMP实体(PE)接收到报文时执行下面的过程:首先按照BER编码恢复ASN.1报文,然后对报文进行语法分析,验证版本号和认证信息等。如果通过分析和验证,则分离出协议数据单元并进行语法分析,必要时经过适当处理后返回应答报文。在认证检验失败时可以生成一个陷入报文,向发送站报告通信异常情况。无论何种检验失败,都丢弃报文。

4.举例说明在SNMPv1的操作中,如何对简单对象进行检索? [解答] 检索简单的标量对象值可以用Get操作。如果变量绑定表中包含多个变量,则一次还可以检索多个标量对象的值。接收GetRequest的SNMP实体以请求标识相同的GetResponse响应。例如:

用户可以发出如下检索命令:

GetRequest(udpInDatagrams.0, udpNoPorts.0, UdpInErrors.0, udpOutDatagrams.0) 可以预期得到下面的响应

GetResponse ( udpInDatagrams.0 2,udPoutDatagrams.0 = 200 )

=

100,udpNoPorts.0

=

l,udpInErrors.0

=

5.与SNMPv1相比,SNMPv2的操作有哪些改变?

[解答]

SNMPv2共有6种协议数据单元,分为3种PDU格式, GetRequest、GetNextRequest、SetRequest、InformRequest和Trap等5种PDU与Response PDU有相同的格式,只是它们的错误状态和错误索引字段被置为0。InformRequest是管理站和管理站之间的请求/响应通信,这种方法是SNMPv2特有的,可以由一个管理站把有关管理信息告诉给另外一个管理站。

(1)GetRequest PDU:SNMPv2对这种操作的响应方式与SNMPvl不同,SNMPvl的响应是原子性的,即只要有一个变量的值检索不到,就不返回任何值;而SNMPv2的响应不是原子性的,允许部分响应。

(2)GetNextRequest PDU:在SNMPv2中,这种检索请求的格式和语义与SNMPvl基本相同,唯一的差别就是改变了响应的原子性。

(3)GetBulkRequest PDU:这是SNMPv2对原标准的主要增强,目的是以最少的交换次数检索大量的管理信息,或者说管理站要求尽可能大的响应报文。对这个操作的响应,在选择MIB变量值时采用与GetNextRequest同样的原理,即按照词典顺序选择后继对象实例,但是这个操作可以说明多种不同的后继。

(4)SetRequest PDU:这个请求的格式和语义与SNMPvl的相同,差别是处理响应的方式不同。SNMPv2实体分两个阶段处理这个请求的变量绑定表,首先是检验操作的合法性,然后再更新变量,如果至少有一个变量绑定对的合法性检验没有通过,则不进行下一阶段的更新操作。

(5)Trap PDU:陷入是由代理发给管理站的非确认性消息,SNMPv2的陷入采用与Get等操作相同的PDU格式,这一点也是与原标准不同的。

(6)InformRequest PDU:这是管理站发送给管理站的消息,PDU格式与Get等操作相同,变量绑定表的内容与陷入报文一样。但是与陷入不同,这个消息是需要应答的。因此,管理站收到通知请求后首先要决定应答报文的大小,如果应答报文的大小超过本地或对方的限制,则返回错误状态tooBig。如果接收的请求报文不是太大,则把有关信息传送给本地的应用实体,返回一个错误状态为加Err的响应报文,其变量绑定表与收到的请求PDU相同。关于管理站之间通信的内容,SNMPv2给出了详细的定义。

6.SNMPv2对MIB-2的扩展包括哪些方面? [解答]

SNMPv2 MIB扩展和细化了MIB-2中定义的管理对象,又增加了新的管理对象。 (1)系统组。SNMPv2的系统组是MIB-2系统组的扩展,这个组只增加了与对象资源有关的一个标量对象sysORLastChange和一个表对象sysORTable。

(2)Snmp组。Snmp组是由MIB-2的对应组改造而成的,新的Snmp组对象少了,去掉了许多对排错作用不大的变量。

(3)Mib对象组。这个新组包含的对象与管理对象的控制有关,分为两个子组:第一个子组snmpTrap由snmpTrapOID和snmpTrapEnterprise组成;第二个子组snmpSet仅有一个对象snmpSerialNO。

(4)接口组。MIB-2定义的接口组分析了原来的接口组没有提供的功能和其他不足之处。纠正了原标准中的接口编号、接口子层、虚电路问题、不同传输特性的接口、计数长度、接口速度、组播/广播分组计数、接口类型、ifSpecific等问题。增加了接口扩展表、接口堆栈表、接口测试表、接口地址表4个新表。

7.SMIv2中,如何进行行的创建和删除? [解答]

(1) 生成概念行可以使用两种不同的方法,分为4个步骤:

① 选择实例标识符。针对不同的索引对象可考虑用不同的方法选择实例标识符。 ② 产生概念行。产生概念行主要有两种方法:管理站通过事务处理产生和激活概念行;管理站与代理协商生成概念行。

③ 初始化非默认值对象。管理站用Get操作查询所有列,以确定是否能够或需要设置列对象的值。

④ 激活概念行。管理站对所有列对象实例满意后,用Set 操作置状态列对象为active。如果代理有足够的信息使得概念行可用,则返回noError;如果代理没有足够的信息使得概念行可用,则返回noInService。

(2) 概念行的删除。管理站发出Set命令,把状态列置为destroy,如果这个操作成功,则概