第18章 基于SNMP协议的网络拓扑发现程序

合集下载

基于SNMP和Java的网络拓扑发现

基于SNMP和Java的网络拓扑发现

基于SNMP和Java的网络拓扑发现作者:王义峰来源:《学习周报·教与学》2020年第13期摘 ;要:随着现代化的逐渐发展,我国迎来了信息化时代,网络的功能也变得日益强大。

网络服务变得越来越丰富的同时,在网络管理方面上也产生了很大的挑战。

如果想更方便地管理网络设备和相关服务,就一定要精确网络管理软件。

与此同时,也要将网络设备和显示设备拓扑图的运行代价大大降低,也就是要求在一个合理的时间段内将网络设备的拓扑结构给发掘并制作出来。

为了能够满足上诉的要求,很多网络设备供应商在其网络设备中都支持SNMP 协议,这种方法借助Java语言对网络拓扑进行描述并且使之实现,完全發挥了Java语言的可移植和跨平台的特点。

关键词:网络拓扑;SNMP;Java语言一、网络拓朴的相关协议和规范(一)对SNMP协议的介绍简单网络管理协议(SNMP)是一种实现网络设备之间交换管理信息的应用层协议。

它由管理的设备、代理、网络管理系统和管理信息库四个部分来共同组成它的管理结构。

SNMP他的询问方式包括轮询和时间驱动这两种,并且它所拥有的协议数据单元最少支持五种类型。

(二)MIB-II规范该发现算法对于MIB-II的相关规范给出了很详细的定义。

在所定义的每一个管理组当中,IP组对实现网络拓扑发现来说起着很大的积极推动作用。

它所分出来的定义包括以下几种,路由表-ipRouteTable(IP-21)、地址表-ipAddrTable(IP-20)。

(三)Bridge-MIB规范这种规范实际上是属于上一个规范的相关扩展,它将数据链路层设备桥接器的各种状态信息都给定义。

因为交换机能够看得出是多端口透明网桥,所以它也支持Bridge-MIB。

二、网络拓扑发现算法的分析网络拓扑发现算法大概可以分为三个步骤来进行。

(一)首先先建立一个可供访问的临时带验证的地址集合区,例如主机地址。

(二)然后ping这些被集中起来的地址,查看它们是否允许被访问,一旦确定这些地址可以访问,就把它们归纳进被发现设备的永久集合当中。

2021年大规模IP网络中基于SNMP的网络拓扑发现方法分析(2)

2021年大规模IP网络中基于SNMP的网络拓扑发现方法分析(2)

大规模IP网络中基于SNMP的网络拓扑发现方法分析(2) 大规模IP网络中基于SNMP的网络拓扑发现方法分析根据粒度的不同,网络网拓扑发现大致可以分为粗粒度、中间粒度、细粒度三个级别。

粗粒度是一般指AS级别的拓扑发现。

在粗粒度的拓扑图中,节点代表一个域,而边则代表域间的连接。

中间粒度是指集群(路由器集簇)间的拓扑发现。

在中间粒度的拓扑图中,节点代表单路由器或主机的特定集群,边则代表路由器或集群主机之间的连接。

细粒度是指路由器级的拓扑发现。

在细粒度的拓扑图中,节点代表路由器(子网或主机),边代表路由器的连结。

目前,面向Inter的拓扑发现的研究主要集中在AS级和路由器级两个方面。

三、基于SNMP的网络拓扑发现分析(一)SNMP协议简介SNMP C Simple Network Management Protocol)即简单网络管理协议,目前有SNMPvI、SNMPv2两个版本。

SNMPvl于1990年开始发布,其规范文为RFC1157等。

SNMPv2于1993年开始发布,RFC1441对SNMPv2进行了系统地介绍。

目前,最新版本SNMPv3的规范文本为RFC2571。

SNMP采用“管理者一代理”的模式,实现对网络设备的监视和控制。

采用“轮询”与“陷阱”两种方式,实现管理进程与代理进程之间的信息交互,共定义了基本的5种报文:get-request操作:从代理进程处提取一个或多个参数值;get-next-request操作;从代理进程处提取一个或多个参数的下一个参数值;set-request操作:设置代理进程的一个或多个参数值;get-response操作:返回的一个或多个参数值。

这个操作是由代理进程发出的。

它是前面3种操作的响应操作;trap操作:代理进程主动发出的报文,通知管理进程有某些事情发生。

SNMP是一个应用层协议,尽管可以在传输层采用各种各样的协议,但是在SNMP中,用得最多的传输层协议还是UDP。

基于SNMP的网络拓扑发现算法与实现

基于SNMP的网络拓扑发现算法与实现
维普资讯
第 2 卷第 1 2 期
20 年 1 06 月

州 大


报( 自然科学版 )
Vo . 2。 1 2 No. 1


! (
S I N E E T ON) C E C DI I
ln.2 0 a 0 6
基 于 S MP的 网络拓扑发现算法 与实现 N
得各路由设备连接 的子网及子网内所有活动主机的信息.
需要从路由设备返 回的应答数据包解析出的每条记录中的路由相关信息如表 1 所示 .
算法主要流程如下 :
表 1 需解析 出的路 由相关信息 MI B对象 i o tl ne p uef dx R l i o t xHo p ue t p R Ne i ot ye p ue p R T
维普资讯
苏 州



报( 自然科学版 )
第 2 卷 2
以进一步收集系统和 I P地址信息 . 总之, 只要给出一个路 由设备任意端 口的 I P地址作为种子路 由( 通常使
用本地网关的 I P地址作为种子路 由器的地址)即可获取到指定深度 内的所有路 由设备及 活动主机的 网络 , 拓扑结构信息 .
O 引 言
目前 , 可以实现网络拓扑 自动发现的一些常用技术有 p g t c ot、 NS S MP等 . 中 S MP的基 i 、 ae u D 、N n r r e 其 N
本思想是 : 所有的网络设备维护一个 MI B库( 管理信息库 )保存该设备上所有与 网络运行相关的信息 , , 并对
外, 对指定子网内活动主机的发现也不能完全实时反映【 本文针对上述一些缺陷提出了一种改进 的基于 . S MP的网络拓扑发现算法 , N 经过实际网络的验证 , 能够有效地解决这些问题 .

基于SNMP的网络拓扑发现系统的设计与实现

基于SNMP的网络拓扑发现系统的设计与实现
Second, the research and analysis of the common topology discovery algorithm, the application of this system to the network layer and link layer topology discovery algorithm for topology discovery algorithm in detail. This is the core technology for topology discovery, but also the difficulty of the system development.
首先,本文介绍了课题的背景及研究现状。本课题来源于某高校校园网的管理需求。 大规模的校园网络需要高效的网络管理软件进行管理。从上世纪九十年代开始,陆续有 一些学者和专家对网络拓扑发现技术进行了研究,并提出了相应的技术和理论。与此同 时,许多厂家发布了一些商业软件产品,从不同程度上实现了拓扑发现功能。
Again, this paper ObjectSNMP and AdventNet SNMP API package in the Java programming language development platform and MySQL database platforms, design and implement a practical value of the campus network with a topology discovery system. From
然后,本文研究和分析了拓扑发现的基础理论及技术。这部分的相关技术主要包含 了网络层拓扑发现和链路层拓扑发现两个方面。本系统根据校园网络的特点主要采用技 术成熟、实现较简单的基于 SNMP 协议的路由表网络拓扑发现技术实现网络层拓扑发 现;采用基于地址转发表的技术实现链路层拓扑发现。上述拓扑发现技术都是基于 SNMP 的,笔者在论文中对 SNMP 协议进行了全面的分析研究。

基于SNMP的网络拓扑发现系统的设计与实现

基于SNMP的网络拓扑发现系统的设计与实现

中图分类号:TP319密级: 公开UDC:本校编号:工程硕士学位论文论文题目: 基于SNMP的校园网拓扑发现系统的 设计与实现研究生姓名:刘家乐学号:G07084学校指导教师姓名:吴辰文职称:教授企业指导教师姓名:陈贻品职称:副教授申请学位工程领域名称:计算机技术论文提交日期:论文答辩日期:独创性声明本人声明所呈交的学位论文是本人在导师指导下进行的研究工作和取得的研究成果,除了文中特别加以标注和致谢之处外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含获得兰州交通大学或其他教育机构的学位或证书而使用过的材料。

与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的说明并表示了谢意。

学位论文作者签名:签字日期:年月日学位论文版权使用授权书本学位论文作者完全了解兰州交通大学有关保留、使用学位论文的规定。

特授权兰州交通大学可以将学位论文的全部或部分内容编入有关数据库进行检索,并采用影印、缩印或扫描等复制手段保存、汇编以供查阅和借阅。

同意学校向国家有关部门或机构送交论文的复印件和磁盘。

(保密的学位论文在解密后适用本授权说明)学位论文作者签名:导师签名:签字日期:年月日签字日期:年月日工程硕士学位论文基于SNMP的校园网拓扑发现系统的设计与实现Design and Implementation of Campus Network Topology Discovery System Based on SNMP作者姓名:刘家乐工程领域:计算机技术学号: G07084校内导师:吴辰文企业导师:陈贻品完成日期: 2010年10月10日兰州交通大学Lanzhou Jiaotong University摘 要随着校园网络规模的不断扩大和网络技术的不断发展,依靠传统的手工管理方式对大型校园网进行管理几乎已经是一个不可能的任务。

迫切需要功能强大的网络管理软件对校园网进行自动化管理。

而网络拓扑信息的自动发现正是网络管理软件中非常基础和重要的功能。

基于SNMP的网络拓扑发现

基于SNMP的网络拓扑发现

基于SNMP的网络拓扑发现摘要随着计算机网络的高速发展,网络管理变的日趋复杂,为了提高网络设备和服务管理的智能性和可操作性,对网络拓扑高效而准确地发现成为网络管理中重要的环节。

关键词网络拓扑;简单网络管理协议;管理信息库;网络管理;三层拓扑发现;二层拓扑发现1引言现代计算机网络迅猛发展,网络管理的任务也日趋复杂,而保证网络管理系统高效运行的基础正是网络拓扑发现。

网络拓扑表现为计算机网络中各设备之间的连接关系。

网络拓扑发现更能提高网络故障管理、计量管理、配置和名称管理、性能管理和安全管理的性能,其原理是利用协议收集网络中各设备的信息,通过某种算法生成完整的拓扑结构显示出来。

本文介绍的就是基于snp协议的网络拓扑发现。

2简单网络管理协议snp及ib信息库概述2.1snp概述snp名为“简单网络管理协议”,snp基于tp/ip协议工作,对网络中支持snp协议的设备进行管理,通过snp 协议,管理员可以与各种类型支持snp协议的设备进行通信,从而进行网络管理。

在具体实现上,snp为管理员提供了一个网管平台(ns),又称为管理站或管理器,负责网管命令发出,数据存储及数据分析等。

被监管的设备上则运行一个snp代理(agent),又称为代理器,代理实现设备与管理站的snp通信,图1描述了snp协议的逻辑结构[1]。

图1snp协议的逻辑结构1990年5月,rf1157定义了snp的第一个版本snpv1。

rf1157和另一个关于管理信息的文件rf1155一起提供了一种监控和管理计算机网络的系统方法。

因此,snp得到了广泛应用,并成为网络管理的事实上的标准。

90年代初snp得到了迅猛发展,同时也暴露出了明显的不足,例如难以实现大量的数据传输,缺少身份验证和加密机制。

因此,1993年发布了snpv2,提高效率和性能,同时还支持分布式网络的管理等,但是,snpv2并没有完全实现预期的目标,尤其是安全性能没有得到提高,如:身份验证(如用户初始接入时的身份验证、信息完整性的分析、重复操作的预防)、加密、授权和访问控制、适当的远程安全配置和管理能力等都没有实现。

【网络】基于SNMP的网络拓扑结构发现

【网络】基于SNMP的网络拓扑结构发现

【关键字】网络毕业设计(论文) 题目基于SNMP的网络拓扑结构发现学院名称计算机科学与技术学院指导教师谭敏生职称教授班级2004级3班学号335学生姓名刘祺目录摘要 (iii)Abstract (iv)第一章绪论 (1)1.1 课题背景及意义 (1)1.2 本文的研究目标及文章组织 (2)1.2.1 研究目标 (2)1.2.2 文章组织 (3)第二章网络拓扑发现概述 (4)2.1网络拓扑发现概述 (4)2.1.1网络拓扑发现概念 (4)2.1.2网络拓扑发现东西 (4)2.1.3网络拓扑发现前的准备工作 (4)2.1.4常用的网络拓扑发现技术 (5)2.2 SNMP协议介绍 (8)2.2.1 SNMP的发展 (8)2.2.2 SNMP的协议层次 (9)2.2.3 SNMP管理模型 (9)2.2.4 SNMP协议报文和通信原语 (11)2.2.5 使用SNMP协议时所涉及的内容 (13)第三章网络拓扑发现算法的研究 (18)3.1 基本算法 (18)3.2 基于ARP和SNMP的拓扑发现算法 (19)3.3 使用DNS区域传输和广播Ping的拓扑发现算法 (19)3.4 使用DNS区域传输和Traceroute的拓扑发现算法 (20)3.5 使用Traceroute进行探测的拓扑发现算法 (22)3.6 基于OSPF和SNMP的拓扑发现算法 (24)3.7 骨干网拓扑发现算法 (25)第四章基于SNMP的网络拓扑发现算法的实现 (27)4.1算法的原理 (27)4.2 算法描述 (31)4.2.1 算法中用到的MIB组 (31)4.2.2 网络拓扑发现的流程 (33)4.2.3 网络拓扑发现算法的实现 (35)第五章基于Java技术的网络拓扑结构生成 (38)5.1 基于Web和Java可视化的研究 (38)5.1.1 层次型的可视化结构 (39)5.1.2 Java Applet在系统中的应用 (39)5.2 数据库的设计 (40)5.3 拓扑结构可视化的实现 (43)5.3.1 Java Applet的实现 (43)5.3.2 可视化模块的实现 (44)5.3.3 对数据库的访问 (47)5.3.4 结果展示........................... 错误!未定义书签。

基于SNMP的网络拓扑发现

基于SNMP的网络拓扑发现

基于SNMP的网络拓扑发现一、SNMP简介SNMP(Simple Network Management Protocol,简单网络管理协议)是一种基于TCP/IP协议的互连网管理协议。

SNMP诞生于1988年,当时只想把它作为一个短期的网络管理框架,临时用于管理连接到Internet上的设备。

但随着SNMP的发展和大量应用,其使用范围已大为扩展,超出了Internet的范围。

SNMP逐渐作为一种标准的协议在网络管理领域得到了普遍的接受和支持,成为了事实上的国际标准。

SNMP采用“管理进程/代理进程”模型来监视和控制各种可管理网络设备。

其核心思想是在每个网络节点上设置一个管理信息库MIB(Manage Information Base),由节点上的代理负责维护,管理进程通过应用层协议对这些信息库进行访问。

图3.1说明了SNMP网络管理框架的一般体系结构,它由四个主要部件构成,分别是:通信网络、网络协议、网络管理进程和被管网络实体。

网络管理进程被管网络实体图3.1 简单网络管理协议(SNMP )体系结构二、 基于SNMP 协议的网络层拓扑发现SNMP 已经成为网络管理的标准,为网络拓扑自动发现带来了巨大的方便,同时也大大提高了网络拓扑发现的速度。

路由器子网图3.2 网络拓扑结构模型网络层拓扑发现算法的任务就是发现被管网络中的子网、路由器以及它们之间的连接关系。

图3.2是网络拓扑结构的一个模型。

其中,各子网通过各自的路由器与其他子网通信,它们都连接到路由器的一个端口上。

路由器的一个端口可以连接一个子网,也可以同其他路由器相连。

当子网内的某一机器向别的子网发送数据时,数据包首先到达本子网的缺省路由器,缺省路由器检测数据包中的目的地址,根据其路由表确定该目的地址是否在与自己相连的子网中。

如果是,则把数据包直接发往目的地,否则转发给路由表中规定的下一个路由器,下一个路由器再进行类似处理,依次类推,数据包将最终到达目的地。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

10
《计算机网络高级软件编程技术》
SNMP被管系统
被管资源
MIB树结构
root ccitt(0) standard(0) iso(1) org(3) dod(6) internet(1) joint -iso - ccitt(2) -
directory(1) mgmt(2) experimental(3) private(4) security(5) mib - 2(1) system(1) interfaces(2) at(3) ip(4) icmp(5) tcp(6) udp(7)
《计算机网络高级软件编程技术》
• • • •
7
程序界面示例
8
《计算机网络高级软件编程技术》
提纲
• • • • •
编程训练目的 编程训练要求 相关知识介绍 程序设计分析 扩展与提高
9
《计算机网络高级软件编程技术》
Trap
被管对象 管理代理 SNMP SNMP UDP Link
Set Set Get - Next Get - Next Get Get
《计算机网络高级软件编程技术》
提纲
• • • • •
编程训练目的 编程训练要求 相关知识介绍 程序设计分析 扩展与提高
13
《计算机网络高级软件编程技术》
NetExplorer
程序总体结构
与路由器通讯 与路由器通讯
Worker Thread Worker Thread
SendMessage
与路由器通讯,获得本 与路由器通讯,获得本 路由器的IP地址列表和 路由器的IP地址列表和 下一跳IP地址的列表 下一跳IP地址的列表
正常退出
17
《计算机网络高级软件编程技术》
提纲
• • • • •
编程训练目的 编程训练要求 相关知识介绍 程序设计分析 扩展与提高
18
《计算机网络高级软件编程技术》
其他网络管理协议
• CMIP(公共管理信息协议 )
• WS-Management(Web Service Management)
19
PDU 类型
请求 ID
错误 状态
错误 索引
名字1:值1
名字2:值2

a) Request/Response PDU 结构
SNMP 消息 版本 团体名 Trap PDU
PDU 类型
企业
代理 地址
一般 Trap 类型
特殊 Trap 类型
时间戳
名字1:值1
名字2:值2 名字

b) Trap PDU 结构
12
3
《计算机网络高级软件编程技术》
提纲
• • • • •
编程训练目的 编程训练要求 相关知识介绍 程序设计分析 扩展与提高
4
《计算机网络高级软件编程技术》
编程训练目的
• 掌握SNMP 通信原理,实现基于SNMP 协议进行通信,获得所需信息的功能 • 掌握基于SNMP协议,与特定路由器进 行通信,生成路由器连通拓扑结构图的 网络拓扑发现程序的设计与实现的方法
维护图状结构 维护图状结构
Class:DistributeDate Class:DistributeDate
显示调用
维护一个路由器拓扑图 维护一个路由器拓扑图 的生成树结构,并且在 的生成树结构,并且在 插入新的子节点是判断 插入新的子节点是判断 是否存在环路,并作相 是否存在环路,并作相 应标识 应标识
像绘图线程发送消息,通知他调用 DrawRouter绘制doc中RouterEnty 链表中最后一个元素 获得该节点的下一跳步列表 获得该节点的下一 跳步列表 N 成功? 成功? Y 针对该列表中的每一个IP地址,加上这个 Routerenty的指针和当前递归深度+1三 个参数循环调用该函数 Y 针对该列表中的每一个IP地址,加上这个 AddChild返回的指针和当前递归深度+1三个 参数循环调用该函数 N
16
《计算机网络高级软件编程技术》
ICMP扫描线程执行流程
程序开始
初始化 IP_OPTION_INFORMATION 结构体
N
检查参 数个数是否 正确
Y
检查参数是否以 直接转化为所需格式的 IP地址
N
发送ICMP ECHO REQUEST数据包
Y
投递APC请求
N
检查参数 是否可以通过DNS 转化为IP地址
“十一五”国家重点图书 计算机科学与技术学科前沿丛书
计算机科学与技术学科研究生系列教材(中文版)
计算机网络 高级软件编程技术
吴功宜 董大凡 王 珺 刘 乾
1
《计算机网络高级软件编程技术》
第18章 基于SNMP协议的网 络拓扑发现程序
2
《计算机网络高级软件编程技术》
概述
SNMP简单网络管理协议是目前应用最为 广泛的网络管理协议一个。通过本次编程 训练,帮助读者掌握网络管理的基本概念, 掌握SNMP协议的基本内容和实行方法, 培养读者编写网络管理软件的编程能力
Y
SleepEx (完成APC操作)
N
加载 DLL 并且获得相应函 数指针
Failed
判断是否 循环结束
Y
Success
等待其他APC操作
失败返回
成功返回
异步过程调用处理流程 解析 ICMP_ECHO_R EPLY结构 生成存储相 应主机信息 的字符串 发送Message,通知界 面线程显示该主机信息 字符串
《计算机网络高级软件编程技术》
网络管理新技术 • RMON(远程网络监控) • 基于WEB的网络管理
20
《计算机网络高级软件编程技术》
ቤተ መጻሕፍቲ ባይዱ
snmpv2(6) mail(7)
transmission(10) snmp(11)
udpInDatagrams(1)
11
《计算机网络高级软件编程技术》
PDU结构
SNMP 消息 版本 团体名 GetRequest , GetNextRequest , SetRequest , GetResponse PDU
应用管理对象
SNMP消息
IP
Get Get Response Response
通信网
SNMP体系结构
SNMP管理系统
Trap Trap
应用程序 管理进程 SNMP UDP 管理 Link
Set Get Get - Next Get Get
管理 数据
IP
Get Get Response Response
成功? Y N 生成一个只有一个IP的链 表,调用AddChild
成功? N Y 以该列表和父节点指针为参 数调用AddChild()
生成一个只有 一个IP的链表 N
AddChild返回 是否为空
Y
在doc中的RouterEnty中创建新的 节点,将IP地址列表附值
像绘图线程发送消息,通知他调 用DrawRouter绘制doc中 RouterEnty链表中最后一个元素
5
《计算机网络高级软件编程技术》
提纲
• • • • •
编程训练目的 编程训练要求 相关知识介绍 程序设计分析 扩展与提高
6
《计算机网络高级软件编程技术》
编程训练要求
编写程序,实现基于SNMP协议的拓扑 发现程序,要求: 程序可以设置与路由器通信的团体名 递归深度可以控制 界面友好,可以清晰显示路由器连通拓 扑结构 实现基于ICMP协议的特定网段内活动 主机扫描
维护相关数据 维护相关数据
Class:CNetExplorerDoc Class:CNetExplorerDoc
负责相关数据结构的构 负责相关数据结构的构 造,析构和动态生成管 造,析构和动态生成管 理 理
14
《计算机网络高级软件编程技术》
功能模块分析
• • • • 获得路由器信息的工作者线程模块 Class CNetExplorerView Class DistributeDate Class NetExplorerDoc
插入新获得的路由器信息
绘制屏幕 绘制屏幕
Class:CNetExplorerView Class:CNetExplorerView
提供更新界 面所需数据
接收Worker Thread的 接收Worker Thread的 消息,为新生成的路由 消息,为新生成的路由 器Enty分配位置并在屏 器Enty分配位置并在屏 幕上绘制该路由器以及 幕上绘制该路由器以及 其与其它路由器的连线 其与其它路由器的连线
15
《计算机网络高级软件编程技术》
工作者线程执行流程
获得四个参数,需要连接的路由器IP地址和 一个父节点指针,团体名,和当前递归深度 判断是否达到 递归深度 Y 退出递归
Y (该节点为头节点)
N RouterEnty是否为 空?
N (该节点为某节点的子节点)
获得该节点的IP地址列表
获得该节点的IP地址列表
相关文档
最新文档