西安电子科技大学网络管理大作业.docx

上传人:b****1 文档编号:13361362 上传时间:2023-06-13 格式:DOCX 页数:22 大小:224.62KB
下载 相关 举报
西安电子科技大学网络管理大作业.docx_第1页
第1页 / 共22页
西安电子科技大学网络管理大作业.docx_第2页
第2页 / 共22页
西安电子科技大学网络管理大作业.docx_第3页
第3页 / 共22页
西安电子科技大学网络管理大作业.docx_第4页
第4页 / 共22页
西安电子科技大学网络管理大作业.docx_第5页
第5页 / 共22页
西安电子科技大学网络管理大作业.docx_第6页
第6页 / 共22页
西安电子科技大学网络管理大作业.docx_第7页
第7页 / 共22页
西安电子科技大学网络管理大作业.docx_第8页
第8页 / 共22页
西安电子科技大学网络管理大作业.docx_第9页
第9页 / 共22页
西安电子科技大学网络管理大作业.docx_第10页
第10页 / 共22页
西安电子科技大学网络管理大作业.docx_第11页
第11页 / 共22页
西安电子科技大学网络管理大作业.docx_第12页
第12页 / 共22页
西安电子科技大学网络管理大作业.docx_第13页
第13页 / 共22页
西安电子科技大学网络管理大作业.docx_第14页
第14页 / 共22页
西安电子科技大学网络管理大作业.docx_第15页
第15页 / 共22页
西安电子科技大学网络管理大作业.docx_第16页
第16页 / 共22页
西安电子科技大学网络管理大作业.docx_第17页
第17页 / 共22页
西安电子科技大学网络管理大作业.docx_第18页
第18页 / 共22页
西安电子科技大学网络管理大作业.docx_第19页
第19页 / 共22页
西安电子科技大学网络管理大作业.docx_第20页
第20页 / 共22页
亲,该文档总共22页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

西安电子科技大学网络管理大作业.docx

《西安电子科技大学网络管理大作业.docx》由会员分享,可在线阅读,更多相关《西安电子科技大学网络管理大作业.docx(22页珍藏版)》请在冰点文库上搜索。

西安电子科技大学网络管理大作业.docx

西安电子科技大学网络管理大作业

 

网络管理结课大作业

 

 

第一部分‐‐基本知识问答

1、请说明网络管理中的五大功能域以及功能

答:

五大功能域:

配置管理、故障管理、性能管理、计费管理和安全管理

配置管理:

1.设置被管系统或管理对象的参数

2.初始化、启动和关闭管理对象

3.收集被管系统状态的数据,以便管理系统能够识别被管系统中状态变化的发生

4.改变被管系统或管理对象的配置

5.定义和修改管理对象间的关系

6.生成配置状态报告

故障管理:

1.维护、使用和检查差错日志

2.接受差错事件的通知并作出反应

3.在系统范围内跟踪差错

4.执行诊断测试命令/动作序列

5.执行恢复动作以纠正差错

性能管理:

1.从管理对象中收集并统计有关数据

2.分析当前统计数据以检测性能故障、产生性能警报、报告性能事件

3.维护和检查系统状态历史的日志,以便用于规划和分析

4.确定自然和人工状态下系统的性能

5.形成并改进性能评价准则和性能门限,改变系统操作模式以进行系统性能管理的操作

6.对管理对象和管理对象群进行控制,以保证网络的优越性能

计费管理:

1.计算网络建设及运营成本,包括设备、网络服务、人工费用等成本

2.统计网络及其所包含的资源的利用率,确定计费依据

3.将应该缴纳的费用通知用户

4.支持用户费用上限的设置

5.在必须使用多个通信实体才能完成通信时,能够把使用多个管理对象的费用结合起来

6.保存收费账单及必要的原始数据,以备用户查询和质疑

安全管理:

1.采用多层防卫手段,将受到侵扰和破坏的概率降到最低

2.提供迅速检测非法入侵者的手段,核查跟踪侵入者的活动

3.提供恢复被破坏的数据和系统的手段,尽量降低损失

4.支持身份鉴别,规定身份鉴别的过程

5.控制和维护授权设施

6.控制和维护访问权限

7.支持密钥管理

8.维护和检查安全日志

二、对比GETNEXT和GETBULK如何遍历下列MIB树(右图为设备上的实例),写出详细的通信过程和内容。

假例根节点的编号为1,A、B、T、Z编号分别为1、2、3、4,E的编号为1,C1、C2、C3编号为1、2、3,G。

当getnext,(1.2.0);response(1.3.1.1.1)=>1

当getBulk(non-repeator=1,max-repetitons=3;1.2.0;1.3.1.1.1;1.3.1.2.1;1.3.1.3.1);

response(1.3.1.1.1=>1;

1.3.1.1.2=>2;1.3.1.1.3=>3;1.3.1.1.4=>4;

1.3.1.2.2=>100;1.3.1.2.3=>1000;1.3.1.2.4=>10000;

1.3.1.3.2=>y;1.3.1.3.3=>z;1.3.1.3.4=>w;)

GetBulkRequest操作的基本工作过程如下:

GetBulkRequest在变量绑定字段中放入一个(N+R)个变量名的清单。

对于前N个变量名,查询方式与GetNextRequest相同。

即,对清单中的每个变量名,返回它的下一个变量名和它的值,如果没有后继变量,则返回原变量名和一个endOfMibView的值。

  GetBulkRequestPDU有两个其他PDU所没有的字段,non-repeaters和max-repetitions。

non-repeaters字段指出只返回一个后继变量的变量数。

max-repetitions字段指出其他的变量应返回的最大的后继变量数。

为了说明算法,我们定义:

L=变量绑定字段中的变量名数量

N=只返回一个后继变量的变量名数

R=返回多个后继变量的变量名数

M=最大返回的后继变量数

  在上述变量之间存在以下关系:

N=MAX[MIN(non-reperters,L),0]

M=MAX[max-repetitions,0]

R=L-N

  如果N大于0,则前N个变量与GetNextRequest一样被应答。

如果R大于0并且M大于0,则对应后面的R个变量,返回M个后继变量。

即,对于每个变量:

·获得给定变量的后继变量的值;

·获得下一个后继变量的值;

·反复执行上一步,直至获得M个对象实例。

  如果在上面的过程中的某一点,已经没有后继变量,则返回endOfMibView值,在变量名处,返回最后一个后继变量,如果没有后继变量,则返回请求中的变量名。

  利用这个规则,能够产生的name-value对的数量是N+(M×R)。

后面的(M×R)对在应答PDU中的顺序可描述为:

fori:

=1toMdo

forr:

=1toRdo

retrievei-thsuccessorof(N+r)-thvariable

  即,返回的后继变量是一行一行的,而不是先返回第一个变量的所有后继变量,再返回第二个变量的所有后继变量,等等。

 

三、SNMPv2针对SNMPv1不足的改进有哪些具体内容?

答:

具体地说,SNMPv2对SNMPv1的增强分为:

1、管理信息结构;2、协议操作;3、管理器和管理器(M2M)之间通信的能力。

SNMPv2的SMI再几个方面扩展了SNMPv1的SMI。

首先,用于定义对象类型的宏扩展了几类新的数据类型,并增强了对象的操作能力,一个最显著的变化时增强了对表对象的行创建和删除的约定,这个约定是受RMON的启发增加的。

在协议操作上的变化是增加了两个新的PDU类型,即GetBulkRequest和InformRequest,其中GetBulkRequest允许管理器更有效地检索大量的数据,它特别适合于检索一个表对象的多行内容,当需要用一个请求原语提取大量数据(如读取某个表的内容)时就可以调用它以提高效率。

SNMPv2也引进管理进程和管理进程之间的通信进行状况报告,为此增加了一条原语InformRequest,并把GetResponse简化成更加合理的名称Response。

Trap报文则已改为SNMPv2-Trap,并与所有的协议PDU具有相同的格式。

另外,SNMPv2还定义了两个MIB库,一个是SNMPv2MIB,它包含了SNMPv2协议操作的基本流量信息,也包含与SNMPv2的管理器或代理的配置相关的其他信息,相当于SNMPv1的MIB-2的SNMP组的内容。

另一个是Manager-to-Manager(M2M)MIB,它提供了对分布式管理结构的支持,其功能类似于RMONMIB,它可用于中间管理器向上级管理器报告中间管理器或其下属的代理系统的活动情况。

 

第二部分‐‐MIB设计文档

 

SCORE-MIBDEFINITIONS:

:

=BEGIN

IMPORTS

enterprises,Counter

FROMRFC1155-SMI

OBJECT-TYPE

FROMRFC-1212;

zhaojiaweiOBJECTIDENTIFIER:

:

={enterprises50000}

String:

:

=OCTETSTRING

scoreOBJECTIDENTIFIER:

:

={zhaojiawei1}

nmsOBJECTIDENTIFIER:

:

={score1}

——课程名称

courseNameOBJECT-TYPE

SYNTAXString(SIZE(0..255))

ACCESSread-only

STATUSmandatory

DESCRIPTION

"Thecoursename."

:

:

={nms1}

——教师姓名

teacherNameOBJECT-TYPE

SYNTAXString(SIZE(0..255))

ACCESSread-only

STATUSmandatory

DESCRIPTION

"Theteachername."

:

:

={nms2}

——成绩表(Table)

scoreTableOBJECT-TYPE

SYNTAXSEQUENCEOFScoreEntry

ACCESSnot-accessible

STATUSmandatory

DESCRIPTION

"Scoretable."

:

:

={nms3}

——定义ScoreEntry这个数据类型

scoreEntryOBJECT-TYPE

SYNTAXScoreEntry

ACCESSnot-accessible

STATUSmandatory

DESCRIPTION

"Scoreentry."

INDEX{studentNo}

:

:

={scoreTable1}

ScoreEntry:

:

=

SEQUENCE{

studentNo

String,

studentName

String,

studentGender

INTEGER,

studentScore

INTEGER

}

studentNoOBJECT-TYPE

SYNTAXString(SIZE(0..10))

ACCESSread-only

STATUSmandatory

DESCRIPTION

"Studentnumber."

:

:

={scoreEntry1}

studentNameOBJECT-TYPE

SYNTAXString(SIZE(0..10))

ACCESSread-only

STATUSmandatory

DESCRIPTION

"Studentname."

:

:

={scoreEntry2}

studentGenderOBJECT-TYPE

SYNTAXINTEGER{male

(1),female

(2)}

ACCESSread-only

STATUSmandatory

DESCRIPTION

"Studentgender."

:

:

={scoreEntry3}

studentScoreOBJECT-TYPE

SYNTAXINTEGER(0..100)

ACCESSread-write

STATUSmandatory

DESCRIPTION

"Studentscore."

:

:

={scoreEntry4}

——scoreStat

scoreStatOBJECTIDENTIFIER:

:

={nms4}

scoreAverageOBJECT-TYPE

SYNTAXString

ACCESSread-write

STATUSmandatory

DESCRIPTION

"Scoreaverage."

:

:

={scoreStat1}

countUnderSixtyOBJECT-TYPE

SYNTAXCounter

ACCESSread-write

STATUSmandatory

DESCRIPTION

"Score<60."

:

:

={scoreStat2}

countBetweenSixtyToSeventyOBJECT-TYPE

SYNTAXCounter

ACCESSread-write

STATUSmandatory

DESCRIPTION

"Scorebetween60-70."

:

:

={scoreStat3}

countBetweenSeventyToEightyOBJECT-TYPE

SYNTAXCounter

ACCESSread-write

STATUSmandatory

DESCRIPTION

"Scorebetween70-80."

:

:

={scoreStat4}

countBetweenEightyToNinetyOBJECT-TYPE

SYNTAXCounter

ACCESSread-write

STATUSmandatory

DESCRIPTION

"Scorebetween80-90."

:

:

={scoreStat5}

countBetweenNinetyToHundredOBJECT-TYPE

SYNTAXCounter

ACCESSread-write

STATUSmandatory

DESCRIPTION

"Scorebetween90-100."

:

:

={scoreStat6}

——结束

END

结果图:

遇到的困难:

最开始由于不了解mib包的命名规则,命名成了学号导致mib包无法导入,最后上网检索知道不能以数字开头,然后便讲学号改成了zhaojiawei

 

第三部分‐‐发挥部分

基于Linux环境的简单网络管理协议的实现

一、程序实现

1、系统结构与实现

管理结构示意图

Manager为LINUX操作系统平台(放置编写的简单的SNMP应用软件),Agent为具有SNMP代理的设备。

在Manager端利用C语言和SNMP协议编写一个简单的应用程序(可以发送GETGET-NEXTSET等命令),对放在网络各处的安装了SNMP代理的设备进行查询。

在SNMP协议中,Manager端和Agent端的通信是通过SNMP协议数据单元实现的它们之间可以有三种类型的交互:

Manager端执行GET或GET—NEXT操作从代理Agent获得信息;

Manager端执行SET操作对代理Agent的属性进行设置:

代理Agent端向Manager端发送陷阱异步通知信息告诉管理者关于自己的一些事件。

2、SNMP相关协议和编码格式

一、管理信息库(MIB)

管理信息库(MIB)规定了网络代理所保存的数据项目、数据类型,以及在每个数据项目中允许的操作,通过对这些数据项目的存取访问来实现网络管理的5大功能:

配置管理、性能管理、失效管理、计费管理、安全管理

Internet标准的管理信息库(MIB)是数形结构的数据库,其结构见图

MIB-I的树形结构

MIB对象定义:

DEFINITIONS:

:

=BEGIN

IMPORTS

mgmt,OBJECT-TYPE,NetworkAddress,IpAddress,Counter,Gauge,TimeTicks

mibOBJECTIDENTIFIER:

:

={mgmt1}

systemOBJECTIDENTIFIER:

:

={mgmt2}

interfaceOBJECTIDENTIFIER:

:

={mgmt3}

atOBJECTIDENTIFIER:

:

={mgmt4}

ipOBJECTIDENTIFIER:

:

={mgmt5}

icmpOBJECTIDENTIFIER:

:

={mgmt6}

tcpOBJECTIDENTIFIER:

:

={mgmt7}

udpOBJECTIDENTIFIER:

:

={mgmt8}

egpOBJECTIDENTIFIER:

:

={mgmt9}

ASN.1描述文法:

基本编码规则(BER)

标签字段

类型

标签号

类型

标签号

整数

02

对象表示符(Old)

06

比特串(BitString)

03

序列(sequence)

30

8位位组(Octet

String)

04

同类序列

30

空值(null)

05

类型对应的标签号

二、SNMP协议数据单元(PDUProtocolDataUnit)的格式

在SNMP中信息按照SNMP消息的形式在管理站和代理之间交换

PDUtype

Request-id

SNMPPDU

SNMP消息

PDUtype

Request-id

0

0

variable-bindings

GetRequestPDU,GetNextRequestPDU,SetRequestPDU报文格式

PDUtype

Request-id

error-status

error-index

variable-bindings

GetResponsePDU

PDUtype

Enterprise

agent-addr

Generic-trap

spcific-trap

time-stamp

variable-bi

ndings

TrapPDU

Name1

Value1

name2

value2

namen

valuen

variable-bindings

图二、SNMP格式

GetRequestPDU的定义(其它PUD定义类似,下面省略)

GetRequest-PDU:

:

=

IMPLICITSEQUENCE{

request-idRequestID,--always0

error-statusErrorStatus,--always0

error-indexErrorIndex,--always0

variable-bindings

VarBindList

}

其中Request-ID定义为4个8位段整数(用于使响应和查询相匹配),Errorstatus和Errorindex是请求中为0的单个8位段整数。

VarBindlist为对象表示列表,ASN.1规定VarBindlist是一系列成对的对象和数值

SNMPv1操作原语类型的ASN.1表示

操作原语类型ASN.1表示

GetRequest0xA0(160)

GetNextRequset0xA1(161)

GetRqsponse0xA2(162)

SetRequest0xA3(163)

Trap0xA4(164)

SNMP报文格式定义

SNMP报文由2部分组成,即协议头(ProtocolHeader)和数据区域(Dataarea)协议头由

协议“版本”和SNMPcommunity(团体字)组成。

数据区域由若干协议数据单元PDU组成,每个PDU由一个“请求”(网络管理者发送)或一个“响应”(网络代理发送)组成。

报文格式见图

协议版本

SNMPcommunity

DataArea(PDU)

SNMP报文格式

SNMP报文格式的ASN.1表示法:

SNMPDEFINITIONS:

:

=BFGIN

Message:

:

=SEQUENCE{

version--version-1forthisRFC

INTEGER{version-1(0)},

community--communityname

OCTETSTRING,

data--e.g.,PDUsiftrivial

ANY--authenticationisbeginused

PDUs:

:

=CHOICE{get-request

GetRequest-PDU,

get-next-request

GetNextRequest-PDU

get-response

GetResponse-PDU,

set-request-PDU,

SetRequest-PDU,

trap

Trap-PDU

}

END

3、SNMPGet-Request操作的实现

下面给出用GNUC++在REDHAT6.0操作系统中实现SNMP消息操作的例子。

SNMP库函数的源代码和头文件来自http:

//www.cmu.edu。

编译后生成libdsnmp.a作为snmp程序的函数调用库用于各种snmp命令集的程序编写,下面以Get-Request命令为例给出Get-Request命令的源程序(编译和运行环境为Linux,Kernel为2.2.5.-1gcc,g++-GNUprojectCandC++Compiler(v2.7))该源代码已被编译通过,可在LINUX的命令环境下查询装有SNMP代理服务的设备的MIB信息。

/*SNMPGET-REQUEST的C++实现

用法:

snmpgetIP地址团体名查询对象OID*/

#include

#include

#include

#include"snmp.h"

#include"snmp_impl.h"

#include"asn1.h"

#include"snmp_api.h"

#include"snmp_client.h"

externinterrno;

intsnmp_dump_packet=0;

main(argc,argv)

intargc;

char*argv[];

{

structsnmp_sessionsession,*ss;

structsnmp_pdu*pdu,*response;

structvariable_list*vars;

intarg;

char*gateway=NULL;

char*community=NULL;

intcount,current_name=0;

char*names[128];

oidname[MAX_NAME_LEN];

intname_length;

intstatus;

init_mib();

/*

*usage:

snmpgetgateway-namecommunity-name

*/

/*命令和参数的读取和分析*/

for(arg=1;arg

if(argv[arg][0]=='-'){

switch(argv[arg][1]){

case'd':

snmp_dump_packet++;

break;

default:

printf("invalidoption:

-%c\n",argv[arg][1]);

break;

}

continue;

}

if(gateway==NULL){

gateway=argv[arg

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 幼儿教育 > 幼儿读物

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2