论文部分内容阅读
【摘要】网络拓扑发现是网络工程的一个重要的研究子分支,是实现网络管理的基础性环节。同时,网络拓扑发现是对宏观网络进行科学布局的基础,也是进行网络建模、网络仿真、网络协议设计与评价以及相关网络算法改进的重要依据。本文主要论述IP网络中的重要的功能网络拓扑的自动发现。阐述了相关的理论知识,并具体讨论基于SNMP和基于ICMP的拓扑发现,最后对算法所适用范围加以说明。
【关键词】网络拓扑;SNMP发现算法;CMP协议算法;网络管理
1.引言
现代计算机网络迅猛发展,网络管理的任务也变得更加的复杂,而保证网络管理系统高效运行的基础正是网络拓扑发现。网络拓扑表现为计算机网络中各设备之间的连接关系。网络拓扑发现能较好地提高网络的安全管理,故障管理、计量管理、配置和名称管理、性能管理。其原理是利用协议收集网络中各设备的信息,通过一些算法来生成完整的拓扑显示。
2.网络拓扑发现概述
2.1 网络拓扑发现的概念
网络拓扑是指网络元素及其之间的连接关系。网络元素可以理解成是路由器,也可以是交换机、网桥等,还可以是客户端、服务器,甚至是子网、AS等。而网络,既可以是指局域网,也可以是互联网或互联网的一部分。拓扑发现是指发现网元并确定网元之间的互连关系,包括互连设备(如路由器、网桥、交换机等)、主机和子网。网络拓扑是拓扑结构的视觉形式的表达。
2.2 网络拓扑发现的分类
2.2.1 按照网络拓扑发现的对象进行分类
根据不同的网络拓扑发现的对象分类,可分为面向域内的网络拓扑发现和跨域的网络拓扑发现。
面向域内的拓扑发现通常是指面向同一AS,ISP甚至规模更小的局部网络的拓扑发现技术。跨域的网络拓扑发现则是指面向不同AS(或ISP)网络的拓扑发现技术。它们的区别在于,面向域内的拓扑发现网络管理员一般具有对网络元素的管理和控制权,而跨域的拓扑发现无法对域外的网络元素进行管理和控制。由于探测的对象不同,因此所适用的网络发现方法以及网络拓扑发现的目的等都有不同。而跨域的网络拓扑发现比域内的网络拓扑发现困难得多。
2.2.2 按照网络拓扑发现的方法进行分类
按照发现方法对网络拓扑发现进行分类,可分为主动式网络拓扑发现被动式网络拓扑发现。
被动式的网络拓扑发现,是侦听网络元素之间的数据通过对数据的分析,进而得出网络的拓扑连接情况。比如,通过听OSPF路由器之间交换数据包探测网络拓扑的方法,就是一种被动式的拓扑发现方法。被动式的网络拓扑发现方法不向网络注入数据包,所以对网络负荷的影响不大。但也只能分析得到局部网络的拓扑情况。侦听得到的数据可能存在一些错误码的数据,如不能对数据进行有效的分析处理,就得到不真实的网络拓扑图。
主动式的网络拓扑发现,是指将一组精心设计的数据报注入被探测的网络,然后分析反馈网络和网络拓扑结构。例如,基于路由跟踪的和基于简单网络管理协议网络拓扑发现方法,就是主动式网络拓扑发现。于主动式网络拓扑发现适用较广是因为它是根据探测需要,由探测发起者对探测数据报进行专门设计的,探测网络的范围可以很大。
3.基于SNMP协议的网络拓扑发现
3.1 SNMP的概念
SNMP名为“简单网络管理协议”,SNMP是基于TCP/IP协议,是一个应用层协议。对网络中支持SNMP协议的设备进行管理,通过SNMP协议管理员可以支持SNMP协议和各种类型的设备进行通信,网络管理。在具体实现中,SNMP网络管理提供了管理员管理器,它具有网管命令发出,数据存储及数据分析的功能。被监管的设备上有一个SNMP代理(Agent),代理实现SNMP通信设备和管理。在SNMP中,传输层协议使用的是UDP。为了实现对网络的管理,SNMP还定义了两个必需的部分,一个是管理信息库MIB改的参数。一个是MIB的一套公用的结构和表示符号,称为管理信息结构SIB(Structure of Management Information)。
3.2 MIB信息库
TCP/IP网络管理系统的基础是含有被管理元素信息的数据库,我们将它称为MIB。每个被管理资源用一个对象来表示,MIB是这些对象的集合。数据库的结构是树型。网络中的每个系统,都维护一个可以反映被管理资源在系统中状态的信息库,通过读取信息库中对象的值,管理站可以监视系统中的资源,还可以通过修改某些值来控制系统中的资源。
3.3 SNMP的基本原理
所有的网络设备维护一个MIB,保存该设备上与网络运行相关的信息,并对管理工作站的SMMP查询进行响应。管理工作站通过发送请求信息,查询存储在网络路由设备管理信息数据库的MIB的相关信息,分析网络拓扑信息,可以概括整个网络拓扑结构。目标是保证管理信息在任意两点中传送,便于网络管理员在网络上的任何节点检索信息,进行修改,寻找故障;完成故障诊断,容量规划和报告生成。它独立于被管设备,采用轮询机制,提供最基本的功能集。
3.4 SNMP支持的操作
SNMP共有5种操作:
(1)GetRequest从某变量中取值(NSM发送);
(2)GetNextRequest从表格中取下一个值(NSM发送);
(3)SetRequest把一数值存入具体变量(NSM发送);
(4)GetResponse响应取操作(Agent发送);
(5)Trap报告事件信息(Agent发送)。
3.5 协议模型
SNMP协议唯一TCP/IP协议栈的应用层,基于UDP报文之上。SNMP就是用来规定NMS和Agent之间是如何传递管理信息的应用层协议。网管站对网络设备发送各种查询报文,并接收来自被管设备的响应及陷阱报文,将结果显示出来。 代理是驻留在被管设备上的一个进程,负责接受、处理来自网管站的请求报文,然后从设备上其他协议模块中取得管理变量的数值,形成响应报文,反送给NMS。
在一些紧急情况下,如接口状态发生改变等时候,主动通知NMS。
4.基于ICMP协议的拓扑发现
4.1 ICMP报文的格式
ICMP允许主机或路由器报告差错情况和提供有关异常情况的报告。ICMP不是高层协议,而是IP层的协议。ICMP报文作为IP层数据报的数据,加上数据报的首部,组成IP数据报发送出去。ICMP报文在传送时被封装在IP数据报中,使用IP协议发送,但ICEP不看作是高层协议的内容。回应请求与应答都会用IP数据报的形式在网间传输,如果成功地接收到一个应答,不但说明信宿机可以到达,而且说明数据报传输系统的相应部分工作正常,信源机和信宿机的ICMP软件和IP软件工作正常,请求与应答经过中间网关也在正常工作。
4.2 基于PING和路由跟踪的改进实现
可以利用操作系统规定的ICMP数据包最大尺寸不超过64KB这一规定,向主机发起“Ping of Death”(死亡之Ping)攻击。“Ping of Death”攻击的原理是:如果ICMP数据包的尺寸超过64KB上限时,主机就会出现内存分配错误,导致TCP/IP堆栈崩溃,致使主机死机。
回送请求和回答报文:向一个特定目的主机发出的询问。收到此报文的机器必须给源主机发送ICMP回送应答报文。如PING命令。我们日常使用最多的ping,就是响应请求(Type=8)和应答(Type=0),一台主机向一个节点发送一个Type=8的ICMP报文,如果途中没有异常(例如被路由器丢弃、目标不回应ICMP或传输失败),则目标返回Type=0的ICMP报文,说明这台主机存在,更详细的tracert通过计算ICMP报文通过的节点来确定主机与目标之间的网络距离。
路由跟踪的功能就是利用IP头中的TTL域。开始时信源设置IP头的TTL值为0,发送报文给信宿,第一个网关收到此报文后,发现TTL值为0,它丢弃此报文,并发送一个类型为超时的ICMP报文给信源。信源接收到此报文后对它进行解析,这样就得到了路由中的第一个网关地址。然后信源发送TTL值为1的报文给信宿,第一个网关把它的TTL值减为0后转发给第二个网关,第二个网关发现报文TTL值为0,丢弃此报文并向信源发送超时ICMP报文。这样就得到了路由中和第二个网关地址。如此循环下去,直到报文正确到达信宿,这样就得到了通往信宿的路由。
4.3 网络拓扑的发现算法
具体实现的步骤:
(1)在给定的IP区间,利用PING依次检测每个IP地址,将检测到的IP地址记录到IP地址表中。
(2)对第一步中查到的每个IP地址进行路由跟踪操作,记录到这些IP地址的路由。并把每条路由中的网关地址也加到IP表中。
(3)对IP地址表中的每个IP地址,通过发送掩码请求报文与接收掩码应答报文,找到这些IP地址的子网掩码。
(4)根据子网掩码,确定对应每个IP地址的子网地址,并确定各个子网的网络类型。把查到的各个子网加入地址表中。
(5)得到与IP地址表中每个IP地址对应的域名(Domain Name)。如果域名相同,则说明同一个网络设备具有多个IP地址。
5.结束语
随着计算机网络的高速发展,网络管理变得越来越复杂。为了提高网络设备和服务管理的智能性及可操作性,网络管理中重要的环节是对网络拓扑高效而准确地发现。拓扑发现是网络管理中一个难点,受限于网络的复杂性和网络协议的多样性,做到对网络中所有设备完整准确的也有一定的难度,利用SNMP进行拓扑发现的优点在于发现速度快,容易实现。对于不支持SNMP的设备的设备进行拓扑发现,可以运用ICMP报文的格式,利用路由跟踪来跟踪路由过程和DNS中的设备信息发现新的设备集合。每种方法各有其优缺点,可以根据实际需要有选择地结合它们使得发现算法更加合理有效。
参考文献
[1]李明江.SNMP简单网络管理协议[M].电子工业出版社,2007.
[2]宰家斌.大规模网络拓扑发现方法分析研究[J].计算机仿真,2008.
[3]熊英.基于TCP/IP的网络拓扑发现方法的研究[J].湖北工业大学学报,2005.
[4]李可.IP网络拓扑自动发现研究[J].计算机工程,2004.
[5]晏明峰,李静等.用SNMP管理互联网络[M].中国水利水电出版社,2001.
基金项目:重点科研项目校级(编号:11YJZ11A)。
作者简介:李芳(1971—),女,湖北理工学院计算机学院副教授,主要研究方向:计算机网络。
【关键词】网络拓扑;SNMP发现算法;CMP协议算法;网络管理
1.引言
现代计算机网络迅猛发展,网络管理的任务也变得更加的复杂,而保证网络管理系统高效运行的基础正是网络拓扑发现。网络拓扑表现为计算机网络中各设备之间的连接关系。网络拓扑发现能较好地提高网络的安全管理,故障管理、计量管理、配置和名称管理、性能管理。其原理是利用协议收集网络中各设备的信息,通过一些算法来生成完整的拓扑显示。
2.网络拓扑发现概述
2.1 网络拓扑发现的概念
网络拓扑是指网络元素及其之间的连接关系。网络元素可以理解成是路由器,也可以是交换机、网桥等,还可以是客户端、服务器,甚至是子网、AS等。而网络,既可以是指局域网,也可以是互联网或互联网的一部分。拓扑发现是指发现网元并确定网元之间的互连关系,包括互连设备(如路由器、网桥、交换机等)、主机和子网。网络拓扑是拓扑结构的视觉形式的表达。
2.2 网络拓扑发现的分类
2.2.1 按照网络拓扑发现的对象进行分类
根据不同的网络拓扑发现的对象分类,可分为面向域内的网络拓扑发现和跨域的网络拓扑发现。
面向域内的拓扑发现通常是指面向同一AS,ISP甚至规模更小的局部网络的拓扑发现技术。跨域的网络拓扑发现则是指面向不同AS(或ISP)网络的拓扑发现技术。它们的区别在于,面向域内的拓扑发现网络管理员一般具有对网络元素的管理和控制权,而跨域的拓扑发现无法对域外的网络元素进行管理和控制。由于探测的对象不同,因此所适用的网络发现方法以及网络拓扑发现的目的等都有不同。而跨域的网络拓扑发现比域内的网络拓扑发现困难得多。
2.2.2 按照网络拓扑发现的方法进行分类
按照发现方法对网络拓扑发现进行分类,可分为主动式网络拓扑发现被动式网络拓扑发现。
被动式的网络拓扑发现,是侦听网络元素之间的数据通过对数据的分析,进而得出网络的拓扑连接情况。比如,通过听OSPF路由器之间交换数据包探测网络拓扑的方法,就是一种被动式的拓扑发现方法。被动式的网络拓扑发现方法不向网络注入数据包,所以对网络负荷的影响不大。但也只能分析得到局部网络的拓扑情况。侦听得到的数据可能存在一些错误码的数据,如不能对数据进行有效的分析处理,就得到不真实的网络拓扑图。
主动式的网络拓扑发现,是指将一组精心设计的数据报注入被探测的网络,然后分析反馈网络和网络拓扑结构。例如,基于路由跟踪的和基于简单网络管理协议网络拓扑发现方法,就是主动式网络拓扑发现。于主动式网络拓扑发现适用较广是因为它是根据探测需要,由探测发起者对探测数据报进行专门设计的,探测网络的范围可以很大。
3.基于SNMP协议的网络拓扑发现
3.1 SNMP的概念
SNMP名为“简单网络管理协议”,SNMP是基于TCP/IP协议,是一个应用层协议。对网络中支持SNMP协议的设备进行管理,通过SNMP协议管理员可以支持SNMP协议和各种类型的设备进行通信,网络管理。在具体实现中,SNMP网络管理提供了管理员管理器,它具有网管命令发出,数据存储及数据分析的功能。被监管的设备上有一个SNMP代理(Agent),代理实现SNMP通信设备和管理。在SNMP中,传输层协议使用的是UDP。为了实现对网络的管理,SNMP还定义了两个必需的部分,一个是管理信息库MIB改的参数。一个是MIB的一套公用的结构和表示符号,称为管理信息结构SIB(Structure of Management Information)。
3.2 MIB信息库
TCP/IP网络管理系统的基础是含有被管理元素信息的数据库,我们将它称为MIB。每个被管理资源用一个对象来表示,MIB是这些对象的集合。数据库的结构是树型。网络中的每个系统,都维护一个可以反映被管理资源在系统中状态的信息库,通过读取信息库中对象的值,管理站可以监视系统中的资源,还可以通过修改某些值来控制系统中的资源。
3.3 SNMP的基本原理
所有的网络设备维护一个MIB,保存该设备上与网络运行相关的信息,并对管理工作站的SMMP查询进行响应。管理工作站通过发送请求信息,查询存储在网络路由设备管理信息数据库的MIB的相关信息,分析网络拓扑信息,可以概括整个网络拓扑结构。目标是保证管理信息在任意两点中传送,便于网络管理员在网络上的任何节点检索信息,进行修改,寻找故障;完成故障诊断,容量规划和报告生成。它独立于被管设备,采用轮询机制,提供最基本的功能集。
3.4 SNMP支持的操作
SNMP共有5种操作:
(1)GetRequest从某变量中取值(NSM发送);
(2)GetNextRequest从表格中取下一个值(NSM发送);
(3)SetRequest把一数值存入具体变量(NSM发送);
(4)GetResponse响应取操作(Agent发送);
(5)Trap报告事件信息(Agent发送)。
3.5 协议模型
SNMP协议唯一TCP/IP协议栈的应用层,基于UDP报文之上。SNMP就是用来规定NMS和Agent之间是如何传递管理信息的应用层协议。网管站对网络设备发送各种查询报文,并接收来自被管设备的响应及陷阱报文,将结果显示出来。 代理是驻留在被管设备上的一个进程,负责接受、处理来自网管站的请求报文,然后从设备上其他协议模块中取得管理变量的数值,形成响应报文,反送给NMS。
在一些紧急情况下,如接口状态发生改变等时候,主动通知NMS。
4.基于ICMP协议的拓扑发现
4.1 ICMP报文的格式
ICMP允许主机或路由器报告差错情况和提供有关异常情况的报告。ICMP不是高层协议,而是IP层的协议。ICMP报文作为IP层数据报的数据,加上数据报的首部,组成IP数据报发送出去。ICMP报文在传送时被封装在IP数据报中,使用IP协议发送,但ICEP不看作是高层协议的内容。回应请求与应答都会用IP数据报的形式在网间传输,如果成功地接收到一个应答,不但说明信宿机可以到达,而且说明数据报传输系统的相应部分工作正常,信源机和信宿机的ICMP软件和IP软件工作正常,请求与应答经过中间网关也在正常工作。
4.2 基于PING和路由跟踪的改进实现
可以利用操作系统规定的ICMP数据包最大尺寸不超过64KB这一规定,向主机发起“Ping of Death”(死亡之Ping)攻击。“Ping of Death”攻击的原理是:如果ICMP数据包的尺寸超过64KB上限时,主机就会出现内存分配错误,导致TCP/IP堆栈崩溃,致使主机死机。
回送请求和回答报文:向一个特定目的主机发出的询问。收到此报文的机器必须给源主机发送ICMP回送应答报文。如PING命令。我们日常使用最多的ping,就是响应请求(Type=8)和应答(Type=0),一台主机向一个节点发送一个Type=8的ICMP报文,如果途中没有异常(例如被路由器丢弃、目标不回应ICMP或传输失败),则目标返回Type=0的ICMP报文,说明这台主机存在,更详细的tracert通过计算ICMP报文通过的节点来确定主机与目标之间的网络距离。
路由跟踪的功能就是利用IP头中的TTL域。开始时信源设置IP头的TTL值为0,发送报文给信宿,第一个网关收到此报文后,发现TTL值为0,它丢弃此报文,并发送一个类型为超时的ICMP报文给信源。信源接收到此报文后对它进行解析,这样就得到了路由中的第一个网关地址。然后信源发送TTL值为1的报文给信宿,第一个网关把它的TTL值减为0后转发给第二个网关,第二个网关发现报文TTL值为0,丢弃此报文并向信源发送超时ICMP报文。这样就得到了路由中和第二个网关地址。如此循环下去,直到报文正确到达信宿,这样就得到了通往信宿的路由。
4.3 网络拓扑的发现算法
具体实现的步骤:
(1)在给定的IP区间,利用PING依次检测每个IP地址,将检测到的IP地址记录到IP地址表中。
(2)对第一步中查到的每个IP地址进行路由跟踪操作,记录到这些IP地址的路由。并把每条路由中的网关地址也加到IP表中。
(3)对IP地址表中的每个IP地址,通过发送掩码请求报文与接收掩码应答报文,找到这些IP地址的子网掩码。
(4)根据子网掩码,确定对应每个IP地址的子网地址,并确定各个子网的网络类型。把查到的各个子网加入地址表中。
(5)得到与IP地址表中每个IP地址对应的域名(Domain Name)。如果域名相同,则说明同一个网络设备具有多个IP地址。
5.结束语
随着计算机网络的高速发展,网络管理变得越来越复杂。为了提高网络设备和服务管理的智能性及可操作性,网络管理中重要的环节是对网络拓扑高效而准确地发现。拓扑发现是网络管理中一个难点,受限于网络的复杂性和网络协议的多样性,做到对网络中所有设备完整准确的也有一定的难度,利用SNMP进行拓扑发现的优点在于发现速度快,容易实现。对于不支持SNMP的设备的设备进行拓扑发现,可以运用ICMP报文的格式,利用路由跟踪来跟踪路由过程和DNS中的设备信息发现新的设备集合。每种方法各有其优缺点,可以根据实际需要有选择地结合它们使得发现算法更加合理有效。
参考文献
[1]李明江.SNMP简单网络管理协议[M].电子工业出版社,2007.
[2]宰家斌.大规模网络拓扑发现方法分析研究[J].计算机仿真,2008.
[3]熊英.基于TCP/IP的网络拓扑发现方法的研究[J].湖北工业大学学报,2005.
[4]李可.IP网络拓扑自动发现研究[J].计算机工程,2004.
[5]晏明峰,李静等.用SNMP管理互联网络[M].中国水利水电出版社,2001.
基金项目:重点科研项目校级(编号:11YJZ11A)。
作者简介:李芳(1971—),女,湖北理工学院计算机学院副教授,主要研究方向:计算机网络。