首页> 中国专利> 面向网络态势感知的多级别网络系统及其构建方法

面向网络态势感知的多级别网络系统及其构建方法

摘要

本发明提供一种面向网络态势感知的多级别网络系统及其构建方法,系统包括若干个自治系统,每个自治系统包括至少一个区域,每个自治系统内部署有一个本地服务器和至少一个边界路由器,本地服务器通过隧道和每个区域中的一个边界路由器建立邻居关系,本地服务器通过邻居关系存储边界路由器的信息;每个自治系统的边界路由器存储邻居自治系统的边界路由器的信息,相邻的自治系统之间通过边界路由器建立对话;全局服务器与若干个本地服务器进行数据同步,汇总各个自治系统的信息。系统在不增加网络负载的情况下可以实时采集网络中的报文并以此构建出域间和域内的网络拓扑,保证了拓扑发现的实时性和高可靠性。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-01-02

    授权

    授权

  • 2014-12-24

    实质审查的生效 IPC(主分类):H04L12/26 申请日:20140731

    实质审查的生效

  • 2014-11-26

    公开

    公开

说明书

技术领域

本发明涉及网络测量和性能分析领域,具体涉及一种面向网络态 势感知的多级别网络系统及其构建方法。

背景技术

信息时代对计算机网络的依赖使得计算机网络运行的可靠性显得 尤为重要,机网络运行的可靠性对网络管理便提出了更高的要求。按 照OSI的定义,网络管理主要包括故障管理、配置管理、性能管理、 安全管理和计费管理五个功能域,在上述五大功能域中,配置管理是 基础,它的主要功能包括发现网络的拓扑结构,监视和管理网络设备 的配置情况,其它各项功能则均以已知网络的拓扑结构为基础。网络 拓扑发现的主要目的是获取和维护网络节点的存在信息和它们之间的 连接关系信息,并在此基础上绘制出整个网络拓扑图。

目前Internet和其他较大的专有网络都由大量的自治系统 (Autonomous System)组成,这些网络的路由结构一般被划分为域内 路由和域间路由两种结构。自治系统内部的路由器通过域内路由协议 彼此交换路由信息,一般域内路由协议分为距离向量协议和链路状态 协议,前者以路由信息协议(RIP)代表,后者常用的有开放最短路径 优先(OSPF)协议和中间系统到中间系统(IS-IS)协议;自治系统边 界路由器通过域间路由协议交换路由信息,目前Internet上的域间路 由协议标准是边界网关协议(BGP)。

对于域间路由拓扑的构建,目前有三种技术:基于Traceroute 拓扑发现技术、基于BGP路由表信息构建技术和基于BGP路由更新报 文(BGP Update)信息构建技术。在同等环境下,基于Traceroute技术 和基于BGP路由表信息技术需要通过主动请求和轮询进行数据的采集, 不可避免地要向网络注入较大的数据流量,同时这两种方法无法实现 对网络路由拓扑结构的变化实时地发现并更新。而基于BGP路由更新 报文信息构建技术,鉴于BGP协议的增量性和策略性,难以获得完整 的域间路由拓扑信息,目前大多是利用AS-Path自治系统路径信息中 的相邻自治系统来构建域间邻居关系,同时对这种邻居关系维护权值, 即所能达到自治系统外部的前缀数量;但这种技术的前提是要求每个 自治系统只有一个BGP路由器,这就使得该技术在发现域间路由拓扑 受到很大的限制。

对于域内路由拓扑的构建,目前主要有三种技术:基于简单网 络管理协议(SNMP)构建拓扑技术、基于Internet控制报文协议(ICMP) 协议构建拓扑技术和基于OSPF协议构建拓扑技术。在同等网络环境下, 基于SNMP构建拓扑技术虽然能够获得网络中的拓扑信息,但是需要布 置专门的探测软件,且实现过程比较复杂;同时,不同路由器厂商的 路由器拥有各自的私有MIB库,利用SNMP技术可能导致获取的拓扑信 息不完整。基于ICMP协议构建拓扑技术是一种主动探测技术,需要在 指定探测端向目标网络发起拓扑探测进而构建网络拓扑,但由于互联 网中的路由协议“向前”策略和网络安全的访问控制因素,会导致 ICMP主动式拓扑发现的结果不完整,存在拓扑链路缺失的问题。

发明内容

有鉴于此,本发明提供一种面向网络态势感知的多级别网络拓扑 发现方法,旨在能够对域间路由拓扑和域内路由拓扑进行完整全面的 构建。

本发明采用的技术方案具体为:一种面向网络态势感知的多级别 网络系统,包括若干个自治系统AS(以下简称AS),每个所述AS包括 至少一个区域Area(以下简称Area),每个所述AS的内部署有一个本 地服务器和至少一个边界BGP路由器,所述本地服务器通过隧道和每 个所述Area中的一个边界BGP路由器建立邻居关系,所述本地服务器 通过所述邻居关系存储所述边界BGP路由器的信息;定义相邻的所述 AS为邻居AS,每个AS的所述边界BGP路由器存储邻居AS的所述边界 BGP路由器的信息,相邻的所述AS之间通过所述边界BGP路由器建立 对话;还包括全局服务器,所述全局服务器与若干个所述本地服务器 进行数据同步,汇总各个所述AS的信息。

所述各个本地服务器通过交换机与各个所述自治系统的边界BGP 路由器建立邻居关系。

所述全局服务器和所述本地服务器为OSPF/BGP服务器,所述 OSPF/BGP服务器是由OSPF服务器和BGP服务器整合而成的服务器。

所述边界BGP路由器存储的信息包括邻居AS的路由器ID、接口 IP和路由器所属的AS号。

一种面向网络态势感知的多级别网络系统的构建方法,包括不同 AS之间的域间路由拓扑和同一AS内的域内路由拓扑的发现方法,其 中:

(1)所述域间路由拓扑发现方法具体包含如下步骤:

S10:在每个所述AS中部署一个BGP服务器,所述BGP服务器通 过隧道与所述AS的边界BGP路由器建立邻居关系,所述边界BGP服务 器为一个或者多个,所述BGP服务器存储邻居AS的边界BGP路由器的 信息,所述信息包括路由器ID、接口IP和路由器所属的AS号;

S11:所述BGP服务器与所述边界BGP路由器建立对等会话后,实 时采集所述BGP边界路由器的更新报文,并对所述更新报文进行存储 和解析;

S12:所述BGP服务器根据解析后的报文获得自治系统路径信息中 的自治系统路径信息AS-Path(以下简称AS-Path)和下一跳信息Next  Hop(以下简称Next Hop),以及可达前缀信息Prefix(以下简称Prefix) 或者不可达前缀信息中的一种,并利用获得的信息构建BGP路由信息 表,并根据所述BGP路由信息表分析本AS的边界BGP路由器所承载的 可达前缀的数量,所述可达前缀的数量用权重表示;

S13:若获得的信息为所述Prefix,则表示从本AS的边界BGP路由 器到邻居AS的所述边界BGP路由器存在一条域间边界链路,进一步地:

若域间路由拓扑结构中不存在该域间边界链路,则需根据所述 Prefix、AS-Path以及Next Hop新建立一条域间边界链路并将该域间 边界链路的权重值设置为1;

若域间路由拓扑结构中已经存在该域间边界链路,则将该域间边 界链路的权重值加1;

S14:若获得的信息为所述不可达前缀信息,则表示从本AS的边 界BGP路由器到邻居AS的所述边界BGP路由器不存在域间边界链路, 进一步地:

若该域间边界链路的权重值非零,则在本AS的BGP服务器上删除 该不可达前缀信息以及AS-Path和Next Hop对应的Prefix,然后将该 Prefix对应的域间边界链路的权重值减1;

若该域间边界链路的权重值为零,则在域间路由拓扑中撤销这条 域间边界链路;

(2)所述域内路由拓扑发现方法具体包含如下步骤:

S20:每个AS包括至少一个Area,在每个所述AS中部署OSPF服 务器,所述OSPF服务器通过隧道和每个所述Area中的一台路由器建 立邻居关系;

S21:所述OSPF服务器与每个所述Area中的邻居路由器建立对等 会话后,实时采集所述OSPF服务器的链路状态更新报文LSU,然后对 采集到的所述报文进行解析,并将解析得到的链路状态宣告报文LSA 信息存储在本AS的OSPF服务器上,生成本AS的链路状态数据库LSDB;

S22:通过分析所述链路状态宣告报文信息LSA(以下简称LSA) 的类型得到路由器之间的连接关系、路由器信息、子网信息和接口信 息,并根据上述信息构建域内路由拓扑,并同时将所述域内路由拓扑 信息存储到全局OSPF服务器上;

S23:对于网络状态更新产生的LSA,首先在本地OSPF服务器的 LSDB中找到对应的LSA,然后将该LSA对应的属性进行更新,同时将 全局OSPF服务器中对应的LSA进行更新;

S24:对于网络拓扑变化产生的LSA,首先在本地OSPF服务器的 LSDB中找到同一个始发路由器产生的LSA,然后通过对二者进行比较 来判断域内路由拓扑的变化,并更新本地和全局OSPF服务器的LSDB;

S25:对于网络洪泛的LSA,首先在本地OSPF服务器的LSDB中找 到同一个始发路由器产生的LSA,根据洪泛LSA的生存期Age和序列号 Sequence属性将LSDB中的LSA对应的属性进行更新,从而保证域内网 络拓扑数据为最新。

所述S13进一步包括:

S131:若所述AS-Path属性非空,则表示所述可达前缀信息为可 到达邻居AS的前缀,然后获取该条边界链路信息所含的本AS的边界 BGP路由器ID,邻居AS号以及到达所述前缀的Next Hop;若自治系统 路径信息AS-Path属性为空,则表示所述可达前缀信息为本AS内部的 前缀;

S132:在自治系统路径信息AS-Path属性非空的前提下,利用所 述S131中获得的Next Hop在全局的所述边界BGP路由器的所述信息 表中找到对应的邻居AS的边界BGP路由器ID,即得到本AS边界BGP 路由器到邻居AS边界BGP路由器的一条域间边界链路,根据该域间边 界链路到域间路由拓扑中查找是否已经存在该域间边界链路,若不存 在,则在域间路由拓扑中增加这条域间边界链路,并将权重值设置为1; 如果存在,则将域间路由拓扑中对应的该域间边界链路的权重值增加 1。

所述S14进一步包括:

S141:根据获得的所述不可达前缀信息和AS-Path属性,先在本 AS的BGP服务器上找到对应的可达前缀信息,若AS-Path属性为非空, 则获取该条信息所包含的所述本AS的边界BGP路由器ID,邻居AS号 和到达所述前缀的Next Hop信息;

S142:利用S141中获得的Next Hop信息在全局的边界BGP路由 器列表中找到对应的邻居AS的边界BGP路由器ID,得到本AS的边界 BGP路由器到邻居AS的边界BGP路由器的一条连接关系,根据该连接 关系将域间路由拓扑中对应的域间边界链路的权重值减1;若该域间边 界链路的权重值被减为0,则从域间路由拓扑中删除该条域间边界链 路,并同时删除BGP服务器中对应的该域间边界链路的可达前缀信息。

所述S22进一步包括:

S221:若LSA的类型为路由器链路状态宣告报文信息(Router  LSA),则链路ID属性和链路数据属性与路由器链路状态宣告报文信息 的链路类型有关,具体地:

若链路类型为对等连接,则链路ID为邻居路由器ID,链路数据为 本路由器接口IP地址;

若链路类型为到传输网的连接,则链路ID为指定路由器DR的接 口IP地址,链路数据为本路由器的接口IP地址;

若链路类型为到末梢网的连接,则链路ID为IP网络/子网号,链 路数据为本路由器的接口IP地址;

若链路类型为虚拟连接,则链路ID为邻居路由器ID,链路数据为 本路由器接口IP地址;

通过分析所述对等连接和所述到传输网的连接的链路类型的路由 器链路状态宣告报文信息,得到路由器的连接关系,通过分析所述到 末梢网的连接链路类型的路由器链路状态宣告报文信息,得到路由器 的直连网段信息,所述直连网段信息包括路由器ID、接口IP、子网掩 码和Metric值;

S222:若LSA的类型为网络链路状态宣告报文信息(Network LSA), 则网络掩码为公共网段的网络掩码,链路ID为指定路由器DR在该公 共网段里的接口IP地址,报文中邻接路由器Attach Router属性为与 指定路由器DR同属一个网段的路由器ID;通过分析所述网络LSA得到 路由器的连接关系和所述公用网段的信息;

S233:若LSA的类型为聚合LSA链路状态宣告报文信息(Summary  LSA),所述聚合链路状态宣告报文信息包括类型一和类型二,所述类 型一为本AS其他区域的网段信息,所述类型二为其他区域的AS边界 路由器ID。

S234:若LSA的类型为外部链路状态宣告报文信息(External  LSA),所述外部链路状态宣告报文包括类型三和类型四,所述类型三 为自治系统外部可达的网段信息,所述类型四为NSSA区域内ASBR产 生的可达网段信息,通过分析所述外部链路状态宣告报文,得到路由 器可到达其他AS的网段信息。

本发明产生的有益效果是:通过将OSPF服务器和BGP服务器功能 进行整合形成OSPF/BGP服务器,与自治系统AS内的边界BGP路由器 通过GRE隧道建立邻居关系,可以在不增加网络负载的情况下,实时 被动地采集网络中的报文并以此构建出域间和域内的网络拓扑,保证 了拓扑发现的实时性和高可靠性。

附图说明

当结合附图考虑时,能够更完整更好地理解本发明。此处所说明 的附图用来提供对本发明的进一步理解,实施例及其说明用于解释本 发明,并不构成对本发明的不当限定。

图1为本发明一种面向网络态势感知的多级别网络拓扑结构示意 图;

图2为本发明一种面向网络态势感知的多级别网络拓扑发现方法 的域间路由拓扑实时构建流程图;

图3为本发明一种面向网络态势感知的多级别网络拓扑发现方法 的域内路由拓扑实时构建流程图。

具体实施方式

下面结合附图及实施例对本发明的技术方案作进一步详细的说 明。

网络态势是指由各种网络设备运行状况、网络行为以及用户行为 等因素所构成的整个网络当前状态和变化趋势。网络态势感知是指在 大规模网络环境中,对能够引起网络态势发生变化的安全要素进行获 取、理解、显示以及预测未来的发展趋势。由于网络态势感知要求能 够对大规模网络尽可能完整地进行态势感知,同时满足实时性和高可 靠性,因此实时和可靠的网络拓扑发现技术对于网络态势感知至关重 要。

较之于现有的域间和域内路由拓扑构建技术,本发明提出了一种 面向网络态势感知的多级别网络拓扑发现方法,其中OSPF/BGP服务器 利用开源软件Zebra来实现,运行OSPF协议和BGP协议。通过搭建 OSPF/BGP服务器,使服务器与自治系统内部的边界BGP路由器通过隧 道建立邻居关系,实时被动地采集BGP更新报文;服务器与自治系统 每个区域(Area)中的一台路由器通过隧道建立OSPF邻居关系,实时 被动地采集OSPF链路状态更新报文,其中:

对于采集到的BGP更新报文,可根据可达前缀信息、AS-Path信息 和下一跳(Next Hop)信息,结合服务器的邻居BGP路由器ID和所属 AS号信息,可以获得本AS边界BGP路由器与相邻AS边界BGP路由器 之间的连接关系;相应地,可根据不可达前缀信息、路径属性中的 AS-Path信息和下一跳(Next Hop)信息,结合服务器的邻居BGP路由 器ID和所属AS号信息,可以获得本AS边界BGP路由器与相邻AS边 界BGP路由器之间的连接关系的变化,域间拓扑边上的权重值随之变 化。

对于采集到的OSPF链路状态更新报文,可根据更新报文中不同类 型的LSA,可以获得自治系统内路由器信息、子网信息和路由连接关系 (包括路由器ID、接口IP、所属AS号、所属区域号、掩码、邻居路 由器ID、邻居路由器接口IP、链路类型、链路Metric等),根据网络 变化产生的LSA,可以实时地更新网络拓扑,与实际网络保持一致;根 据洪泛产生的LSA,可以保证自治域内路由拓扑始终是最新的。因此, 通过搭建OSPF/BGP服务器与路由器建立邻居关系,实时被动地采集 OSPF和BGP报文,能够快速构建域间和域内路由拓扑,满足网络变化 时路由拓扑的实时更新。

本地和全局OSPF/BGP服务器的部署和采集:

为了实现BGP更新报文的采集,服务器与所有自治系统AS边界的 一个BGP路由器建立隧道,使服务器与BGP路由器之间在逻辑上邻接。 服务器上模拟实现完整的边界网关协议BGP,运行边界网关协议BGP 的服务,与自治系统边界BGP路由器建立对等会话。首先服务器与BGP 路由器之间发送open报文,建立最初的BGP连接关系。为了维持这种 邻接关系,服务器与BGP路由器之间需要周期性地交换Keep alive报 文。然后服务器会接收到来自BGP路由器的更新报文,服务器不向BGP 路由器发送更新报文,不影响现有网络的路由状态,实现被动式采集。

为了实现域间路由拓扑的构建,服务器对获取到的BGP更新报 文进行重新封装,将服务器的对端BGP路由器ID,接口IP地址、所属 AS号和BGP类型封装到更新报文头部,去掉原BGP更新报文头部的标 记、长度、类型三个字段,增加长度字段表示重新封装后的整个报文 的长度。

为了实现OSPF链路状态更新报文的采集,服务器与自治系统AS 内每个区域中的某个路由器建立隧道,服务器上模拟实现完整的开放 最短路径优先协议OSPF,运行OSPF协议的服务,启动多个OSPF进程 与区域中建立好隧道的路由器建立对等会话。如果自治系统存在多个 区域,在选择区域中的路由器时,优先考虑区域间路由器(ABR-Area  Boundary Router)。首先服务器周期性地与OSPF路由器通过hello报 文建立和维护邻居关系,然后通过DD报文来进行链路状态数据库 (LSDB)的同步,服务器就能知道上OSPF路由器哪些LSA是缺少的和 哪些LSA已经失效了。这时服务器通过链路状态请求报文(LSR)向对 端路由器请求所需的LSA,OSPF路由器收到LSR报文后,通过链路状 态更新报文(LSU)将服务器所需的LSA发送过去,服务器通过LSAck 报文对新收到LSA报文进行确认。在上述过程中,服务器不响应对端 路由器发送的LSR报文,也不向网络中发送LSU报文,不会现有网络 的路由状态,实现被动式采集。

为了实现多个域内路由拓扑的构建,服务器对获取到的LSU报 文进行重新封装,去掉原LSU报文头部的Authentication认证字段, 修改LSU报文长度字段值。

每个自治系统AS部署一套本地OSPF/BGP服务器,同时部署一 套全局OSPF/BGP服务器汇总来自各个自治系统AS的信息。在部署时, 全局服务器上保存着各个自治系统AS中边界BGP路由器的相关信息, 具体包括BGP路由器ID、所属AS号、接口IP地址、网段地址和掩码 信息。同时全局服务器还用于存储域间路由拓扑信息和域内路由拓扑 信息。OSPF/BGP服务器在网络中的部署以及整套网络拓扑结构的实施 例之一如图1所示,即包括全局OSPF/BGP服务器、3个自治系统AS (AS10、AS11、AS12)、每个自治系统AS中包含两个区域Area(Area0 和Area1)、3个边界BGP路由器(AS10:(R1、R2、R3)AS11:(R4、 R5、R6)AS12:(R7、R8、R9))、一台交换机和一台本地OSPF/BGP服 务器。

域间路由拓扑的实时构建:

通过本地服务器采集到的BGP更新报文信息和全局服务器上的边 界BGP信息,进行域间BGP路由的分析,实时构建域间路由拓扑。具 体来讲,每个自治系统AS对应的本地服务器上都维护一个BGP状态数 据库,记录和服务器建立邻居关系的对端BGP路由器所宣告的可达前 缀信息(Prefix)。该可达前缀信息包含边界BGP路由器的ID,BGP路 由器所属AS号,BGP路由器与服务器建立对等连接的接口IP,可达前 缀信息(Prefix),到达此前缀所需经过的下一跳路由器,到达此前缀 所需经过的自治系统路径以及其他自治系统路径信息(Path  attributes)。同时,数据库中记录各个自治系统AS之间的边界BGP 路由器连接关系信息,该信息包含本AS边界BGP路由器ID,所属AS 号,对端BGP路由器ID,对端BGP路由器所属AS号,对端BGP路由器 建立邻居关系的接口IP,掩码和权重值,其中权重值表示该链路所能 承载的可达前缀数量。上述连接关系信息同时在全局服务器也存储, 即构成了域间路由拓扑。构建域间路由拓扑的具体流程如图2所示:

S1):接收来自服务器采集进程重新封装后的BGP更新报文,放 入报文队列中,然后执行S2)。

S2):按照重定义的协议格式,对队列中的BGP更新报文进行解 析。然后执行S3)。

S3):得到报文中的不可行路由长度值(Unfeasible Routes  Length),如果长度为零,则没有撤销路由信息,执行S4);如果长度 不为零,则有撤销路由信息,则执行S16)。

S4):通过报文中的网络层可达信息NLRI(Network layer  Reachability information),得到可达前缀信息,如果存在,则执行 S5);如果不存在,则返回执行S1)。

S5):提取更新报文路径属性字段中的AS-Path信息,如果 AS-Path信息为空,则表示这是一条宣告本自治系统内部前缀的信息, 认为这样的报文对于自治系统级网络拓扑构建没有用处,返回执行 S1);否则,执行S6)。

S6):得到一条完整的可达前缀信息,包括BGP路由器的ID,BGP 路由器所属AS号,BGP路由器与服务器建立对等连接的接口IP,可达 前缀信息(Prefix),到达此前缀所需经过的下一跳路由器,到达此前 缀所需经过的自治系统路径(AS-Path)以及其他自治系统路径信息 (Path Attributes),然后执行S7)。

S7):根据得到可达前缀信息,利用BGP路由器ID,接口IP, 可达前缀信息,下一跳信息(Next Hop)和路径信息(AS-Path)到本 AS服务器数据库中的前缀信息表中查找,如果找到,则说明这条可达 信息已经存在,然后执行S13);否则,说明这是一条新的可达前缀信 息,然后执行S8)。

S8):将这条新的可达前缀信息存入本AS服务器数据库中,然 后执行S9)。

S9):根据这条新的可达前缀信息,得到BGP接口IP,下一跳信 息(Next Hop)和路径信息(AS-Path),利用全局服务器中保存的BGP 路由器属性信息,通过BGP接口IP和下一跳信息(Next Hop)找到对 应AS的边界BGP路由器ID,由此得到边界BGP路由器之间的一条连接 关系。然后,执行S10)。

S10):根据这条连接关系,查找本AS服务器数据库中是否已经 存在该信息,如果存在,则表示通过这条链路可以到达上述前缀,执 行S12);否则,执行S11)。

S11):将这条新的连接关系存入到本AS服务器数据库中,同时 存入到全局服务器中。然后执行S23)。

S12):将本AS服务器数据库中对应的连接关系中的权重字段增 加一,然后执行S23)。

S13):根据这条新的可达前缀信息,找到本AS服务器数据中对 应的可达前缀信息,得到前缀信息中的其他自治系统路径信息(Path  Attributes)。然后执行S14)。

S14):将这条新的可达前缀信息中自治系统路径信息和数据库 中对应前缀的自治系统路径信息进行比较,如果相同,则执行S23); 否则,执行S15)。

S15):更新数据库中对应前缀的自治系统路径信息(Path  Attributes),然后执行S23)。

S16):得到需要删除的可达前缀信息,包括BGP路由器的ID, BGP路由器所属AS号,BGP路由器与服务器建立对等连接的接口IP, 可达前缀信息(Prefix),到达此前缀所需经过的下一跳路由器,到达 此前缀所需经过的自治系统路径(AS-Path)以及其他自治系统路径信 息(Path Attributes),然后执行S17)。

S17):根据需要删除的可达前缀信息,从本AS服务器数据库中 找到对应的可达前缀信息,然后执行S18)。

S18):提取更新报文路径属性字段中的AS-Path信息,如果 AS-Path信息为空,则表示这是一条宣告本自治系统内部前缀的信息, 认为这样的报文对于自治系统级网络拓扑构建没有用处,返回执行 S1);否则,执行S19)。

S19):根据这条新的可达前缀信息,得到BGP接口IP,下一跳 信息(Next Hop)和路径信息(AS-Path),利用全局服务器中保存的 BGP路由器属性信息,通过BGP接口IP和下一跳信息(Next Hop)找 到对应AS的边界BGP路由器ID,由此得到边界BGP路由器之间的一条 连接关系。根据这条连接关系,找到本AS服务器数据库中对应的连接 关系,得到该连接关系信息的权重值。然后执行S20)。

S20):如果该权重值大于1,则说明该连接关系上承载多条可达 前缀信息,然后执行S21);否则,执行S22)。

S21):将本AS服务器数据库中对应连接关系的权重值减1,然 后返回执行S1)。

S22):将本AS服务器数据库中对应连接关系信息删除,即边界 BGP路由器之间的一条邻接关系丢失。同时,删除全局服务器上对应的 连接关系信息。然后返回执行S1)。

S23):如果还有可达前缀信息需要处理,则返回执行S5);否则, 返回执行S1)。

域内路由拓扑的实时构建:

通过本地服务器采集到的OSPF链路状态更新报文(LSU)进行域 内路由的分析,实时构建域内路由拓扑,每个AS自治系统对应的服务 器上都维护一个OSPF链路状态数据库。首先,链路状态数据库存储服 务器收到的有效的LSA信息,包括路由器LSA(Router LSA)、网络LSA (Network LSA)、聚合LSA(Summary LSA)和外部LSA(External LSA) 信息;其次,存储路由器属性信息,包括路由器ID、所属AS号、路由 器类型和路由器信息的创建时间和失效时间;最后,存储域内路由器 连接信息,包括路由器ID、接口IP、所属AS号、所属区域号、掩码、 邻居路由器ID、邻居路由器接口IP、链路类型、链路Metric、链路信 息的创建时间和失效时间。其中,路由器属性信息和域内路由器连接 信息在全局服务器上也存储,即构成了域内路由拓扑信息。构建域内 路由拓扑的具体步骤如下:

S1):接收来自服务器采集进程重新封装后的OSPF链路状态更 新报文,放入报文队列中,然后执行S2)。

S2):按照重定义的报文格式,对队列中链路状态更新报文进行 解析,得到报文中所有LSA信息。然后,对每一条LSA进行分析,执 行S3)。

S3):如果LSA的类型为1,则表示是路由器LSA(Router LSA), 执行S4);否则,执行S10)。

S4):得到LSA中的链路类型(Link Type)值,如果链路类型 为1或者为2,可以得到宣告路由器(Advertising Router)的邻居关 系,执行S5);否则执行S7)。

S5):从Router LSA中得到宣告路由器(Advertising Router) 与其邻居路由器的连接信息,然后执行S6)。

S6):将得到的连接信息存储到本AS服务器数据库的Router LSA 表中,然后执行S10)。

S7):得到LSA中的链路类型(Link Type)值,如果链路类型 为3,可以得到宣告路由器(Advertising Router)的路由器直连网段 信息,执行S8);否则,对于其他链路类型,对于构建域内拓扑没有作 用,则执行S28)。

S8):从Router LSA中得到宣告路由器的直连网段信息,执行 S9)。

S9):将得到的直连网段信息存储到本AS服务器数据库的 Router LSA表中,然后执行S29)。

S10):如果LSA的类型为2,则表示是网络LSA(Network LSA), 则执行S11);否则,执行S18)。

S11):从Network LSA中得到指定路由器(DR)与其邻居路由 器的连接信息,然后执行S12)。

S12):将得到的连接信息存储到本AS服务器数据库的Network  LSA表中,然后执行S13)。

S13):如果是Router LSA则得到路由器到邻居路由器之间的连 接关系,如果是Network LSA则得到指定路由器(DR)与邻居路由器 之间的连接关系,连接关系包括路由器ID,接口IP,所属AS号,所 属区域号,掩码,邻居路由器ID,邻居路由器接口IP,链路类型,链 路Metric。然后执行S14)。

S14):让得到的路由器连接关系存储到本AS服务器数据库的路 由器连接信息表中,即域内路由拓扑信息。然后执行S15)。

S15):根据路由器连接关系,得到对应的路由器信息,路由器 信息包括路由器ID,所属AS号,路由器类型。然后执行S16)。

S16):通过得到的路由器信息,查找数据库中是否存在同样的 路由器信息,如果不存在,则说明是新的路由器信息,执行S17)。否 则,执行S28)。

S17):将得到的路由器信息存入到本AS服务器数据库的路由器 信息表,然后执行S29)。

S18):如果LSA的类型为3,则表示是网络汇总LSA(Network  Summary LSA),则执行S19);否则,执行S20)。

S19):从Network Summary LSA中得到区域边界路由器(ABR) 通告的区域外的网络地址,然后执行S22)。

S20):如果LSA的类型为4,则表示是AS边界路由器汇总LSA (ASBR Summary LSA),则执行S21);否则,执行S23)。

S21):从ASBR Summary LSA中得到通告区域外的自治系统边界 路由器的Router ID信息,然后执行S22)。

S22):将类型为3或4的汇总LSA(Summary LSA)信息存储到 本AS服务器数据库的Summary LSA表中,然后执行S29)。

S23):如果LSA的类型为5,则表示是AS外部LSA(AS External  LSA),则执行S24);否则,执行S25)。

S24):从AS External LSA中得到通告的其他外部AS的可达网 段信息,然后执行S27)。

S25):如果LSA的类型为7,则表示是完全非末梢区域LSA(NSSA  External LSA),则执行S26);否则对于其他类型的LSA,对于构建域 内网络拓扑没有意义,则执行S28)。

S26):从NSSA External LSA得到完全非末梢区域内的ASBR产 生的外部可达网段信息,该信息只能在NSSA区域内传播,然后执行 S27)。

S27):将类型为5或7类型的外部LSA(External LSA)信息存 储到本AS服务器数据库的External LSA表中,然后执行S28)。

S28):如果后续还有LSA报文需要进行处理,则返回继续执行 S2);否则返回执行S1)。

如上所述,通过BGP更新报文和OSPF链路状态更新报文实现包 括区域间路由拓扑和区域内路由拓扑在内的多级别网络拓扑实时构 建,能够给出在任意时刻的网络拓扑的完整拓扑。

如上所述,对本发明的实施例进行了详细地说明,显然,只要实 质上没有脱离本发明的发明点及效果、对本领域的技术人员来说是显 而易见的变形,也均包含在本发明的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号