一种路由器的快速发现方法和设备的制作方法

文档序号:7740828阅读:133来源:国知局
专利名称:一种路由器的快速发现方法和设备的制作方法
技术领域
本发明涉及通讯领域,尤其涉及一种路由器的快速发现方法和设备。
背景技术
目前,在网络管理中,一个重要的功能是自动发现网络中的所有路由器,而形成
IP (Internet Protocol,因特网协议)拓扑、描述网络的第三层视图、路由拓扑等其他功能
都是以路由器发现为基础的。其中,通过路由器发现算法发现网络中所有的路由器,可以减
少用户在网络管理中手工增加路由器的烦恼,并决定了拓扑的完整性。 现有技术中,提供了一种基于路由表发现路由器的方法。其中,该方法通过用户指
定种子路由设备,网管设备从种子路由设备开始,首先读取种子路由设备的路由表,根据路
由器的下一跳地址,去查找对应的路由器,进而读取查找到的路由器的路由表,如此循环,
直到遍历到网络中存在的所有路由器。 现有技术中该基于路由表发现路由器的方法中存在问题在于目前的网络结构越 来越复杂,使用该方法发现网络中所有路由器的效率很低,需要很长时间才能发现网络中 存在的所有的路由器。

发明内容
本发明提供一种路由器的快速发现方法和设备,用于实现网络中路由器的快速发 现。 基于上述目的,本发明提供了一种路由器的快速发现方法,应用于包括网络管理 设备和多个路由器的网络系统中,所述网络系统中至少包括一个自治系统AS域,在AS域间 运行边界网关协议BGP协议,在AS域内采用开发最短路径优先OSPF协议,所述方法包括以 下步骤 所述网络管理设备获取用户输入的支持BGP协议的路由器; 所述网络管理设备根据所述用户输入的支持BGP协议的路由器,并通过BGP协议 发现,获取所述网络系统中存在的所有AS域以及各个AS域中存在的支持BGP协议的路由 器; 所述网络管理设备根据各个AS域中支持BGP协议的路由器,并通过OSPF协议进 一步发现各个AS域中存在的所有路由器,从而获取到所述网络系统中存在的所有路由器。
其中,所述网络管理设备根据所述用户输入的支持BGP协议的路由器,并通过BGP 协议发现,获取所述网络系统中存在的所有AS域以及各个AS域中存在的支持BGP协议的 路由器,包括 步骤a,所述网络管理设备将所述用户输入的支持BGP协议的路由器作为种子路 由器,并将所述种子路由器存储到种子列表中; 步骤b,所述网络管理设备判断所述种子列表中是否有未被取出的种子路由器; 如果是,则执行步骤c,否则,结束流程;
步骤c,所述网络管理设备从所述种子列表中取出一个种子路由器,获取所述种子 路由器所在的AS域,并获取与所述种子路由器作为BGP邻居的路由器;
步骤d,所述网络管理设备将所述种子路由器所在的AS域加入到AS域列表,并将 所述种子路由器加入到所述AS域; 步骤e,所述网络管理设备判断作为BGP邻居的路由器是否在所述种子列表中有 相应记录,如果没有,则将作为BGP邻居的路由器作为种子路由器,并将所述种子路由器存 储到种子列表中;转到步骤b ;如果有,则不处理作为BGP邻居的路由器,转到步骤b。
其中,所述网络管理设备从所述种子列表中取出一个种子路由器之后,还包括
所述网络管理设备将所述种子路由器标记为已经被取出的种子路由器,或者,所 述网络管理设备将所述种子路由器从所述种子列表中删除。
其中,所述步骤C和所述步骤d之间还包括 所述网络管理设备判断所述AS域是否在所述AS域列表中有相应的记录,如果没 有,则执行步骤d ;否则,不需要将所述种子路由器所在的AS域加入到AS域列表,而直接将 所述种子路由器加入到AS域列表中有相应记录的AS域。 其中,所述网络管理设备根据各个AS域中支持BGP协议的路由器,并通过OSPF协 议进一步发现各个AS域中存在的所有路由器,从而获取到所述网络系统中存在的所有路 由器,包括 所述网络管理设备通过OSPF协议发现AS域中的种子路由器所在的区域的所有路 由器以及区域边界路由器; 所述网络管理设备根据所述种子路由器所在的区域边界路由器获取骨干区域中 的其他区域边界路由器; 所述网络管理设备根据各个其他区域边界路由器获取AS域内各个其他区域中的 所有路由器,并得到所述AS域中存在的所有路由器。 —种路由器的快速发现装置,应用于包括网络管理设备和多个路由器的网络系统 中,所述网络系统中至少包括一个自治系统AS域,在AS域间运行边界网关协议BGP协议, 在AS域内采用开发最短路径优先OSPF协议,所述路由器的快速发现装置作为所述网络管 理设备,包括 BGP协议发现模块,用于根据用户输入的支持BGP协议的路由器,并通过BGP协议 发现,获取所述网络系统中存在的所有AS域以及各个AS域中存在的支持BGP协议的路由 器; OSPF协议发现模块,与所述BGP协议发现模块连接,用于根据各个AS域中支持 BGP协议的路由器,并通过OSPF协议进一步发现,获取各个AS域中存在的所有路由器。
其中,所述BGP协议发现模块进一步包括
存储子模块,用于存储种子列表和AS域列表; 记录子模块,与所述存储子模块连接,用于将用户输入的支持BGP协议的路由器 作为种子路由器,将与种子路由器作为BGP邻居的路由器也作为种子路由器,并将所有的 种子路由器记录到种子列表中;将种子路由器所在的AS域记录到所述AS域列表中,并将所 述种子路由器也记录到所述AS域列表的该AS域中; 判断子模块,与所述存储子模块连接,用于判断所述种子列表中是否有未被取出
6的种子路由器;并判断与种子路由器作为BGP邻居的路由器是否在所述种子列表中有相应 记录; 选择子模块,与所述存储子模块和判断子模块连接,用于当判断子模块判断种子 列表中有未被取出的种子路由器时,从所述种子列表中取出一个种子路由器;
获取子模块,与所述选择子模块、判断子模块和记录子模块连接,用于获取所述选 择子模块选择的所述种子路由器所在的AS域,由所述记录子模块将种子路由器所在的AS 域记录到所述AS域列表中,并将所述种子路由器也记录到所述AS域列表的该AS域中;
并获取与所述种子路由器作为BGP邻居的路由器,由所述判断子模块判断与种子 路由器作为BGP邻居的路由器是否在所述种子列表中有相应记录,并在判断结果为没有 时,进一步由记录子模块将与种子路由器作为BGP邻居的路由器也作为种子路由器,并将
所有的种子路由器记录到种子列表中。 其中,所述BGP协议发现模块还包括 处理子模块,与所述选择子模块连接,用于在所述选择子模块从所述种子列表中 取出一个种子路由器时,将所述种子路由器标记为已经被取出的种子路由器,或者,将所述 种子路由器从所述种子列表中删除。 其中,所述判断子模块还用于,判断所述AS域是否在所述AS域列表中有相应的记 录;如果没有时,由所述记录子模块将种子路由器所在的AS域记录到所述AS域列表中,并 将所述种子路由器也记录到所述AS域列表的该AS域中;而如果有时,由所述记录子模块直 接将所述种子路由器记录到所述AS域列表有相应记录的AS域中。
其中,所述OSPF协议发现模块进一步包括 种子路由器所在区域内路由器发现子模块,用于通过OSPF协议发现AS域中的种 子路由器所在的区域内的所有路由器以及区域边界路由器; 骨干区域内路由器发现子模块,与所述种子路由器所在区域内路由器发现子模块 连接,用于根据所述种子路由器所在的区域边界路由器获取骨干区域中的其他区域边界路 由器; AS域内其他区域路由器发现子模块,与所述骨干区域内路由器发现子模块连接, 用于根据各个其他区域边界路由器获取AS域各个其他区域中的所有路由器,并得到所述 AS域中存在的所有路由器。 与现有技术相比,本发明具有以下优点 通过使用本发明,采用BGP协议发现自治域的路由器、采用OSPF协议发现各自治 域内的路由器,可以实现网络中所有路由器的快速发现。


图1是本发明中提供的组网示意图; 图2是本发明中提供的路由器的快速发现方法的流程图; 图3是对应图l组网下的获取网络中存在的所有AS域以及各个AS域中存在的支 持BGP协议的路由器的流程示意图; 图4是对应图1组网下的发现各个AS域中存在的所有路由器的过程示意图;
图5是本发明中提供的路由器的快速发现装置结构示意图。
具体实施例方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。 为使公众对本发明的实现更加容易理解,在介绍本发明之前,先对与本发明相关的背景技术进行说明。 目前主流的组网协议是自治域间协议采用BGP(Border Gateway Protocol,边界网关协议)协议、自治域内采用0SPF(0pen Shortest Path First,开发最短路径优先)协议。以下仅对该两种协议及其实现机理进行介绍,对于其他能够实现本发明的协议,为节约篇幅,不再赘述。 BGP协议是一种用于自治系统AS (Autonomous System)之间的动态路由协议,其中,自治系统AS是一组使用相同路由协议交换路由信息的路由器。当BGP协议运行于同一AS内部时,被称为IBGP(Internal BGP,内部边界网关协议)协议,当BGP协议运行于不同AS之间时,称为EBGP(ExternalBGP,外部边界网关协议)协议。在路由器间建立连接时,本端路由器可以获取对端路由器发送的BGP协议报文中的AS号,通过与本端路由器的AS号进行比较,从而确定与对端路由器建立的是EBGP连接还是IBGP连接。
OSPF协议是一个内部网关协议IGP,用于在单一AS内决策路由,OSPF可以将同一AS划分成不同的区域(Area)。其中,区域是从逻辑上将路由器划分为不同的组,每个组使用区域号(Area ID)来标识,如图1所示,在AS1中,共划分四组,即四个区域,分别使用区域号Area 1、Area 2、Area 3和Area 4进行标识。需要注意的是,根据0SPF协议划分区域
之后,所有区域之间并非都是平等的关系,其中有一个区域与其他区域是不同的,该区域的区域号(Area ID)是O,通常被称为骨干区域(Backbone Area)。其中,骨干区域负责区域之间的路由,非骨干区域之间的路由信息需要通过骨干区域来转发,即所有非骨干区域需要与骨干区域保持连通。 具体的,在0SPF协议中,路由器根据在AS中的不同位置,可以分为以下几类
区域内路由器(Internal Router):区域内路由器的所有接口都属于同一个0SPF区域。 区域边界路由器(Area Border Router,ABR) :ABR可以同时属于两个以上的区域,但其中一个需要是骨干区域。其中,ABR用来连接骨干区域和非骨干区域,它与骨干区域之间既可以是物理连接,也可以是逻辑上的连接。 骨干路由器(Backbone Router):骨干路由器至少有一个接口属于骨干区域。可以看出,所有的ABR和位于Area0的内部路由器都是骨干路由器。 本发明提供的路由器的快速发现方法,应用于包括网络管理设备和多个路由器的网络系统中,所述网络系统中至少包括一个自治系统AS域,在AS域间运行边界网关协议BGP协议,在AS域内采用开发最短路径优先OSPF协议,如图l所示,所述方法包括以下步骤 步骤201,所述网络管理设备获取用户输入的支持BGP协议的路由器。其中,当用户输入了支持BGP协议的路由器时,则所述网络管理设备能够获取到该支持BGP协议的路 由器。 步骤202,所述网络管理设备根据所述用户输入的支持BGP协议的路由器,并通过 BGP协议发现,获取所述网络系统中存在的所有AS域以及各个AS域中存在的支持BGP协议 的路由器。 具体地,在获取网络系统中存在的所有AS域以及各个AS域中存在的支持BGP协 议的路由器的过程中,本步骤又进一步包括以下步骤, 步骤a,所述网络管理设备将所述用户输入的支持BGP协议的路由器作为种子路 由器,并将所述种子路由器存储到种子列表中;其中,本发明开始运行的时候需要用户至少 输入一台路由器做为种子路由器。 步骤b,所述网络管理设备判断所述种子列表中是否有未被取出的种子路由器; 如果是,则执行步骤c,否则,结束流程。 可以理解的是,将所述种子路由器存储到种子列表时,则种子列表具有未被取出 的种子路由器(例如,用户输入的种子路由器),执行步骤c,而在一个种子路由器的处理过 程结束后,仍然需要执行步骤b,此时需要根据实际情况判断该种子列表中是否有未被取出 的种子路由器。 步骤c,所述网络管理设备从所述种子列表中取出一个种子路由器,获取所述种子 路由器所在的AS域,并获取与所述种子路由器作为BGP邻居的路由器。
其中,当从种子列表中取出一个种子路由器后,需要将该种子路由器标记为已经 被取出的种子路由器,以避免后续执行步骤c时再次取出该种子路由器,从而避免一个种 子路由器的重复处理。当然,实际应用中,还可以将该种子路由器从所述种子列表中删除, 以避免后续执行步骤c时再次取出该种子路由器。 具体的,网络管理设备获取所述种子路由器所在的AS域的方式包括网络管理设 备通过SNMP (Simple Network Management Protocol,简单网络管理协议)读取该种子路由 器的MIB (Management information Base,管理信息库)信息,而该MIB信息的bgpLocalAs 节点中具有该种子路由器所对应的AS域信息,S卩能够通过MIB信息获取到种子路由器所在 的AS域。 另夕卜,网络管理设备获取与所述种子路由器作为BGP邻居的路由器的方 式包括网络管理设备通过SNMP读取该种子路由器的MIB信息,而该MIB信息的 bgpPeerRemoteAddr节点中具有该种子路由器所对应的BGP邻居路由器的地址信息,MIB信 息的bgpPeerState节点中具有该种子路由器所对应的BGP邻居路由器的连接状态信息,即 能够通过MIB信息获取到与所述种子路由器作为BGP邻居的连接状态为正常路由器。
步骤d,所述网络管理设备将所述种子路由器所在的AS域加入到AS域列表,并将 所述种子路由器加入到所述AS域。其中,在所述网络管理设备中存储了AS域列表,而该AS 域列表中具有各个AS域的信息以及各个AS域所对应的支持BGP协议的路由器(即种子路 由器)的信息。 具体的,由于种子路由器所在的AS域可能在之前的AS域获取过程中已经加入到 AS域列表中,因此,当获取到所述种子路由器所在的AS域后,所述网络管理设备还可以判 断所述AS域是否在所述AS域列表中有相应的记录(即AS域列表中是否已经存储了该AS域),如果没有时,则执行步骤d,将所述种子路由器所在的AS域加入到AS域列表;否则,不需要将所述种子路由器所在的AS域加入到AS域列表,而直接将所述种子路由器加入到AS域列表中有相应记录的AS域。 可以理解的是,在实际应用中,所述网络管理设备也可以直接执行步骤d中的操作,而并不判断所述AS域是否在所述AS域列表中有相应的记录,即无论AS域列表中有相应的记录,均需要将种子路由器所在的AS域加入到AS域列表,并将所述种子路由器加入到所述AS域。 为了更加清楚的说明上述两种情况,以表1和表2的AS域列表为例进行进一步阐述。其中,种子路由器2的AS域为AS1,且AS域列表中具有AS1的记录;表1所示为判断出AS域在所述AS域列表中有相应记录时的处理情况;表2所示为没有判断所述AS域是否在所述AS域列表中有相应的记录,直接执行步骤d的情况。
表1
AS域列表AS域中包括的路由器
AS1种子路由器1 (原有的)、种子路由器2 (新 增加的) 表2
AS域列表AS域中包括的路由器
AS1种子路由器l(原有的)
AS1种子路由器2(新增加的) 步骤e,所述网络管理设备判断作为BGP邻居的路由器是否在所述种子列表中有相应记录,如果没有,则将作为BGP邻居的路由器作为种子路由器,并将所述种子路由器存储到种子列表中,转到步骤b ;如果有,则不处理作为BGP邻居的路由器,转到步骤b。
当获取到与上述种子路由器作为BGP邻居的路由器后,如果该种子列表中有上述BGP邻居路由器的信息(例如,该BGP邻居路由器在种子列表中作为种子路由器,或者,具有已经被取出过的标记),则不需要处理上述BGP邻居路由器,转到步骤b,如果没有,则将上述BGP邻居路由器存储到种子列表中,并转到步骤b。 当转到步骤b后,如果种子列表中有未被取出的种子路由器,则执行步骤c至步骤e,依次循环, 一直到种子列表中没有未被取出的种子路由器,则说明所有的种子路由器(即支持BGP协议的路由器)已经遍历完成,此时,AS域列表中已经存储了网络系统中存在的所有AS域,而且种子列表中也具有各个AS域中存在的支持BGP协议的路由器,其中,所有的种子路由器均为支持BGP协议的路由器。 步骤203,所述网络管理设备根据各个AS域中支持BGP协议的路由器,并通过0SPF协议进一步发现各个AS域中存在的所有路由器,从而获取到所述网络系统中存在的 所有路由器。 当AS域中存在的支持BGP协议的路由器(后续说明中以种子路由器进行阐述) 获取完成后,根据该种子路由器并通过OSPF协议进一步能够发现该AS域中存在的所有路 由器,而根据各个AS域中的种子路由器即能够获得各个AS域中存在的所有路由器,从而获 得网络系统中存在的所有路由器。 由于各个AS域中的获取过程相同,以一个AS域中的获取过程为例进行说明。
由于在步骤202中已经获知了各个AS域的信息以及AS域中种子路由器的信息, 因此,可以从各AS域中选择一个种子路由器,可以理解的是,为了不重复路由器的选择过 程,如果各AS域中有多个种子路由器时,则只需要任意选择一个种子路由器即可。
基于上述情况,本发明中提供的发现各个AS域中存在的所有路由器的过程进一 步包括 步骤1、当种子路由器选择完成后,所述网络管理设备能够通过0SPF协议发现该 种子路由器所在的区域中的所有路由器以及区域边界路由器。其中,网络管理设备能够通 过SNMP读取该种子路由器的MIB信息,而该MIB信息的ospfLsdbRouterld节点具有种子路 由器所在区域的所有域内路由器的信息;再通过SNMP读取域内路由器的MIB信息,该MIB 信息的ospfAreaBdrRtrStatus节点具有种子路由器所在区域的区域边界路由器的信息, 从而获取到种子路由器所在的区域中的所有路由器以及区域边界路由器。
步骤2、所述网络管理设备根据所述种子路由器所在的区域边界路由器获取所述 AS域内骨干区域中的其他边界路由器。 由于上述获取到的区域边界路由器与骨干区域存在连接,因此通过SNMP协议读 取区域边界路由器的MIB信息,而MIB信息中的ospfLsdbRouterld节点具有骨干区域中路 由器的信息,即能够获取到骨干区域中的其他区域边界路由器。 步骤3、所述网络管理设备根据各个其他区域边界路由器获取AS域内各个其他区 域中的所有路由器。 具体的,所述网络管理设备访问各个区域边界路由器,并通过SNMP协议读取各区 域边界路由器的MIB信息中的ospfLsdbRouterId节点,能够得到各个边界路由器所对应的 区域内的所有路由器。 综上,当得到了各个区域内的所有路由器后,即能够得到AS域内的所有路由器, 每个AS域都执行了上述处理过程时,则能够得到各个AS域中存在的所有路由器,从而获取 到所述网络系统中存在的所有路由器。 为了更加清楚的说明本发明提供的技术方案,以下结合具体的应用场景,描述本 发明中提供的路由器发现方法的具体实施方式
。 以图1所示的网络场景为例,其中,包括两个自治系统AS域,分别为AS 1和AS2。 进一步地,自治系统AS1中包括骨干区域AreaO以及其它区域Areal、Area2和Area3。AreaO 中又包括三台区域边界路由器ABR1、ABR2以及ABR3。本发明中,以用户输入的支持BGP协 议的路由器为Router (BGP1)为例,获取网络中存在的所有AS域以及各个AS域中存在的支 持BGP协议的路由器的流程如图3所示,包括 步骤301 、将用户输入的支持BGP协议的路由器为Router (BGP 1)作为种子路由器,并将Router (BGPl)加入种子列表。 步骤302、判断种子列表中是否有未被取出的种子路由器;如果是,则执行步骤303,否则,结束流程。 可以理解的是,将Router (BGPl)加入到种子列表时,则种子列表中具有未被取出的种子路由器,而在一个种子路由器的处理过程结束后,仍然需要执行步骤302,即后续过程中会多次执行步骤302,如果种子列表中的所有种子路由器都被取出过时,则结束流程。
步骤303、从种子列表中取出一个种子路由器,并获取该种子路由器所在的AS域。当种子列表存在未被取出过的种子路由器时,可以根据实际情况从种子列表中任意取出一个种子路由器,以取出Router (BGPl)为例,获取到Router (BGPl)在的AS域为ASl。
需要注意的是,当取出Router (BGPl)后,需要在种子列表中将Router (BGPl)标记为已经被取出的种子路由器获者从种子列表中删除Router (BGPl)。 具体的,通过SNMP读取Router(BGPl)的MIB中的bgpLocalAs节点,即能够得知Router (BGPl)在的AS域为ASl。 步骤304、将ASl加入到AS域列表,将Router (BGPl)加入到AS1,并获取与Router(BGPl)作为BGP邻居的路由器。 其中,在将Router (BGPl)加入到ASl时,可以以路由器的IP地址或者MAC (MediaAccess Control,介质访问控制)地址对路由器进行标识。对于Router (BGPl),由于获取到的路由器所在的AS域为AS1,则建立域列表如表3所示
表3
AS域列表AS域中包括的路由器
ASlRouterl(BGPl)、 另外,获取与Router (BGPl)作为BGP邻居的路由器的方式包括通过SNMP读取该Router (BGPl)的bgpPeerRemoteAddr节点和bgpPeerState节点,从而能够获取到与Router (BGPl)作为BGP邻居且连接状态为正常的路由器,从图1中可以看出,与Router (BGPl)作为BGP邻居的路由器为Router (BGP2)。 步骤305、判断Router (BGP2)是否在种子列表中有相应记录,如果没有,则将Router(BGP2)作为种子路由器,并将Router (BGP2)存储到种子列表中,转到步骤302 ;如果有,则不处理该Router (BGP2),即不需要将Router (BGP2)加入到种子列表以避免重复操作,并转到步骤302。 当转到步骤302后,如果种子列表中有未被取出的种子路由器,则执行后续步骤,依次循环,一直到种子列表中没有未被取出的种子路由器,则说明所有的种子路由器已经遍历完成,此时,AS域列表中已经存储了网络系统中存在的所有AS域和各个AS域中存在的支持BGP协议的路由器。 在本应用场景下,当转到步骤302时,能够判断出种子列表中有Router (BGP2)未
12被取出,取出该Router (BGP2),获取到Router (BGP2)所在的AS域为AS2,将AS2加入到AS 域列表,将Router (BGP2)加入到AS2,并获取与Router (BGP2)作为BGP邻居的路由器,此 时,获取到的路由器为Router(BGPl),由于Router (BGP1)在种子列表中有相应记录,则不 需要将Router (BGP1)加入到种子列表。 继续转到步骤302时,可以看出,种子列表中已经没有未被取出的种子路由器,结 束流程。 仍以图1所示的网络场景为例,发现各个AS域中存在的所有路由器(以发现AS 中存在的所有路由器为例)的过程如图4所示,包括 步骤401,选择AS1域中的种子路由器,由于AS1域中的种子路由器只有 Router (BGP1),则选择的种子路由器为Router (BGP1)。 步骤402,通过0SPF协议发现该Router (BGP1)所在的AS域中的所有路由器以及 边界路由器。其中,该Router (BGP1)所在的AS1域中对应的区域为Areal,通过SNMP读取 Router(BGPl)的ospfLsdbRouterld节点,能够获取到Areal中(即Router (BGP1)所在ASl 域中的区域)所有域内路由器,并通过域内路由器的ospfAreaBdrRtrStatus节点,能够查 找到Areal中的区域边界路由器ABR1 。 步骤403,根据区域边界路由器ABR1获取AS1域中骨干区域Area0中的其他 边界路由器。其中,由于ABR1与骨干区域AreaO连接,因此通过SNMP协议读取ABRl的 ospfLsdbRouterld节点,能够获知骨干区域AreaO中的其他区域边界路由器ABR2和ABR3。
步骤404,根据ABR2获取Area2中的所有路由器,并根据ABR3获取Area3中的所 有路由器。其中,通过SNMP协议读取ABR2的ospfLsdbRouterld节点,能够得到Area2中 的所有路由器,通过SNMP协议读取ABR3的ospfLsdbRouterld节点,能够得到Area3中的 所有路由器。至此,AS1中的所有路由器发现完成。 本发明还提供了一种路由器的快速发现装置,应用于包括网络管理设备和多个路 由器的网络系统中,所述网络系统中至少包括一个自治系统AS域,在AS域间运行边界网关 协议BGP协议,在AS域内采用开发最短路径优先0SPF协议,如图5所示,所述路由器的快 速发现装置作为所述网络管理设备,包括 BGP协议发现模块10,用于根据用户输入的支持BGP协议的路由器,并通过BGP协 议发现,获取所述网络系统中存在的所有AS域以及各个AS域中存在的支持BGP协议的路 由器。 具体的,所述BGP协议发现模块10进一步包括
存储子模块ll,用于存储种子列表和AS域列表。 记录子模块12,与所述存储子模块11连接,用于将用户输入的支持BGP协议的路 由器作为种子路由器,将与种子路由器作为BGP邻居的路由器也作为种子路由器,并将所 有的种子路由器记录到种子列表中;将种子路由器所在的AS域记录到所述AS域列表中,并 将所述种子路由器也记录到所述AS域列表的该AS域中。 判断子模块13,与所述存储子模块11和记录子模块12连接,用于判断所述种子列 表中是否有未被取出的种子路由器;并判断与种子路由器作为BGP邻居的路由器是否在所 述种子列表中有相应记录。 另外,在本发明的实现过程中,当获取到种子路由器所在的AS域时,所述判断子模块13还可以用于判断所述AS域是否在所述AS域列表中有相应的记录;如果没有时,则由所述记录子模块12将种子路由器所在的AS域记录到所述AS域列表中,并将所述种子路由器也记录到所述AS域列表的该AS域中;而如果有时,则由所述记录子模块12直接将所述种子路由器记录到所述AS域列表有相应记录的AS域中。 选择子模块14,与所述存储子模块11和判断子模块13连接,用于当判断子模块13判断种子列表中有未被取出的种子路由器时,从所述种子列表中取出一个种子路由器。
处理子模块15,与所述选择子模块14连接,用于在所述选择子模块14从所述种子列表中取出一个种子路由器时,将所述种子路由器标记为已经被取出的种子路由器,或者,将所述种子路由器从所述种子列表中删除。 获取子模块16,与所述选择子模块14、判断子模块13和记录子模块12连接,用于获取所述选择子模块14选择的所述种子路由器所在的AS域,由所述记录子模块12将种子路由器所在的AS域记录到所述AS域列表中,并将所述种子路由器也记录到所述AS域列表的该AS域中; 并获取与所述种子路由器作为BGP邻居的路由器,由所述判断子模块13判断与种子路由器作为BGP邻居的路由器是否在所述种子列表中有相应记录,并在判断结果为没有时,进一步由记录子模块12将与种子路由器作为BGP邻居的路由器也作为种子路由器,并将所有的种子路由器记录到种子列表中。 0SPF协议发现模块20 ,与所述BGP协议发现模块10连接,用于根据各个AS域中支持BGP协议的路由器,并通过0SPF协议进一步发现,获取各个AS域中存在的所有路由器。
具体的,所述OSPF协议发现模块20进一步包括 种子路由器所在区域内路由器发现子模块21,用于通过0SPF协议发现AS域中的种子路由器所在的区域内的所有路由器以及区域边界路由器; 骨干区域内路由器发现子模块22,与所述种子路由器所在区域内路由器发现子模块21连接,用于根据所述种子路由器所在的区域边界路由器获取骨干区域中的其他区域边界路由器; AS域内其他区域路由器发现子模块23,与所述骨干区域内路由器发现子模块22连接,用于根据各个其他区域边界路由器获取AS域各个其他区域中的所有路由器,并得到所述AS域中存在的所有路由器。 通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可以通
过硬件实现,也可以借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,本发
明的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储
介质(可以是CD-ROM, U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可
以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。 本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的单元或流
程并不一定是实施本发明所必须的。 本领域技术人员可以理解实施例中的装置中的单元可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的单元可以合并为一个单元,也可以进一步拆分成多个子单元。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
1权利要求
一种路由器的快速发现方法,应用于包括网络管理设备和多个路由器的网络系统中,所述网络系统中至少包括一个自治系统AS域,在AS域间运行边界网关协议BGP协议,在AS域内采用开发最短路径优先OSPF协议,其特征在于,所述方法包括以下步骤所述网络管理设备获取用户输入的支持BGP协议的路由器;所述网络管理设备根据所述用户输入的支持BGP协议的路由器,并通过BGP协议发现,获取所述网络系统中存在的所有AS域以及各个AS域中存在的支持BGP协议的路由器;所述网络管理设备根据各个AS域中支持BGP协议的路由器,并通过OSPF协议进一步发现各个AS域中存在的所有路由器,从而获取到所述网络系统中存在的所有路由器。
2. 如权利要求1所述的方法,其特征在于,所述网络管理设备根据所述用户输入的支 持BGP协议的路由器,并通过BGP协议发现,获取所述网络系统中存在的所有AS域以及各 个AS域中存在的支持BGP协议的路由器,包括步骤a,所述网络管理设备将所述用户输入的支持BGP协议的路由器作为种子路由器, 并将所述种子路由器存储到种子列表中;步骤b,所述网络管理设备判断所述种子列表中是否有未被取出的种子路由器;如果 是,则执行步骤c,否则,结束流程;步骤c,所述网络管理设备从所述种子列表中取出一个种子路由器,获取所述种子路由 器所在的AS域,并获取与所述种子路由器作为BGP邻居的路由器;步骤d,所述网络管理设备将所述种子路由器所在的AS域加入到AS域列表,并将所述 种子路由器加入到所述AS域;步骤e,所述网络管理设备判断作为BGP邻居的路由器是否在所述种子列表中有相应 记录,如果没有,则将作为BGP邻居的路由器作为种子路由器,并将所述种子路由器存储到 种子列表中;转到步骤b ;如果有,则不处理作为BGP邻居的路由器,转到步骤b。
3. 如权利要求2所述的方法,其特征在于,所述网络管理设备从所述种子列表中取出 一个种子路由器之后,还包括所述网络管理设备将所述种子路由器标记为已经被取出的种子路由器,或者,所述网 络管理设备将所述种子路由器从所述种子列表中删除。
4. 如权利要求2所述的方法,其特征在于,所述步骤c和所述步骤d之间还包括 所述网络管理设备判断所述AS域是否在所述AS域列表中有相应的记录,如果没有,则执行步骤d ;否则,不需要将所述种子路由器所在的AS域加入到AS域列表,而直接将所述 种子路由器加入到AS域列表中有相应记录的AS域。
5. 如权利要求2所述的方法,其特征在于,所述网络管理设备根据各个AS域中支持 BGP协议的路由器,并通过OSPF协议进一步发现各个AS域中存在的所有路由器,从而获取 到所述网络系统中存在的所有路由器,包括所述网络管理设备通过OSPF协议发现AS域中的种子路由器所在的区域的所有路由器 以及区域边界路由器;所述网络管理设备根据所述种子路由器所在的区域边界路由器获取骨干区域中的其 他区域边界路由器;所述网络管理设备根据各个其他区域边界路由器获取AS域内各个其他区域中的所有 路由器,并得到所述AS域中存在的所有路由器。
6. —种路由器的快速发现装置,应用于包括网络管理设备和多个路由器的网络系统 中,所述网络系统中至少包括一个自治系统AS域,在AS域间运行边界网关协议BGP协议, 在AS域内采用开发最短路径优先OSPF协议,其特征在于,所述路由器的快速发现装置作为 所述网络管理设备,包括BGP协议发现模块,用于根据用户输入的支持BGP协议的路由器,并通过BGP协议发现, 获取所述网络系统中存在的所有AS域以及各个AS域中存在的支持BGP协议的路由器;OSPF协议发现模块,与所述BGP协议发现模块连接,用于根据各个AS域中支持BGP协 议的路由器,并通过OSPF协议进一步发现,获取各个AS域中存在的所有路由器。
7. 如权利要求6所述的装置,其特征在于,所述BGP协议发现模块进一步包括 存储子模块,用于存储种子列表和AS域列表;记录子模块,与所述存储子模块连接,用于将用户输入的支持BGP协议的路由器作为 种子路由器,将与种子路由器作为BGP邻居的路由器也作为种子路由器,并将所有的种子 路由器记录到种子列表中;将种子路由器所在的AS域记录到所述AS域列表中,并将所述种 子路由器也记录到所述AS域列表的该AS域中;判断子模块,与所述存储子模块连接,用于判断所述种子列表中是否有未被取出的种 子路由器;并判断与种子路由器作为BGP邻居的路由器是否在所述种子列表中有相应记 录;选择子模块,与所述存储子模块和判断子模块连接,用于当判断子模块判断种子列表 中有未被取出的种子路由器时,从所述种子列表中取出一个种子路由器;获取子模块,与所述选择子模块、判断子模块和记录子模块连接,用于获取所述选择子 模块选择的所述种子路由器所在的AS域,由所述记录子模块将种子路由器所在的AS域记 录到所述AS域列表中,并将所述种子路由器也记录到所述AS域列表的该AS域中;并获取与所述种子路由器作为BGP邻居的路由器,由所述判断子模块判断与种子路由 器作为BGP邻居的路由器是否在所述种子列表中有相应记录,并在判断结果为没有时,进 一步由记录子模块将与种子路由器作为BGP邻居的路由器也作为种子路由器,并将所有的 种子路由器记录到种子列表中。
8. 如权利要求7所述的装置,其特征在于,所述BGP协议发现模块还包括 处理子模块,与所述选择子模块连接,用于在所述选择子模块从所述种子列表中取出一个种子路由器时,将所述种子路由器标记为已经被取出的种子路由器,或者,将所述种子 路由器从所述种子列表中删除。
9. 如权利要求7所述的装置,其特征在于,所述判断子模块还用于,判断所述AS域是否在所述AS域列表中有相应的记录;如果没 有时,由所述记录子模块将种子路由器所在的AS域记录到所述AS域列表中,并将所述种子 路由器也记录到所述AS域列表的该AS域中;而如果有时,由所述记录子模块直接将所述种 子路由器记录到所述AS域列表有相应记录的AS域中。
10. 如权利要求7所述的装置,其特征在于,所述OSPF协议发现模块进一步包括 种子路由器所在区域内路由器发现子模块,用于通过OSPF协议发现AS域中的种子路由器所在的区域内的所有路由器以及区域边界路由器;骨干区域内路由器发现子模块,与所述种子路由器所在区域内路由器发现子模块连接,用于根据所述种子路由器所在的区域边界路由器获取骨干区域中的其他区域边界路由 器;AS域内其他区域路由器发现子模块,与所述骨干区域内路由器发现子模块连接,用于 根据各个其他区域边界路由器获取AS域各个其他区域中的所有路由器,并得到所述AS域 中存在的所有路由器。
全文摘要
本发明公开了一种路由器的快速发现方法和设备。该方法包括网络管理设备根据用户输入的支持BGP协议的路由器,并通过BGP协议发现,获取网络系统中存在的所有AS域以及各个AS域中存在的支持BGP协议的路由器;网络管理设备根据各个AS域中支持BGP协议的路由器,并通过OSPF协议进一步发现各个AS域中存在的所有路由器,从而获取到所述网络系统中存在的所有路由器。通过使用本发明,实现了网络中路由器的快速发现。
文档编号H04L29/06GK101795227SQ201010100420
公开日2010年8月4日 申请日期2010年1月25日 优先权日2010年1月25日
发明者孙立伟, 曾勇刚, 郭勇 申请人:杭州华三通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1