所有栏目

网络拓扑发现

作者:爱百科

网络层拓扑发现的原理是结合ICMP和ARP以及SNMP,对指定的网络进行活动设备的检查,得到所有的活动设备,然后通过SNMP取得设备的基本信息,根据基本信息确定设备的类型,再根据设备的类型取得相应设备的详细信息。

网络拓扑发现详细介绍

网络层拓扑发现的原理是结合ICMP和ARP以及SNMP,对指定的网络进行活动设备的检查,得到所有的活动设备,然后通过SNMP取得设备的基本信息,根据基本信息确定设备的类型,再根据设备的类型取得相应设备的详细信息。

网络拓扑发现概述

随着信息时代的到来,对计算机网络的依赖使得计算机网络本身运行的可靠性变得至关重要,对网络管理也就有了更高的要求。

按照OSI的定义,网络管理主要包括五个功能域:故障管理、配置管理、性能管理、安全管理和计费管理。在五大功能域中,配置管理是基础,它的主要功能包括发现网络的拓扑结构、监视和管理网络设备的配置情况。其它的各项功能都以已知网络的拓扑结构为基础。

网络拓扑发现的主要目的是获取和维护网络节点的存在信息和它们之间的连接关系信息,并在此基础上绘制出整个网络拓扑图。网络管理人员在拓扑图的基础上对故障节点进行快速定位。

网络拓扑发现拓扑发现原理

网络拓扑自动发现的方法很多,但归结起来主要有以下三种:基于SNMP的网络拓扑发现方法;基于通用协议的网络拓扑发现方法;基于路由协议的网络拓扑发现方法。

网络拓扑发现网络层的拓扑发现

网络层拓扑发现的步骤如下:

首先通过默认网关路由器获取存在的子网列表,然后通过ICMP Ping或路由器中的ARP信息遍历指定子网中所有的活动设备,并用系统团体名库去找到设备的团体名,如果找到则用SNMP协议获取设备的基本信息,并判断出设备的类型(路由器/交换机/防火墙/UPS/主机等),并在此基础上获取相应设备的详细信息。如果没有找到设备的团体名,则默认此设备为主机。

如何找到默认的路由网关呢?查找拓扑发现程序所在计算机的SNMP MIBII中的ipRouteTable,如果发现ipRouteDest值为0.0.0.0的记录,则说明程序所在的计算机设置了默认网关,ipRouteNextHop值即为默认网关的地址。然后检查默认网关的ipForwarding值。如果为1,则表明该默认网关确实是路由设备,否则不是。

如何取得存在的子网列表呢?遍历路由器MIBII的IP管理组中管理对象ipRouteDest下的所有对象,以每个路由目的网络号为索引,查询ipRouteType字段的值。若该值为3(direct)表明为直接路由,若该值为4(indirect)则为间接路由。间接路由表明要通往目的网络或目的主机还要经过其它路由器,而直接路由表明与目的网络或目的主机直接相连,这样就可以得到与路由器直接相连的网络号。再根据网络号中的每条记录查询其路由掩码(ipRouteMask)。根据取得路由掩码,就可以确定每一个存在的网络子网的IP地址范围。

如何发现其它的路由设备?查找默认路由网关MIBII的IP管理组路由表中类型为间接路由的路由表项,得到路由的下一跳地址(ipRouteNextHop)。遍历下一跳地址给出的路由设备,就可以得到更大的网络拓扑。

如何发现网络层设备的连接关系?子网与路由器的连接关系遍历每个路由器下包含的子网来确定,主机与子网的关系可以通过主机IP与子网掩码来确定。

网络拓扑发现链路层的拓扑发现

当我们使用网管管理着很多设备,而且设备之间已经实际配置有许多光连接的时候,比如光连接数超过1000条,如果让我们在网管上一条一条地通过纤缆连接功能去配置,此时一定会很吃力,这时我们可以在网管上使用拓扑自动发现功能来帮助我们,自动发现设备之间的光连接。

对于交换机、路由器设备,链路层拓扑发现的原理是根据交换机的cdp邻居表、端口ifIndex和port对应表、自学习表判断出各交换机的连接关系,具体的拓扑发现步骤如下:

A、获取所有路由器的arp表信息,对于主机则通过SendARP或netbios来获取arp信息。

B、获取所有交换机的cdp邻居表、端口的ifIndex和port对应表、自学习表。

C、对交换机的互连关系进行判断,如果某个交换机的某个端口学习到了路由器的mac地址,则认为此端口为上行端口,如果交换机只有一个端口有自学习表项,也认为此端口是上行端口。如果一个交换机的上行端口中没有接其它的交换机则此交换机为根交换机。

D、对于每个交换机,如果它的某个端口和其它根上的多个端口冲突,通过cdp信息修正2者之间的连接关系,

①表示邻居的根交换机,用

②表示自己的根交换机,

如果

①=

②,表示它和它的邻居已经在同一棵树上,不处理;

如果是上行端口上的邻居,将

①的层次和父亲改成self的层次和父亲;将

①下的所有接点的层次加(self的层次-1)那么多;将self的父亲改成邻居的端口,并将self的level增加(邻居的层次+1)那么多;将self下所有接点的level增加(邻居的层次+1)那么多。

如果是其他端口上的邻居,将

②的层次和父亲改成邻居的层次和父亲;将

②下的所有接点的层次加(邻居的层次-1)那么多;将邻居的父亲改成self的端口,并将邻居的level增加(self的层次+1)那么多;将邻居下所有接点的level增加(self的层次+1)那么多。

E、对每个交换机,如果不是根交换机,则在其上加一个节点表示上行端口,并查找该交换机下的主机和UPS。

对于PTN设备,拓扑自动发现功能的核心是LLDP(link Layer Discovery Protocol),链路层发现协议,是数据设备数据链路层的功能,协议的作用为使不同及相同厂商的设备能够在网络中相互发现并交互各自的系统及配置信息,可以实现光连接自动发现。

LLDP的报文结构如下:

在以太网MAC帧中,使用Type类型字段为0x88CC来表示LLDP报文具体结构如下:

Destination MAC address:目的MAC,为固定的组播MAC 0x0180.C200.000E

Source MAC address:源MAC地址,发送LLDP报文设备的MAC地址

Type:类型字段,为0x88CC,表示LLDP报文

LLDP PDU:LLDP数据,以TLV为单位,表示如设备MAC地址等相应信息

FCS:frame Check Sequence,帧校验序列,实现MAC帧传送过程中的检错及纠错

TLV(Type、Length、Value),是LLDP报文中最重要的内容,可以有很多种TLV,其中基本TLV如下:

当本端设备端口启用LLDP功能后,如果其模式为收发或只发,并且与对端设备间有端口之间的连接,那么它将向对端端口发送LLDP PDU,其中包括本端设备MAC地址、本端连接端口等等信息;对端设备接收到该LLDP PDU后,经过相应处理后放入MIB中,比如LLDP.MIB,以供网管系统查询。网管系统收到发现请求后,查询设备上存储的对应光连接信息,根据信息进行拓扑自动发现,自动生成对应网元对应端口之间的光纤连接。

网络拓扑发现路由层的拓扑发现

路由层的拓扑发现原理是TraceRoute所有设备节点,根据返回的路由路径即可得到相关设备的路由拓扑关系,拓扑发现的步骤如下:

首先找到根节点,如果没有则生成一个;然后对每一个非路由器设备调用TraceRoute,将device id 为0而又没有子节点的treenode删掉,将device type是主机,但有子节点的设备改成路由器。

对于多址路由器的问题,可以通过查看路由器的osid是否一致来确定是否属于同一个路由器的。

网络拓扑发现目前Java技术实现的拓扑发现产品

ObjectSNMP是采用Java技术和SNMP技术实现的网络拓扑发现产品,目前的功能如下:

全网设备发现:可以按网络号、IP范围、多个网络范围内,自动搜索发现设备,获取设备的基本信息、设备类型(交换、路由、路由交换、终端设备、厂商特有类型等)、MAC地址、ARP表、交换机端口、路由器接口、路由表、交换机转发表、主机IP地址等信息。

网络漫游发现:给定少数几个已知的网络号、IP范围,按用户指定的漫游深度和漫游广度,进行全网漫游发现。

网络拓扑自动发现:可以发现交换机与交换机、交换机与PC机、交换机与终端设备、交换机与路由器、路由交换机与路由交换机之间 的连接关系。连接关系可以定位到具体的设备端口、设备接口上。支持在任意指定的设备之间发现它们的所有连接,在全网范围内发现连接关系。

ObjectSNMP的物理拓扑自动发现采用了全新的技术:即支持单一Cisco、华为网络,也支持各种厂商设备混合网络。支持模糊连接定位,在数据不全或设备缺失的情况下,尽可能发现连接关系。可在任意的网络环境中工作,不需要用户对网络做任何假设(如路由器假设、根交换机假设、上/下行端口假设、边缘设备假设等)。

热点导航
教育资讯 知道问答 公考资讯 司法考试 建筑知识 工作范文 大学排名 报考专业 学习方法 句子美文 秒知回答 作业解答 精选答案 知途问学