TOPOLOGY网管软件的系统设计计算机信息管理毕业设计论文.doc_第1页
TOPOLOGY网管软件的系统设计计算机信息管理毕业设计论文.doc_第2页
TOPOLOGY网管软件的系统设计计算机信息管理毕业设计论文.doc_第3页
TOPOLOGY网管软件的系统设计计算机信息管理毕业设计论文.doc_第4页
TOPOLOGY网管软件的系统设计计算机信息管理毕业设计论文.doc_第5页
免费预览已结束,剩余38页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

目 录 摘 要 1 ABSTRACT 2 前 言 3 第一章 概述 4 1 1 开发背景 4 1 2 关于国内外同类系统的分析 4 1 3 TOPOLOGY 网管软件的任务与目标 6 1 5 本论文所作的工作 7 第二章 SNMP MIB 与 TOPOLOGY 开发环境 8 2 1 SNMP 8 2 2 SNMP 操作和 SNMP 报文传输 9 2 3 SNMP V2 和 SNMP V3 10 2 3 1 SNMP V2 协议 11 2 3 2 SNMP V3 协议 12 2 4 管理信息库 MIB 12 2 5 TOPOLOGY 开发环境 14 2 5 1 Visual C 6 0 MFC 应用程序框架 14 2 5 2 WinSNMP 15 第三章 TOPOLOGY 系统总体设计 16 3 1 TOPOLOGY 系统总体结构 16 3 2 TOPOLOGY 系统各功能模块设计 16 3 3 模块之间的协调 18 第四章 TOPOLOGY 网络拓扑发现模块的设计与实现 20 4 1 基于 SNMP 的主干网拓扑发现 20 4 1 1 传统的基于 SNMP 的网络主干拓扑发现方法 20 4 1 2 改进的基于 SNMP 的网络主干拓扑发现方法 25 4 1 3 模块运行结果 29 4 2 子网内拓扑发现 29 4 2 1 ARP 表 IpNetToMediaTable 表 29 4 2 2 子网拓扑的中所要的数据结构 30 4 2 3 如何判断主机的状态 30 4 2 5 模块运行结果 31 第五章TOPOLOGY 网络拓扑图生成 布局模块的设计与实现 32 5 1 TOPOLOGY 网络拓扑图布局模块的设计 32 5 2 TOPOLOGY 网络拓扑图生成 布局模块的实现 34 5 2 1 数据结构 34 5 2 2 TOPOLOGY 主干网拓扑图生成 布局模块的实现 35 第六章 总结与展望 37 6 1 课题总结 37 6 2 进一步开发的展望 38 参考文献 40 致 谢 41 1 摘摘 要要 随着网络的高速发展 网络管理变得越来越复杂 网络管理软件的研究与开发伴随 网络的不断发展也越来越受到人们的重视 本文基于SNMP协议 MIB库 详尽阐述 了作者设计的TOPOLOGY网管软件的系统设计 以及它的四大模块 网络拓扑发现 网络拓扑生成与布局 查询MIB 功能模块协调与切换的主要设计思想和实现方法 论 文中着重研究和讨论了对网络拓扑的发现 生成 布局的设计实现算法 在传统主网拓 扑发现算法的基础上 作者提出两种新的补充算法 使得拓扑更加完整 具有一定的创 新性 论文所提出的拓扑布局算法采用环型算法与启发式算法相结合 使得布局更加合 理 也是该网管软件的特色和创新做法 论文在最后还探讨了对系统进行进一步开发的 展望 关键词 拓扑发现 布局 SNMP MIB WinSNMP 2 Abstract With rapid development of network network management becomes more and more complex Meanwhile the research and development of network management software are also paid more and more attention to by people Based on SNMP and MIB this thesis has accounted in detail for the system design of Network Management Software TOPOLOGY developed by this author The main designing thoughts and implementation schemes of four modules include network topology discovery topology generation layout MIB polling and modules coordination switching The thesis has examined and discussed with focus on the designing and implementing algorithms of network topology discovery generation and layout On the basis of traditional backbone network discovery algorithm the author gives out two new algorithms for supplement to make the topology more complete and the new algorithms are creative on a certain extent Topology layout algorithm presented by this thesis combines the elicitation algorithm to the ring algorithm to make the layout more rational and this is also the characteristic and creative way in this network management software In the end the prospect of further development to this system is also explored Keywords Topology Discovery Layout SNMP MIB WinSNMP 3 第一章 概 述 1 1 开发背景开发背景 随着网络的高速发展 网络管理变得越来越复杂 网络管理软件的研究与开发伴随 网络的不断发展也越来越受到人们的重视 同时 随着计算机网络的使用越来越广泛 用户对网络的依赖也越来越大 网络的可靠性成为越来越重要的问题 网络管理是一个 解决方案 它寻求最大限度地利用现有的网络资源 增加网络的可用时间 提高网络设 备的网络性能 服务质量和安全性 因此 研究网络管理具有重要的意义 目前国内的企业网 园区网系统所使用的网络管理软件大多都是从国外引进的 如 IBM公司的Netview HP公司的OpenView Cisco公司的Ciscoworks 3Com公 司的 Transen等 这些网络平台一般价格昂贵 不具备良好的中文界面 信息资源方 面的管理能力相对较弱 其中一些只能管理本公司的产品 如Cisco Works Transen 等 有些还需要第三方产品的辅助 虽然它们提供了丰富的API 但许多对于开发园区 网络管理系统是不必要的 并且大多数网络管理员不具备二次开发的能力 这就造成资 金和资源的浪费 所以根据我国互联网的实际应用 结合园区网的自身需求 自主设计 与开发一个成本低 效率高的通用型网络管理系统是十分必要的 1 2 关于国内外同类系统的分析关于国内外同类系统的分析 针对网络管理的需求 许多厂商开发了自己的网络管理产品 其中一些形成了一定 的规模 占有大部分的市场 主要有 1 Sun NetManager Sun NetManager是不依赖于协议的分布式管理体系结构网络管理系统 它是第 一个重要的开发平台 如果SunNet Manager要被最终用户直接使用 需要第三方厂商 开发出来的应用系统来实现 主要功能有 拓扑结构图 自动管理 链接管理 浏览工 具和API Sun NetManager在拓扑管理方面 仅能发现IP网络设备 能判断 SNMP TCP Socket 161 是否处于 Active 状态以及网络设备是否有多个端口 router 不能发现非IP 设备 2 HP OpenView Network Node Manager NNM HP OpenView是第一个出现的网络管理系统 是一个广泛使用 获得大多数认可 的网络管理系统 它主要给第三方网络管理应用程序开发人员提供开发平台 同时也可 4 向用户提供最终的可安装产品 主要功能 自动发现网络拓扑结构 性能与吞吐量的分 析 故障报警和历史数据分析 OpenView 的网络拓扑自动发现功能很好 启动后能立即自动发现本网段的结点 网段中的路由器 或网关 子网以图标的形式显示在图形上 为了进一步搜索子网 只 需点亮响应的子网图标 并置其为被管 不能在运行时手工加入与本网段非直连的管理 对象 3 IBM Tivoli NetView IBM Tivoli NetView检测TCP IP 网络 显示网络拓扑结构 相关信息和管理事 件以及SNMP 陷阱 监控网络运行状况并收集性能数据 Tivoli NetView 通过可扩展 性和灵活性满足大型网络管理人员的使用需要 以管理关键任务 它还提供了强大的信 息过滤能力 可通过设置阀值来减少部分冗余报警 IBM的网络拓扑功能在同类产品中并不突出 4 Cisco Works 由Cisco公司开发 它使用Cisco的专门技术 CDP Cisco Discovery Protocol 对本公司的网络产品进行精确的搜索 但CDP只能搜索本公司的 网络产品 对其它厂家的网络产品不具备兼容性 主要功能 自动安装管理器 与 NetView的接口 通用命令管理器 设备监控 路径工具和实时图形 CDP支持对VLAN的拓扑发现 前提是网络设备必须是Cisco的产品 5 国外其它网管软件产品 TRANSCEND由3Com公司开发 该产品的自动拓扑搜索功能简单 只能检测 出当前局域网中的主机 不能确定各个主机的互连情况 不能确定主机的接口类型 TRANSCEND只能对本公司的网络硬件设备产品进行较为精确的搜索 显示出其网络 设备各个端口的状态 但不能发现其它厂商的网络设备 运行速度很慢 对机器的硬件 配置及内存容量要求较高 Net Walker由Fujitsu公司开发 是一种较好的网络管理产品 能较好的搜索到当 前网络中运行的网络设备 较精确地确定网络互连情况和网络接口 能够实时地反映网 络当前状态 对有故障的网络设备能较快的检测到并进行报警 但只能运行在UNIX环 境中 不能在Windows环境中运行 运行速度较慢 对网络的搜索需要大量的时间 PloyCenter On NetView PNV 由DEC公司开发 它是在HP OpenView和 IBM Tivoli NetView的基础上开发而成的 具有一些前两者所没有的特点 PNV提供 了一个通用的网络管理平台 它支持多种网络管理协议 具有分布安全性 提供登录确 认 它能动态发现设备 按其在协议栈中所处的位置进行摆放 建立连接关系 它还实 现了收集并图形化显示当前数据和历史数据和支持关系数据库等功能 6 国内网管软件 5 国内自主开发的网络管理软件较少 上海金桥网络工程中心开发了在Windows PC 平台上使用的网络管理软件GoldView 该软件基于简单网络管理协议 SNMP Simple Network Management Protocol 实现了对TCP IP网络的拓扑发现 然而 由于各种原因 该软件在国内未能推广使用 南京飞博的IP View是一款在 Linux平台下使用Java自主开发的专业网管软件 采用B S结构 北京游龙科技的 SiteView对服务器进行监测的功能十分强大 IP View和SiteView都具有较强的通用 性 在国内市场上占有率较高 网络管理也是国内高校网络研究的热点 目前取得了一些阶段性的成果 如清华大 学的 CIMS 网络监控管理系统 北京航空航天大学开发的网络管理系统 东南大学的网 络管理系统 Watcher 以及上海交通大学与日本合作开发的 Walker 中文版网络管理系 统 1 3 TOPOLOGY 网管软件网管软件的任务与目标的任务与目标 本课题基于SNMP网管协议与通用MIB库 致力于网络拓扑自动发现与生成 为 TOPOLOGY通用管理平台开发出主要的网络管理功能模块 并进行网络主机与设备的 状态检测 实现网络管理系统 要求完成如下主要工作 1 网络拓扑发现模块的设计与实现 自动发现目标网络的拓扑结构与其包含的设 备 为 TOPOLOGY 提供准确完整的网络拓扑信息 自动发现网络主干拓扑 确定路 由器与路由器 路由器与子网的连接情况 自动发现子网拓扑 确定子网内网络设备的 状态 确定子网内网络设备的类型 确定子网内网络设备的网络接口 确定子网络接口 的状态 2 网络拓扑图生成 布局模块的设计与实现 用于将网络拓扑信息布局到计算机屏 幕上 形成网络拓扑图 将路由器与路由器 路由器与子网以及主机与主机的连接情况 用图形的方式清晰地显示 要求美观 调整方便灵活 3 MIB 信息查询模块的设计与实现 完成读取指定网络设备 MIB 库中信息 为 TOPOLOGY 用户提供网络管理信息 实现网络主机与设备的状态检测 由于TOPOLOGY是一款投入实际使用的网管软件 所以本课题特别强调开发成 果的通用性 鲁棒性和实时性 通用性 主要针对网络拓扑自动发现 具体表现为两方面的通用性 a 要求能够发现各种类型的设备 如 路由器 三层交换机 主机等 b 要求能够发现多个厂商制造的网络设备 鲁棒性 按照TOPOLOGY系统规划 本课题所承担的研究开发内容在投入使用后 6 要求能够持续运行不中断 系统要求稳定 可靠性好 实时性 网络管理系统一般要求系统尽快反映网络的现时工作情况 本课题也对实 时性有相当要求 TOPOLOGY要求本课题所开发的模块在投入使用后 将拓扑结构及 发现到的网络故障信息尽快如实反映在屏幕上 1 5 本论文所作的工作本论文所作的工作 本文以笔者在研发TOPOLIGY网管软件中所做的工作为基础 围绕MFC框架结 构 SNMP协议和MIB库 讨论TOPOLOGY网管软件的研究 设计与实现 详尽 阐述了TOPOLOGY网管软件的系统设计 以及它的四大模块 网络拓扑发现 网络 拓扑生成与布局 查询MIB 功能模块协调与切换的主要设计思想和实现方法 TOPOLIGY网管软件由课题组黄逊 徐家燕和吴可旸三人共同完成 其中 笔者 的主要工作为 1 系统分析 系统设计 界面设计 2 对网管软件使用和涉及的重要相关MIB库中的项目进行分析 对网管软件与 SNMP Agent交互的过程和进行网管软件开发的具体方法进行了详尽的分析 3 设计了主干网拓扑生成 布局 子网拓扑生成 布局的算法 4 编写了主干网拓扑生成 布局模块 子网拓扑生成 布局模块协调模块 MIB查询 功能模块协调与切换 界面设计等方面的代码 进行了系统测试 网管软件TOPOLOGY遵循公用MIB规范 做到兼顾普遍性 通用性和实用性 对异构型的多个厂家生产的网络互联设备组成的网络做到了普遍适用 在传统主网拓扑 发现算法的基础上 论文提出两种新的补充算法 使得拓扑更加完整 论文提出的算法 具有一定的创新性 拓扑布局算法采用环型算法与启发式算法相结合 使得布局更加合 理 也是该网管软件的一大特色和创新做法 TOPOLOGY网管软件由项目组三人共同开发 本论文对笔者所作的工作进行了详 细的阐述 同时对课题组共同开发的TOPOLOGY网管软件的相关的其它重要部分也进 行了必要的讨论 7 第二章第二章 SNMP MIB 与与 TOPOLOGY 开发环境开发环境 TOPOLOGY网管系统基于SNMP MIB 软件开发平台采用了MS Visual C 6 0 并使用了MFC程序开发框架 在本章中对这些技术背景先作简单介绍 2 1 SNMP 1988年 Internet体系结构委员会 IAB 提出了简单网络管理协议SNMP的第 一个版本SNMP V1 8 后来又发表了SNMP V2 SNMP V3 SNMP是基于 TCP IP协议的各种互联网络的管理标准 由于它满足了人们对通用网络管理标准的需 求 而且本身简单明了 实现起来比较容易 占用的系统资源少 所以已成为事实上的 工业标准 OSI网络管理一般采用管理器 Manager 代理 Agent 的管理模型 OSI的网 络管理组织模型包括以下几个重要的组成部分 1 被管对象MO Managed Object 可以用一定的数据表示方法表示 通过网管 协议进行管理的被管理对象 2 管理进程 Manager Process 通常位于控制台 Console 上 它和代理进 程通信 发出管理操作指令 接收来自代理的信息 3 代理进程 Agent Process 通常位于网关 路由器等被管对象中 监视被管对 象的状态 响应管理进程的管理请求 报告被管对象的属性 执行被管对象的操作等 4 管理信息库MIB Management Information Base MIB一部分位于 Manager上 一部分位于Agent中 MIB实际上是一个提供被管元素信息的数据库 它由一系列被管对象及其属性 操作 通知 行为等构成 是OSI标准所提出的被管对 象的数据表达格式 在管理过程中 管理员通过控制台 Console 向Manager发出管理请求 通信 模块将请求发送给指定的Agent Agent对被管对象执行相应的管理命令 或获取被 管对象的属性值 或操作被管对象 Agent也可以在被管对象出现异常时 主动产生 事件报告 通过通信模块发送给Manager Manager经过处理后在控制台显示 SNMP 的组织模型和OSI 标准表述的组织模型基本一致 只是采用的术语有细 微的差别 在组织模型中所涉及的管理构件基本相同 包括Manager Agent 管理 信息库MIB和被管对象 每一个被管设备需要具备 1 管理信息库MIB 8 2 监视 操作MIB的SNMP Agent 2 2 SNMP 操作和操作和 SNMP 报文传输报文传输 SNMP协议是建立在 TCP IP协议之上的应用层协议 它基于管理器 代理模型 管理器与被管对象之间通过发送SNMP报文来彼此通信 SNMP的传输报文基于UDP 由三部分组成 如图2 1所示 图2 1 SNMP的传输报文 在版本号部分 描述SNMP协议的版本 SNMP V1 SNMP V2还是SNMP V3 共同体名为Community信息 Community字段的作用类似于 SNMP Manager和Agent之间的口令 默认的读Community是 public 默认的读写 Community是 private 从系统安全性角度 代理可以设置Community参数及相 应的访问权限 只读或读写 并要求管理者在发送报文时填写Community 只有在 Community相同且相应访问权限相符的情况下 代理才按报文所规定的操作回送相应的 响应报文 SNMP Manager和SNMP Agent 之间通过协议数据单元PDU Protocol Data Unit 传输管理信息 Data Area部分就是由协议数据单元 PDU 组成 SNMP规定了 五种网络管理操作 这五种原语操作分别有对应的PDU 它们是 1 GetRequest SNMP管理者从SNMP代理处获取变量值 2 GetNextRequest SNMP管理者从SNMP代理处获取下一个变量值 3 SetRequest SNMP管理者设置SNMP代理上的某个变量值 4 GetResponse SNMP管理者接收来自SNMP代理的应答 5 Trap Trap机制使SNMP Agent向SNMPManager报告某个 已经设定好的事件的发生 这5种类型的PDU除Trap之外的4种PDU格式是相同的 共有5个字段 如图 2 2和图 2 3所示 图 2 2 GetRequest PDU GetNextRequest PDU SetRequest PDU 9 图2 3 GetResponse PDU Trap PDU不同于其它4种PDU格式 它有7个字段 如图 2 4所示 图2 4 Trap PDU PDU建立于UDP 每个SNMP报文被封装成一个UDP数据报 并通过IP层发 送出去 管理器从UDP的第161号端口接收除 Trap 以外的所有报文 Trap报文从 UDP的第162号端口接收 代理从UDP的第161号端口接收所有报文 由于SNMP是利用UDP来完成低层数据传输的 所以SNMP不保证数据传输的 可靠性 这种无连接的通信不需维护系统的状态 因而提供了某种程度的健壮性 无论 是管理器还是代理的操作都不依赖于对方 当远程代理失败时 管理器依然能继续工作 当代理恢复后 它能发送一个Trap将状态的改变通知管理器 此外 SNMP 的原语操作具有原子 Atomic 特性 即执行多变量操作时 要么全部执 行 要么全不执行 对任何一个变量操作的失败都会导致执行过程的恢复 或称回卷 Rollback SNMP在TCP IP体系中的结构如图 2 5所示 图2 5 SNMP在TCP IP体系中的结构 10 2 3 SNMP V2 和和 SNMP V3 在TCP IP协议中 网管协议是变化和发展得非常迅速的应用层协议 在DMI和 WBEM 等新的网络管理协议 规范出现的同时 SNMP协议本身就经历了V1 V2 和V3这三个版本的发展过程 这一方面说明了网络管理在网络发展 应用过程中的重要 性 另一方面说明了网管协议的发展还不够成熟 对网管协议的发展过程的深入研究有 利于我们认识和解决网管协议中存在的某些问题 2 3 1 SNMP V2 协议协议 简单性是SNMP Vl标准取得成功的原因之一 但简单性也正是SNMP缺陷所在 因为这种简单性是有代价的 主要休现在以下几个方面 1 在Manager 和Agent 之间的通信应该有安全性保障 SNMP Vl在这方面是 通过传输报文中的Community字段加以实现的 SNMP V1假定在Manager和 Agent之间的网络传输是安全的 如果破坏者在Manager和Agent之间对数据包进行 截获 Intercept SNMP V1报文的的一切内容都将是不安全的 2 目前的网络中 一般会集成不同厂商的网络产品 网络管理系统也各种各样 而SNMP协议是一种集中式管理模式 它并不支持多个管理程序之间的通信 管理员一 般将网络分成几部分 每一个部分使用专用管理站和管理平台 SNMP Vl的这种集中式 管理模式不能很好地适应网络的现状 3 没有提供成批存取机制 对大块数掘进行存取效率很低 在SNMP V2被推出 之前 在1991年推出了RMON MIB Remote Network Monitoring MIB RMON MIB的一个比较明显的优点是它提供了收集 统计网络流量的管理功能 使得 SNMP不 仅可以管理网络设备 也可以管理网络本身 针对SNMP Vl的不足之处 IAB Internet Action Board 于1993年初 推出了SNMP V2 RFC1441 RFC1452 SNMP V2除 了保持V1原有的简单易于扩展等优点之外 主要在安全机制 完善功能方面进行了改进 完善了安全机制 提供了验证机制 Authentication 加密机制 Privacy 时间同步机制 Synchronized Time Stamp 等 以确保通信的安全 继承原有的集中式管理 同时支持分布式管理策略 Distributed Management Strategy 网络中存在着一个主管理者 网络可以被逻辑上分割成几部分 每个部分由一个管理者管理 各部分的管理者可以直接处理管理代理的网络事 件 也可以向主管理者报告 11 提供了一次获取成组数据的能力 效率大大提高 这是通过提供一条操作原语 GetBulkRequest 实现的 GetBulkRequest实际上类似于GetNextRequest 只不过它获取的是 下面多个 变量的值 另外在前面提到的MIB II也较MIB I增加了两个组 对象数量也从114个增加 到185个 使MIB II对被管对象的表示能力大大增加 2 3 2 SNMP V3 协议协议 导致产生SNMP V2的一个主要原因是对安全性的要求 但是SNMP V2并没能很 好地完成安全性方面的工作 在SNMP V2 原形系统的实现过程中发现它比人们原先 预想的要复杂得多 失去了 简单性 的特点 当开发计划的结束时间到来时 IETF Internet EnUnerring Task Force 只好把几乎所有与安全相关的内容从SNMP V2中 去掉 从而形成现在看到的最终的SNMP V2草案标准 即RFC 19XX 系列 SNMP V2 中最初没有报文的定义 后来又出现了SNMP V2C Community based SNMP V2 作为SNMP V2 的补充 它增加了V2的报文定义 但与 V1 的报文非常类似 SNMP V2的开发最终还是失败了 IETF解散SNMP V2工作组 决定把工作留给 SNMP NG Next Generation 即现在的 SNMP V3去做 SNMP V3在1993年成为提 案标准 Proposed Standard RFC14XX 系列 由于以上的原因 SNMPV3相对于 V2主要增加了安全特性 在SNMP V3中 通常实在以下两个过程中实现安全处理的 1 传送 接收报文的过程 2 处理报文内容的过程 这两个阶段分别对应于报文处理和PDU处理模块 因此在SNMP V3中的安全是指 在报文级别实现的安全 而访问控制则对应于在协议操作级别实现的安全 由两者共同 实现安全的管理框架 2 4 管理信息库管理信息库 MIB 管理信息库 MIB 是实现 SNMP 网络管理的关键因素 MIB的结构被称为管理 信息结构 SMI Structure of Management Information RFC 1155中定义了SMI MIB 库中每个被管对象类型都有名字 Name 语法 Syntax 和编码 Encoding 三方面的定义 名字由一个Object Identifier唯一表示 语法表示 对象的抽象数据结 构 如integer Octet ipAddress等 是指被管对象的抽象文法结构及其数据表达方 法 编码表示对应抽象数据结构的ASN 1编码 SNMP采用ASN 1定义的BER编码规则 12 ASN 1 Abstract Syntax Notation One 是一种用于描述结构化客体内容和结构 的语言 MIB库中每个变量都符合ASN 1语法规则 MIB 库中使用了ASN 1中的 Integer Octet String Null等作为基本类型 同时定义了 IpAddress Counter Gauge TimeTicks Opaque 等类型 IpAddress 表示32 位的 Internet 地址 由 4 个Octet String 表示 Counter 表示一非负整数 只能递 增 Gauge 表示一非负整数 可以递增或递减 基本编码规则 BER Basic Encoding Rules 是ASN l 标准定义的一种传送文 法 ASN 1 提供的是抽象文法结构和内容的表示方法 而BER 描述的是在传送过程 中内容是如何表示的 每一个BER编码有三个字段 标签 Tag 字段是关于标签和编 码格式的信息 长度 Length 字段定义数值的长度 内容 Value 字段表示实际的数值 因此 一个编码值又称TLV Tag Length Value 三元组 编码可以是基本型或结构型 如果它表示一个简单类型的 完整的显式值 那么编码就是基本型 primitive 如果 它表示的值具有嵌套结构 那么编码就是结构型 constructed SNMP V1使用MIB 管理信息库 它把规定的114个对象分为8个组 而在 MIB 中新增了两个组Transmission和SMNP 组 对象数量增加到185个 参见 表 2 1 表 2 1 MIB 的对象组 对象在MIB中的存放形式被称作管理信息结构 SMI Structure of Management Information 它详细定义了MIB 库的组成结构 规定了描述和标识MIB变量的一 组规则 目前的两个标准数据模型是Internet SMI 和OSI SMI Object Identifier是一个全局树的整数序列表达 即命名树 如图 2 6所示 命 13 名树的每个节点分别由一个整型数和一个类型说明加以表示 对象标识符的命名由专门 的机构负责 各对象标识符之间共同构成一个属性分层结构 一个对象标识符是由从根 出发到对象所在节点的途中所经过的数字标号序列所形成的 例如 所有的MIB变量 都在mib节点之下 而这个mib节点则表示成 iso org dod Internet mgmt mib 相应的数字表示为 1 3 6 1 2 l 图 2 6 oid命名树 2 5 TOPOLOGY 开发环境开发环境 TOPOLOGY系统在Windows 2000操作系统环境下进行开发 软件开发平台采 用MS Visual C 6 0 使用 WinSNMP API 进行SNMP会话 软件适用于 Windows 2000 XP NT操作系统使用 2 5 1 Visual C 6 0 MFC 应用程序框架应用程序框架 早期 开发Windows应用程序必须使用微软的SDK Software Development 14 Kit 直接调用Windows API函数 向Windows操作系统提出各种请求 例如配置 内存 开启窗口 输出图形等等 数以千计的Windows APIs好像比重相若 各API 之间的关系更是错综复杂 使开发者在使用时难于把握和查找 MFC利用面向对象的原 理 把这些APIs逻辑地组织起来 使它们具备抽象化 封装化 继承性 多态性 模块 化的性质 MFC应用程序框架的基本类有以下几种 1 CWinApp 应用程序的 应用程序类 负责初始化和运行应用程序 应用程序类对象是程序开 始运行后创建的第一个对象 并且是在结束前最后一个执行的对象 应用程序类对象创 建后 应用程序类负责创建程序的其他对象 包括视图兑现个 文档对象和主窗口类对 象 2 CFrameWnd 应用程序的 框架窗口类 负责显示和搜寻用户命令 对于单文档界面程序 SDI 由于同时只能有一个文档是活动的 所以SDI应用程序的框架窗口类为CFrameWnd 对于多文档界面程序 MDI 由于同时有多个文档是活动的 程序的框架除了一个主框 架窗口外 对于每一个文档和视图 都需要一个子框架窗口 3 CDocument 应用程序的 文档类 负责装载和维护文档 文档包括应用程序的工作成果或者环 境设置数据等 或者是程序需要保存的任何内容 4 CView 应用程序的 视图类 负责为文档提供一个或者几个视图 视图的作用是为修改 查询文档等任务提供人机交互的界面 2 5 2 WinSNMP WinSNMP 9 是微软公司为在Windows下开发基于SNMP网管应用程序而提供 的技术文档 这份文档的详细内容可以查看MSDN 当然 也可以通过 直接查阅 或到网站http www ibiblio org pub micro pc stuff ms windows winsnmp 下载 更进一步 WinSNMP是为SNMP网管开发者提 供了必须遵循的开放式单一接口规范 它定义了过程调用 数据类型 数据结构和相关的 语法 其参考图如图 2 7 所示 图中给出了一种可能的从管理者实体 图中最左边 到代 理实体 图中最右边 间的端到端的SNMP联结 它嵌入到当前的WinSNMP版本中 15 图2 7 WINSNMP参考图 16 第三章第三章 TOPOLOGY 系统总体设计系统总体设计 3 1 TOPOLOGY 系统总体结构系统总体结构 从总体功能上看 TOPOLOGY网管系统主要由网络拓扑 拓扑图生成 布局 MIB查询和功能模块协调与切换四部分组成 其中 网络拓扑又可分为主干网拓扑和子网拓扑 拓扑图生成 布局又可分为主干网 拓扑图生成 布局和子网拓扑图生成 布局 MIB查询又可分为系统信息查询和一般信息 查询与状态检测 功能模块协调与切换又可分为功能模块协调和页面切换 如图3 1所 示 TOPOLOGY网管系统 主干网拓 扑 子网拓扑 主干网拓 扑图生成 布局 子网拓扑 图生成 布 局 网络拓扑拓扑图生成 布局 系统信息 查询 一般信息 查询与状 态检测 MIB查询功能模块协调和切换 功能模块 协调 页面切换 图3 1 系统总体结构 3 2 TOPOLOGY 系统各系统各功能模块设计功能模块设计 1 主干网拓扑发现 获取主干网中路由器 子网等之间的连接信息 将所有的路由器地址放入路由队列 将子网地址放入子网队列 将连接信息放入连接队列 设计的思路 从网络管理工作站 的默认网关开始 通过读取路由设备的路由表下一跳信息 由内向外发现网络中的所有 17 具有路由功能的网络节点及其连接关系 而从ipRouteType的值我们就可以知道该网关 连接哪些子网 同时通过路由表的ipRouteIfIndex就可以发现端口 通过由接口表得到 端口的类型就可以了解子网类型 由上所述就可以得到网络的主干拓扑关系 2 子网拓扑发现 获取所有的子网内的所有主机地址 掩码和子网地址 设计的思路 ARP表记录了 当前活动机器IP与MAC的映射 通过检查设备的ipNetToMediaTable表 可以发现 与该路由设备相连接的其他设备和相连子网内机器的IP地址 MAC地址以及IP与 MAC间的映射方式 将通过ipNetToMediaNetAddress得到的IP地址与已发现的子网地址进行模式匹 配 如果匹配成功 则该IP地址对应的主机是该子网相应的成员 同时 ipNetToMediaPhysAddress MAC地址 的获得还可以用于监视MAC IP捆绑的情 况 3 主干网拓扑图生成与布局 在主干网拓扑并获得了已装有了所有路由器地址的路由队列 装有所有子网地址的 子网队列和装有连接信息的连接队列后 将信息进一步进行处理 使这些网络设备及其 连接关系以图象的形式展示在屏幕上 设计的思路 将所有同层的同类型设备 如第一层 的所有路由器 放在一个大的圆环上 对于与这些设备直接相连接的设备或子网 可以把 它们放在以之为圆心的外围圆环上 如果外围圆环上的设备还有次级设备 则放置到更 外围的圆环上 依此类推 4 子网拓扑图生成与布局 在主干网和子网拓扑完成后 获得了已装有了所有路由器地址的路由队列 装有所 有子网地址的子网队列 装有连接信息的连接队列和装有所有主机地址的主机队列后 将信息进一步进行处理 将指定子网内的主机其连接关系以图象的形式展示在屏幕上 设计的思路 通过遍历资望队列 若有节点所属的子网的地址为指定子网地址 将该节 点在屏幕上以挂在网线上的形式画出 若该节点为活动状态 则显示绿色图标 若该节 点为非活动状态 则显示红色图标 在屏幕上 一行最多显示5台主机 整个网线以 弓 字型排布 5 信息查询与状态检测 只要网络上的某台设备支持并打开SNMP代理功能 通过读取MIB库 将该设备 的系统信息显示在屏幕上 及进行状态检测 设计的思路 通过SNMP发送消息和 SNMP接收消息来完成SNMP会话 获取网络互联设备或主机信息 从而了解设备所 处的状态 6 功能模块协调与切换 18 由于在完成主干网和子网拓扑后 已经将主干网拓扑图画在屏幕上 可以通过双击 任意一个子网图标来进入该子网拓扑图页面 也可以通过使用弹出式菜单来进入任意一 个子网的拓扑图页面 在子网内查询主机与相关设备的信息 进行状态检测 设计的思 路 通过使用自动机原理 设计出状态图 完成协调各个模块正常运行的工作 同时 通过访问记录了设备在屏幕上位置的相关数据来完成页面间切换 3 3 模块之间的协调模块之间的协调 由于TOPOLOGY系统是单文档下开发的 并且两个拓扑图生成 布局模块都是在 OnDraw 函数下实现的 特别是要使用双击坐标左键 使用弹出式菜单来进行生成主干 网拓扑图和子网拓扑图 并且由于MFC使用的是消息机制 哪些模块先执行 哪些模 块后执行 处理起来要十分小心 如主干网拓扑必须在完成获得默认网关后进行 子网 拓扑必须在完成主干网拓扑后 因此有必要将系统的运行过程分成若干个状态 以此来 控制哪些模块先执行 哪些模块后执行 什么时候哪些消息是有效的 哪些时候哪些消 息是无效的 在TOPOLOGY系统中 凡是与显示相关的事件都可作为状态间转换的条 件 选择状态和条件的方法比较灵活 可以根据所需的具体要求进行分析 这可以按照 自动机原理设计状态图 在TOPOLOGY系统中 笔者使用一个了一个int类型的公共变量key来标明状态 其中 key 0状态 表示系统刚启动的状态 key 1状态 表示完成了获得默认网关 key 2状态 表示完成了获得默认网关和主干网拓扑并显示 key 3状态 表示获得默 认网关 主干网拓扑并显示和子网拓扑 key 4状态 表示进入了子网显示页面 其中 状态间转换的条件按如下说明 a 选择主干网拓扑操作 b 选择子网拓扑操作 c 双击鼠标左键 d 获得输入IP地址的默认网关 e 从key 4状态返回到key 3状态 f 按下鼠标右键 具体如图3 2 所示 Key 0Key 1 Key 3 Key 2 Key 4 a b c f d b c d f a d a c f b a b f d c d e b a f 图3 2 用于协调TOPOLOGY系统的状态图 19 20 第四章第四章 TOPOLOGY 网络拓扑发现模块的设计与实现网络拓扑发现模块的设计与实现 4 1 基于基于 SNMP 的主干网拓扑发现的主干网拓扑发现 4 1 1 传统传统的基于的基于 SNMP 的网络主干拓扑发现方法的网络主干拓扑发现方法 SNMP已经成为网络管理的标准 为网络拓扑自动发现带来了巨大的方便 同时也 大大提高了网络拓扑发现的速度 以太网以太网 以太网 以太网 以太网 以太 网 路由器 子网 图4 1 网络拓扑结构模型 网络主干拓扑发现算法的任务就是发现被管网络中的子网 路由器以及它们之间的 连接关系 图4 1是网络拓扑结构的一个模型 其中 各子网通过各自的路由器与其他 子网通信 它们都连接到路由器的一个端口上 路由器的一个端口可以连接一个子网 也可以同其他路由器相连 当子网内的某一机器向别的子网发送数据时 数据包首先到 达本子网的默认路由器 默认路由器检测数据包中的目的地址 根据其路由表确定该目 的地址是否在与自己相连的子网中 如果是 则把数据包直接发往目的地 否则转发给 路由表中规定的下一个路由器 下一个路由器再进行类似处理 依次类推 数据包将最 终到达目的地 可见 通过分析路由器上的路由表 就可以知道网络层的拓扑结构 4 1 1 1 网络主干拓扑发现用到的网络主干拓扑发现用到的 MIB 组组 MIB II RFC 1213 是标准的SNMP MIB 所有的路由器都必须实现它 拓扑发 现程序为了具有通用性的特点 必然选择MIB II作为拓扑发现工具 MIB II由很多 不同的部分组成 本节的主干拓扑发现算法用到的组包括 system interfaces 和 21 ip 下面详细介绍这三个组中包含的对象 1 System组 该组包含七个对象 分别为 sysDescr sysObjectID sysUpTime sysContact sysName sysLocation和 sysServices 其中sysDescr描述了设备的相关信息 一般包括厂商 型号等 SysObjectID唯一标识特定厂商的特定类型设备 比如sysObjectID为 1 3 6 1 4 9 5 45 则可以判断该设备为思科公司生产的型号为cisco6506的交换机 SysUptime表示设备从最近一次启动开始正常运行的时间 SysContact由网络管理员 设定 一般设为网络管理员的联系方式 SysName为设备的名字 算法中会用这个对象 来判断不同的IP地址是否属于同一个设备 SysLocation由网络管理员设定 一般设为 设备所在地点 SysServices表示了该设备所能提供的服务 2 Interfaces组 该组包含两个对象ifNumber和ifTable 其中 ifNumber对象表示该设备所具有 的接口数量 该组的另一个元素ifTable是一张表 表内的每一个字段都是某一个接口的 一个属性 包括接口索引 ifindex 接口类型 ifType 接口速度 ifSpeed 和接口物理 地址 ifPhysAddress 等 3 IP组 该组的元素较多 其中有三个表对拓扑发现来说比较重要 分别是 ipAddrTable ipRouteTable和ipNetToMediaTable 通过表ipAddrTable 可以找到被管设备所有的 IP 地址 同时结合interfaces组的 ifTable表 可以把接口和其IP地址一一对应起来 网络主干拓扑发现算法主要就是利用表ipRouteTable来判断网络层的拓扑结构的 子网与路由器以及路由器和路由器的关系都能从路由表中得出来 该表中对应拓扑发现 的对象列举如下 IpRouteDest 路由的目的地址 如为0 0 0 0 说明该路由为缺省路由 通往同一 个目的地的路由可能有多个 路由的选择依赖于所使用的路由协议 IpRouteNextHop 路由的下一跳路由器地址 ipRouteMask 路由目的地的子网掩码 提取IP数据包中的目的地地址 与 ipRouteMask进行按位 与 运算 得到的结果与ipRouteDest比较 如相同则应选择 该路由 如果ipRouteDest为0 0 0 0 则规定ipRouteMask也为0 0 0 0 ipRouteType 路由的类型 为整型类型 其意义如表4 1所示 22 表4 1 ipRouteType值及其意义 ipRouteType值意 义 Other 1 其他 Invalid 2 非法 Direct 3 该路由目的地址为路由器直接连接的子网 Indirect 4 远程路由 目的地址为远程的主机 网络或子网 4 1 1 2 基于基于 SNMP 的网络主干拓扑对象发现的网络主干拓扑对象发现 在详细讨论拓扑发现算法之前 首先对算法中涉及到的一些问题进行说明 1 默认网关的发现 首先 访问拓扑发现程序所在计算机的SNMP MIBII中的ipRouteTable 如果发 现有ipRouteDest值为0 0 0 0的记录 则说明程序所在的计算机设置了默认网关 该 记录的ipRouteNextHop值即为默认网关的地址 检查默认网关的ipForwarding值 如果为1 则表明该默认网关确实是路由设备 否则不是 2 子网的发现 遍历路由器MIBII的IP管理组中管理对象ipRouteDest下的所有对象 以每个路 由目的网络号为索引 查询ipRouteType字段的值 若该值为3 direct 则表明这条 路由

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论