您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 数据通信与网络 > 【工程方案】网络拓扑信息获取技术研究
网络拓扑信息获取技术研究秦艳锋1罗军勇1寇晓蕤1(1.信息工程大学信息工程学院网络工程系,河南郑州,450002)摘要:本文讨论了当前在网络拓扑发现研究工作中广泛应用的一些获取网络拓扑信息的关键技术和方法,并且将它们按照各自所属的协议即ICMP协议、SNMP协议、BGP和OSPF等路由协议、Whois/RWhois协议以及DNS协议等进行了分类介绍,然后对这些技术和方法进行介绍或比较,分析了各种拓扑信息获取技术的使用特点或优缺点,昀后参考性地给出了每种技术适用于不同网络的对照表。关键词:网络拓扑信息;ICMP;Whois;DNS;中图法分类号:TP393.08文献标识码:AResearchontheTechnologyofGettingNetworkTopologyInformationQINYan-feng1,LUOJun-yong1,KOUXiao-rui1(1Collegeofinformationengineering,Informationengineeringuniversity,Zhengzhou,Henan,450002,china)Abstract:.Thisarticlestudiessomemaintechnologiesandapproachesonhowtogetthenetworktopologyinformationneededinthecurrentresearchofthenetworktopologydiscovery.ItdiscusseseachofthemaccordingtotheprotocolstheybelongtosuchasICMPprotocol,SNMPprotocol,BGPprotocolandOSPFprotocol,Whoisprotocol/RWhoisprotocolandetc.Andafteranalyseseachofthemseparatelyorbycomparision,asheetaboutwhereeveryprotocolcanfitisgivenadvisedly.Keywords:NetworkTopologyInformation;ICMP;Whois;DNS;1、引言过去几年里,越来越多的机构开始致力于各种网络拓扑结构的研究和建模,如国际性组织CAIDA[1]、美国Cornell大学[2]计算机科学系网络研究小组(CNRG)等均从事了Internet拓扑发现技术的研究[3]。另一些组织或企业如Bell[4]实验室在从事主干网络拓扑发现的研究工作,IBM、惠普和Cisco等企业则在从事局域网网络拓扑发现的研究工作,并推出了NetView、OpenView、CDP等产品。从其研究的网络拓扑发现的目标而言,可以将网络从层次或规模上加以区分:昀上层骨干网络(Backbone)的拓扑发现、Internet网络AS(自治系统)层的拓扑发现、AS内部的网络拓扑发现、以及局域网级的拓扑发现等。这些研究所涉及的内容我们称之为网络拓扑信息,主要包括交换机、路由器等网络实体间的连接信息,以及为了保证昀终得到的网络拓扑的准确性和完备性而必需的实体基础信息,如IP地址、别名、域名、AS(自治系统)、网络名称、地域名称等。为获取这些信息,各科研机构采用了不同的拓扑发现方法,下面将从协议的角度来研究和分析它们的特点及应用。2、基于各种协议的拓扑信息获取2.1基于ICMP协议在网络拓扑发现中可以把ICMP的功能分为四类:(1)ICMP的请求、回应报文可以实现“ping”功能,得到网络设备的活动性信息;(2)可以利用ICMP实现广播“ping”。这样可以根据回应主机的IP地址来探测目标网络的子网掩码等信息。(3)利用ICMP的子网地址掩码请求与应答报文获得目标网络的子网掩码。(4)利用设置ICMP报文中的TTL值来获取从探测源到目标IP地址的路径信息,即通常我们所讲的Traceroute命令或技术。2.2基于SNMP协议简单网络管理协议(SNMP)是现代网络管理的标准协议,它提供了一种从网络上的设备中收集网络拓扑信息的方法。该协议由其代理端(Agent)收集相关信息放进MIB库中,可以通过SNMP定义的GetRequest和GetNextRequest操作来获取设备信息,这种信息是分析各个网络节点之间相互连接关系的判断依据。在国家863项目(2003AA146010)资助MIB库中主要有三组信息和拓扑发现相关:系统组(System)、接口组(Interface)和IP组。(1)系统组包括7个简单变量,其中变量sysService可用于判断设备类型:是否是交换机或网桥,是否是路由器设备等;(2)接口组(Interface)定义了一个表示设备接口数量的简单变量ifNumber和一个接口表ifTable,表格每行对应一个接口的系列特征参数。由它们我们可以得到某个设备的接口数量、接口名称、接口类型等接口信息;(3)IP组定义了很多简单变量和3个表格变量,其中变量ipForwarding为4表示该节点具有转发功能,可作为路由器的判定依据。表格变量包括地址表ipAddrTable、IP路由表ipRouteTable和ARP地址转换表ipNetToMediaTable,它们都网络层拓扑发现的重要信息来源。访问路由器的地址表,可得到其各个接口的地址信息。ARP地址转换表提供了节点所在子网内设备地址到物理地址的对应转换。从IP路由表中每一行都能够获取5个非常重要的信息,如表2-1:在拓扑发现中主要就是要获取这些设备的基础信息和连接信息,因此,这是用来得到各个网络节点之间相互连接关系的一种主要的判断依据,目前国内以网络管理为目的的网络拓扑研究中中大多也使用了这种方法。2.3基于BGP、OSPF等路由协议OSPF(OpenShortestPathFirst)路由协议是Internet网络TCP/IP协议族中一种内部网关路由协议,它是一种典型的链路状态(Link-state)的路由协议,一般用于自治系统AS(AutonomousSystem)内。在这个AS中,所有的OSPF路由器都维护一个相同的描述这个AS结构的数据库,该数据库中存放的是各路由域内部链路的状态信息,通过访问这个数据库可以得到拓扑信息。BGP(边界网关协议)是一种外部网关协议(EGP),运行于各个BGP路由器之上,它是用来在自治系统之间传递选路信息的路径向量协议。BGP选路信息带有一个AS号码的序列,它指出一个路由已通过的路径。通过它在多个自治系统间执行路由,与其它BGP系统交换网络可达性信息。每个BGP路由器维护到特定网络的所有可用路径构成的路由表。对AS层网络拓扑的研究数据大多来自于RouteView项目所收集的BGP路由表,即俄勒冈州Route-views。现在这些数据可以从一些站点中下载,比如PCH(PacketClearingHouse)和routeviews.org。还可以从一些公共路由服务器中获取其完整的BGP路由表;许多的InternetLookingGlass(窥镜)服务器站点上可以运行ping、traceroute或BGP等命令,由此也会获取大量的BGP路由表信息,如站点Traceroute.org上就提供了成百上千可用的窥镜服务器。此外,借助IRR(InternetRoutingRegistry)也可以获取大量的AS连接信息。可以通过对这些数据进行分析来得到不同AS间的拓扑连接情况。2.4基于Whois协议/RWhois协议RFC812定义了Internet信息查询协议——Whois协议。各级Internet管理机构设立了可以查知IP地址、域名等所有者登记资料的WHOIS服务器。用户通过Whois协议[7]提供的信息服务,能够获取以下信息:有关IP地址和负责某个IP地址范围的系统管理员数据;域和相关的注册信息、系统管理员信息;自治系统和其相关信息;已注册单位的E-mail地址、通讯地址、联系电话等信息;与主、次域名服务器对应的IP地址Whois协议遵循服务器/客户端模型。查询Whois服务昀常用的Unix客户程序是whois程序,有些机构也提供了可以使用Telnet手工键入命令的方式使用Whois服务,目前而言,昀方便的就是通过浏览器客表2-1IP路由表部分信息属性名称属性含义IpRouteDestlpAddress本路由的目的IP地址IpRouteIflndex接口索引值IpRouteNextHoplpAddress本路由的下一跳ip地址IpRouteType路由类型IpRouteMask本路由的子网掩码户端程序来查询使用Whois服务。当然,也可以通过编程的方式来使用。全球昀顶级的Whois服务器是InterNIC[5](Internet网络信息中心)的rs.internic.net,还有维护全球教育网的whois.educause.net、美国政府网的whois.nic.gov、美国军事网的nic.ddn.mil。各个国家通常有该国家相应的Whois服务器,比如中国的是whois.cnnic.net;而各个ISP也都提供了相应的Whois服务器,比如VeriSign公司的whois.networksolutions.com。RWhois[6](ReferralWhois)与Whois的功能类似,不同的是RWhois在分等级和可缩放形式等方面作了扩展,然而对用户而言,它的使用方式与Whois查询是一样的。2.5基于DNS协议域名系统(DNS)是一种用于TCP/IP应用程序的分布式数据库,它提供主机名字和IP地址之间的转换及有关电子邮件的选路信息。每个站点保留它自己的信息数据库,并运行一个服务器程序供Internet上的其他系统(客户程序)查询。对域信息的查询主要有以下几种:A查询——地址查询,由主机域名得到主机的IP地址信息。NS查询——查询区域的授权名字服务器。PTR查询——域名查询,根据IP地址(或IP地址段)得到对应的主机域名(或主机名)信息。HINFO查询——主机信息查询,包括主机的CPU和操作系统名称等。AFXR查询——完全区域传送查询,根据区域名(ZoneName)得到该域名服务器的数据库中有关该区域及其子域的所有资源记录信息。我们从中获取的IP地址信息、域名信息以及区域信息对网络拓扑分析都是非常有帮助的。3、各种方法的特点:3.1ICMP方法3.1.1Ping方法Ping命令用来监测网络节点是否存活,或用于监测到网络节点间的往返时延(RTT)。通常Ping只涉及网络上的源和目的两节点,而忽略网络细节。另外我们可以使用广播Ping,其Ping的地址不是一个单一的地址,而是子网的广播地址,所有位于该子网的主机均对此Ping包进行响应,从而一次就可得到子网内的全部活动主机。使用Ping的昀大问题是,当Ping一个不存在的或非活动的主机时,一般的超时值加上为了减少丢包对测量结果的影响而采取的发2~3个Ping包使用的时间,这样对这类主机的监测代价就非常大。这个问题昀直接的解决方案是减少超时值,但是必须注意不要小于网络实际的往返时延。通过精心设计超时和重发策略,可以有效减少等待时间同时又减少误判。使用广播Ping的问题是,现在实际网络中广播Ping很少得到完全支持,部分网络由路由器代替子网内的主机响应。在另外一些网络中主机根本就不对广播Ping进行响应,甚至路由器根本不转发能引起广播的包。对该问题的一个解决方案是设计一个专门的BroadcastPing程序,其内部实现是直接将子网的广播地址转变为多个主机地址,然后启动多个线程或进程来分别向主机发送Ping包,从而获取子网内的全部主机地址。3.1.2Traceroute方法Traceroute可用来发现测试点和目标主机之间的路由器。路由器在转发包之前总是将其TTL值减1,如果TTL降为0,则路由器向源地址发送TTL-ExpiredICMP消息。Traceroute应用了路由器的这个特性,通过发送TTL逐渐增大的
本文标题:【工程方案】网络拓扑信息获取技术研究
链接地址:https://www.777doc.com/doc-44128 .html