1、网络拓扑自动发现就是利用网管协议或网络提供的可用工具通过拓扑算法,自动发现网络中所有主机、路由器、交换机对应的节点及其连接关系,从而得到完整的拓扑图,帮助网络管理人员了解和认识整个网络的拓扑结构。在实际网络环境中,有许多网管软件有拓扑发现功能,但准确高效地完成网络拓扑发现并非易事.所以准确有效地实现网络拓扑发现有着极大的需求和应用前景,这主要体现在以下几方面:模拟网络:为了模拟实际网络,必须首先得到该网络的拓扑结构;网络管理:网络拓扑信息可帮助网络管理者确定是否需要增加新的路由器,当前硬件配置是否正确,并发现网络中的瓶颈所在和失败的链路;服务器定位:网络拓扑信息可帮助用户确定自身在网络中的位置
2、,从而确定服务器的位置,以及选择哪一个网络服务提供商可以提供最小的时延、最大的带宽;拓扑敏感算法:一些新的协议和算法可以在得到网络拓扑信息的基础上改善网络性能。例如,基于拓扑敏感策略和服务质量(QoSQuality of Service)的路由选择算法与基于拓扑敏感进程组选项的组通信算法;实行网络服务管理;复杂拓扑的可视化;综上所述在网络日益发展的今天,网络拓扑发现已成为一项非常重要的工作。2 物理网络拓扑发现的基本概念和研究现状2.1 物理网络拓扑发现的基本概念一般而言,网络拓扑是指路由器及其接口与子网的连接关系,即路由器-路由器、路由器-子网、接口的关系.这些信息需要对网络进行搜索才能获得
3、。对于 rn 网来说网络拓扑就是网络的逻辑拓扑结构,我们在本文中把网络的逻辑拓扑的发现称为三层拓扑发现。以太网是最流行的局域网络技术。以太网物理拓扑发现是指发现网络实体的实际物理连接(对应OSI第2层设备的连接).随着网络技术的飞速发展,局域网交换技术的引人提高了网络带宽使用的有效性,并且部分解决了现有网络带宽问题,但这也使得局域网内设备的连接情况变得十分杂。找出网络元素之间的实际物理链接是完成许多重要网络管理任务的前提,例如:主动与被动网络管理、服务器定位、事件关联和故障分析等.原有的网络拓扑自动发现算法只能发现网络层(对应OSI的第3层)设备及其它们之间的连接关系,即路由器到路由器、路由器
4、接口到子网的连接关系如(图1)所示.网络第3层设备拓扑发现的方法比较简单,对于基于简单网络管理协议(SNMP,Simple Network Management Protocol)的第3层设拓扑发现算法可以直接从每一个路由器管理息库(NUB,Management Information Base)中的ipRouterTable获取邻近路由器与邻近子网的连接信息.物理网络拓扑反映在网络拓扑图上是在原有网络层拓扑的基础上增加交换机到交换机、交换机到路由器、交换机到主机之间的连接关系,如 IP子网图1 第三层网络拓扑图(图2)所示。其中发现交换机到交换机之间的连接关系是找出物理网络拓扑图的关键。了解
5、随时变化的IP网络物理拓扑结构对一些关键的网络管理任务是非常重要的,包括对于被动和主动的资源管理,时间关系以及故障原因分析。毫无疑问,今天的IP网是一个动态的变化的网络,手动的去跟踪拓扑信息是让人难以忍受的。因此有效的自动发现物理网络的拓扑结构的拓扑发现算法是非常必要的。早期的工作主要集中在网络的逻辑拓扑结构(三层拓扑)的发现,这就暗示了忽略了所有而层设备的连接(例如,交换机和网桥),或是针对特定的产品系列的解host3 host1host4 host2 host5host6 host7图2 物理网络拓扑图2.2 网络拓扑自动发现的研究现状要实现网络拓扑的自动生成,首先必须收集构造网络拓扑图的
6、各种必要信息。利用各种网络路由搜索算法和相关协议来获取整个网络中的每个设备的路由信息,然后利用获取的路由信息来自动实现拓扑的生成。事实上,实现网络拓扑的算法有很多种,但就性能和效率而言,判别其优劣的指标参数只有两项:网络负荷和发现时延。具体的说,就是算法的实现过程不能过多地增加网络流量,同时也应力求最大限度地减少发现所需的时间,否则就会从整体上影响网络的效率和性能。最近几年在国外开始了对网络的二层拓扑发现的研究,比如,贝尔实验室的Yuri Breitbart angeMlnUiestrribr等与Carnrgie Mellon University的Bruce Lowekamp等分别提出了各自
7、基于地址转发表的物理网络拓扑发现算法。Yuri Breitbart的算法通过查询厂家的私有MI可以在一定范围内解决在VLAN内发现物理网络拓扑的问题。Bruce Lowekamp的算法主要解决在一个广播域内出现交换机与交换机之间出现HUB的特殊拓扑发现问题,但算法的基本思想都是一样的。3 网络拓扑发现技术3.1 拓扑发现的概念拓扑发现是网络管理平台的一种重要功能。它的主要目的是获取和维护网络设备存在的信息和它们之间的连接关系信息,并在此基础上给出整个网络连接状态的图示,帮助管理人员对整个网络的拓扑结构有整体上的了解和认识。发现并跟踪一个网络的拓扑结构对于一个有效的网络管理来说是必不可少的.3.
8、2 拓扑发现的工具网络拓扑发现可采用多种工具和协议,归纳起来有Ping, Traceroute SNMP和DNS,它们各具特点,但是ping和Traceroute 应用范围最广,实际上ping和Traceroute都是基于互联网控制报文协议(ICMP,Internet Control Message Protocol)其中SNMP最高效。3.2.1 Ping/Broadcast Pingping工具主要用于检测目的主机是否在网络中存活以及测量它的往返时间,通常关联两台计算机:源主机和目的主机.每一个被ping的主机向源主机发一个ICMP回显应答包echo reply,包中包含应答和时延等信息.
9、ping一个存活的主机回应的时间一般为微秒级或毫秒级,对一个关机的主机和不存在的主机,回应时间为20s,这样长的延迟影响了ping工具的效率.因此,可用异步方式发送和接收ICMP回显应答包,这样既可提高检测速度,又不会导致阻塞。另一个使用ping这意味着所发送n的途径是定向的广播ping的是目的地址为一个子网的广播地址的ping,这个子网的所有节点必须对这个ping进行响应.这有助于实现两个目标:一个是发现一个子网的所有节点(仅仅通过保存对ping作出回应的所有节点的IP地址;另一个是发现一个子网的广播地址.但此法并不支持所有网络.这个特性是网络的一个安全漏洞,因为它可被拒绝服务攻击所利用。这
10、就是执行路由的网络设备不转发将引起定向广播的包的原因,它使得我们不能利用ping发现一个子网的所ping有节点或一个子网的掩码。3.2.2 跟踪路由(Traceroute) Traceroute是另一个相当占老的TCP/IP簇的工具。它的功能是从一个通常称为源主机的节点到另一个称为目的主机的节点间用于路由选择(路由器)的所有网络实体。这个工具也能给出从源主机到这条路径上任何一个节点的往返延时。具体是利用IP头中的TTL字段,开始时,信源将IP头的值TTL设置为l, 发送报文至信宿,第一个路由器收到此报文后,将TTL值减I, TTI值变为0,丢弃此报文,并发送一个类型为超时的ICMP报文给信源,
11、信源接收到此报文后,对其进行解析,这样就得到该路径中第一个路由器的地址。然后,信源将TTL为2的报文发送给信宿,第一个路由器把它的TTL值减I后转发给第二个路由器,第二个路由器收到后再减I,报文ITL值变为0该路由器丢弃此报文,并发送一个类型为超时的ICMP报文给信源。这样,就得到路由中第二个路由器的地址。如此循环下去,直至报文正确到达,信源就得到了通往信宿的路由。这种通过发送不同的TTL值在源与宿之间发现路由的方法,除了网络管理者刻意要隐藏网络内部拓扑信息外,Traceroute均可发现正确路径。3.2.3 DNS服务器的域转换参与到一个IP网络的所有计算机都有一个唯一的IP地址。由于人们难
12、以记住所使用机器的lP地址,于是就开发了域名系统(DNS, Domain Name System)。DNS主要用于将一个名字(和一个域后缀)和一个IP地址联系起来。它是一个非常庞大的数据库。通常存储在这个数据库中的信息不仅包括用户计算机,还包括一些网络设备。一部分因特网系统、路由器和主机会有一个“域名”,例如“”。这些名字用来获取主机地址和建立邮件地址。DNS还允许进行“反向查找”(reverse look up),例如获取与IP地址对应的域名。借助于DNS协议的域转换能力,我们能转换具有相同域后缀的计算机列表。但这并不意味着被报告的每一台计算机在物理意义上被置于同一网络。我们可以使用反转技术
13、来下载属于同一网络的计算机信息。大多数域名服务器通过zone transfer的命令,返回该域内名字的列表,因此DNS的域转换可以发现域内的所有主机和路山器。这种技术快速、准确、开销小。但是,发现并不完全准确,因为用DHCP获取IP地址的主机并没有DNS服务,而且一些网管员因安全原因关闭了DNS域转换服务。尽管有许多缺陷,DNS仍是一个非常重要的工具。我们可以查找到一个网络的设备名,然后可以检查哪些设备是可用的,并使用其他的方法来发现有关的网络信息。如果我们不想发现详细准确的网络信息,也可以使用它。3.2.4 简单网络管理议(SNMP) 最有希望的工具是SNMP( 简单网络管理议)。其基本思想
14、是每个设备都有一个管理信息库(MIB),存储了所有有关设备所运行的进程、其表现方式和可以请求索取的一切信息。SNMP协议描述了用户在IP网络上从MIB远程提取一些信息的方法。唯一的要求是设备能实现这个协议并在MIB中存储了足够的信息。它主要的优点是,当网络中发生变化,信息会自动地随之变化。而且,提取信息的整个过程相当迅速,这在很多方面加快了拓扑发现的速度。但主要的缺点是,并不是所有的机器都实现这个协议,即使能够实现,也存在一些MIB不能保存足够有价值信息的实例。这两个问题可以通过改进设计加以解决。还有一个缺点是,通常管理机构不允许其他人使用SNMP从其控制下的设备获取信息。它们限制SNMP的传
15、输量,如果拓扑发现算法必须发现跨越几个不同的管理机构的网络,这就可能造成许多问题。3.2.5 其他技术和私有协议依靠网络的确切类型就可以使用其他的一些技术来发现更多的网络拓扑方面的信息例如:只需通过查看其ARP( 地址解析协议)表,仅一个节点就很容易发现邻近的节点。发现更多信息的另一方法是使用路由进程(例如OSPF,BGP 等)的信息.在此情况下,能够发现拓扑中的子网和网络设备,网络中路由器的数量和位置,以及BGP中连接两个网络的路径.使用厂商特有的技术能够获取更多关于设备和网络的信息。例如,使用由Cisco系统开发的Netflow技术.使用这种技术。能够了解一个特定设备的流量和它们的特征(包
16、平均数和每秒的比特数、平均流量持续的时间).有了这些信息就能够了解网络的性能。3.3 网络拓扑发现的准备工作首先,确定这个技术针对网络的哪一层和什么协议.由于现在的网络大多数采用TCP/IP协议,所以针对IP层相对较好。当然随着对物理网络拓扑发现的需求,需要对网络的2层的协议进行分析来获得网络的2层拓扑。其次,确定采用被动还是主动探测技术实现网络拓扑信息的采集。被动探测即在所有观测的网络中都加人一个探测器,其优点是仅向网络管理主机递交各个网络的拓扑信息,无额外流量,负担小,但花费时间长.对大网络来说,将探测器安装到所涉及的各子网中并不实际。主动探测即网络管理主机主动向所有管理网络发探测包,采集
17、返回信息,其优点为速度快,但产生流量大,对低速网络不太合适。再次,确定采用何种方式收集信息。即采用SNMP来收集网络信息,还是采用一种通用的协议收集网络信息如使用DNS和ICMP等)。最后,确定网络拓扑发现的目标及发现程度.这两点均与实际网络业务需求息息相关,但不管采用哪种协议和工具,网络拓扑发现的最终目标都是得到一个快速、完整、正确、高效的网络拓扑发现算法或拓扑工具。快速即指算法应能够实时地发现网络拓扑,且确保数据的内部一致性.一个不能跟上网络实时变化的拓扑算法适用范围是受限的。完整性指的是在出现最少错误概率的情况下,有效、正确地发现一个特定网络内的大部分主机、交换机和路由器.正确性即算法应
18、尽力保证拓扑发现结果的正确性,尽量不出或少出错误.高效性即算法不应消耗过多的网络资源,而是给网络增加尽可能小的负载。对网络拓扑结构的发现程度,可根据具体的需求决定,对一个要求发现网络的物理结构的,不仅要发现到路由器和主机,还要发现路由器和主机之间的交换机.4 生成树协议生成树协议(Spanning Tree Protocol,STP)是链路控制协议,用于交换网络中解决冗余链路、桥接回路和负载均衡等问题的关键协议。交换机和网桥一般都支持STP协议。STP协议通过将部分桥接端口设置为阻塞状态,保证任两局域网段间只有一条活跃路径,从而能有效避免桥接回路等问题。在STP协议作用下,桥接设备的任一个端口
19、都被设置成阻塞(Blocking)或转发(Forwarding)两种状态之一。处于转发状态的端口被认为是在当前的生成树中,可收发数据帧。处于阻塞状态的端口则不在生成树中,不能转发所接收的数据帧,但可收发配置网桥协议数据单元(CBPDU).4.1 STP工作原理 E0 E1B1E0 E0B2 B5E1 E1E0 E1E1 E0B3 B4图3 正常情况下的生成树STP协议使用了两种报文:CBPDU和拓扑改变通告网桥协议数据单元(TCN BPDU).CBPDU负责通告全局STP参数,TCNBPDU用于通告网络拓扑的变化。STP协议的工作可分为“生成树初始化”和“生成树对网络拓扑变化的响应”两个过程。
20、本文通过(图3)所示的交换网络环境来说明STP协议的工作过程,粗线代表100M快速以太网链路,相应的路径成本为10;细线代表10M以太网链路,相应的路径成本为100。各网桥的优先级相等,网桥B1的ID最小。4.1.1 生成树初始化过程如下:选举根网桥(Root Bridge)根网桥的所有端口置为转发状。拥有最低优先级的网桥将成为根网桥。如果出现优先级相等态的情况,拥有最小标识的网桥将成为根网桥。选举过程开始时,所有网桥都声明自己是根.如果一个网桥侦听到一个更好的候选者,它停止公布自己是根,并开始转发由更佳候选者发送的CBPDU。在转发该CBPDU之前,此网桥将代价增加一个值。此值根据接受到更佳
21、候选者CBPDU的端口的代价值而定。确定根端口(Root Port)对每个非根网桥,选择一个自身与根网桥之间管理代价最小的端口作为此网桥的根端口。所有根端口置为转发状态。(B2,E0)、(B3,E0)、(B4,E1)、(B5,E0)4个端口成为各自网桥的根端口。确定指定端口(Designated port)多个网桥连接到同一网段时,代价最小的网桥被称为指定网桥。取指定网桥在此网段上的一个端口作为指定端口。所有指定端口置为转发状态。(B2,E1)、(B4,E0)、(B5、E1)分别是相应网段的指定端口其余端口为阻塞状态 至此,如(图3)所示的一棵生成树已建立。除(B3,E5)处于阻塞状态以外,其
22、余端口均处于转发状态。4.1.2 生成树对网络拓扑变化的响应过程:若网桥在MaxAge时间内没有从任何端口接受到CBPDU。该网桥以声明自己为根网桥来响应。此过程与“生成树初始化过程”一致。(图3)中的根网桥若出现故障,其余网桥的WaxAge将大约在同一时刻过期。每个网桥都将声称自己是根;重新产生新的生成树。E0 E1B2 B5E1 E1图4 故障后再次收敛的生成树若网桥的根端口接受不到CBPDU,但却可以从其它端口接收到CBPDU。(图4)中(B5,E1)端口若出了故障,B4的E1再不能收到从根网桥来的CBPDU,而E0可以。B4改E1为E0作根端口。B3的E1也再不能接收从(B4,E0)来
23、的CBPDU,MaxAge超时后,其认为指定网桥已经出现故障。由于再没有其它的网桥向这个网段发送CBPDU,B3将调整自己成为与E1接口相连的局域网段的指定网桥。因此B3的E1端口要从阻塞状态变为转发状态。(图4)给出了(B5,E1)端口出故障后再次收敛的生成树。4.1.3 两个中间状态:侦听状态(Listening)既不发送接收数据,也不进行帧地址学习,但仍能接收和发送CBPDU。ForwardDelay超时后进行学习状态。 学习状态(Learning)接收数据,进行帧地址学习,但不发送数据。接收和发送CBPDU。Forward Delay超时后才进入转发状态。TCN BPDU起到了加快桥接
24、地址表更新的作用。根网桥接收到TCN BPDU后,会发送一个确认信息.确认信息是通过在CBPDU中设置一个拓扑改变标记来表示的.网桥接收到确认消息后将桥接地址表的老化时间从默认的300秒降低到Forward Delay定时器设定的值.4.1.4 地址表项的更新:一个端口从阻塞状态到帧听状态后,马上要启用一个短的定时器来清空地址表项,并从该网桥的根端口发送TCN BPDU。4.2 物理网络拓扑发现算法的系统模型可以将IP网络上的各个网络结点以及它们之间的连接关系组成一个无向图,各网络结点构成图中的结点,各网络设备之间的物理连接构成一个图中的边(为了使描述问题简单,我们这里指的网络结点只包含路由器
25、和交换机,不包括主机和HUB),拓扑发现算法就是找出拓扑图中结点与边之间的关系。子网(subnet)指这样一个IP地址集合,集合中的主机间的通信不需经过路由器。交换域指的是存在一个交换机的集合s,若在N中存在连接两台交换机的一条路径,这条路径所经过的结点均在集合s中。每个交换机域的交换机必须遵守“生成树协议”。定义1.令图中第i台交换机的第x个端口为定义 2.令对于任意端口,表示交换机;的地址转发表中通过端口收到的数据帧的源MAC地址集合.定义 3.两个相连节点之间没有其它节点,则这个连接称为直接连接;否则为简单连接。如果包含交换域中所有与端口x存在简单连接的节点的物理地址,则是完全的.在网络
26、设计中,为了保证网络的可靠性,一般在网络中增加几条冗余备份线路,这样在网络的实际拓扑图中会出现环。由于生成树协议”的限制,交换机将自动封闭这些冗余备份线路以保证系统中不出现“拓扑环路”的情况。也就是说,连接这些备份线路的端口上没有负载。本文中涉及的算法均基于网络信息流量的有关信息计算完成的,若一个端口上没有流量,则算法就不能确定连接属性。所以,这里所用的算法捕获的是在算法运行时段内,子网内部自动生成的当前“生成树”的快照5 物理网络拓扑发现算法的研究物理拓扑发现的核心就是基于交换机的桥接网络的网络拓扑发现,也就是发现一个子网内的2层设备以及它们之间的连接关系.5.1 以太网交换技术交换技术在以
27、太网中占据着极其重要的地位,是由网桥技术逐步演变而来的.随着时间的推移,该技术也在不断地更新。当今,以太网的交换技术已比网桥技术有更加完善的性能。采用交换技术是为实现不同以太网段之间的连接与帧信息的交换,此外,也可以实现不同以太网帧信息之间的变换及不同物理层之间的变换等等.当然,作为一个交换设备,主要还是应完成不同以太网段之间的连接与帧信息的交换。原来的拓扑发现主要是在网络层(ISO第三层)进行,能发现路由器之间的连接以及路由器接口和子网之间的连接情况,但是这种第三层的拓扑发现信息在一个IP网络的连接情况中只是一部分,因为在整个网络中还有第二层链路层)网络设备(网桥,交换机)的互联信息,而这些
28、第二层设备的连接有时也是很复杂的.随着越来越多的交换机在应用中的使用,使得这种情况越来越有普遍性。5.1.1 网桥的基本概念网桥(Bridge)是属于OSI参考模型分层结构第二层(数据链路层)的设备,所操作的不是数据包而是帧数据.通过网桥的各端口可以将统一类型的局域网全透明的连接起来。它在两个局域网之间对链路层帧进行接收、存储与转发,它把两个物理网段连接成一个逻辑网络,使这个逻辑网络的行为看起来就象一个单独的物理网络一样,网桥独立于高层协议,与高层协议无关。网桥通过数据链路层的逻辑链路控制层LLC)来选择子网路径.它接受完全的链路层帧,并对帧作校验,然后查看介质访问控制层.5.2 物理网络拓扑发现需要解决的问题目前对网络进行物理拓扑发现需要解决下面几个问题:前提假设太多拓扑发现算法应该对被研究的网络没有限制或者只有很少的假设要求。于是我们应该利用绝大多数被管对象最长保存的信息。但是,由于第二层网络设备并不知道(或只知道很少量)和它们连接的其他设备的情况,因此在网络的第二层推断网络的物理连接情况是很困难的.二层设备对高层协议是透明的目前网络设备经常工作在ISO协议栈规定的不同层次,算法应当对各个网络设备都建立正确的互连关系,这
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1