自考计算机网络管理复习资料 下载本文

第四章 简单网络管理协议

1、 SNMP的演变

SNMP协议演变的轨迹:SGMP(简单网关监控协议)、SNMPv1、SNMPv2、SNMPv3 SNMP3个版本的区别及其应用情况:P70

定义SNMP协议的RFC文档:RFC1155(SMI)、RFC1157(SNMP)、RFC1212(MIB定义)、RFC1213(MIB-2规范) 2、 SNMPv1协议数据单元

SNMPv1支持的操作:SNMP仅支持对管理对象值的检索和修改等简单操作。SNMP实体可以对MIB-2中的对象执行以下操作:

Get:管理站用于检索管理信息库中标量对象的值; Set:管理站用于设置管理信息库中标量对象的值; Trap:代理用于向管理站报告管理对象的状态变化。

SNMP不支持管理站改变管理信息库的结构,即不能增加和删除管理信息库中的管理对象实例。 管理站也不能向管理对象发出执行一个动作的命令。只能逐个访问管理信息库中的叶子结点,不能一次性访问一个子树。 MIB-2的子树结点都是不可访问的。 SNMPv1PDU的格式:有4种PDU格式; P72

各个字段的含义:PDU类型-----共5种类型的PDU。

请求标识:赋予每个请求报文唯一的整数,用于区分不同的请求,另一个作用是检测由不可靠的传输服务产生的重复报文。

错误状态:表示代理在处理管理站的请求时可能出现的各种错误,共有6种: noError(0)、tooBig(1)、noSuchName(2)、badValue(3)、readOnly(4)、genError(5) 错误索引:当错误状态非0时指向出错的变量。

变量绑定表:变量名和对应值的表,说明要检索或设置的所有变量及其值,在检索请求报文中,变量的值应为0。 Trap报文格式字段含义:

制造商ID:便是设备制造商的标志; 代理地址:产生陷入的代理IP地址; 一般陷入:SNMP定义的陷入类型,共7类; 特殊陷入:与设备有关的特殊陷入代码; 时间戳:代理发出陷入的时间;

★SNMP报文的应答序列:SNMP报文在管理站和代理之间传送,包含GetRequest、GetNextRequest和SetRequest的报文由管理站发出,代理以GetResponse响应;Trap报文由代理发给管理站,不需要应答。 管理站 GetResponsePDU GetResponsePDU 代理 GetRequestPDU 管理站 代理 GetNextRequestPDU 管理站 SetRequestPDU GetResponsePDU 代理 管理站 代理 TrapPDU 管理站可以连续发出多个请求报文,然后等待代理返回应答报文,如果在规定的时间内收到应答,则按照请求标识进行配对。(应答报文必须与请求报文有相同的请求标志。) 报文发送过程:1、按照ASN.1的格式构造PDU,交给认证进程;

2、认证进程检查源和目标之间是否可以通信; 3、若通过检查把有关信息组装成报文; 4、经过BER编码,交传输实体发送出去;

报文接收过程:1、按照BER编码恢复ASN.1报文;

2、对报文进行语法分析、验证版本号和认证信息等;

3、如果通过分析和验证,分离出协议数据单元,并进行语法分析,必要时

经过适当处理后返回应答报文;

4、认证失败时可以生成一个陷入报文,向发送站报告通信异常情况;

3、 SNMPv1的操作

检索简单对象的方法:检索简单的标量对象值可以用Get操作;若变量绑定表中包含多个变量,一次可以检索多个标量对象的值。

GetResponse操作原子性:若所有请求的对象值可以得到,则给予应答;只要有一个对象的值得不到,则可能返回错误条件:noSuchName、tooBig、genError

noSuchName:变量绑定表中的一个对象无法与MIB中的任何对象标识符匹配; tooBig:响应实体提供所有要检索的值,但是变量太多,一个响应PDU装不下; genError:由于其他原因响应实体至少不能提供一个对象的值;

★P76——P77例子 检索未知对象的方法:GetNext命令检索变量名指示的下一个对象实例,但是并不要求变量名是对象标识符或者是实例标识符。 ★例子

检索表对象的方法:GetNext可用于有效地搜索表对象; ★例子

表的更新和删除操作:Set命令用于设置或更新变量的值,在变量绑定表中必须包含要设置的变量名和变量值;

原子性:若所有变量都可设置,则更新所有变量值,在应答的GetResponse中确认变量的新值,若至少有一个变量不能设置,则所有变量值保持不变,并在错误状态中指出错的原因。 tooBig、noSuchName、genError和badValue(变量的名字和要设置的值在类型、长度或实际值方面不匹配) ★例子

陷入操作的原理:陷入是由代理向管理站发出的异步事件报告,不需要应答报文。 SNMPv1规定的6种陷入条件:

coldStart:发送实体重新初始化,代理配置已改变,由系统失效引起的; warmStart:发送实体重新初始化,代理配置没改变,正常重启动过程; linkDown:链路失效通知; linkup:链路启动通知;

authenticationFailure:发送实体收到一个没有通过认证的报文;

egpNeighborLoss:相邻的外部路由器失效或关机;

设备制造商定义的陷入:enterpriseSpecific,在特殊陷入字段指明具体的陷入类型。 4、 SNMP功能组

SNMP功能组对象的含义:这组除了snmpEnableAuthenTrap对象,其他都是只读计数器; 在网络管理中的作用:snmpEnableAuthenTrap可以由管理站设置,指示是否允许代理产生“认证失效”陷入,这种设置优先于代理自己的设置。这样就提供了一种可以排除所有认证失效陷入的手段。

5、 实现问题

管理站提供的功能:支持扩展的MIB、图形用户接口、自动发现机制、可编程事件、高级网络控制功能、面向对象的管理模型、用户定义的图标 影响轮询频率的因素:

管理站生成一个请求报文的时间; 从管理站到代理的网络延迟;

代理处理一个请求报文的时间; 代理产生一个响应报文的时间; 从代理到管理站的网络延迟; 管理站处理一个响应报文的时间; 为了得到需要的管理信息,交换请求/响应报文的数量;

★计算轮询频率的方法:N≤T/△

N:被轮询的代理数;T:轮询间隔; △单个轮询需要的时间;

?例:假设有一个LAN,每15分钟轮询所有被管理设备一次(在当前TCP/IP网络中典型),管理报文处理时间是50ms,网络延迟为1ms(每个分组1000字节),没有产生明显的网络拥挤,△大约是0.202s。

N≤T/△=15×60/0.202≈4500 即管理站最多可以支持4500个设备。 四个参数:代理数目、报文处理时间、网络延迟和轮询时间。

SNMPv1的局限性:a、轮询性能限制,SNMP不适合管理很大的网络; b、SNMP不适合检索大量数据; c、SNMP的陷入报文是没有应答的;

d、SNMP只提供简单的团体名认证;

e、SNMP不直接支持向被管理设备发送命令;

f、SNMP的管理信息库MIB-2支持的管理对象有限,不足以完成复杂

的管理功能; g、SNMP不支持管理站之间的通信;

6、 SNMPv2管理信息结构

SNMPv2 SMI引入了4个关键的概念:对象的定义、概念表、通知的定义和信息模块;

SNMPv2关于管理对象的宏定义:SNMPv2也是用ASN.1宏定义OBJECT-TYPE表示管理对象的语法和语义。

SNMPv2与SNMPv1的区别:

1、数据类型:增加了两种数据类型Unsigned32和Counter64;Unsigned32和Gauge32无区别,语义不一样; Counter 64和Counter 32都是计数器,只能增加,不能减少; SNMPv2规定计数器没有定义的初始值,只有连续两次读计数器得到的增加值才是有意义的。 规定Gauge 32最大值可设置为小于232的任意整数MAX,而在SNMPv1中Gauge 32的最大值总是2-1,且明确了当计量器达到最大值时可自动减少。

2、UnitsPart:在宏定义中增加了UNITS子句,说明与对象有关的度量单位;

3、MAX-ACCESS子句:类似于v1中的ACCESS子句,说明最大访问级别,与授权策略无关。 去掉了write-only类,增加了一个与概念行有关的访问类型read-create,表示可读、可写、可生成; 增加了accessible-for-notify访问类,访问方式与陷入有关;

4、STATUS子句:必须指明对象的状态,3种状态——current表示当前标准中有效的,obsolete表示不必实现这种对象,deprecated表示对象已经过时了; SNMPv2的5种访问级别由小到大排列:

not-accessible;

accessible-for-notify; read-only; read-write; read-create;

SNMPv2关于表的定义:SNMPv2的管理操作只能作用于标量对象,复杂的信息要用表来表示。SNMPv2规范表示行的序列,而行是列对象的序列。

SNMPv2表的定义中必须含有INDEX或AUGMENTS子句,但是只能有一个。INDEX子句定义一个基本概念行,而INDEX子句中的索引对象确定了一个概念行实例。SNMPv2的INDEX子句中增加了任选的IMPLIED修饰符:

假定一个对象标识符是y,索引对象为i1、i2、………….in,则对象y的一个实例标识符为 y·(i1)·(i2)…(in) 每个索引对象i的类型可能是:整数、固定长度的字符串、有修饰符IMPLIED的变长度字符串、无修饰符IMPLIED的变长度字符串(DOG)、有修饰符IMPLIED的对象标识符和无修饰符IMPLIED的对象标识符。

AUGMENTS子句作用是代理INDEX子句,表示概念行的扩展。

允许删除和生成行的表与禁止删除和生成行的表的区别:

禁止删除和生成删除的表:表的最高级别是read-write,很多情况下由代理控制,表中只包含read-only型的对象;

允许删除和生成行的表:表开始可能没有行,由管理站生成和删除行,行数由管理站或代理改变。

SNMPv2中关于表的操作:允许生成和删除行的表必须有一个列对象,SYNTAX子句值为RowStatus,MAX-ACCESS子句值为read-write,这种列叫做概念行的状态列。

状态列6种取值:active(可读写)、noInService(可读写)使用不了、notReady(只读)、createAndGo(只读不写)、createAndWait(只读不写)、destroy(只读不写)。

除notReady的5种状态是管理站可以用Set操作设置的状态,前三种可以是响应管理站的查询而返回的状态。

生成表行的两种方法:a、选择实例标识符;b、一种方法:管理站通过事务处理产生和激活

32