CN1756189B - 基于snmp的ip网络拓扑发现方法 - Google Patents

基于snmp的ip网络拓扑发现方法 Download PDF

Info

Publication number
CN1756189B
CN1756189B CN 200410081134 CN200410081134A CN1756189B CN 1756189 B CN1756189 B CN 1756189B CN 200410081134 CN200410081134 CN 200410081134 CN 200410081134 A CN200410081134 A CN 200410081134A CN 1756189 B CN1756189 B CN 1756189B
Authority
CN
China
Prior art keywords
network
switch
topology
subnet
topology discovery
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN 200410081134
Other languages
English (en)
Other versions
CN1756189A (zh
Inventor
沈曾伟
李未
郎昕培
周刚
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beihang University
Original Assignee
Beihang University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beihang University filed Critical Beihang University
Priority to CN 200410081134 priority Critical patent/CN1756189B/zh
Publication of CN1756189A publication Critical patent/CN1756189A/zh
Application granted granted Critical
Publication of CN1756189B publication Critical patent/CN1756189B/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

一种基于SNMP协议的自动地发现网络的物理布局以及连接关系的IP网络拓扑的发现方法。该方法包括如下步骤:建立SNMP网络管理运行的环境;在目标网络的每个网络节点上设置一个管理信息库(MIB);网络管理进程通过应用层协议对SNMP管理信息库进行访问;网络管理应用向网络管理进程内发出的信息,经底层协议到达被管理网络实体;网络层的拓扑发现;数据链路层的拓扑发现。在网络管理中,采用本发明的方法可探测网络层及数据链路层的拓扑结构,获取和维护网络节点的存在性信息和连接关系信息,并绘制出整个网络拓扑图。网管人员通过拓扑结构信息可对网络故障进行定位,发现网络瓶颈,从而优化整个网络。

Description

基于SNMP的IP网络拓扑发现方法
技术领域
本发明涉及网络管理的方法,更具体地说,涉及IP网络拓扑的发现方法。
背景技术
按照OSI开放系统互联模型(Open System InterconnectionReference Model)的定义,网络管理主要包括五个功能域:故障管理、配置管理、性能管理、安全管理和计费管理。
在五大功能域中,配置管理是基础,它的主要功能包括发现网络的拓扑结构、监视和管理网络设备的配置情况。
网络拓扑管理目标是:分层显示运营网络的拓扑结构,为性能、告警、配置数据的处理提供支持,从而全面、动态地反映网络的运行状况,为用户监视整个网络提供强有力手段。网络拓扑发现的主要目的是获取和维护网络节点的存在性信息和它们之间的连接关系信息,并在此基础上绘制出整个网络拓扑图。网络管理人员通过拓扑结构信息还能对网络故障进行定位,发现网络瓶颈,从而优化整个网络。根据OSI的定义,网络分为七层结构,如图1所示,从低到高分别为:物理层、数据链路层、IP层、传输层、会话层、表示层、应用层。
网络拓扑可以分成不同的逻辑和物理层次。在实际的物理网络中,网络拓扑中的节点应该是由电缆相连的各种设备端口。物理网络拓扑又对应着不同抽象层次的逻辑拓扑结构。
在IP网络层,拓扑发现的对象是路由器、子网和IP主机,包括三者之间互相的链接关系。网络层的拓扑发现算法比较成熟。
物理链路层的拓扑发现对象是交换机和网段,以及交换机和交换机、交换机和网段间的链接关系。相对而言,各研究机构在方面所做的工作很少。随着大量的交换机被部署到网络中,网络层拓扑发现所不能发现的部分越来越多。
另外,在网络管理中,仅仅发现网络拓扑是不够的,因为网络拓扑结构不断在变化。比如增加一台路由器、减少一台主机、甚至修改一台网络设备的配置信息都会导致网络拓扑结构发生变化。为了如实的反映网络的变化,拓扑发现软件必须具备实时更新的能力,而现在大多数网管软件基本都不支持这种需求。
该发明针对基于判断交换机互联的直接连接定理和间接连接定理,提出了一种完整的基于SNMP(Simple Network Management Protoco1简单网络管理协议)的拓扑发现算法,设计并实现了一个自上而下的拓扑发现框架结构。
SNMP采用“管理进程/代理进程”模型来监视和控制各种可管理网络设备。其核心思想是在每个网络节点上设置一个管理信息库MIB(Manage Information Base),由节点上的代理负责维护,管理进程通过应用层协议对这些信息库进行访问。
图2说明了SNMP网络管理框架的一般体系结构,它由四个主要部件构成,分别是:通信网络、网络协议、网络管理进程和被管网络实体。
网络管理应用向网络管理进程内的SNMP Manager(SNMP管理者)发出Get、Get-Next或Set三种消息,经底层协议到达被管理网络实体的SNMP Agent(SNMP代理),由Agent将这三种消息传达给SNMP管理对象。当SNMP管理对象被触发相应操作后,便向SNMP Agent发送Get-Response或Event两种应答,通过底层协议传送给网络管理进程的SNMP Manager,由Manager向SNMP网络管理应用通告操作的完成情况。
发明内容
本发明的目的在于提供一种基于SNMP协议的自动地发现网络的物理布局以及网络节点间的相互连接关系的IP网络拓扑的发现方法。利用该方法可自动探测整个网络,发现网络设备以及之间的连接关系,最后绘制出网络拓扑图。
本发明提供的基于SNMP的网络拓扑发现方法包括:
建立SNMP网络管理运行的环境的步骤;
在目标网络的每个网络节点上设置一个管理信息库MIB(ManageInformation Base)的步骤;
网络管理进程通过应用层协议对SNMP管理信息库进行访问的步骤;
网络管理应用向网络管理进程内发出的信息,经底层协议到达被管理网络实体的步骤;
网络层的拓扑发现的步骤,其包括如下步骤:
(a)识别默认网关并确认其IP地址,并判断该默认网关是否为路由设备;
(b)查找获取其路由表。
(c)根据前一步发现的路由器的路由表,识别直接连接在路由器上的子网;
(d)识别网络层的子网与路由设备之间的链路,获取网络层拓扑结构信息;
(e)根据路由表中标识的下一跳地址信息,发现新的路由器,重复b、c、d三步,直到发现不了新的路由器为止。
数据链路层的拓扑发现的步骤,包括如下步骤:
(1)识别当前子网的网络设备并获取APR缓存;
(2)遍历子网内所有交换机,下载所有交换机的转发数据库;
(3)计算交换机间的直接和间接连接关系;
(4)重新调整子网内的网段,把网段和交换机的连接关系构造成链路对象,添加到子网的2层连接对象链表L2ConnList中;
其中网络层的拓扑发现的步骤(a)包括访问拓扑发现程序所在计算机的SNMP MIBII中的ipRouteTable,如果发现有ipRouteDest值为0.0.0.0的记录,则说明程序所在的计算机设置了默认网关,该记录的ipRouteNextHop值即为默认网关的地址。检查默认网关的ipForwarding值。如果为1,则表明该默认网关确实是路由设备,否则不是。
其中所述的网络层的拓扑发现的步骤(b)包括查询路由器MIB II的IP管理组中管理对象ipRouteDest下的所有对象,ipRouteType字段的值,若该值为3,则表明这条路由为直接路由,若该值为4,则为间接路由;根据直接相连的网络号及其网络掩码(ipRouteMask),
其中所述的网络层的拓扑发现的步骤(c)包括在发现与路由器直接相连的子网时利用SNMP协议得到子网和路由器的连接关系的步骤。
其中所述的网络层的拓扑发现的步骤(e)包括查询默认网关MIBII的IP管理组路由表中类型为间接路由的路由表项,得到路由的下一跳地址(ipRouteNextHop),利用递归方法搜索下一跳的路由设备的路由表,根据该路由表确定与该路由器存在连接关系的路由设备。
其中数据链路层的拓扑发现步骤中所述识别当前子网的网络设备属于何种类型是通过特定的MIB组进行判别实现的,其判断标准如下:
如果MIB组中的i pForwarding对象(OID号为“1.3.6.1.2.1.4.1”)值为1,判定该设备为路由器。
如果MIB组中的dotldFdpTable组(OID号为1.3.6.1.2.1.17.4.3)为非空,判断该设备为交换机。
如果MIB组中的printmib组(OID号为1.3.6.1.2.1.43)为非空,则判断该设备为打印机。
其中数据链路层的拓扑发现中所述获取其物理地址的步骤包括通过MIB组的IpNetToMedia组(OID号为1.3.6.1.2.1.4.22)获得该路由器的IP报文所对应的物理地址的映射表。
其中所述的数据链路层的拓扑发现步骤中计算交换机间的直接和间接连接关系是通过以下准则进行判断的:
设交换机A在x端口上学习到的MAC地址的集合为Fx A,交换机B在y端口上学习到的MAC地址的集合为Fy B
若Fx A和Fy B中同时存在着对方的MAC地址;
或Fx A中存在B的MAC地址,并且A上存在一个端口k(k≠x),使得Fy B∩Fk A≠φ;
则可确定交换机A和B通过x和y端口间接相连。
其中数据链路层的拓扑发现所述的计算交换机间的直接和间接连接关系判断方法,包括:
(1)在进行交换机链接发现之前,拓扑发现服务器选定一台交换机向其它交换机发送回声请求(Echo Request)报文,使每台交换机可学习到其他交换机的物理地址;
(2)拓扑发现服务器下载每台交换机的转发数据库后,对每台交换机构造一个二维链表。
在网络管理中,采用本发明的基于SNMP的网络拓扑发现方法具备实时更新的能力,可探测网络拓扑以及数据链路层的拓扑结构,获取和维护网络节点的存在性信息和连接关系信息,在此基础上绘制出整个网络拓扑图。网络管理人员通过拓扑结构信息还能对网络故障进行定位,发现网络瓶颈,从而优化整个网络。
附图说明
图1为OSI开放系统互联模型分层结构示意图;
图2所示为简单网络管理协议(SNMP)体系结构;
图3所示为网络对象树型结构图;
图4所示为设备链表数据结构示意图;
图5所示为各类对象关系图;
图6所示为拓扑发现总体流程;
图7所示为网络层拓扑发现总体流程;
图8为遍历路由表发现新子网和路由器的算法流程图;
图9所示为链路层网络模型图;
图10所示为链路层拓扑发现的流程图;
图11所示为设备类型的判别算法流程图;
图12所示为设备物理地址的采集算法流程图;
图13为在交换机间伪造地址发送Echo Reques t的算法流程图;
图14所示为交换机转发数据库二维链表;
图15为间接连接定理的条件一判定算法流程图;
图16所示为拓扑服务器伪造ping报文的源地址的示意图;
图17所示为标识间接连接关系的二维链表;
图18为间接连接定理的条件二判定算法流程图;
图19为交换机端口间直接连接关系的发现算法流程图;
图20所示为交换机的直接连接链表;
图21所示为根据本发明的基于SNMP的网络层拓扑发现结果一;
图22所示为根据本发明的基于SNMP的网络层拓扑发现结果二;
图23所示为根据本发明的基于SNMP的数据链路层拓扑发现结果。
具体实施方式
本发明将每个网络设备都看作一个对象。这些对象不仅包括各种物理对象(如路由器,交换机,主机等),还包括各种逻辑对象(如网段,子网,连接等)。
网络对象存在着固定的父子关系。比如,被管网络(Network)对象的子对象有路由器对象(Router)、子网对象(Subnet)、路由器和子网之间的连接对象(L3Link)。网络中所有的设备对象组成一棵以Network对象为根的树,如图3所示。
各种对象的含义是:
Network:被管理网络;         Router:路由器;
RInterface:路由器端口;      Subnet:子网;
L3Link:三层链路,包括路由器和路由器间链接,路由器和子网间链接;
Switch:交换机;              SInterface:交换机端口;
Segment:网段;
L2Link:第二层链路,包括交换机和交换机间链接,交换机和网段间链接;
Host:IP主机;                Netcard:网卡;
Printer:打印机。
拓扑发现的对象可以分为三层拓扑和二层拓扑两部分。其中,三层拓扑由IP层拓扑发现方法负责生成;二层拓扑由数据链路层拓扑发现方法负责生成。我们所关心的各种网络对象属性如下:
[三层拓扑]:
1)路由器属性:路由器在线状态、路由器生产厂商和型号、路由器的IP地址、操作系统类型,端口数量,路由条数,OSPF和BGP协议状态。
2)子网属性:子网地址和子网掩码
3)路由器端口属性:各个端口的端口索引号,端口物理类型(以太网,串口,光纤口等),端口IP地址和子网掩码,端口物理地址,端口带宽,端口工作状态(Up或Down)。
[二层拓扑]:
1)交换机属性:路由器在线状态、路由器生产厂商和型号、路由器的IP地址、操作系统类型,端口数量。
2)网段属性:接入交换机IP和端口索引。
3)交换机端口属性:各个端口的端口索引号,端口物理类型(以太网,串口,光纤口等),端口IP地址和子网掩码,端口物理地址,端口带宽,端口工作状态(Up或Down)。
4)网段中的主机以及主机的属性:主机在线状况,主机名、操作系统类型、IP地址、子网掩码,主机的CPU索引,内存索引,磁盘索引,接入交换机的IP和端口号。
5)主机中的网卡以及网卡属性:网卡索引号、网卡IP地址和子网掩码,网卡带宽。
[三层和二层拓扑共有对象]:
链路:链路本端设备IP,对端设备IP,本端端口索引号,对端端口索引号。
配置信息在计算机内存中的存放格式和相互的从属关系。
所有网络设备都以双向链表形式保存于其父节点的结构体中,如图4所示。
List类具体定义如下:
单个设备节点:
  class Node
  {
  public:
     Node*prev,*next;//指向链表中的前一个和后一个设备节点
     T obj;//节点数据信息,类型可以是任意的
  };
多个节点构成的链表
      class List
{
public:
   Node<T>*head,*tail;//该链表的头指针和尾指针
   unsigned int size;      //链表的节点数
};
Object类(实体类)是网络中所有物理设备和逻辑设备的共同基类,所有的物理设备和逻辑设备都具有Object类包含的属性。
Class Object{
public:
/*指向该设备的父对象的指针*/
Object    *p_parent-obj;
/*设备名*/
char obj_name[MAX_OBJ_NAME+1];
//设备信息描述
char obj_desc[MAX_OBJ_DESC+1];
//设备当前状态,例如正常节点、不在线节点或新发现节点
int status;
//以该设备对象为一端的链路列表
List<Link*>linkPLst;
}
Device类(设备类)是交换机类(Switch)、路由器(Router)类和主机类(Host)类公共的父类,集合了这三种网络设备对象的共有属性,并继承了Object类。
class Device:public Object
{  public:
   //该设备的主IP地址
   ip_addr_v4ma in_ip_addr;
   //该设备上所配置的所有IP地址//
   List<ip_addr_v4>ip_entr-list
   //IP地址所对应的端口索引号*/
List<unsigned int>ip_entr_ifindex;
//该设备所具有的端口列表
  List<Interface>if-list;
//设备所支持的最大SNMP版本号
   int max_snmp_ver;
   //该设备所需要的SNMP口令字
   char communi ty[MAX_COMMUNITY_LEN+1];
//设备厂商型号ID
char enterpri se_id[50];
   //该设备是否存在于多个子网
   bool bMulSubnet;
}
Router类保存的是单台路由器所具有的配置信息,继承了Device类的属性,并具有某些独有的属性。
Class Router:Public Device{
    public:
    //OSPF路由状态表
    List<ospf_status>  ospf_list;
    //BGP路由状态表
    List<bgp_status>   bgp-list;
    //路由器路由表
    List<route_table>route_table-list;
}
ospf_status和bgp_status类分别用来保存单条OSPF和BGP路由信息。
class ospf_status{
public:
   //邻居路由器地址
char       NbrAddr[20];
//OSPF状态(full,close或connect)
int        o_status;
};
class bgp_status{
public:
   //邻居路由器地址
   char          NbrAddr[20];
   //BGP状态(established或active)
int          b_status;
};
route_tab le类保存单条路由信息,
class route_table{
public:
   //下一跳目标地址
ip_addr_v4       dest;
   //接口地址
char         interface_addr[20];
//路由类型,直接路由或间接路由
int           type;
}
Switch类保存的是单台交换机所具有的配置信息,继承了Device类,并具有一些独有的属性。
class Switch:public Device
{
public:
     //保存该交换机的链路转发表
List<port>port_list;
//表明该设备是否为无线接入点
   bool     bWirelessSw;
}
port类型用来保存链路转发表信息,每个port对象保存一个交换机端口的转发表,具体定义如下:
class port
{
public:
   //该port对象所属交换机对象的指针
Switch*p_sw;
//该port对象所对应的交换机端口序号
unsigned int if_index;
   //该port对象所具有的转发表
   List<fwd_addr>fwd_addr_list;
};
Host类保存的是单台主机所具有的配置信息,继承了Device类,并具有一些独有的属性。
class Host:public Device
{
public:
   //操作系统类型
char operate_sys_type[MAX_HST_SYSTYPE+1];
    //CPU序号
char CpuIndex[MAX_HST_CPU+1];
//磁盘序号
    char DskIndex[MAX_HST_DSK+1];
    //磁盘名
char DskLabel[MAX_HST_DSK+1];
    //内存序号
char MemIndex[MAX_HST_MEM+1];
    //主机默认网关
char gateway_ip[MAX_ADDR_STR+1];
};
Interface类保存单个设备端口的配置信息,继承了Object类,端口包括路由器端口、交换机端口和网卡。
class Interface:public Object
{
public:
Device*p_dev;//所属设备的指针
unsigned int if_index;//端口的索引号
unsigned int if_type;    //端口的类型,例如以太网口、串口、光纤口等
unsigned long if_speed;//端口速度
union{
  char ether_mac[6];
}if_phy_addr;      //端口的物理地址
int if_status;         //端口的工作状态,(Up或Down)
char if_descr[256];    //端口描述
char port_ip[MAX_DEV_IP+1];//端口所配置的IP地址
char main_ip[MAX_ADDR_STR+1];//端口的主IP地址
char port_ma sk[MAX_DEV_IP+1];//端口所配置IP地址的子网掩码
}
Link类保存单条链路的信息,继承了Object类。
class Link:public Object
{
public:
//链路本端设备对象和端口索引
    Object  *p_obj1;
    unsigned int if1;
    //链路对端设备对象和端口索引
    Object  *p_obj2;
    unsigned int if2;
    };
Segment类保存单个网段的配置信息和子节点信息,继承了Object类。
class Segment:public Object
{
public:
   //网段对应的交换机转发表单个端口列表
   List<switch_port_pair>spp_list;
   //网段内的所有主机
   List<Host>host_list;
  //该网段对应的物理地址转发列表
  List<fwd_addr>_ _temp_fwd_addr_list;
  //与该网段相连的交换机端口
  Interface*p_if;
//与网段相连交换机的IP地址
   unsigned long switch_ip;
}
Subnet类保存单个子网的配置信息和子节点信息,继承了Object类。
class Subnet:public Object
{
public:
   //该子网的网络地址和子网掩码
   unsigned long net_addr;
   unsigned long net_mask;
   //子网内的交换机列表
   List<Switch>sw_list;
   //子网内的网段列表
List<Segment>seg_list;
//子网内的第二层链路列表
List<L2link>12link_list;
    //该子网内设备的“物理地址——IP地址”转换表
    CMap<LONGLONG,LONGLONG&,u_long,u_long&>arptable;
}
Network类保存整个局域网的子节点信息,继承了Object类。
clas sNetwork:public Object
{
public:
   //该局域网内的路由器列表
List<Router>router_list;
//该局域网内的子网列表
   List<Subnet>subnet_list;
   //该局域网内的第三层链路列表
   List<L3link>13link_list;
//该局域网内的“交换机——路由器”链接列表
   List<LRSlink>lrsLinkList;
}
各种类之间存在着父子或兄弟关系,如图5所示
整个拓扑发现算法可以表述为图6
可表述为:
①拓扑发现程序先获得拓扑发现服务器(运行拓扑发现程序的主机)所配置的默认网关;
②然后以该网关为起点进行网络层的拓扑发现,将得到网络内的路由器,网络层链路和子网信息;
③根据上一步得到的子网信息,对每个子网进行数据链路层的拓扑发现。
网络层的拓扑发现
网络层拓扑发现所需要的SNMP MIB组支持
MIB-II(RFC-1213)是标准的SNMP MIB,所有的路由器都必须实现它。拓扑发现程序为了具有通用性的特点,必然选择MIB-II作为拓扑发现工具。MIB-II由很多不同的组组成,本节的拓扑发现算法用到的组包括:sytem,interfaces,和ip。下面详细介绍这三个组中包含的对象。
1)System组(OID号为1.3.6.1.2.1.1)
OID(Object Identifier):按照ASN.1标准(国际电信联盟和国际标准化组织开发的标准化语言)规定的类型标识符,用来规定SNMP管理框架(SMI)内的各种对象。
该组内包含七个对象,分别为:sysDescr、sysObjectID、sysUpTime、sysContact、sysName、sysLocation和sysServices。其中sysDescr描述了设备的相关信息,一般包括厂商,型号等。SysName为设备的名字,算法中会用这个对象来判断不同的IP地址是否属于同一个设备
2)Interfaces组(OID号为1.3.6.1.2.1.2)
该组包含两个对象ifNumber和ifTable。其中,ifNumber对象表示该设备所具有的接口数量。该组的另一个元素ifTable是一张表,表内的每一个字段都是某一个接口的一个属性,包括接口索引(ifindex),接口类型(ifType),接口速度(ifSpeed)和接口物理地址(ifPhysAddress)等。
3)IP组(OID号为1.3.6.1.2.1.4)
该组的元素较多,其中有三个表和一个对象对拓扑发现来说比较重要,分别是ipAddrTable,ipRouteTable和ipNetToMediaTable和对象ipForwarding。
通过对象ipForwarding的值,可以判断被访问对象是否为路由器:为1,是路由器;为2,不是路由器。
通过表ipAddrTable,可以找到被管设备所有的IP地址,同时结合interfaces组的ifTable表,可以把接口和其IP地址一一对应起来。
网络层的拓扑发现算法主要就是利用表ipRouteTable来判断网络层的拓扑结构的。子网与路由器以及路由器和路由器的关系都能从路由表中得出来。该表中对应拓扑发现的对象列举如下:
IpRouteDest:路由的目的地址。如为0.0.0.0,说明该路由为缺省路由。通往同一个目的地的路由可能有多个,路由的选择依赖于所使用的路由协议。
IpRouteNextHop:路由的下一跳路由器地址。
ipRouteMask:路由目的地的子网掩码。提取IP数据包中的目的地地址,与ipRouteMask进行按位“与”运算,得到的结果与ipRouteDest比较,如相同则应选择该路由。如果ipRouteDest为0.0.0.0,则规定ipRouteMask也为0.0.0.0。
ipRouteType:路由的类型,包括直接路由(direct)和间接路由(indirect)两种。
网络层对象的发现方法
1)默认网关的发现
首先,访问拓扑发现程序所在计算机的SNMP MIBI I中的ipRouteTable,如果发现有ipRouteDest值为0.0.0.0的记录,则说明程序所在的计算机设置了默认网关,该记录的ipRouteNextHop值即为默认网关的地址。
检查默认网关的ipForwarding值。如果为1,则表明该默认网关确实是路由设备,否则不是。
2)子网的发现
遍历路由器MIBII的IP管理组中管理对象ipRouteDest下的所有对象,以每个路由目的网络号为索引,查询ipRouteType字段的值。若该值为3(direct),则表明这条路由为直接路由,若该值为4(indirect),则为间接路由。间接路由表明在通往目的网络或目的主机的路径上还要经过其它路由器,而直接路由表明目的网络或目的主机与该路由设备直接相连,这样就得到了与路由器直接相连的网络号。
再以这组网络号中的每个为索引,查询其路由掩码(ipRouteMask)。根据路由掩码,就可以确定这组网络中每一个的IP地址范围。
例如,已知路由器的IP地址为192.168.4.1,且路由器支持SNMP协议。利用SNMP协议可以得到以下与路由器直接相连的子网,如图7所示。
网络号             网络掩码             地址范围
159.226.204.128    255.255.255.192      159.226.204.129~192
192.168.0.0        255.255.255.0        192.168.0.1~2.55
192.168.4.0        255.255.254.0        192.168.4.1~192.168.5.255
192.168.6.0        255.255.255.0        192.168.6.1~255
192.168.7.0        255.255.255.0        192.168.7.1~255
3)其他路由设备的发现
对于除了默认网关之外的路由设备,查询默认网关MIBII的IP管理组路由表中类型为间接路由的路由表项,得到路由的下一跳地址(ipRouteNextHop)。下一跳地址给出了与该网关相连的路由设备,利用递归方法搜索这个新发现路由器的路由表。
例如,有下列路由表
IpRouteDest     IpRouteMask        IpRouteNexthop
159.226.204.128 255.255.255.192    159.226.204.7
192.168.4.0     255.255.254.0      192.168.4.1
192.168.6.0     255.255.255.0      192.168.6.1
192.168.7.0     255.255.255.0      192.168.7.1
根据该路由器的路由表,可以认为可能有159.226.204.7,192.168.4.1,192.168.6.1,192.168.7.1这四台路由器与该路由器存在连接关系。
4)网络层的链路对象
网络层拓扑主要指子网和路由器之间的连接关系。子网和路由器的连接关系可以在发现与路由器直接相连的子网时得到,如图7的例子,可以得到下面这五条链路:
192.168.4.1~159.22.204.128/26
192.168.4.1~192.168.0.0/16
192.168.4.1~192.168.4.0/23
192.168.4.1~192.168.6.0/24
192.168.4.1~192.168.7.0/24
网络层拓扑发现算法
网络层拓扑发现的总体流程如图9所示:
(1)判断拓扑发现服务器配置的默认网关是不是路由器:如果是的话,将其加入路由器队列,到第2步;如果否的话,程序结束。
(2)对指针进行初始化,将其置于路由器队列头部。
(3)判断指针是否已到达队列尾部:如果是,程序结束;否,转到第4步。
(4)采集指针指向的那台路由器的路由表。
(5)遍历路由表的每一项,将新发现的链路加入网络层链路队列;新发现路由器加入路由器队列;新发现子网加入子网队列。(该步将在下文做详细介绍)
(6)采集指针所指向的路由器的配置信息,包括该台路由器上的端口配置信息(配置信息种类见上文)。
(7)指针指向路由器队列的下一个节点,转到第3步。
对算法第五步的详细描述如下图10。
(1)判断当前路由器的路由表项是否已处理完毕:是,则结束遍历路由表的操作;否,转入第2步。
(2)判断当前路由表项是否为直接路由:是,转入第3步;否,指向第5步。
(3)判断当前路由表项的RouteMask是否为255.255.255.255:是转向第5步;否,转向第4步。
(4)将RouteDest和RouteMask所标示的子网加入子网队列,将当前路由器和该子网间的链接加入网络层链路队列
(5)判断RouteNextHop标示的路由器是否已存在于路由器队列:否,在路由器队列中加入该路由器;否,转入第6步。
(6)指向下一条路由表项,转到第1步。
数据链路层的拓扑发现
在大多数情况下,仅仅发现网络层的拓扑结构是不够的,还需要发现数据链路层的拓扑结构,即子网内的设备及其连接关系。子网内的设备包括主机、交换机、打印机、集线器等等。连接关系不但包括设备之间的连接,还包括其他设备和交换机端口之间的连接关系以及交换机端口之间的连接关系。其他设备和交换机端口之间的连接关系以及交换机端口之间的连接关系是数据链路层拓扑发现的难点和重点,也是本发明最具创新性之处。
数据链路层拓扑发现的复杂性在于交换机硬件的内在透明性:网络用户感觉不到网络中交换机的存在。这些交换机设备仅仅在执行生成树协议(Spanning tree protocol:使用生成树算法的网桥协议。该协议使一个自学习网桥能够在网络中动态解决环路问题。网桥与其他网桥交换网桥协议数据单元以检测环路,并通过关闭选择的网桥端口来消除环路。)时才和邻居设备交换信息。交换机能保留的唯一状态是它的转发数据库,它的作用是把收到的数据包转发到适当的端口上去。
转发数据库可以通过SNMP访问,该组的名称为dotldTpFdbTable,OID号是“1.3.6.1.2.1.17.4.3”,该组包含三个对象。
dotldTpFdbAddres s:标识转发数据库中保存的学习到的报文源或目的物理地址,OID号是“1.3.6.1.2.1.17.4.3.1.1”。
dotldTpFdbPort:标识对应的物理地址是从哪个交换机端口学到的。
dotldTpFdbStatus:标识对应交换机端口是否处于“Learn”状态。
数据链路层拓扑发现的基本原理
图9为链路层的网络模型图,其中的节点包括交换机和主机。交换机通过它们的端口相连,主机通过局域网或者集线器和交换机的端口相连。当两个不同的节点互相连接,并且在它们之间不存在任何其它设备时,称该连接为直接连接。当两个不同的节点通过中间其它设备连接在一起时,称该连接为间接连接。
由网桥(交换)设备组成的局域网中的设备可以被划分为网桥集合B和端点集合E。如图11所示,B={A,B,C,D}。E={W,X,Y,Z}。交换机通过不同的端口把网络中的其它各种设备连接起来。以太网中还包括:集线器(图11中与A相连),该设备用来把几台主机连接在交换机的同一个端口上;共享网段(图11中和C相连);哑交换机,即不支持SNMP的交换机(图11中和B相连)。
交换机和其它交换机之间的连接不应出现环路,即使物理上有环路,交换机也会利用生成树算法(spanning tree protocol)在所有连接中构成一个无环路的子集。一旦拓扑结构确定,交换机就通过监听每个端口的数据包学习网络中设备的位置信息。当一个新节点发出的数据经过交换机的一个端口时,交换机会把该数据包的源地址加到与该端口对应的列表中。在这以后,当交换机收到一个发往该地址的数据包时,它会自动把这个数据包转发到对应端口上。这些对应关系组成了交换机的转发数据库。
在转发数据库中,交换机的每一个端口都对应着多个设备的物理地址,称这些物理地址所对应设备的集合为该端口的转发集。对于交换机C,用FxC来标识交换机C的端口x的转发集。在图3.4中,F1C={A,B,D,W,X,Z}。该集合随着网络拓扑的变化而变化,同时由于记录有生存时间,所以该集合还随着时间而变化。当该集合中包含该端口下连接的所有设备时,该集合称为完整的,F1 C是完整的。
在网络内所有交换机转发集都是完整的情况下,如果两个交换机的不同端口x,y直接连接,中间没有任何其它设备,那么以相连处为中线,网络中的设备可以划分成两部分,一部分在端口x所对的一侧,即FxA,另一部分在端口y所对的一侧,即FyB。所以,FxA∪FyB=N,且FxA∩FyB=φ。可以总结为:
直接连接定理:如果Fx A和Fy B都是完整的,那么交换机A的端口x和交换机B的端口y直接相连的充要条件是Fx A Fy B=φ且Fx AFy B=N。
但是在一个拥有上百,甚至上千个节点的网络中,某个时刻总会有一些节点处在非活动状态。因此当网络的规模很大时候,获得完整的转发集几乎是不可能的。
因此,必须在交换机转发库不完整的情况下获得数据链路层的连接关系。根据图论原理,可以证明如下间接连接定理:
间接连接定理:只要满足以下2个条件之一,就可以确定交换机A和B通过x和y端口间接相连。设交换机A在x端口上学习到的MAC地址的集合为Fx A
1.Fx A和Fy B中同时存在着对方的MAC地址;
2.Fx A中存在B的MAC地址,并且A上存在一个端口k(k≠x),使得Fy B∩Fk A≠φ;
由于交换机之间很少通信,所以条件1和2中要求的交换机A的FxA中存在B的MAC地址很难满足,可以利用IP欺骗的方法尽量地使条件满足。具体做法是:对于子网中的每个交换机Si,利用IP欺骗方法,以S i的IP地址为源地址,向子网中的其他交换机发送ICMP Echo(ICMP回声请求)消息。在Si收到回应后,Si的转发数据库中将保存有其他交换机的MAC地址。
当交换机间的间接连接关系确定后,就可以计算得到交换机间的直接连接关系。设子网内的所有交换机构成的集合为G。根据生成树协议,交换机之间将构成一棵树。任选其中一个交换机Si为根,假设Si通过n个端口与其他交换机构成间接连接,则可以将G-{Si}构成一个划分∏i,划分中包含n个元素,每个元素是与Si的某个端口p相间接连接的交换机的集合,设为Gp。在Gp中任选一个交换机Sj,则Sj必然通过某个端口q与Si的端口p间接连接,如果Sj不通过端口q与Gp中的其他交换机间接连接,则可以判定Sj通过端口q与Si的端口p直接连接。
数据链路层拓扑发现算法
数据链路层拓扑发现流程图,如图12:
1、计算当前子网的IP地址范围。
2、对IP地址空间内的所有IP地址发送Echo Request报文,将那些存在应答的设备构成一个临时设备队列。
3、遍历临时设备队列,如果当前指针指向设备支持SNMP,则判断该设备是交换机、主机还是打印机,并将新发现设备添加入对应的设备队列。(该步下文详细说明)
4、获得子网内所有设备的物理地址。(该步下文详细说明)
5、遍历子网内所有交换机,下载所有交换机的转发数据库。
6、为每个交换机端口生成一个新的网段对象,网段中包含物理地址在该端口转发集内的主机。
7、按照间接连接定理,计算交换机间的直接和间接连接关系。(该步下文详细说明)
8、重新调整子网内的所有网段。对有直接连接的两个端口对应的网段作“与”操作,如果结果为空,则删除这两个网段;如果非空,则删除原来的两个网段,生成一个新的网段,新网段内的主机为“与”操作的结果。
9、把网段和交换机的连接关系构造成链路对象,添加到子网的2层连接对象链表L2ConnList中。
设备类型的判别算法
交换机、路由器、打印机均可以通过特定的MIB组加以判别,如果某台设备既不是交换机,也不是路由器和打印机,就将它判断为主机。
判断标准如下:
如果MIB组中的ipForwarding对象(OID号为“1.3.6.1.2.1.4.1”)值为1,判定该设备为路由器。
如果MIB组中的dotldFdpTable组(OID号为1.3.6.1.2.1.17.4.3)为非空,判断该设备为交换机。
如果MIB组中的printmib组(OID号为1.3.6.1.2.1.43)为非空,则判断该设备为打印机。
判别算法表述如下,如图12:
1.将指针指向临时设备列表的头部。
2.如果指针到达了链表的尾部,则算法退出。
3.判断指针指向的设备是否支持SNMP:否,转向第6步;是,到第4步。
4.判断指针指向的设备是否为新交换机:是,将其加入交换机队列;否,到第5步。
5.判断指针指向的设备是否为新打印机:是,将其加入打印机队列;否,到第6步。
6.判断指针指向的设备是否为新主机:是,将其加入主机队列;否,到第7步。
7.指针指向临时设备队列的下一节点,转到第2步。
设备所连接交换设备APR表缓存的采集算法
网络中的每台路由器会保留一张经过该路由器的IP报文所对应的物理地址的映射表。这可以通过MIB组的IpNetToMedia组(OID号为1.3.6.1.2.1.4.22)来获得。
算法描述为,示意图见图13。
1、将指针指向临时设备队列的头部。
2、判断指针是否到达设备队列的末尾:是,转向第5步;否,继续。
3、判断指针指向的设备是否支持SNMP:是,采集该设备上所有端口的物理地址;否,继续。
4、指针指向临时设备队列的下一节点,转到第2步。
5、将指针指向网络内路由器队列的头部。
6、判断指针是否到达队列的尾部:是,继续;否,结束本算法。
7、采集指针指向的路由器的IpNetToMedia组,得到各台路由器的ARP(ARP:一种网络层的协议,用途是将IP地址映射为物理地址。)缓冲区映射表。
8、搜寻映射表中包含的IP地址所对应的设备,如果该设备不支持SNMP,将该IP所对应的物理地址,作为该台设备可能的物理地址。
9、指针指向路由器队列的下一节点,转到第6步。
交换机间接链接的发现算法
在执行交换机链接发现算法之前,拓扑发现服务器必须用源地址为某台交换机的IP地址,向已发现的所有交换机发送Echo Request报文。从而使每台交换机都有机会学习到其他交换机的物理地址。
如图16所示,拓扑发现服务器伪造由自己发出的ping报文的源地址。例如拓扑发现服务器自己的IP地址是x,交换机的IP地址是y1,y2....yn。服务器先伪造y1作为ping报文的源地址,y2~yn为目标地址,向这n-1台交换机分别发送ping报文;因此n-1台交换机将各自向y1发送应答,而不是向x应答;这时y1将会包含y2-yn的MAC地址;立刻采集y1的APR表。然后服务器再将ping报文的源地址伪造为y2,向y1、y3-yn发送ping报文,应答到来后采集y2的APR表。以此类推,直到服务器完成伪造ping报文源地址为全部n台交换机的操作。
算法描述如下:
1.将指针指向交换机队列的头部。
2.判断指针当前指向的节点是否到达交换机队列的尾部。是,此部分算法结束;否,继续第3步。
3.以指针指向的那台交换机的地址为源地址,交换机队列中的其它交换机地址为目标地址,发送Echo Reques t报文。立刻采集这台交换机的APR表,尽量得到尽可能多的其他交换机的MAC地址。
4.指针指向交换机队列的下一节点,并转到第2步。
随后下载每台交换机的转发数据库后,对每台交换机构造一个二维链表。
链表每一行的一个节点,是该行对应交换机端口的转发数据库的内容,为网络内某个设备接口的物理地址。如图14所示。
然后按照间接连接定理的二个条件,分别检查是否存在端口间的间接连接。
条件一:‘Fx A和Fy B中同时存在着对方的MAC地址’的算法流程图,如图17所示。
算法描述:
(1)交换机指针指向交换机队列头部。
(2)交换机指针是否指向交换机队列尾部:是,退出本算法;否,继续。
(3)交换机端口指针指向交换机端口队列头部。
(4)交换机端口指针是否指向交换机端口队列尾部:是,到第12步;否,继续。
(5)转发库指针指向当前交换机端口x的转发数据库队列头部。
(6)转发库指针是否指向转发库队列尾部:是,到第11步;否,继续。
(7)当前的转发表项是否是网络中某个交换机端口y的物理地址:是,继续;否,到第10步
(8)上一步找到的那个交换机端口的转发库中,是否包含本端口x的物理地址:是,继续;否,到第10步。
(9)保存两个端口x和y间存在间接连接关系。
(10)数据表项指针指向下一数据表项,转第6步。
(11)交换机端口指针指向下一交换机端口,转第4步。
(12)交换机指针指向下一交换机,转第2步。
条件二的算法流程图,如图18所示。
算法描述:
1、交换机指针指向交换机队列头部。
2、交换机指针是否指向交换机队列尾部:是,退出本算法;否,继续。
3、交换机端口一号指针指向交换机端口队列头部。
4、交换机端口一号指针是否指向交换机端口队列尾部:是,到第16步;否,继续。
5、转发库指针指向一号指针所指向端口x的转发数据库队列头部。
6、转发库指针是否指向交换机端口x的转发库队列尾部:是,到第15步;否,继续。
7、当前的转发表项是否是网络中某个交换机端口y的物理地址:是,继续;否,到第14步
8、创建一个新的交换机端口指针(二号指针),重新指向本交换机的端口队列头部。
9、交换机端口二号指针是否指向交换机端口队列尾部:是,到第14步,否,继续。
10、交换机端口二号指针是否与交换机端口一号指针指向的端口序号相同。是,到第12步;否,继续。
11、交换机端口二号指针的指向端口的转发数据集与y的转发集是否相交:是,到第13步;否,继续。
12、交换机端口二号指针指向端口队列中的下一节点。
13、判定两个端口x和y间存在间接连接关系。
14、数据表项指针指向下一数据表项,转第6步。
15、交换机端口一号指针指向下一交换机端口,转第4步。
16、交换机指针指向下一交换机,转第2步。
当交换机端口的间接连接关系确定后,就可以判定交换机端口之间直接连接关系。
交换机端口间的间接连接关系可以以如图的二维链表方式保存。每台交换机保存这样一张间接连接关系表。
二维链表的每一行队列,表示的是与该行头节点标识的交换机端口存在间接连接关系的端口集合。每一行的头节点,构成了该交换机的端口队列。
交换机直接链接的发现算法
不在图18所示的数据结构上,可以执行直接连接定理的判断算法。算法描述,如图19:
1、交换机指针指向交换机队列头部。
2、交换机指针是否指向交换机队列尾部:是,退出本算法;否,继续。
3、交换机端口指针指向交换机端口队列头部。
4、交换机端口指针是否指向交换机端口队列尾部:是,到第11步;否,继续。
5、间接连接指针指向当前交换机端口Xi的间接连接队列头部。
6、间接连接指针是否指向间接连接队列尾部:是,到第10步;否,继续。
7、当前的间接连接表项指示的某个交换机端口Yij的间接连接队列中是否保留着与Xi的间接连接关系:否,继续;是,到第9步
8、保存两个端口Xi和Yij间存在间接连接关系。
9、间接连接表指针指向下一间接连接表项Yi j+1,转第6步。
10、交换机端口指针指向下一交换机端口,转第4步。
11、交换机指针指向下一交换机,转第2步。
得到交换机端口间的直接连接关系后,以如图20的数据结构保存。每台交换机保存一个这样的链表。
由于每个交换机端口只可能与一个其他端口直接连接;因此,只需保存如图20的二元组链表。
构造完交换机直接连接链表后,就可以执行合并网段的流程了,以下的算法在4.2.1节中已经有过论述。
根据本发明的基于SNMP拓扑发现的结果
拓扑发现的结果是按照父子关系保存在数据库中的数据集合。是经过网络层拓扑发现和数据链路层拓扑发现后的最终结果。利用上层界面显示后的结果如图21,图22,图23所示。

Claims (8)

1.一种基于SNMP的网络拓扑发现方法,该方法包括:
建立SNMP网络管理运行的环境的步骤;
在目标网络的每个网络节点上设置一个管理信息库MIB的步骤;
网络管理进程通过应用层协议对SNMP管理信息库进行访问的步骤;
网络管理应用向网络管理进程内发出的信息,经底层协议到达被管理网络实体的步骤;
网络拓扑发现方法,其步骤为:
识别默认网关并确认其IP地址,并判断该默认网关是否为路由设备,当判断为该默认网关是路由设备,则进行以下步骤:
由网关为拓扑发现的起点,进行网络层拓扑发现;
得到一系列的子网信息,对每个子网进行数据链路层拓扑发现;
其中网络层的拓扑发现,通过获得拓扑发现起点路由设备的路由表,根据路由表的信息,发现与之直接相连的子网或路由设备,并获得下一跳的路由设备地址;
针对发现的下一跳路由设备,采集其路由表,以广度优先遍历的原则,采用与下文所述的网络层的拓扑发现方法相同的处理方式,不断发现新的子网、路由设备和网络层的链路关系;并递归下文所述的网络层的拓扑发现方法,直到没有新的路由设备和子网被发现;
基于上述步骤的网络层的拓扑发现方法,其包括如下步骤:
(a)查找获取其路由表;
(b)根据前一步发现的路由设备的路由表,识别直接连接在路由设备上的子网;
(c)识别网络层的子网与路由设备之间的链路,获取网络层拓扑结构信息;
(d)根据路由表中标识的下一跳地址信息,发现新的路由设备,重复a、b、c三步,直到发现不了新的路由设备为止;
基于上述步骤的数据链路层的拓扑发现方法,包括如下步骤:
(1)识别当前子网的网络设备并获取其ARP缓存表;
(2)遍历子网内所有交换机,下载所有交换机的转发数据库;
(3)计算交换机间的直接和间接连接关系;
(4)重新调整子网内的网段,对有直接连接的两个端口对应的网段作“与”操作,如果结果为空,则删除这两个网段;如果非空,则删除原来的两个网段,生成一个新的网段,新网段内的主机为“与”操作的结果;把网段和交换机的连接关系构造成链路对象,添加到子网的2层连接对象链表L2ConnList中;
其中所述的数据链路层的拓扑发现步骤中计算交换机间的直接和间接连接关系是通过以下准则进行判断的:
设交换机A在x端口上学习到的MAC地址的集合为Fx A,交换机B在y端口上学习到的MAC地址的集合为Fy B
若Fx A和Fy B中同时存在着对方的MAC地址;
或Fx A中存在B的MAC地址,并且A上存在一个端口k(k≠x),使得
则可确定交换机A和B通过x和y端口间接相连,并建立间接连接表;
并通过所得到的间接连接表进一步计算是否为直接连接,其步骤包括:
查验当前交换机端口Xi的间接连接表项指示的某个交换机端口Yij的间接连接队列,若Xi与Yij存在间接连接关系,而Yij与Xi不存在间接连接关系,则判断当前交换机端口Xi与某个交换机端口Yij直接连接。
2.如权利要求1所述网络拓扑发现方法,其中网络层的拓扑发现的步骤(a)包括访问拓扑发现程序所在计算机的SNMP MIBII中的ipRouteTable,如果发现有ipRouteDest值为0.0.0.0的记录,则说明程序所在的计算机设置了默认网关,该记录的ipRouteNextHop值即为默认网关的地址;检查默认网关的ipForwarding值;如果为1,则表明该默认网关确实是路由设备,否则不是。
3.如权利要求1所述网络拓扑发现方法,其中所述的网络层的拓扑发现的步骤(b)包括查询路由设备MIB II的IP管理组中管理对象ipRouteDest下的所有对象,ipRouteType字段的值,若该值为3,则表明这条路由为直接路由,若该值为4,则为间接路由;根据直接相连的网络号及其网络掩码ipRouteMask,得到子网的地址范围。
4.如权利要求1所述网络拓扑发现方法,其中所述的网络层的拓扑发现的步骤(c)包括查询默认网关MIBII的IP管理组路由表中类型为间接路由的路由表项,得到路由的下一跳地址ipRouteNextHop,利用递归方法搜索下一跳的路由设备的路由表,根据该路由表确定与该路由设备存在连接关系的路由设备。
5.如权利要求1所述网络拓扑发现方法,其中所述的网络层的拓扑发现的步骤(d)包括在发现与路由设备直接相连的子网时利用SNMP协议得到子网和路由设备的连接关系的步骤。
6.如权利要求1所述网络拓扑发现方法,其中数据链路层的拓扑发现步骤中所述识别当前子网的网络设备是通过特定的MIB组进行判别实现的,其判断标准如下:
如果MIB组中的ipForwarding对象值为1,判定该设备为路由设备;
如果MIB组中的dotldFdpTable组为非空,判断该设备为交换机;
如果MIB组中的printmib组为非空,则判断该设备为打印机。
7.如权利要求1所述网络拓扑发现方法,其中数据链路层的拓扑发现中所述获取其ARP缓存表的步骤包括通过MIB组的IpNetToMedia组获得当前子网的网络设备的ARP缓冲区映射表。
8.如权利要求1所述网络拓扑发现方法,其中数据链路层的拓扑发现中所述的计算交换机间的直接和间接连接关系判断方法,包括:
(1)发现服务器伪造拓扑发现服务器先以某一交换机地址作为ping报文的源地址,向交换机分别发送ping报文;交换机发送应答;拓扑发现服务器采集的各交换机的ARP表,得到尽量多交换机的MAC地址;
(2)拓扑发现服务器下载每台交换机的转发数据库后,对每台交换机构造一个二维链表,来标识交换机端口和转发数据库表项的对应关系。
CN 200410081134 2004-09-30 2004-09-30 基于snmp的ip网络拓扑发现方法 Expired - Fee Related CN1756189B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 200410081134 CN1756189B (zh) 2004-09-30 2004-09-30 基于snmp的ip网络拓扑发现方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 200410081134 CN1756189B (zh) 2004-09-30 2004-09-30 基于snmp的ip网络拓扑发现方法

Publications (2)

Publication Number Publication Date
CN1756189A CN1756189A (zh) 2006-04-05
CN1756189B true CN1756189B (zh) 2010-04-14

Family

ID=36689155

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 200410081134 Expired - Fee Related CN1756189B (zh) 2004-09-30 2004-09-30 基于snmp的ip网络拓扑发现方法

Country Status (1)

Country Link
CN (1) CN1756189B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102801567A (zh) * 2012-08-28 2012-11-28 北京傲天动联技术有限公司 分层网络拓扑自动发现的方法和分层网络拓扑组建的方法
CN103532746A (zh) * 2013-09-30 2014-01-22 广东电网公司电力调度控制中心 工业系统的业务拓扑生成方法和系统
CN108418701A (zh) * 2017-02-10 2018-08-17 中国移动通信集团贵州有限公司 建立边界网关协议设备网络拓扑的方法及装置

Families Citing this family (70)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100388695C (zh) * 2006-06-07 2008-05-14 北京邮电大学 互联网的域间路由监测与分析系统及其工作方法
CN101155084B (zh) * 2006-09-28 2011-04-13 华为技术有限公司 获取网络拓扑信息的方法及系统
CN101197703B (zh) * 2006-12-08 2011-05-04 华为技术有限公司 对Zigbee网络进行管理的方法及系统及设备
EP2137633A4 (en) * 2007-04-08 2012-07-11 Entropic Communications Inc NETWORK N UDS SURVEY FOR OPTIMIZATION
CN101296113B (zh) * 2007-04-29 2011-01-19 中兴通讯股份有限公司 网元设备、网管系统及网元设备注册接入网管系统的方法
CN101102231B (zh) * 2007-08-20 2010-09-29 杭州华三通信技术有限公司 一种ppp链路路由设备的自动发现方法和装置
CN101198108B (zh) * 2007-11-02 2012-06-06 中兴通讯股份有限公司 一种获取分体式基站系统的射频子系统编址的方法
CN101170445B (zh) * 2007-11-20 2010-11-24 中兴通讯股份有限公司 基于简单网络管理的ip网络管理集群拓扑方法及系统
CN101202670B (zh) * 2007-12-21 2011-04-06 中兴通讯股份有限公司 一种网络管理拓扑的处理方法及系统
CN101330405B (zh) * 2008-07-02 2011-04-13 北京亿阳信通软件研究院有限公司 网络拓扑发现方法及相关设备
CN101552694B (zh) * 2009-05-12 2011-07-20 成都市华为赛门铁克科技有限公司 一种网络拓扑加载方法、装置及网络管理系统
CN101635732B (zh) * 2009-08-27 2013-06-05 迈普通信技术股份有限公司 一种融合ip网络与集群网络的网络管理系统及其方法
CN102045190B (zh) * 2009-10-21 2013-01-02 杭州华三通信技术有限公司 一种网络拓扑发现方法和设备
DE112010004086T5 (de) 2009-12-18 2012-12-27 International Business Machines Corporation System, Programm und Verfahren zum Bilden von Konfigurationsinformationen über Komponenten von Systemen, die Komponenten enthalten, die für das Erfassen von Konfigurationsinformationen eingeschränkt ist
CN102666369B (zh) 2009-12-18 2014-08-27 株式会社村田制作所 薄膜形成方法和量子点设备
CN101753266B (zh) * 2009-12-23 2012-12-26 上海全景数字技术有限公司 同轴承载以太网设备的网络拓扑查找及差错控制优化方法
CN101931560B (zh) * 2010-09-02 2013-03-20 华为技术有限公司 网络设备间的连接关系获取方法及其装置
CN102271350A (zh) * 2011-03-30 2011-12-07 东方通信股份有限公司 无线集群网管中的网络拓扑的自动发现的方法
TW201244421A (en) * 2011-04-28 2012-11-01 Chunghwa Telecom Co Ltd Automatic analyzing method of communication station traffic flow distribution for virtual private network
CN102143007A (zh) * 2011-05-03 2011-08-03 中国南方电网有限责任公司 基于分布式的多级网络拓扑发现方法
CN102307129A (zh) * 2011-09-09 2012-01-04 南京邮电大学 一种ip城域网网元拓扑实时发现方法
CN102333249B (zh) * 2011-10-28 2014-07-09 广州日滨科技发展有限公司 电梯无线对讲系统及相应的路由方法
CN102546251B (zh) * 2011-12-31 2014-06-11 清华大学 基于混合探测技术的网络拓扑发现和自动布局方法及系统
CN102694689B (zh) * 2012-06-06 2016-02-10 杭州华三通信技术有限公司 一种网络拓扑发现方法和装置
CN103036712B (zh) * 2012-12-06 2016-12-28 重庆市电力公司 一种基于网络拓扑结构的vlan 应用服务安全监管方法
CN103001811B (zh) * 2012-12-31 2016-01-06 北京启明星辰信息技术股份有限公司 故障定位方法和装置
CN103731307B (zh) * 2013-12-30 2017-01-04 浙江大学 一种针对多业务的标准化数据面动态重构方法
CN103825759B (zh) * 2014-02-13 2017-10-27 北京百度网讯科技有限公司 获取网络拓扑信息的方法和系统
CN103986800A (zh) * 2014-05-14 2014-08-13 陕西上讯信息技术有限公司 一种基于arp的动态式ip资源管理方法及其系统
CN105224568B (zh) * 2014-06-27 2018-06-26 中国移动通信集团设计院有限公司 一种生成光缆网络拓扑的方法和装置
CN105791176A (zh) * 2014-12-23 2016-07-20 中兴通讯股份有限公司 信息技术it设备端口的确定方法及装置
CN104579978B (zh) * 2014-12-30 2018-01-09 国家电网公司 一种动态网络链路层拓扑发现方法
CN105812168B (zh) * 2014-12-31 2019-02-15 北京神州泰岳软件股份有限公司 一种绘制网络拓扑图的方法和装置
CN106982164A (zh) * 2016-01-18 2017-07-25 中国移动通信集团青海有限公司 一种网络拓扑发现方法及设备
CN107517138A (zh) * 2016-06-16 2017-12-26 中兴通讯股份有限公司 设备检测方法及装置
CN106452827A (zh) * 2016-07-29 2017-02-22 杭州优云软件有限公司 一种混合cdp、lldp与fdb数据的网络拓扑计算方法
CN106161103B (zh) * 2016-08-18 2019-07-16 上海帝联信息科技股份有限公司 交换机拓扑构建方法及装置
CN106411748B (zh) * 2016-10-08 2019-08-06 电子科技大学 跨网络的动态拓扑维护方法
CN106411603A (zh) * 2016-10-26 2017-02-15 山东浪潮商用系统有限公司 一种内网网络拓扑结构自动发现的实现方法
CN107147522B (zh) * 2017-05-11 2019-11-19 京信通信系统(中国)有限公司 一种确定组网拓扑架构的方法及装置
CN107465622B (zh) * 2017-10-09 2020-05-12 安徽皖通邮电股份有限公司 一种利用lldp实现网络拓扑发现的方法
CN107733713B (zh) * 2017-10-18 2020-07-14 北京德塔精要信息技术有限公司 混合网络中网络拓扑的获取方法、系统、设备及存储介质
CN108011746B (zh) * 2017-10-25 2021-06-29 北京知道未来信息技术有限公司 基于Traceroute及SNMP协议的IP级全球互联网拓扑测绘方法
CN108055207A (zh) * 2017-10-26 2018-05-18 北京天元创新科技有限公司 一种网络拓扑感知方法及装置
CN107612751A (zh) * 2017-10-27 2018-01-19 迈普通信技术股份有限公司 网关的获取方法、装置、网络设备及存储介质
CN108282362B (zh) * 2017-12-29 2021-05-14 武汉璞华大数据技术有限公司 一种网络拓扑生成方法、装置和设备
CN108768691A (zh) * 2018-04-16 2018-11-06 复旦大学 基于snmp协议的以太网自动拓扑发现及成环定位检测系统
CN108833129B (zh) * 2018-04-17 2021-08-17 国网冀北电力有限公司信息通信分公司 一种网络拓扑发现方法和装置
CN109088765B (zh) * 2018-08-15 2021-10-29 无锡江南计算技术研究所 一种互连网络路由故障诊断方法及装置
CN110838930B (zh) * 2018-08-16 2022-07-01 中国移动通信集团浙江有限公司 业务逻辑拓扑的生成方法及装置
CN109831318A (zh) * 2018-12-26 2019-05-31 中兴通讯股份有限公司 一种获取网络拓扑的系统、方法和服务器
CN109951321A (zh) * 2019-02-25 2019-06-28 贵州电网有限责任公司 一种变电站站控层网络拓扑分析方法、装置及存储介质
CN109992474A (zh) * 2019-03-08 2019-07-09 江苏达科云数据科技有限公司 一种云环境下系统拓扑探测生成方法
CN111953507B (zh) * 2019-05-17 2022-06-28 中移(苏州)软件技术有限公司 一种网络拓扑发现方法、装置以及计算机存储介质
CN112019367B (zh) * 2019-05-31 2023-08-18 浙江宇视科技有限公司 网络拓扑生成方法、装置、设备及存储介质
CN110545206B (zh) * 2019-09-10 2021-02-02 清华大学 一种时间触发网络中调度表生成的方法、装置及系统
CN112583627A (zh) * 2019-09-30 2021-03-30 杭州海康威视数字技术股份有限公司 一种组网拓扑结构展示方法及装置
CN111092747A (zh) * 2019-10-25 2020-05-01 苏州浪潮智能科技有限公司 一种网络性能诊断的方法、设备及介质
CN110932906A (zh) * 2019-12-02 2020-03-27 合肥城市云数据中心股份有限公司 基于snmp技术的数据中心网络拓朴结构发现方法及其拓朴结构发现系统
CN110912751A (zh) * 2019-12-03 2020-03-24 山东中创软件商用中间件股份有限公司 一种网络设备拓扑图生成方法及相关装置
CN113542192B (zh) * 2020-04-14 2023-09-05 中国移动通信集团浙江有限公司 非法网络设备接入检测方法、装置、计算设备及存储介质
CN111600762B (zh) * 2020-06-02 2023-04-07 山东中创软件商用中间件股份有限公司 一种网络拓扑结构生成方法、装置、设备及介质
CN111865684B (zh) * 2020-07-17 2023-06-20 国网湖南省电力有限公司 局域网网络拓扑自动发现方法
CN112448847B (zh) * 2020-11-13 2023-08-01 中盈优创资讯科技有限公司 一种确定网络资产位置信息的方法及装置
CN112822053B (zh) * 2021-01-13 2023-04-07 科大国创云网科技有限公司 一种基于snmp的链路层网络拓扑结构发现方法及系统
CN112953833B (zh) * 2021-03-25 2022-04-15 全讯汇聚网络科技(北京)有限公司 基于网桥实现三层路由转发的方法、系统及网关设备
CN114024859B (zh) * 2021-11-24 2024-03-26 山西合力创新科技股份有限公司 基于设备和链路发现的网路拓扑生成方法、存储介质及终端
CN114285718B (zh) * 2021-12-28 2024-02-09 北京航天数据股份有限公司 一种拓扑生成方法、装置、电子设备及存储介质
CN115550192B (zh) * 2022-11-24 2023-03-14 中孚信息股份有限公司 基于网内多源数据采集并分析资产连接关系的方法及装置
CN116155743B (zh) * 2023-04-20 2023-07-07 北京广通优云科技股份有限公司 一种自动化运维中第三层网络拓扑结构修正方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
刘亚莉.基于SNMP的网络拓扑发现方法的研究与实现.中国优秀博硕士学位论文:南京理工大学硕士学位论文.2004,28-61. *
孙朝晖,张德运,李庆海.分布物理网络拓扑发现.西安交通大学学报37 6.2003,37(6),591-594. *
钟升.基于ICMP和SNMP的网络拓扑自动发现及显示.中国优秀博硕士学位论文:南京理工大学硕士学位论文.2003,6-33. *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102801567A (zh) * 2012-08-28 2012-11-28 北京傲天动联技术有限公司 分层网络拓扑自动发现的方法和分层网络拓扑组建的方法
CN102801567B (zh) * 2012-08-28 2015-07-08 北京傲天动联技术股份有限公司 分层网络拓扑自动发现的方法和分层网络拓扑组建的方法
CN103532746A (zh) * 2013-09-30 2014-01-22 广东电网公司电力调度控制中心 工业系统的业务拓扑生成方法和系统
CN108418701A (zh) * 2017-02-10 2018-08-17 中国移动通信集团贵州有限公司 建立边界网关协议设备网络拓扑的方法及装置

Also Published As

Publication number Publication date
CN1756189A (zh) 2006-04-05

Similar Documents

Publication Publication Date Title
CN1756189B (zh) 基于snmp的ip网络拓扑发现方法
CN106100999B (zh) 一种虚拟化网络环境中镜像网络流量控制方法
JP6177890B2 (ja) 別個のインフィニバンドサブネット間のトラフィックをファットツリールーティングに基づいてルーティングするためのシステムおよび方法
CN104518967B (zh) 路由方法、设备和系统
Breitbart et al. Topology discovery in heterogeneous IP networks
CN102801567B (zh) 分层网络拓扑自动发现的方法和分层网络拓扑组建的方法
KR101706006B1 (ko) 분산된 리질리언트 네트워크 상호 접속〔drni〕 상태를 갱신하기 위한 방법 및 시스템
CN103888369B (zh) 以太网通信方法、系统和sdn交换机
CN103534989B (zh) 在分布式结构协议(dfp)交换网络架构中的基于优先级的流控制
CN104380658B (zh) 流分类器、业务路由触发器、报文处理的方法和系统
CN103404084B (zh) Mac地址强制转发装置及方法
US9391886B2 (en) Identification of the paths taken through a network of interconnected devices
US6898183B1 (en) Method of determining a data link path in a managed network
US9537760B2 (en) Executing loops
CN100586079C (zh) 一种面向数据链路层的网络拓扑发现方法
CN102143007A (zh) 基于分布式的多级网络拓扑发现方法
GB2516338A (en) Identification of paths in a network of mixed routing/switching devices
US9531598B2 (en) Querying a traffic forwarding table
GB2519824A (en) Identifying an egress port of a device
CN104378233B (zh) 设备统一管理方法、纳入方法及相应装置
CN108768691A (zh) 基于snmp协议的以太网自动拓扑发现及成环定位检测系统
US7369513B1 (en) Method and apparatus for determining a network topology based on Spanning-tree-Algorithm-designated ports
CN102752199B (zh) 一种虚拟路由器的数据转发平面的构建方法与系统
CN108111423A (zh) 流量传输管理方法、装置及网络分路设备
CN108429686B (zh) 一种基于规则拓扑结构网络的路由方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20100414

Termination date: 20160930