【论文】基于SNMP协议的二层设备拓扑发现研究与实现.pdf_第1页
【论文】基于SNMP协议的二层设备拓扑发现研究与实现.pdf_第2页
【论文】基于SNMP协议的二层设备拓扑发现研究与实现.pdf_第3页
【论文】基于SNMP协议的二层设备拓扑发现研究与实现.pdf_第4页
【论文】基于SNMP协议的二层设备拓扑发现研究与实现.pdf_第5页
已阅读5页,还剩52页未读 继续免费阅读

【论文】基于SNMP协议的二层设备拓扑发现研究与实现.pdf.pdf 免费下载

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

文档简介

基于 snmp 协议的二层设备拓扑发现研究与实现 摘 要 网络拓扑的自动发现在现代网络管理中非常重要 本文在已有研究成果的基础 上 着重于以太网数据链路层网络拓扑自动发现 设计了一种基于 snmp 协议的 自动拓扑发现算法 本文对所依赖的简单网络管理协议 snmp 生成树协议 stp 作了必要的阐述 重点对开发过程使用形式化描述的方式 详细介绍了如何以 perl 程序设计语言以及 net snmp 包为工具 spanning tree 技术为原理指导 快速实现 了一个可靠的基于简单网络管理协议 snmp 的自动拓扑发现算法 该算法可以使用自动发现设备功能扫描制定 ip 范围内或广度优先遍历访问整 个网络的网络设备 并准确无误的自动发现其设备类型 然后将这些信息保存到文 本文件中 尤其是它的扫描主机功能 采用先进的 spanning tree 技术 有效的解决 了网络中冗余备份线路所造成的回路问题 为整个网络完整的拓扑发现开辟了一种 新的思路 此外 该算法还拥有很大的扩展空间 基于现在它所可以实现的功能 今后还 可为其整合网络流量检测 流量分析 远程控制代理设备端口的开关状态等功能 关键词 关键词 拓扑发现 snmp stp 物理拓扑 perl 实现 多线程 i 基于 snmp 协议的二层设备拓扑发现研究与实现 abstract in the modern network management network topology auto discovery is very important on the base of existing research results focusing on ethernet data link layer this paper designed a new automatic topology discovery algorithm based on snmp this paper had a necessary description on the simple network management protocol and spanning tree protocol then explained how to use perl language as well as the net snmp package as a tool spanning tree technology to the principle of guidance to achieve a rapid and reliable based on the simple network management protocol automated topology discovery algorithms the algorithm can use the auto discovery function to scan equipments in the scope of some subnet or breadth first traversal of the entire network and judge of their device type then save this information into a text file in particular the application of advanced technologies spanning tree is an effective solution to redundancy circuit problem caused by backing up a network line this paper also has opened up a new way of thinking in order to complete the entire network topology discovery in addition this algorithm also has a lot of room for expansion based on the achieved features in the future detection of network traffic traffic analysis remote control equipment port agents and other functions can be integrated key words topology discovery snmp stp physical topology perl realized multi threaded ii 基于 snmp 协议的二层设备拓扑发现研究与实现 目 录 第一章 绪 论 1 1 1 引言 1 1 2 网络管理的重要性 1 1 3 工作意义 2 1 4 相关工作 3 1 5 论文的组织安排 4 第二章 简单网络管理协议 5 2 1 引言 5 2 2 协议 5 2 3 管理信息结构 6 2 4 管理信息库 8 2 4 1 system组 9 2 4 2 if interface 组 9 2 4 3 ip组 11 2 5 对象标识符及其实例 13 2 6 协议数据单元 pdu 13 第三章 交换机工作原理及生成树协议 16 3 1 交换机及其分类 16 3 2 二层交换机工作原理 17 3 2 1 二层交换机的功能 17 3 2 2 二层交换机的工作流程 18 3 3 生成树协议 20 3 3 1 生成树协议的提出 20 3 3 2 生成树协议基本术语 21 3 3 3 生成树协议工作过程 22 第四章 物理拓扑发现原理分析及算法设计 25 4 1 理论依据与系统模型 25 4 2 相关mib变量 25 基于 snmp 协议的二层设备拓扑发现研究与实现 4 2 1 dotldbase组 26 4 2 2 dotldtp组 26 4 2 3 dotldstp组 26 4 2 4 dotldstatic组 27 4 3 物理拓扑发现原理 27 4 3 1 发现交换机 主机的列表 27 4 3 2 判断设备类型 28 4 3 4 读取每台交换机的stpport表 30 4 3 5 判断级连端口 31 4 4 物理拓扑发现算法设计 34 4 4 1 算法的形式化描述 34 4 4 2 流程图 35 第五章 物理拓扑发现算法详细实现 36 5 1 开发环境 36 5 2 定义的数据结构及函数 37 5 3 某个子网内的拓扑发现 38 5 3 全局网的拓扑发现 39 5 4 算法改进 41 第六章 实验结果及存在问题分析 43 6 1 实验情况 43 6 2 与其他算法的比较分析 44 6 3 结论与进一步的研究工作 46 参 考 文 献 47 致 谢 49 基于 snmp 协议的二层设备拓扑发现研究与实现 图表目录 图 2 1 mib结构图 8 图 2 2 snmp报文格式 14 图 3 1 二层交换机转发数据包过程 18 图 3 2 链路层数据帧格式 19 图 3 3 交换环路例图 20 图 3 4 bpdu报文结构 22 图 3 5 bpdu字段格式 23 图 4 1 二层拓扑发现算法流程图 35 图 5 1 子网拓扑发现流程图 39 图 5 2 全局网拓扑发现流程图 41 图 6 1 某次拓扑发现的交换机文件 43 图 6 2 某次拓扑发现的链接文件 43 图 6 3 某次拓扑发现结果 44 表 2 1 system组简单变量 9 表 2 2 在接口表中的变量 10 表 2 3 ip地址表 ipaddrtable 11 表 2 4 ip地址表 iproutetable 12 表 2 5 ip地址表 ipnettomediatable 12 表 2 6 trap的类型 15 表 4 1 网路设备所工作的层与提供的功能 29 表 4 2 dotldbasebridgeaddress 31 表 4 3 dotldstpporttable 32 基于 snmp 协议的二层设备拓扑发现研究与实现 第一章 绪 论 1 1 引言 在当今信息时代 计算机网络的应用己经遍及了政治 经济 军事 科技和生 活等人类活动的一切领域 与此同时 计算机网络的规模也日益扩大 信息社会对 计算机网络的依赖 使得计算机网络本身运行的可靠性变得至关重要 因此 对网 络的管理提出了更高的要求 按照osi的定义 网络管理主要包括五个功能域 故障管理 也称失效管理 配置管理 性能管理 安全管理和计费管理 1 在这五大功能域中 配置管理是基 础 它的主要功能包括发现网络的拓扑结构 监视和管理网络设备的配置情况 而 监视和管理网络设备的基础是网络拓扑结构 所以 网络拓扑发现成为整个网络管 理的基础 网络拓扑展现网络中设备的存在性以及它们之间的连接关系 网络管理员通过 网络拓扑结构信息可以对网络故障进行定位 发现网络瓶颈 更加清楚地了解网络 的当前状况等等 从而更好地优化并管理整个网络 对于小型网络 网络管理员可以手工绘制网络的拓扑 但是大型网络 可能包 含成千上万的设备 它们之间的连接关系非常复杂 手工绘制网络拓扑就成了一件 非常繁琐甚至不可能完成的任务 因此 需要开发工具来对这样的大型网络实现拓 扑自动发现 1 2 网络管理的重要性 随着网络时代特别是宽带时代的到来 网络更加贴近人们的日常生活 计算机 网络与传统产业的结合日渐紧密 普通用户对网络的依赖性也越来越大 网络不仅 渗透到工业 银行 大专院校等各个领域 而且正走入千家万户 人们都说未来社 会是一个信息社会 而信息社会的建立则主要是依赖于网络 因此 计算机网络在 社会生活中的地位将越来越重要 但是 有研究表明 在现有的技术条件下 一个 普通的局域网每年平均出现的重大故障达二十次 由此而产生的服务失效时间长达 十六次小时之多 虽然计算机网络使企业提高了工作效率 降低了成本 但是企业 也不得不承受由于这些故障所带来的损失 因而建立起一个优秀的网络管理系统在 1 基于 snmp 协议的二层设备拓扑发现研究与实现 网络的管理运营中是非常必要的 它可以给网络管理员提供良好的信息来源 减少 网络故障 缩短网络实效时间 最大限度地提高网络效益 当前计算机网络的发展特点是 网络规模不断提高 复杂性不断增加 网络的 异构性越来越高 网络设备的变更频繁 一个局域网往往有若干大大小小的子网组 成 集成了多种 nos network operating system 平台 包括不同厂家 公司的网 络设备和通信设备等 同时网络中还有许多网络软件提供各种服务 随着用户对网 络的性能要求越来越高 如果没有一个高效的网络管理系统对网络运行进行管理 将很难保证能为广大用户提供令人满意的服务 网络管理己经是网络发展中一个很 重要的关键技术 对网络的发展有着很大的影响 并成为现代信息网络中最重要的 问题之一 1 3 工作意义 上节简述了网络管理的五大功能 它也是网络管理最终要达到的目的 但是在 网络管理活动进行之前 必须了解被管网络的拓扑结构 如果网络管理人员不了解 网络的拓扑结构 要进行网络的管理和优化也就变得不切实际 网络拓扑发现的主要目的是获取和维护网络元素的存在性信息以及它们之间 的连接关系信息 并在此基础上给出整个网络连接状态的图示 这里提及的网络元 素通常包括互联设备 如 路由器 网关 网桥 交换机等 主机和子网 网络拓 扑从不同的抽象层次上可分为逻辑网络拓扑发现和物理网络拓扑发现 物理网络拓 扑发现是主要针对 osi 模型的第二层设备的发现以及它们之间的相互连接 关系 的确定 如发现网桥 交换机 hub 等链路层设备及其相互连接关系 为了同逻 辑网络拓扑发现相区别 它重点突出设备的地理分布与连接的几何构形 一个网络 的物理拓扑可对应多个不同抽象级别的逻辑拓扑 获得网络拓扑结构的最简单的方法莫过于让管理员根据实际网络结构手工绘 出其拓扑 但现在网络越来越复杂 规模逐渐扩大 要手工描绘这样一个网络需要 花费很多时间或精力 而且网络结构一旦有所改变 又要手工进行修改 那将是一 项烦杂的任务 网络拓扑自动发现正是基于这个背景提出来的 可想而知 如果我 们能够通过某种手段能够让管理软件自动侦测网络的拓扑结构 并实时地跟踪其变 化 将会减轻网络管理员负担 事实上 人们网络拓扑自动发现的研究很早就开始 了 并提出了各种各样的解决办法 且一些商用网络管理软件加上了这一功能 但 2 基于 snmp 协议的二层设备拓扑发现研究与实现 许多都是不是很完善 要么有条件限制 要么发现不了一些设备 甚至有时会产生 一些错误的拓扑结构 所以对这项工作的研究将是具有很大的现实意义的 1 4 相关工作 国外的网络拓扑发现研究起步早 投入大 随着snmp的广泛使用 许多公司 采用snmp进行网络拓扑发现 2 3 4 5 开发了一些高性能的网络管理平台 这些软件 包括美国的hp公司开发的openview network node manager 2 nnm 网络节点管 理器 ibm的netview 3 和sun公司的sun netmanage 其中 hp openview的nnm 在国内较受欢迎 起初 网络拓扑发现集中于对第三层设备及连接的发现 随着网 络的不断扩大 交换机在网络中大量使用以及网络管理要求的不断提高 许多公司 认识到第二层拓扑发现 物理网络拓扑发现 的重要性 hp openview的nnm6 0 与 ca的networkit 5 加入了这一功能 另外一些设备制造商也加入了这一行列 cisco 制定的cisco discovery protocol cdp 6 和bay networks optivity enterprise 4 但这 两种方法均基于厂家相关的产品 不具有通用性 贝尔实验室的breitbart等与 carnegie mellon university的bruce lowekamp等分别提出了各自基于地址转发表的 第二层连接确定算法 7 8 breitbart算法主要通过查询桥地址转发表确定物理拓扑 bruce的算法主要解决在一个广播域内出现使用集线器连接交换机这类特殊的拓扑 问题 包括hp及cisco在内的开发网络管理平台的大部分公司 对网络拓扑显示都 有研究 此外国外较有名的软件是otter 只要能在指定文件中按一定格式提供网络 节点和连接信息 otter便能显示任意一个大型网络 bradley huffaker evi nemeth k claffy等人在这方面进行了深入讨论 国内在网络拓扑发现和显示领域起步相对较晚 到现在为止 亦取得了一些成 果 8 上海金桥网络工程中心开发了在windows pc平台上使用的网络管理软件 goldview 该软件基于简单网络管理协议snmp simple network management protocol 实现对tcp ip网络的拓扑发现 能实现对第三层设备及连接关系较正确地 发现并以逻辑图的方式显示 然而 由于各种原因 该软件在国内未能推广使用 华中理工大学对网络拓扑发现也有深入的研究 但也只是完成对第三层设备及连接 关系的发现并以逻辑图的方式显示发现结果 包括西安交通大学在内的高校和研究 所对网络拓扑发现也有较深入的研究 中国科学技术大学研究生院计算机学部和中 国科学院计算技术研究所的几名工作人员 研究了国外的算法后 提出了一种新的 3 基于 snmp 协议的二层设备拓扑发现研究与实现 物理网络拓扑发现算法 发表在计算机研究与发展杂志 1 5 论文的组织安排 本文共分六个章节 全文的组织如下 第一章 本章首先对网络拓扑发现的内容进行了论述 然后讲述了网络拓扑发 现的重要意义 并对网络拓扑发现的国内外发展情况做了简单的介绍 第二章 本章首先介绍了简单网络管理协议 snmp 并对 snmp 的体系和构成 smi structure of management information 管 理 信 息 结 构 和 标 识 及 mib management information base 管理信息库 进行详细的论述 第三章 本章全面系统对交换机的工作原理及生成树协议 stp 进行了研究 首先对交换机及其分类作了简单的介绍 接着对二层交换机的工作原理进行详细的 阐述 然后就 stp 协议作了详细的分析 第四章 本章详细讲解了物理拓扑发现的原理 并设计了一个基于 stp 协议的 物理拓扑发现算法 第五章 本章首先对系统的开发环境作了简单的介绍 接着就第四章中设计的 算法给出了具体实现细节 第六章 本章对实验结果进行了分析 分析了改算法仍存在的不足 并提出了 进一步研究方向 4 基于 snmp 协议的二层设备拓扑发现研究与实现 第二章 简单网络管理协议 2 1 引言 随着网络技术的飞速发展 网络的数量也越来越多 而网络中的设备来自各个 不同的厂家 如何管理这些设备就变得十分重要 我们知道 基于tcp ip的网络管 理包含两个部分 8 网络管理站 也叫管理进程 manager 和被管网络实体 也叫被 管设备 被管设备种类繁多 包括了路由器 x终端 终端服务器和打印机等 这 些被管设备都有一个共同点 就是都运行了tcp ip协议 我们把被管设备端和管理 相关的软件叫做代理程序 agent 或代理进程 管理站一般都是带有彩色监视器的工 作站 可以显示所有被管设备的状态 例如连接是否掉线 流量状况等 管理进程和代理进程之间的通信可以有两种方式 一种是管理进程向代理进程 发出请求 询问一个具体的参数值 例如产生了多少个不可达的 icmp 报文 另外 一种方式是代理进程主动向管理进程报告有某些重要的事件发生 例如某个连接口 发生掉线 当然 管理进程除了可以向代理进程询问某些参数值以外 它还可以 按要求改变代理进程的参数值 例如把默认的 ip ttl 值改为 64 基于tcp ip的网络管理包含 3 个组成部分 10 1 管理信息库 mib management information base 管理信息库包含所有代理 进程的所有可被查询和修改的参数 最早在 rfc 1213 中定义了第二版的 mib 即 mib ii 此后的 rfc2011 2013 进一步做了修改 2 关于 mib 的一套公用的结构和表示符号 称之为管理信息结构 smi structure of management information 最早在 rfc 1155 中进行了定义 3 管理进程和代理进程之间的通信协议 即简单网络管理协议 snmp simple network management protocol 在 snmp 中包括了数据报交换的格式等相关信息 在运输层常用的协议是用户数据报协议 udp 下面简要介绍 snmp 管理框架中的主要部分 2 2 协议 snmp 是一种通讯规范 用于定义在网管应用程序与管理代理之间如何交换管 理信息 同时 snmp 的实现也是一种应用层的服务 通过传输层的 udp 协议在不 5 基于 snmp 协议的二层设备拓扑发现研究与实现 同实体间交换数据 管理进程通过 snmp 协议中的下列操作对代理进程的各种属性进行监控和设 置 get request 请求代理中某个对象实例的值 get next request 请求代理中某个表格或列表中的下一个对象实例 set request 设置代理中某个对象实例的值 而代理进程只能进行两种操作 get response 返回针对上述三种操作的响应 trap 向网管应用程序异步地发送陷阱 或事件 由 snmp 定义的网络管理是建立在轮询和异步事件基础之上的 管理进程轮 询每个代理所收集的信息 而每个代理则负责收集其驻留设备所属的各种信息 诸 如性能数据等 并保存在各自的 mib 中 这些信息将包含在对管理者的轮询响应中 发送给管理进程 当特定的设备参数发生变化时 所产生的 trap 报文将激发 snmp 事件 或警告 以通知管理进程 这些参数可以通过网管应用程序进行设置 在 snmpv2 和 snmpv3 中 这种工作模式并没有发生太大的变化 只是为了 提高管理信息传送的效率以及为了实现在 nms 之间传送管理信息而扩充了几个操 作 如 get bulk request inform request 等 2 3 管理信息结构 管理信息结构是管理信息库中的对象定义和编码 以便通过协议传输 的基础 smi 是对公共结构和一般类型的描述 与标识方法一样 在实现中都要用到 smi 可以看作是数据库的模式 如同模式描述数据库中对象的格式和布局一样 smi 描述 mib 中的对象 smi 中最关键的原则是管理对象的形式化定义需要使用抽象 语法记法 1 asn 1 来描述 管理对象的集合在 smi 中称为对象类型 在每个实现 中都是作为特定的 mib 严格定义的 对象类型有三个用于描述其特性的最基本属 性 这些属性使它们在 snmp 实现中能得到正确使用 这三个属性可以看作是对 象类型的外在表现 在各种实现中都是必不可少的 snmp 对象类型的上述三个可 定义属性是 名字 语法和编码 对象类型名唯一代表一个对象类 是对象的标识手段 也称为对象标识符 它 是用一串有序整数来表示的 该整数串是遍历由所有已知 snmp 对象构成的全局 6 基于 snmp 协议的二层设备拓扑发现研究与实现 树得到的 对象语法是指用抽象语法记法 1 asn 1 对对象类结构的形式化定义 对象语 法定义了对应于具体对象的抽象数据结构 每个对象有四个标准属性是必须定义 的 这样才能正确说明 mib 中的对象 这四个属性是 语法类型 访问模式 状态 名值 一旦某对象类型的实例定义并说明了之后 它们的值就可以在代理和网络管理 系统之间传送 传送是要用 asn 1 编码规则对对象类型的语法进行编码 snmp 采用的传输语法记法是与 asn 1 相应的基本编码规则 ber 下面是 snmp 中基本数据类型的简单介绍 integer 一个变量虽然定义为整型 但也有多种形式 有些整型变量没 有范围限制 有些整型变量定义为特定的数值 例如 ip 的转发标志就只有允许转 发时的 1 或者不允许转发时的 2 这两种 有些整型变量定义为一个特定的范围 例 如 udp 和 tcp 的端口号就从 0 到 65535 octer string 0 或多个 8 bit 字节 每个字节值在 0 255 之间 对于这种 数据类型和下一种数据类型的 ber 编码 字符串的字节个数要超过字符串本身的 长度 这些字符串不是以 null 结尾的字符串 display string 0 或多个 8 bit 字节 但是每个字节必须是 ascii 在 mib ii 中 所有该类型的变量不能超过 255 个字符 0 个字符是可以的 object identifier 对象标识符 null 代表相关的变量没有值 ipaddress 4 字节长度的 octer string 以网络序表示的 ip 地址 每个 字节代表 ip 地址的一个字段 physaddress octer string 类型 代表物理地址 例如以太网物理地址为 6 个字节长度 counter 非负的整数 可从 0 递增到 4 294 976 295 达到最大值后归 o gauge 非负的整数 取值范围为从 到 4 294 976 295 或增或减 达到最 大值后锁定 直到复位 timeticks 时间计数器 以 0 01 秒为单位递增 但是不同的变量可以有不 同的递增幅度 所以在定义这种类型的变量的时候 必须指定递增幅度 sequence 这一数据类型与 c 程序设计语言中的 structure 类似 一个 7 基于 snmp 协议的二层设备拓扑发现研究与实现 sequence 包括 0 个或多个元素 每一个元素又是另一个 asn 1 数据类型 sequende of 这是一个向量的定义 其所有元素具有相同的类型 如果 每一个元素都具有简单的数据类型 例如是整数类型 那么我们就得到一个简单的 向量 一个一维向量 但是我们将看到 snmp 在使用这个数据类型时 其向量中 的每一个元素是一个 sequence 结构 因而可以将它看成为一个二维数组或表 2 4 管理信息库 所谓管理信息库 mib 是所有进程包含的 并且能被管理进程进行查询和设 置的信息的集合 如图 2 1 所示 mib 被划分为若干个组 如 system interfaces at 地址转换 和 ip 组等 其中 at 组对于所有的系统都是必需的 但是在 mib ii 中 已经没有这个组 它的对象已经归并到各个网络协议组 如 ip 组 中 图 2 1 mib 结构图 8 基于 snmp 协议的二层设备拓扑发现研究与实现 本文中仅介绍下列 mib 组 system 系统标识 if 接口 ip tcp 2 4 1 system 组 system 组非常简单 它只包含 7 个简单变量 表 2 1 列出了 system 组的名称 数据类型和描述 表 2 1 system 组简单变量 名称 数据类型 描述 sysdescr sys0bjectid sysuptime syscontact sysname syslacation syssenrices displaystring object id timeticks displaystring displaystring displaystring 0 127 系统的文字描述 在子树 1 3 6 1 4 1 中的厂商标识 从系统网络管理部分启动以来运行 的时间 以百分之一秒为计算单位 联系人的名字及联系方式 结点的完全合格的域名 fqdn 结点的物理位置 指示结点提供的服务的值 详细说明 见第四章 4 2 节 2 4 2 if interface 组 在本组中只定义了一个简单变量 ifnumber 即系统上的网络接口数量 数 据类型为 integer 在该组中还包括一个表格变量 表格中的每行定义了接口的 一些特征参数 如表 2 2 所示 9 基于 snmp 协议的二层设备拓扑发现研究与实现 表 2 2 在接口表中的变量 名称 数据类型 描述 iflndex ifdescr iftype ifmtu ifspeed ifphysaddress ifadminstatus ifoperstatus iflastchange ifinoctets ifinucastpkts ifinnucastpkts iflndiscards ifinerrors iflnunknownprotos ifoutoctets ifoutucastpkts ifoutnucastpkts ifoutdiscards ifouterrors ifoutqlen ifspecific intege r displystring integer integer gauge physaddress 1 3 1 3 timeticks counter counter counter counter counter counter counter counter counter counter counter gauge objectid 接口索引 接口的文字描述 类型 例如 6 以太网 7 802 3 以太网 9 802 5 令牌网 还有其他一些值 接口的 mtu 以 b s 为单位的速率 物理地址 对无物理地址的接口以一串 0 表示 所希望的接口状态 1 工作 2 不工作 3 测试 当前的接口状态 1 工作 2 不工作 3 测试 当接口进入当前状态时的 sysuptime 的值 收到的字节总数 包括组帧字符 交付给高层的单播分组数 交付给高层的非单播 广播 组播 分组数 收到的被丢弃的分组数 即使在分组中无差错 如 无缓存空间 收到的由于差错被丢弃的分组数 收到的由于未知的协议丢弃的分组数 发送的字节总数 包括组帧字符 从高层接收的单播分组数 从高层接收的非单播 广播 组播 分组数 发出的被丢弃的分组数 即使在分组中无差错 如 无缓存空间 发出的由于差错被丢弃的分组数 在输出队列中的分组数 对这种特定媒体类型的 mib 定义的引用 10 基于 snmp 协议的二层设备拓扑发现研究与实现 2 4 3 ip 组 ip 组定义了很多简单变量和 3 个表格变量 我们在这里主要关注 ip 组的表格 变量 ip 组中的第一个表格变量是 ip 地址表 系统的每个 ip 地址都对应该表格中的 一行 每行中包含了 5 个变量 如表 2 3 所示 ip 组中的第二个表是 ip 路由表 如表 2 4 所示 从该表中可以获取与当前设备相关的路由信息 访问该表中每行记 录的索引是目的 ip 地址 ip 组的最后一个表是地址转换表 如表 2 5 所示 正如 我们前面所说的 at 组已经被删除 在这里己经用 ip 表来代替了 表 2 3 ip 地址表 ipaddrtable 名称 数据类型 描述 ipadentaddr ipadentifindex ipadentnetmask ipadentbcastaddr ipadentreasmmaxsize ipaddress i ntege r ipaddress 0 1 0 65535 这行的 ip 地址 对应的接口数 ifindex 对应的这个 ip 地址的子网掩码 ip 广播地址中的最低位的值 通常为 1 在这个接口上收到的 能够进行重装的 最长 ip 数据报 11 基于 snmp 协议的二层设备拓扑发现研究与实现 表 2 4 ip 地址表 iproutetable 名称 数据类型 描述 iproutedeat iprouteifindex iproutemetricl iproutemetric2 iproutemetric3 iproutemetric4 iproutenethop iproutetype iprouteproto iprouteage iproutemask iproutemetric5 iprouteinfo ipaddress integer integer integer integer integer ipaddress integer integer integer ipaddress integer objectid 目的 ip 地址 值 0 0 0 0 表示一个默认的表项 接口数 ifindex 主要的选路度量 这个度量的意义取决于选路 协议 iprouteproto 1 表示未使用 可选的选路度量 可选的选路度量 可选的选路度量 下一跳路由器的 ip 地址 路由类型 1 其他 2 无效路由 3 直接 4 间接 选路协议 1 其他 4 icmp 重定向 8 rip 13 ospf 14 bgp 以及其他 自从路由上次被更新或确定是正确的以后所 经历的秒数 在和 iproutedest 相比较之前 掩码要与目的 ip 地址进行逻辑 与 共他的选路度量 对这种特定选路协议的 mib 定义的引用 表 2 5 ip 地址表 ipnettomediatable 名称 数据类型 描述 ipnettomediaifindex ipnettomediaphysaddress ipnettomedianetaddress ipnettomediatype integer physaddress ipaddress 1 4 对应的接口 ifindex 物理地址 ip 地址 映射类型 1 其他 2 无效 3 动态 4 静态 12 基于 snmp 协议的二层设备拓扑发现研究与实现 2 5 对象标识符及其实例 对象标识是一种数据类型 它指明一种 授权 命名的对象 授权 的意思 就是这些标识不是随便分配的 它是由一些权威机构进行管理和分配的 对象标识 是一个整数序列 以点 分隔 这些整数构成一个树型结构 类似于 dns 或 unix 的文件系统 对象标识从树的顶部开始 顶部没有标识 以 root 表示 在图2 1显示了snmp中用到的这种树型结构 所有的mib变量都从1 3 6 1 2 1 这个标识开始 树上的每个结点同时还有一个文字名 例如标识 1 3 6 1 2 1 就和 iso org dod internet memt mib 对应 这主要是为了人们阅读方便 在实际应用中 也就是说在管理进程和代理进程进行数据报交互时 mib 变量名是以对象标识来标 识的 当然都是以 1 3 6 1 2 1 开头的 当对 mib 变量进行操作 如查询和设置变量的值时 必须对 mib 的每个变量 进行标识 在 mib 中每个对象都有一个唯一的对象标识 这个标识由该对象在树 型结构的 mib 中的位置来定义 通过 snmp 或一些其它的方法对一个 mib 进行访 问时 所访问的是对象的一个特定的实例 而不是一个对象类型 具体的 mib 中 的对象主要有以下几类 1 标量对象 即 mib 树型结构中的叶子节点 在标量对象中 某个对象类型 及其对象实例之间不存在模糊性 每个标量对象类型只有一个对象实例 snmp 规 定每个标量对象的实例标识由它的对象标识之后加上 0 组成 称为简单变量 2 列对象 即出现在表格中的对象 对于这些对象 单独的对象标识是不足 以区别其实例的 因为对象在表中的每一行都有一个实例 snmp 规定 如果一个 对象的对象标识是 y 在表格中的索引对象为 i1 i2 i3 in 那么对于对象 y 的 一个实例标识为 y 2 6 协议数据单元 pdu 协议数据单元是一种特定格式的字节块 在对等网络层之间互相传送 在 snmp协议中 pdu携带了网络管理系统nms和代理进程之间的请求和响应信息 图 2 2 是封装成 udp 数据报的 5 种基本操作的 snmp 报文格式 13 基于 snmp 协议的二层设备拓扑发现研究与实现 图 2 2 snmp 报文格式 在图 2 2 中 我们仅仅对 ip 和 udp 的首部长度进行了标注 这是由于 snmp 报文的编码采用了 asn 1 和 ber 这就使得报文的长度取决于变量的类型和值 图中各个字段的内容和作用分别为 版本字段 该字段的值通过 snmp 版本号减去 1 得到 0 表示 snmpv10 共同体字段 这是一个字符串 这是管理进程和代理进程之间的口令 默认 的值是 public pdu 类型字段 用以区分 snmp 报文中所包含的各种操作 其中 0 表示 get request 报文 1 表示 get next request 报文 2 表示 get response 报文 3 表示 set request 报文 4 表示 trap 报文 请求标识字段 对于 get request get next request 和 set request 操作 请求标 识由管理进程设置 然后由代理进程在 get response 中返回 这个字段的作用是使 客户进程 即管理进程 能够将服务器进程 即代理进程 发出的响应和客户进程发出 的查询进行匹配 这个字段允许管理进程对一个或多个代理进程发出多个请求 并 且从返回的众多应答中进行分类 差错状态字段是一个整数 它是由代理进程标注的 指明有差错发生 差错索引字段是一个整数偏移量 指明当有差错发生时 差错发生在哪个参 数 它是由代理进程标注的 并且只有在发生 nosuchname readonly 和 badvalue 14 基于 snmp 协议的二层设备拓扑发现研究与实现 差错时才进行标注 变量字段 在 get request get next request 和 set request 的请求数据报中 包 含变量名称和变量值的一张表 对于 get request 和 get next request 操作 变量值部 分将被忽略 对于只有代理进程发出的trap报文来说 目前已经定义了6种特定的trap类型 第 7 种 trap 类型是由供应商自己定义的特定类型 表 2 6 给出了 trap 报文中 trap 类 型字段的内容 表 2 6 trap 的类型 trap 类型 名称 描述 0 1 2 3 4 5 6 coldstart warmstart linkdown linkup authenticaticanfailure egpneighbarloss enterprisespecific 代理进程对自己初始化 代理进程对自己重新初始化 一个接口已经从工作状态改变为故障状 态 报文中的第一个变量标识此接口 一个接口已经从故障状态改变为工作状 态 报文中的第一个变量标识此接口 从 snmp 管理进程收到无效共同体的报文 一个 egp 临站已变为故障状态 报文中的 第一个变量包含此邻站的 ip 地址 在这个特定的代码字段中查找 trap 信息 15 基于 snmp 协议的二层设备拓扑发现研究与实现 第三章 交换机工作原理及生成树协议 3 1 交换机及其分类 交换 switching 是按照通信两端传输信息的需要 用人工或设备自动完成的 方法 把要传输的信息送到符合要求的相应路由上的技术统称 广义的交换机 switch 就是一种在通信系统中完成信息交换功能的设备 在计算机网络系统中 交换概念的提出是对于共享工作模式的改进 hub 集 线器就是一种共享设备 hub 本身不能识别目的地址 当同一局域网内的 a 主机 给 b 主机传输数据时 数据包在以 hub 为架构的网络上是以广播方式传输的 由 每一台终端通过验证数据包头的地址信息来确定是否接收 也就是说 在这种工作 方式下 同一时刻网络上只能传输一组数据帧的通讯 如果发生碰撞还得重试 这 种方式就是共享网络带宽 交换机拥有一条很高带宽的背部总线和内部交换矩阵 交换机的所有的端口都 挂接在这条背部总线上 控制电路收到数据包以后 处理端口会查找内存中的地址 对照表以确定目的 mac 网卡的硬件地址 的 nic 网卡 挂接在哪个端口上 通过内部交换矩阵迅速将数据包传送到目的端口 目的 mac 若不存在才广播到所 有的端口 接收端口回应后交换机会 学习 新的地址 并把它添加入内部 mac 地址表中 使用交换机也可以把网络 分段 通过对照 mac 地址表 交换机只允许必 要的网络流量通过交换机 通过交换机的过滤和转发 可以有效的隔离广播风暴 减少误包和错包的出现 避免共享冲突 交换机在同一时刻可进行多个端口对之间的数据传输 每一端口都可视为独立 的网段 连接在其上的网络设备独自享有全部的带宽 无须同其他设备竞争使用 当节点 a 向节点 d 发送数据时 节点 b 可同时向节点 c 发送数据 而且这两个传 输都享有网络的全部带宽 都有着自己的虚拟连接 假使这里使用的是 10mbps 的 以太网交换机 那么该交换机这时的总流通量就等于 2 10mbps 20mbps 而使 用 10mbps 的共享式 hub 时 一个 hub 的总流通量也不会超出 10mbps 总之 交换机是一种基于 mac 地址识别 能完成封装转发数据包功能的网络 设备 交换机可以 学习 mac 地址 并把其存放在内部地址表中 通过在数据 16 基于 snmp 协议的二层设备拓扑发现研究与实现 帧的始发者和目标接收者之间建立临时的交换路径 使数据帧直接由源地址到达目 的地址 从广义上来看 交换机分为两种 17 广域网交换机和局域网交换机 广域网交 换机主要应用于电信领域 提供通信用的基础平台 而局域网交换机则应用于局域 网络 用于连接终端设备 如pc机及网络打印机等 从传输介质和传输速度上可 分为以太网交换机 快速以太网交换机 千兆以太网交换机 fddi交换机 atm 交换机和令牌环交换机等 从规模应用上又可分为企业级交换机 部门级交换机和 工作组交换机等 各厂商划分的尺度并不是完全一致的 一般来讲 企业级交换机 都是机架式 部门级交换机可以是机架式 插槽数较少 也可以是固定配置式 而工作组级交换机为固定配置式 功能较为简单 另一方面 从应用的规模来看 作为骨干交换机时 支持 500 个信息点以上大型企业应用的交换机为企业级交换 机 支持 300 个信息点以下中型企业的交换机为部门级交换机 而支持 100 个信息 点以内的交换机为工作组级交换机 本文所介绍的交换机指的是局域网交换机 特 指二层交换机 3 2 二层交换机工作原理 二层交换 也称为桥接 是基于硬件的桥接 基于每个末端站点的唯一 mac 地址转发数据包 二层交换的高性能可以产生增加各子网主机数量的网络设计 其 仍然有桥接所具有的特性和限制 二层交换技术从网桥发展到 vlan 虚拟局域 网 在局域网建设和改造中得到了广泛的应用 第二层交换技术是工作在 osi 七 层网络模型中的第二层 即数据链路层 它按照所接收到数据包的目的 mac 地址 来进行转发 对于网络层或者高层协议来说是透明的 它不处理网络层的 ip 地址 不处理高层协议的诸如tcp udp的端口地址 它只需要数据包的物理地址即mac 地址 数据交换是靠硬件来实现的 其速度相当快 这是二层交换的一个显著的优 点 但是 它不能处理不同 ip 子网之间的数据交换 3 2 1 二层交换机的功能 二层交换机的主要功能 13 15 17 包括物理编址 网络拓扑结构 错误校验 帧序 列以及流控 目前交换机还具备了一些新的功能 如对vlan 虚拟局域网 的支 持 对链路汇聚的支持 甚至有的还具有防火墙的功能 17 基于 snmp 协议的二层设备拓扑发现研究与实现 学习 学习 以太网交换机了解每一端口相连设备的 mac 地址 并将地址同相应的 端口映射起来存放在交换机缓存中的 mac 地址表中 转发转发 过滤 过滤 当一个数据帧的目的地址在 mac 地址表中有映射时 它被转发到 连接目的节点的端口而不是所有端口 如该数据帧为广播 组播帧则转发至所有端 口 消除回路 消除回路 当交换机包括一个冗余回路时 以太网交换机通过生成树协议避免 回路的产生 同时允许存在后备路径 交换机除了能够连接同种类型的网络之外 还可以在不同类型的网络 如以太 网和快速以太网 之间起到互连作用 如今许多交换机都能够提供支持快速以太网 或 fddi 等的高速连接端口 用于连接网络中的其它交换机或者为带宽占用量大的 关键服务器提供附加带宽 一般来说 交换机的每个端口都用来连接一个独立的网段 但是有时为了提供 更快的接入速度 我们可以把一些重要的网络计算机直接连接到交换机的端口上 这样 网络的关键服务器和重要用户就拥有更快的接入速度 支持更大的信息流量 3 2 2 二层交换机的工作流程 二层交换技术的发展比较成熟 二层交换机属数据链路层设备 可以识别数据 包中的 mac 地址信息 根据 mac 地址进行转发 并将这些 mac 地址与对应的 端口记录在自己内部的一个地址表中 图 3 1 二层交换机转发数据包过程 18 基于 snmp 协议的二层设备拓扑发现研究与实现 如图 3 1 所示 二层交换机具体的工作流程如下 1 当交换机从某个端口收到一个数据帧 格式如图 3 2 它先读取包头 中的源 mac 地址 这样它就知道源 ma

温馨提示

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

评论

0/150

提交评论