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

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

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

【背景技术】
[0002]信息时代对计算机网络的依赖使得计算机网络运行的可靠性显得尤为重要,机网络运行的可靠性对网络管理便提出了更高的要求。按照OSI的定义,网络管理主要包括故障管理、配置管理、性能管理、安全管理和计费管理五个功能域,在上述五大功能域中,配置管理是基础,它的主要功能包括发现网络的拓扑结构,监视和管理网络设备的配置情况,其它各项功能则均以已知网络的拓扑结构为基础。网络拓扑发现的主要目的是获取和维护网络节点的存在信息和它们之间的连接关系信息,并在此基础上绘制出整个网络拓扑图。
[0003]目前Internet和其他较大的专有网络都由大量的自治系统(AutonomousSystem)组成,这些网络的路由结构一般被划分为域内路由和域间路由两种结构。自治系统内部的路由器通过域内路由协议彼此交换路由信息,一般域内路由协议分为距离向量协议和链路状态协议,前者以路由信息协议(RIP)代表,后者常用的有开放最短路径优先(OSPF)协议和中间系统到中间系统(IS-1S)协议;自治系统边界路由器通过域间路由协议交换路由信息,目前Internet上的域间路由协议标准是边界网关协议(BGP)。
[0004]对于域间路由拓扑的构建,目前有三种技术:基于Traceroute拓扑发现技术、基于BGP路由表信息构建技术和基于BGP路由更新报文(BGP Update)信息构建技术。在同等环境下,基于Traceroute技术和基于BGP路由表信息技术需要通过主动请求和轮询进行数据的采集,不可避免地要向网络注入较大的数据流量,同时这两种方法无法实现对网络路由拓扑结构的变化实时地发现并更新。而基于BGP路由更新报文信息构建技术,鉴于BGP协议的增量性和策略性,难以获得完整的域间路由拓扑信息,目前大多是利用AS-Path自治系统路径信息中的相邻自治系统来构建域间邻居关系,同时对这种邻居关系维护权值,即所能达到自治系统外部的前缀数量;但这种技术的前提是要求每个自治系统只有一个BGP路由器,这就使得该技术在发现域间路由拓扑受到很大的限制。
[0005]对于域内路由拓扑的构建,目前主要有三种技术:基于简单网络管理协议(SNMP)构建拓扑技术、基于Internet控制报文协议(ICMP)协议构建拓扑技术和基于OSPF协议构建拓扑技术。在同等网络环境下,基于SNMP构建拓扑技术虽然能够获得网络中的拓扑信息,但是需要布置专门的探测软件,且实现过程比较复杂;同时,不同路由器厂商的路由器拥有各自的私有MIB库,利用SNMP技术可能导致获取的拓扑信息不完整。基于ICMP协议构建拓扑技术是一种主动探测技术,需要在指定探测端向目标网络发起拓扑探测进而构建网络拓扑,但由于互联网中的路由协议“向前”策略和网络安全的访问控制因素,会导致ICMP主动式拓扑发现的结果不完整,存在拓扑链路缺失的问题。


【发明内容】

[0006]有鉴于此,本发明提供一种面向网络态势感知的多级别网络拓扑发现方法,旨在能够对域间路由拓扑和域内路由拓扑进行完整全面的构建。
[0007]本发明采用的技术方案具体为:一种面向网络态势感知的多级别网络系统,包括若干个自治系统AS (以下简称AS),每个所述AS包括至少一个区域Area (以下简称Area),每个所述AS的内部署有一个本地服务器和至少一个边界BGP路由器,所述本地服务器通过隧道和每个所述Area中的一个边界BGP路由器建立邻居关系,所述本地服务器通过所述邻居关系存储所述边界BGP路由器的信息;定义相邻的所述AS为邻居AS,每个AS的所述边界BGP路由器存储邻居AS的所述边界BGP路由器的信息,相邻的所述AS之间通过所述边界BGP路由器建立对话;还包括全局服务器,所述全局服务器与若干个所述本地服务器进行数据同步,汇总各个所述AS的信息。
[0008]所述各个本地服务器通过交换机与各个所述自治系统的边界BGP路由器建立邻居关系。
[0009]所述全局服务器和所述本地服务器为0SPF/BGP服务器,所述0SPF/BGP服务器是由OSPF服务器和BGP服务器整合而成的服务器。
[0010]所述边界BGP路由器存储的信息包括邻居AS的路由器ID、接口 IP和路由器所属的AS号。
[0011]一种面向网络态势感知的多级别网络系统的构建方法,包括不同AS之间的域间路由拓扑和同一 AS内的域内路由拓扑的发现方法,其中:
[0012](I)所述域间路由拓扑发现方法具体包含如下步骤:
[0013]SlO:在每个所述AS中部署一个BGP服务器,所述BGP服务器通过隧道与所述AS的边界BGP路由器建立邻居关系,所述边界BGP服务器为一个或者多个,所述BGP服务器存储邻居AS的边界BGP路由器的信息,所述信息包括路由器ID、接口 IP和路由器所属的AS号;
[0014]Sll:所述BGP服务器与所述边界BGP路由器建立对等会话后,实时采集所述BGP边界路由器的更新报文,并对所述更新报文进行存储和解析;
[0015]S12:所述BGP服务器根据解析后的报文获得自治系统路径信息中的自治系统路径信息AS-Path (以下简称AS-Path)和下一跳信息Next Hop (以下简称Next Hop),以及可达前缀信息Prefix(以下简称Prefix)或者不可达前缀信息中的一种,并利用获得的信息构建BGP路由信息表,并根据所述BGP路由信息表分析本AS的边界BGP路由器所承载的可达前缀的数量,所述可达前缀的数量用权重表示;
[0016]S13:若获得的信息为所述Prefix,则表示从本AS的边界BGP路由器到邻居AS的所述边界BGP路由器存在一条域间边界链路,进一步地:
[0017]若域间路由拓扑结构中不存在该域间边界链路,则需根据所述Prefix、AS-Path以及Next Hop新建立一条域间边界链路并将该域间边界链路的权重值设置为I ;
[0018]若域间路由拓扑结构中已经存在该域间边界链路,则将该域间边界链路的权重值加I ;
[0019]S14:若获得的信息为所述不可达前缀信息,则表示从本AS的边界BGP路由器到邻居AS的所述边界BGP路由器不存在域间边界链路,进一步地:
[0020]若该域间边界链路的权重值非零,则在本AS的BGP服务器上删除该不可达前缀信息以及AS-Path和Next Hop对应的Prefix,然后将该Prefix对应的域间边界链路的权重值减I ;
[0021]若该域间边界链路的权重值为零,则在域间路由拓扑中撤销这条域间边界链路;
[0022](2)所述域内路由拓扑发现方法具体包含如下步骤:
[0023]S20:每个AS包括至少一个Area,在每个所述AS中部署OSPF服务器,所述OSPF服务器通过隧道和每个所述Area中的一台路由器建立邻居关系;
[0024]S21:所述OSPF服务器与每个所述Area中的邻居路由器建立对等会话后,实时采集所述OSPF服务器的链路状态更新报文LSU,然后对采集到的所述报文进行解析,并将解析得到的链路状态宣告报文LSA信息存储在本AS的OSPF服务器上,生成本AS的链路状态数据库LSDB ;
[0025]S22:通过分析所述链路状态宣告报文信息LSA(以下简称LSA)的类型得到路由器之间的连接关系、路由器信息、子网信息和接口信息,并根据上述信息构建域内路由拓扑,并同时将所述域内路由拓扑信息存储到全局OSPF服务器上;
[0026]S23:对于网络状态更新产生的LSA’首先在本地OSPF服务器的LSDB中找到对应的LSA,然后将该LSA对应的属性进行更新,同时将全局OSPF服务器中对应的LSA进行更新;
[0027]S24:对于网络拓扑变化产生的LSA,首先在本地OSPF服务器的LSDB中找到同一个始发路由器产生的LSA,然后通过对二者进行比较来判断域内路由拓扑的变化,并更新本地和全局OSPF服务器的LSDB ;
[0028]S25:对于网络洪泛的LSA,首先在本地OSPF服务器的LSDB中找到同一个始发路由器产生的LSA’根据洪泛LSA的生存期Age和序列号Sequence属性将LSDB中的LSA对应的属性进行更新,从而保证域内网络拓扑数据为最新。
[0029]所述S13进一步包括:
[0030]S131:若所述AS-Path属性非空,则表示所述可达前缀信息为可到达邻居AS的前缀,然后获取该条边界链路信息所含的本AS的边界BGP路由器ID,邻居AS号以及到达所述前缀的Next Hop ;若自治系统路径信息AS-Path属性为空,则表示所述可达前缀信息为本AS内部的前缀;
[0031]S132:在自治系统路径信息AS-Path属性非空的前提下,利用所述S131中获得的Next Hop在全局的所述边界BGP路由器的所述信息表中找到对应的邻居AS的边界BGP路由器ID,即得到本AS边界BGP路由器到邻居AS边界BGP路由器的一条域间边界链路,根据该域间边界链路到域间路由拓扑中查找是否已经存在该域间边界链路,若不存在,则在域间路由拓扑中增加这条域间边界链路,并将权重值设置为I ;如果存在,则将域间路由拓扑中对应的该域间边界链路的权重值增加I。
[0032]所述S14进一步包括:
[0033]S141:根据获得的所述不可达前缀信息和AS-Path属性,先在本AS的BGP服务器上找到对应的可达前缀信息,若AS-Path属性为非空,则获取该条信息所包含的所述本AS的边界BGP路由器ID,邻居AS号和到达所述前缀的Next Hop信息;
[0034]S142:利用S141中获得的Next Hop信息在全局的边界BGP路由器列表中找到对应的邻居AS的边界BGP路由器ID,得到本AS的边界BGP路由器到邻居AS的边界BGP路由器的一条连接关系,根据该连接关系将域间路由拓扑中对应的域间边界链路的权重值减I;若该域间边界链路的权重值被减为O,则从域间路由拓扑中删除该条域间边界链路,并同时删除BGP服务器中对应的该域间边界链路的可达前缀信息。
[0035]所述S22进一步包括:
[0036]S221:若LSA的类型为路由器链路状态宣告报文信息(Router LSA),则链路ID属性和链路数据属性与路由器链路状态宣告报文信息的链路类型有关,具体地:
[0037]若链路类型为对等连接,则链路ID为邻居路由器ID,链路数据为本路由器接口 IP地址;
[0038]若链路类型为到传输网的连接,则链路ID为指定路由器DR的接口 IP地址,链路数据为本路由器的接口 IP地址;
[0039]若链路类型为到末梢网的连接,则链路ID为IP网络/子网号,链路数据为本路由器的接口 IP地址;
[0040]若链路类型为虚拟连接,则链路ID为邻居路由器ID,链路数据为本路由器接口 IP地址;
[0041]通过分析所述对等连接和所述到传输网的连接的链路类型的路由器链路状态宣告报文信息,得到路由器的连接关系,通过分析所述到末梢网的连接链路类型的路由器链路状态宣告报文信息,得到路由器的直连网段信息,所述直连网段信息包括路由器ID、接口IP、子网掩码和Metric值;
[0042]S222:若LSA的类型为网络链路状态宣告报文信息(Network LSA),则网络掩码为公共网段的网络掩码,链路ID为指定路由器DR在该公共网段里的接口 IP地址,报文中邻接路由器Attach Router属性为与指定路由器DR同属一个网段的路由器ID ;通过分析所述网络LSA得到路由器的连接关系和所述公用网段的信息;
[0043]S233:若LSA的类型为聚合LSA链路状态宣告报文信息(Summary LSA),所述聚合链路状态宣告报文信息包括类型一和类型二,所述类型一为本AS其他区域的网段信息,所述类型二为其他区域的AS边界路由器ID。
[0044]S234:若LSA的类型为外部链路状态宣告报文信息(External LSA),所述外部链路状态宣告报文包括类型三和类型四,所述类型三为自治系统外部可达的网段信息,所述类型四为NSSA区域内ASBR产生的可达网段信息,通过分析所述外部链路状态宣告报文,得到路由器可到达其他AS的网段信息。
[0045]本发明产生的有益效果是:通过将OSPF服务器和BGP服务器功能进行整合形成0SPF/BGP服务器,与自治系统AS内的边界BGP路由器通过GRE隧道建立邻居关系,可以在不增加网络负载的情况下,实时被动地采集网络中的报文并以此构建出域间和域内的网络拓扑,保证了拓扑发现的实时性和高可靠性。

【专利附图】

【附图说明】
[0046]当结合附图考虑时,能够更完整更好地理解本发明。此处所说明的附图用来提供对本发明的进一步理解,实施例及其说明用于解释本发明,并不构成对本发明的不当限定。
[0047]图1为本发明一种面向网络态势感知的多级别网络拓扑结构示意图;
[0048]图2为本发明一种面向网络态势感知的多级别网络拓扑发现方法的域间路由拓扑实时构建流程图;
[0049]图3为本发明一种面向网络态势感知的多级别网络拓扑发现方法的域内路由拓扑实时构建流程图。

【具体实施方式】
[0050]下面结合附图及实施例对本发明的技术方案作进一步详细的说明。
[0051]网络态势是指由各种网络设备运行状况、网络行为以及用户行为等因素所构成的整个网络当前状态和变化趋势。网络态势感知是指在大规模网络环境中,对能够引起网络态势发生变化的安全要素进行获取、理解、显示以及预测未来的发展趋势。由于网络态势感知要求能够对大规模网络尽可能完整地进行态势感知,同时满足实时性和高可靠性,因此实时和可靠的网络拓扑发现技术对于网络态势感知至关重要。
[0052]较之于现有的域间和域内路由拓扑构建技术,本发明提出了一种面向网络态势感知的多级别网络拓扑发现方法,其中0SPF/BGP服务器利用开源软件Zebra来实现,运行OSPF协议和BGP协议。通过搭建0SPF/BGP服务器,使服务器与自治系统内部的边界BGP路由器通过隧道建立邻居关系,实时被动地采集BGP更新报文;服务器与自治系统每个区域(Area)中的一台路由器通过隧道建立OSPF邻居关系,实时被动地采集OSPF链路状态更新报文,其中:
[0053]对于采集到的BGP更新报文,可根据可达前缀信息、AS-Path信息和下一跳(NextHop)信息,结合服务器的邻居BGP路由器ID和所属AS号信息,可以获得本AS边界BGP路由器与相邻AS边界BGP路由器之间的连接关系;相应地,可根据不可达前缀信息、路径属性中的AS-Path信息和下一跳(Next Hop)信息,结合服务器的邻居BGP路由器ID和所属AS号信息,可以获得本AS边界BGP路由器与相邻AS边界BGP路由器之间的连接关系的变化,域间拓扑边上的权重值随之变化。
[0054]对于采集到的OSPF链路状态更新报文,可根据更新报文中不同类型的LSA,可以获得自治系统内路由器信息、子网信息和路由连接关系(包括路由器ID、接口 IP、所属AS号、所属区域号、掩码、邻居路由器ID、邻居路由器接口 IP、链路类型、链路Metric等),根据网络变化产生的LSA,可以实时地更新网络拓扑,与实际网络保持一致;根据洪泛产生的LSA,可以保证自治域内路由拓扑始终是最新的。因此,通过搭建0SPF/BGP服务器与路由器建立邻居关系,实时被动地采集OSPF和BGP报文,能够快速构建域间和域内路由拓扑,满足网络变化时路由拓扑的实时更新。
[0055]本地和全局0SPF/BGP服务器的部署和采集:
[0056]为了实现BGP更新报文的采集,服务器与所有自治系统AS边界的一个BGP路由器建立隧道,使服务器与BGP路由器之间在逻辑上邻接。服务器上模拟实现完整的边界网关协议BGP,运行边界网关协议BGP的服务,与自治系统边界BGP路由器建立对等会话。首先服务器与BGP路由器之间发送open报文,建立最初的BGP连接关系。为了维持这种邻接关系,服务器与BGP路由器之间需要周期性地交换Keep alive报文。然后服务器会接收到来自BGP路由器的更新报文,服务器不向BGP路由器发送更新报文,不影响现有网络的路由状态,实现被动式米集。
[0057]为了实现域间路由拓扑的构建,服务器对获取到的BGP更新报文进行重新封装,将服务器的对端BGP路由器ID,接口 IP地址、所属AS号和BGP类型封装到更新报文头部,去掉原BGP更新报文头部的标记、长度、类型三个字段,增加长度字段表示重新封装后的整个报文的长度。
[0058]为了实现OSPF链路状态更新报文的采集,服务器与自治系统AS内每个区域中的某个路由器建立隧道,服务器上模拟实现完整的开放最短路径优先协议0SPF,运行OSPF协议的服务,启动多个OSPF进程与区域中建立好隧道的路由器建立对等会话。如果自治系统存在多个区域,在选择区域中的路由器时,优先考虑区域间路由器(ABR-Area BoundaryRouter)。首先服务器周期性地与OSPF路由器通过hello报文建立和维护邻居关系,然后通过DD报文来进行链路状态数据库(LSDB)的同步,服务器就能知道上OSPF路由器哪些LSA是缺少的和哪些LSA已经失效了。这时服务器通过链路状态请求报文(LSR)向对端路由器请求所需的LSA,0SPF路由器收到LSR报文后,通过链路状态更新报文(LSU)将服务器所需的LSA发送过去,服务器通过LSAck报文对新收到LSA报文进行确认。在上述过程中,服务器不响应对端路由器发送的LSR报文,也不向网络中发送LSU报文,不会现有网络的路由状态,实现被动式米集。
[0059]为了实现多个域内路由拓扑的构建,服务器对获取到的LSU报文进行重新封装,去掉原LSU报文头部的Authenticat1n认证字段,修改LSU报文长度字段值。
[0060]每个自治系统AS部署一套本地0SPF/BGP服务器,同时部署一套全局0SPF/BGP服务器汇总来自各个自治系统AS的信息。在部署时,全局服务器上保存着各个自治系统AS中边界BGP路由器的相关信息,具体包括BGP路由器ID、所属AS号、接口 IP地址、网段地址和掩码信息。同时全局服务器还用于存储域间路由拓扑信息和域内路由拓扑信息。OSPF/BGP服务器在网络中的部署以及整套网络拓扑结构的实施例之一如图1所示,即包括全局0SPF/BGP服务器、3个自治系统AS(AS10、ASl1、AS12)、每个自治系统AS中包含两个区域Area(AreaO和Areal)、3个边界BGP路由器(AS10: (R1、R2、R3)ASll: (R4、R5、R6)AS12:(R7、R8、R9))、一台交换机和一台本地0SPF/BGP服务器。
[0061]域间路由拓扑的实时构建:
[0062]通过本地服务器采集到的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所示:
[0063]SI):接收来自服务器采集进程重新封装后的BGP更新报文,放入报文队列中,然后执彳丁 S2)。
[0064]S2):按照重定义的协议格式,对队列中的BGP更新报文进行解析。然后执行S3)。
[0065]S3):得到报文中的不可行路由长度值(Unfeasible Routes Length),如果长度为零,则没有撤销路由信息,执行S4);如果长度不为零,则有撤销路由信息,则执行S16)。
[0066]S4):通过报文中的网络层可达信息NLRI (Network layer Reachabilityinformat1n),得到可达前缀信息,如果存在,则执行S5);如果不存在,则返回执行SI)。
[0067]S5):提取更新报文路径属性字段中的AS-Path信息,如果AS-Path信息为空,则表示这是一条宣告本自治系统内部前缀的信息,认为这样的报文对于自治系统级网络拓扑构建没有用处,返回执行SI);否则,执行S6)。
[0068]S6):得到一条完整的可达前缀信息,包括BGP路由器的ID,BGP路由器所属AS号,BGP路由器与服务器建立对等连接的接口 IP,可达前缀信息(Prefix),到达此前缀所需经过的下一跳路由器,到达此前缀所需经过的自治系统路径(AS-Path)以及其他自治系统路径信息(Path Attributes),然后执行 S7)。
[0069]S7):根据得到可达前缀信息,利用BGP路由器ID,接口 IP,可达前缀信息,下一跳信息(Next Hop)和路径信息(AS-Path)到本AS服务器数据库中的前缀信息表中查找,如果找到,则说明这条可达信息已经存在,然后执行S13);否则,说明这是一条新的可达前缀信息,然后执行S8)。
[0070]S8):将这条新的可达前缀信息存入本AS服务器数据库中,然后执行S9)。
[0071]S9):根据这条新的可达前缀信息,得到BGP接口 IP,下一跳信息(Next Hop)和路径信息(AS-Path),利用全局服务器中保存的BGP路由器属性信息,通过BGP接口 IP和下一跳信息(Next Hop)找到对应AS的边界BGP路由器ID,由此得到边界BGP路由器之间的一条连接关系。然后,执彳T S10)。
[0072]S10):根据这条连接关系,查找本AS服务器数据库中是否已经存在该信息,如果存在,则表示通过这条链路可以到达上述前缀,执行S12);否则,执行Sll)。
[0073]Sll):将这条新的连接关系存入到本AS服务器数据库中,同时存入到全局服务器中。然后执打S23) ο
[0074]S12):将本AS服务器数据库中对应的连接关系中的权重字段增加一,然后执行S23)。
[0075]S13):根据这条新的可达前缀信息,找到本AS服务器数据中对应的可达前缀信息,得到前缀信息中的其他自治系统路径信息(Path Attributes)。然后执行S14)。
[0076]S14):将这条新的可达前缀信息中自治系统路径信息和数据库中对应前缀的自治系统路径信息进行比较,如果相同,则执行S23);否则,执行S15)。
[0077]S15):更新数据库中对应前缀的自治系统路径信息(Path Attributes),然后执行
S23)。
[0078]S16):得到需要删除的可达前缀信息,包括BGP路由器的ID,BGP路由器所属AS号,BGP路由器与服务器建立对等连接的接口 IP,可达前缀信息(Prefix),到达此前缀所需经过的下一跳路由器,到达此前缀所需经过的自治系统路径(AS-Path)以及其他自治系统路径信息(Path Attributes),然后执行S17)。
[0079]S17):根据需要删除的可达前缀信息,从本AS服务器数据库中找到对应的可达前缀信息,然后执行S18)。
[0080]S18):提取更新报文路径属性字段中的AS-Path信息,如果AS-Path信息为空,则表示这是一条宣告本自治系统内部前缀的信息,认为这样的报文对于自治系统级网络拓扑构建没有用处,返回执行SI);否则,执行S19)。
[0081]S19):根据这条新的可达前缀信息,得到BGP接口 IP,下一跳信息(Next Hop)和路径信息(AS-Path),利用全局服务器中保存的BGP路由器属性信息,通过BGP接口 IP和下一跳信息(Next Hop)找到对应AS的边界BGP路由器ID,由此得到边界BGP路由器之间的一条连接关系。根据这条连接关系,找到本AS服务器数据库中对应的连接关系,得到该连接关系信息的权重值。然后执行S20)。
[0082]S20):如果该权重值大于1,则说明该连接关系上承载多条可达前缀信息,然后执行S21);否则,执行S22)。
[0083]S21):将本AS服务器数据库中对应连接关系的权重值减1,然后返回执行SI)。
[0084]S22):将本AS服务器数据库中对应连接关系信息删除,即边界BGP路由器之间的一条邻接关系丢失。同时,删除全局服务器上对应的连接关系信息。然后返回执行Si)。
[0085]S23):如果还有可达前缀信息需要处理,则返回执行S5);否则,返回执行SI)。
[0086]域内路由拓扑的实时构建:
[0087]通过本地服务器采集到的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、链路信息的创建时间和失效时间。其中,路由器属性信息和域内路由器连接信息在全局服务器上也存储,即构成了域内路由拓扑信息。构建域内路由拓扑的具体步骤如下:
[0088]SI):接收来自服务器采集进程重新封装后的OSPF链路状态更新报文,放入报文队列中,然后执彳丁 S2)。
[0089]S2):按照重定义的报文格式,对队列中链路状态更新报文进行解析,得到报文中所有LSA信息。然后,对每一条LSA进行分析,执行S3)。
[0090]S3):如果LSA的类型为1,则表示是路由器LSA(Router LSA),执行S4);否则,执行 S10)。
[0091]S4):得到LSA中的链路类型(Link Type)值,如果链路类型为I或者为2,可以得到宣告路由器(Advertising Router)的邻居关系,执行S5);否则执行S7)。
[0092]S5):从Router LSA中得到宣告路由器(Advertising Router)与其邻居路由器的连接信息,然后执行S6)。
[0093]S6):将得到的连接信息存储到本AS服务器数据库的Router LSA表中,然后执行S10)。
[0094]S7):得到LSA中的链路类型(Link Type)值,如果链路类型为3,可以得到宣告路由器(Advertising Router)的路由器直连网段信息,执行S8);否则,对于其他链路类型,对于构建域内拓扑没有作用,则执行S28)。
[0095]S8):从Router LSA中得到宣告路由器的直连网段信息,执行S9)。
[0096]S9):将得到的直连网段信息存储到本AS服务器数据库的Router LSA表中,然后执行S29)。
[0097]S10):如果LSA的类型为2,则表示是网络LSA(Network LSA),则执行Sll);否则,执行S18)。
[0098]Sll) =WNetwork LSA中得到指定路由器(DR)与其邻居路由器的连接信息,然后执行S12)。
[0099]S12):将得到的连接信息存储到本AS服务器数据库的Network LSA表中,然后执行 S13)。
[0100]S13):如果是Router LSA则得到路由器到邻居路由器之间的连接关系,如果是Network LSA则得到指定路由器(DR)与邻居路由器之间的连接关系,连接关系包括路由器ID,接口 IP,所属AS号,所属区域号,掩码,邻居路由器ID,邻居路由器接口 IP,链路类型,链路Metric。然后执行S14)。
[0101]S14):让得到的路由器连接关系存储到本AS服务器数据库的路由器连接信息表中,即域内路由拓扑信息。然后执行S15)。
[0102]S15):根据路由器连接关系,得到对应的路由器信息,路由器信息包括路由器ID,所属AS号,路由器类型。然后执行S16)。
[0103]S16):通过得到的路由器信息,查找数据库中是否存在同样的路由器信息,如果不存在,则说明是新的路由器信息,执行S17)。否则,执行S28)。
[0104]S17):将得到的路由器信息存入到本AS服务器数据库的路由器信息表,然后执行S29)。
[0105]S18):如果LSA的类型为3,则表示是网络汇总LSA (Network Summary LSA),则执行S19);否则,执行S20)。
[0106]S19):从Network Summary LSA中得到区域边界路由器(ABR)通告的区域外的网络地址,然后执行S22)。
[0107]S20):如果LSA的类型为4,则表示是AS边界路由器汇总LSA (ASBR Summary LSA),则执行S21);否则,执行S23)。
[0108]S21):从ASBR Summary LSA中得到通告区域外的自治系统边界路由器的RouterID信息,然后执行S22)。
[0109]S22):将类型为3或4的汇总LSA (Summary LSA)信息存储到本AS服务器数据库的Summary LSA表中,然后执行S29)。
[0110]S23):如果LSA的类型为5,则表示是AS外部LSA(AS External LSA),则执行
S24);否则,执行S25)。
[0111]S24):从AS External LSA中得到通告的其他外部AS的可达网段信息,然后执行S27)。
[0112]S25):如果LSA的类型为7,则表示是完全非末梢区域LSA (NSSA External LSA),则执行S26);否则对于其他类型的LSA,对于构建域内网络拓扑没有意义,则执行S28)。
[0113]S26):从NSSA External LSA得到完全非末梢区域内的ASBR产生的外部可达网段信息,该信息只能在NSSA区域内传播,然后执行S27)。
[0114]S27):将类型为5或7类型的外部LSA (External LSA)信息存储到本AS服务器数据库的External LSA表中,然后执行S28)。
[0115]S28):如果后续还有LSA报文需要进行处理,则返回继续执行S2);否则返回执行SI)。
[0116]如上所述,通过BGP更新报文和OSPF链路状态更新报文实现包括区域间路由拓扑和区域内路由拓扑在内的多级别网络拓扑实时构建,能够给出在任意时刻的网络拓扑的完整拓扑。
[0117]如上所述,对本发明的实施例进行了详细地说明,显然,只要实质上没有脱离本发明的发明点及效果、对本领域的技术人员来说是显而易见的变形,也均包含在本发明的保护范围之内。
【权利要求】
1.一种面向网络态势感知的多级别网络系统,其特征在于,包括若干个自治系统,每个所述自治系统包括至少一个区域,每个所述自治系统的内部署有一个本地服务器和至少一个边界路由器,所述本地服务器通过隧道和每个所述区域中的一个边界路由器建立邻居关系,所述本地服务器通过所述邻居关系存储所述边界路由器的信息;定义相邻的所述自治系统为邻居自治系统,每个自治系统的所述边界路由器存储邻居自治系统的所述边界路由器的信息,相邻的自治系统之间通过所述边界路由器建立对话;还包括全局服务器,所述全局服务器与若干个所述本地服务器进行数据同步,汇总各个所述自治系统的信息。
2.根据权利要求1所述的面向网络态势感知的多级别网络系统,其特征在于,所述各个本地服务器通过交换机与各个所述自治系统的边界路由器建立邻居关系。
3.根据权利要求1所述的面向网络态势感知的多级别网络系统,其特征在于,所述全局服务器和所述本地服务器为OSPF/BGP服务器,所述OSPF/BGP服务器是由OSPF服务器和BGP服务器整合而成的服务器。
4.根据权利要求1所述的面向网络态势感知的多级别网络系统,其特征在于,所述边界路由器存储的信息包括邻居自治系统的路由器ID、接口 IP和路由器所属的自治系统号。
5.一种面向网络态势感知的多级别网络系统的构建方法,其特征在于,一种面向网络态势感知的多级别网络系统的构建方法,包括不同自治系统之间的域间路由拓扑和同一自治系统内的域内路由拓扑的发现方法,其中: (I)所述域间路由拓扑发现方法具体包含如下步骤: 510:在每个所述自治系统中部署一个BGP服务器,所述BGP服务器通过隧道与所述自治系统的边界路由器建立邻居关系,所述边界BGP服务器为一个或者多个,所述BGP服务器存储邻居自治系统的边界路由器的信息,所述信息包括路由器ID、接口 IP和路由器所属的自治系统号; 511:所述服务器与所述边界路由器建立对等会话后,实时采集所述边界路由器的更新报文,并对所述更新报文进行存储和解析; 512:所述BGP服务器根据解析后的报文获得自治系统路径信息中的自治系统路径信息和下一跳信息,以及可达前缀信息或者不可达前缀信息中的一种,并利用获得的信息构建边界路由信息表,并根据所述边界路由信息表分析本自治系统的边界路由器所承载的可达前缀的数量,所述可达前缀的数量用权重表示; SS13:若获得的信息为所述可达前缀信息,则表示从本自治系统的边界路由器到邻居自治系统的所述边界路由器存在一条域间边界链路,进一步地: 若域间路由拓扑结构中不存在该域间边界链路,则需根据所述可达前缀信息以及自治系统路径信息和下一跳信息新建立一条域间边界链路并将该域间边界链路的权重值设置为I ; 若域间路由拓扑结构中已经存在该域间边界链路,则将该域间边界链路的权重值加I; S14:若获得的信息为所述不可达前缀信息,则表示从本自治系统的边界路由器到邻居自治系统的所述边界路由器不存在域间边界链路,进一步地: 若该域间边界链路的权重值非零,则在本自治系统的BGP服务器上删除该不可达前缀信息以及自治系统路径信息和下一跳信息对应的可达前缀信息,然后将该可达前缀信息对应的域间边界链路的权重值减I; 若该域间边界链路的权重值为零,则在域间路由拓扑中撤销这条域间边界链路; (2)所述域内路由拓扑发现方法具体包含如下步骤: 520:每个自治系统包括至少一个区域,在每个所述自治系统中部署OSPF服务器,所述OSPF服务器通过隧道和每个所述区域中的一台路由器建立邻居关系; 521:所述OSPF服务器与每个所述区域中的邻居路由器建立对等会话后,实时采集所述OSPF服务器的链路状态更新报文,然后对采集到的所述报文进行解析,并将解析得到的链路状态通告信息存储在本自治系统的OSPF服务器上,生成本自治系统的链路状态数据库; S22:通过分析所述链路状态宣告报文信息的类型得到路由器之间的连接关系、路由器信息、子网信息和接口信息,并根据上述信息构建域内路由拓扑,并同时将所述域内路由拓扑信息存储到全局OSPF服务器上; 523:对于网络状态更新产生的链路状态宣告报文信息,首先在本地OSPF服务器的链路状态数据库中找到对应的链路状态宣告报文信息,然后将该链路状态宣告报文信息对应的属性进行更新,同时将全局OSPF服务器中对应的链路状态宣告报文信息进行更新; 524:对于网络拓扑变化产生的链路状态宣告报文信息,首先在本地OSPF服务器的链路状态数据库中找到同一个始发路由器产生的链路状态宣告报文信息,然后通过对二者进行比较来判断域内路由拓扑的变化,并更新本地OSPF服务器和全局OSPF服务器的链路状态数据库; 525:对于网络洪泛的链路状态宣告报文信息,首先在本地OSPF服务器的链路状态数据库中找到同一个始发路由器产生的链路状态宣告报文信息,根据洪泛链路状态宣告报文的生存期和序列号属性将链路状态数据库中的链路状态宣告报文对应的属性进行更新,从而保证域内网络拓扑数据为最新。
6.根据权利要求5所述的面向网络态势感知的多级别网络系统的构建方法,其特征在于,所述SI3进一步包括: 5131:若所述自治系统路径信息属性非空,则表示所述可达前缀信息为可到达邻居自治系统的前缀,然后获取该条边界链路信息所含的本自治系统的边界路由器ID,邻居自治系统号以及到达所述前缀的下一跳信息;若自治系统路径信息属性为空,则表示所述可达前缀信息为本自治系统内部的前缀; 5132:在自治系统路径信息属性非空的前提下,利用所述S131中获得的下一跳信息在全局的所述边界路由器的所述信息表中找到对应的邻居自治系统的边界路由器ID,即得到本自治系统边界路由器到邻居自治系统边界路由器的一条域间边界链路,根据该域间边界链路到域间路由拓扑中查找是否已经存在该域间边界链路,若不存在,则在域间路由拓扑中增加这条域间边界链路,并将权重值设置为I ;如果存在,则将域间路由拓扑中对应的该域间边界链路的权重值增加I。
7.根据权利要求5所述的面向网络态势感知的多级别网络系统的构建方法,其特征在于,所述S14进一步包括: S141:根据获得的所述不可达前缀信息和自治系统路径信息的属性,先在本自治系统的BGP服务器上找到对应的可达前缀信息,若自治系统路径信息的属性为非空,则获取该条信息所包含的所述本自治系统的边界路由器ID,邻居自治系统号和到达所述前缀的下一跳息; S142:利用S141中获得的下一跳信息在全局的边界路由器列表中找到对应的邻居自治系统的边界路由器ID,得到本自治系统的边界路由器到邻居自治系统的边界路由器的一条连接关系,根据该连接关系将域间路由拓扑中对应的域间边界链路的权重值减I ;若该域间边界链路的权重值被减为O,则从域间路由拓扑中删除该条域间边界链路,并同时删除BGP服务器中对应的该域间边界链路的可达前缀信息。
8.根据权利要求5所述的面向网络态势感知的多级别网络系统的构建方法,其特征在于,所述S22进一步包括: 5221:若链路状态宣告报文的类型为路由器链路状态宣告报文信息,则链路ID属性和链路数据属性与路由器链路状态宣告报文信息的链路类型有关,具体地: 若链路类型为对等连接,则链路ID为邻居路由器ID,链路数据为本路由器接口 IP地址; 若链路类型为到传输网的连接,则链路ID为指定路由器DR的接口 IP地址,链路数据为本路由器的接口 IP地址; 若链路类型为到末梢网的连接,则链路ID为IP网络/子网号,链路数据为本路由器的接口 IP地址; 若链路类型为虚拟连接,则链路ID为邻居路由器ID,链路数据为本路由器接口 IP地址; 通过分析所述对等连接和所述到传输网的连接的链路类型的路由器链路状态宣告报文信息,得到路由器的连接关系,通过分析所述到末梢网的连接链路类型的路由器链路状态宣告报文信息,得到路由器的直连网段信息,所述直连网段信息包括路由器ID、接口 IP、子网掩码和Metric值; 5222:若链路状态宣告报文信息的类型为网络链路状态宣告报文信息,则网络掩码为公共网段的网络掩码,链路ID为指定路由器在该公共网段里的接口 IP地址,报文中邻接路由器的属性为与指定路由器同属一个网段的路由器ID ;通过分析所述网络链路状态宣告报文信息得到路由器的连接关系和所述公用网段的信息; 5233:若链路状态宣告报文信息的类型为聚合链路状态宣告报文信息,所述聚合链路状态宣告报文信息包括类型一和类型二,所述类型一为本自治系统其他区域的网段信息,所述类型二为其他区域的自治系统边界路由器ID。 5234:若链路状态宣告报文信息的类型为外部链路状态宣告报文信息,所述外部链路状态宣告报文信息包括类型三和类型四,所述类型三为自治系统外部可达的网段信息,所述类型四为完全非末梢区域内边界路由器汇总产生的可达网段信息,通过分析所述外部链路状态宣告报文信息,得到路由器可到达其他自治系统的网段信息。
【文档编号】H04L12/28GK104168154SQ201410374744
【公开日】2014年11月26日 申请日期:2014年7月31日 优先权日:2014年7月31日
【发明者】王璐, 毕经平, 刘琳, 徐鹏, 赵瑜, 刘勇, 王峰, 李帅, 安如峰 申请人:中国人民解放军91655部队
再多了解一些
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1