CN104168154B - 面向网络态势感知的多级别网络系统及其构建方法 - Google Patents
面向网络态势感知的多级别网络系统及其构建方法 Download PDFInfo
- Publication number
- CN104168154B CN104168154B CN201410374744.XA CN201410374744A CN104168154B CN 104168154 B CN104168154 B CN 104168154B CN 201410374744 A CN201410374744 A CN 201410374744A CN 104168154 B CN104168154 B CN 104168154B
- Authority
- CN
- China
- Prior art keywords
- information
- router
- link
- autonomous system
- border
- 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.)
- Active
Links
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供一种面向网络态势感知的多级别网络系统及其构建方法,系统包括若干个自治系统,每个自治系统包括至少一个区域,每个自治系统内部署有一个本地服务器和至少一个边界路由器,本地服务器通过隧道和每个区域中的一个边界路由器建立邻居关系,本地服务器通过邻居关系存储边界路由器的信息;每个自治系统的边界路由器存储邻居自治系统的边界路由器的信息,相邻的自治系统之间通过边界路由器建立对话;全局服务器与若干个本地服务器进行数据同步,汇总各个自治系统的信息。系统在不增加网络负载的情况下可以实时采集网络中的报文并以此构建出域间和域内的网络拓扑,保证了拓扑发现的实时性和高可靠性。
Description
技术领域
本发明涉及网络测量和性能分析领域,具体涉及一种面向网络态势感知的多级别网络系统及其构建方法。
背景技术
信息时代对计算机网络的依赖使得计算机网络运行的可靠性显得尤为重要,机网络运行的可靠性对网络管理便提出了更高的要求。按照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信息和下一跳(NextHop)信息,结合服务器的邻居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 BoundaryRouter)。首先服务器周期性地与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),到达此前缀所需经过的下一跳路由器,到达此前缀所需经过的自治系统路径以及其他自治系统路径信息(Pathattributes)。同时,数据库中记录各个自治系统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 Reachabilityinformation),得到可达前缀信息,如果存在,则执行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中得到通告区域外的自治系统边界路由器的RouterID信息,然后执行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链路状态更新报文实现包括区域间路由拓扑和区域内路由拓扑在内的多级别网络拓扑实时构建,能够给出在任意时刻的网络拓扑的完整拓扑。
如上所述,对本发明的实施例进行了详细地说明,显然,只要实质上没有脱离本发明的发明点及效果、对本领域的技术人员来说是显而易见的变形,也均包含在本发明的保护范围之内。
Claims (1)
1.一种面向网络态势感知的多级别网络系统的构建方法,包括若干个自治系统,每个自治系统包括至少一个区域,每个自治系统的内部署有一个本地服务器和至少一个边界路由器,本地服务器通过隧道和每个区域中的一个边界路由器建立邻居关系,本地服务器通过邻居关系存储边界路由器的信息;定义相邻的自治系统为邻居自治系统,每个自治系统的边界路由器存储邻居自治系统的边界路由器的信息,相邻的自治系统之间通过边界路由器建立对话;还包括全局服务器,全局服务器与若干个本地服务器进行数据同步,汇总各个自治系统的信息;
各个本地服务器通过交换机与各个自治系统的边界路由器建立邻居关系;
全局服务器和本地服务器为OSPF/BGP服务器,OSPF/BGP服务器是由OSPF服务器和BGP服务器整合而成的服务器;
边界路由器存储的信息包括邻居自治系统的路由器ID、接口IP和路由器所属的自治系统号;
其特征在于包括不同自治系统之间的域间路由拓扑和同一自治系统内的域内路由拓扑的发现方法,其中:
(1)域间路由拓扑发现方法具体包含如下步骤:
S10:在每个自治系统中部署一个BGP服务器,BGP服务器通过隧道与自治系统的边界路由器建立邻居关系,边界BGP服务器为一个或者多个,BGP服务器存储邻居自治系统的边界路由器的信息,信息包括路由器ID、接口IP和路由器所属的自治系统号;
S11:服务器与边界路由器建立对等会话后,实时采集边界路由器的更新报文,并对更新报文进行存储和解析;
S12:BGP服务器根据解析后的报文获得自治系统路径信息中的自治系统路径信息和下一跳信息,以及可达前缀信息或者不可达前缀信息中的一种,并利用获得的信息构建边界路由信息表,并根据边界路由信息表分析本自治系统的边界路由器所承载的可达前缀的数量,可达前缀的数量用权重表示;
SS13:若获得的信息为可达前缀信息,则表示从本自治系统的边界路由器到邻居自治系统的边界路由器存在一条域间边界链路,进一步地:
若域间路由拓扑结构中不存在该域间边界链路,则需根据可达前缀信息以及自治系统路径信息和下一跳信息新建立一条域间边界链路并将该域间边界链路的权重值设置为1;
若域间路由拓扑结构中已经存在该域间边界链路,则将该域间边界链路的权重值加1;
S14:若获得的信息为不可达前缀信息,则表示从本自治系统的边界路由器到邻居自治系统的边界路由器不存在域间边界链路,进一步地:
若该域间边界链路的权重值非零,则在本自治系统的BGP服务器上删除该不可达前缀信息以及自治系统路径信息和下一跳信息对应的可达前缀信息,然后将该可达前缀信息对应的域间边界链路的权重值减1;
若该域间边界链路的权重值为零,则在域间路由拓扑中撤销这条域间边界链路;
(2)域内路由拓扑发现方法具体包含如下步骤:
S20:每个自治系统包括至少一个区域,在每个自治系统中部署OSPF服务器,OSPF服务器通过隧道和每个区域中的一台路由器建立邻居关系;
S21:OSPF服务器与每个区域中的邻居路由器建立对等会话后,实时采集OSPF服务器的链路状态更新报文,然后对采集到的报文进行解析,并将解析得到的链路状态通告信息存储在本自治系统的OSPF服务器上,生成本自治系统的链路状态数据库;
S22:通过分析链路状态宣告报文信息的类型得到路由器之间的连接关系、路由器信息、子网信息和接口信息,并根据上述信息构建域内路由拓扑,并同时将域内路由拓扑信息存储到全局OSPF服务器上;
S23:对于网络状态更新产生的链路状态宣告报文信息,首先在本地OSPF服务器的链路状态数据库中找到对应的链路状态宣告报文信息,然后将该链路状态宣告报文信息对应的属性进行更新,同时将全局OSPF服务器中对应的链路状态宣告报文信息进行更新;
S24:对于网络拓扑变化产生的链路状态宣告报文信息,首先在本地OSPF服务器的链路状态数据库中找到同一个始发路由器产生的链路状态宣告报文信息,然后通过对二者进行比较来判断域内路由拓扑的变化,并更新本地OSPF服务器和全局OSPF服务器的链路状态数据库;
S25:对于网络洪泛的链路状态宣告报文信息,首先在本地OSPF服务器的链路状态数据库中找到同一个始发路由器产生的链路状态宣告报文信息,根据洪泛链路状态宣告报文的生存期和序列号属性将链路状态数据库中的链路状态宣告报文对应的属性进行更新,从而保证域内网络拓扑数据为最新;
S13进一步包括:
S131:若自治系统路径信息属性非空,则表示可达前缀信息为可到达邻居自治系统的前缀,然后获取该条边界链路信息所含的本自治系统的边界路由器ID,邻居自治系统号以及到达前缀的下一跳信息;若自治系统路径信息属性为空,则表示可达前缀信息为本自治系统内部的前缀;
S132:在自治系统路径信息属性非空的前提下,利用S131中获得的下一跳信息在全局的边界路由器的信息表中找到对应的邻居自治系统的边界路由器ID,即得到本自治系统边界路由器到邻居自治系统边界路由器的一条域间边界链路,根据该域间边界链路到域间路由拓扑中查找是否已经存在该域间边界链路,若不存在,则在域间路由拓扑中增加这条域间边界链路,并将权重值设置为1;如果存在,则将域间路由拓扑中对应的该域间边界链路的权重值增加1;
S14进一步包括:
S141:根据获得的不可达前缀信息和自治系统路径信息的属性,先在本自治系统的BGP服务器上找到对应的可达前缀信息,若自治系统路径信息的属性为非空,则获取该条信息所包含的本自治系统的边界路由器ID,邻居自治系统号和到达前缀的下一跳信息;
S142:利用S141中获得的下一跳信息在全局的边界路由器列表中找到对应的邻居自治系统的边界路由器ID,得到本自治系统的边界路由器到邻居自治系统的边界路由器的一条连接关系,根据该连接关系将域间路由拓扑中对应的域间边界链路的权重值减1;若该域间边界链路的权重值被减为0,则从域间路由拓扑中删除该条域间边界链路,并同时删除BGP服务器中对应的该域间边界链路的可达前缀信息;
S22进一步包括:
S221:若链路状态宣告报文的类型为路由器链路状态宣告报文信息,则链路ID属性和链路数据属性与路由器链路状态宣告报文信息的链路类型有关,具体地:
若链路类型为对等连接,则链路ID为邻居路由器ID,链路数据为本路由器接口IP地址;
若链路类型为到传输网的连接,则链路ID为指定路由器DR的接口IP 地址,链路数据为本路由器的接口IP地址;
若链路类型为到末梢网的连接,则链路ID为IP网络/子网号,链路数据为本路由器的接口IP地址;
若链路类型为虚拟连接,则链路ID为邻居路由器ID,链路数据为本路由器接口IP地址;
通过分析对等连接和到传输网的连接的链路类型的路由器链路状态宣告报文信息,得到路由器的连接关系,通过分析到末梢网的连接链路类型的路由器链路状态宣告报文信息,得到路由器的直连网段信息,直连网段信息包括路由器ID、接口IP、子网掩码和Metric值;
S222:若链路状态宣告报文信息的类型为网络链路状态宣告报文信息,则网络掩码为公共网段的网络掩码,链路ID为指定路由器在该公共网段里的接口IP地址,报文中邻接路由器的属性为与指定路由器同属一个网段的路由器ID;通过分析网络链路状态宣告报文信息得到路由器的连接关系和公用网段的信息;
S233:若链路状态宣告报文信息的类型为聚合链路状态宣告报文信息,聚合链路状态宣告报文信息包括类型一和类型二,类型一为本自治系统其他区域的网段信息,类型二为其他区域的自治系统边界路由器ID;
S234:若链路状态宣告报文信息的类型为外部链路状态宣告报文信息,外部链路状态宣告报文信息包括类型三和类型四,类型三为自治系统外部可达的网段信息,类型四为完全非末梢区域内边界路由器汇总产生的可达网段信息,通过分析外部链路状态宣告报文信息,得到路由器可到达其他自治系统的网段信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410374744.XA CN104168154B (zh) | 2014-07-31 | 2014-07-31 | 面向网络态势感知的多级别网络系统及其构建方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410374744.XA CN104168154B (zh) | 2014-07-31 | 2014-07-31 | 面向网络态势感知的多级别网络系统及其构建方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104168154A CN104168154A (zh) | 2014-11-26 |
CN104168154B true CN104168154B (zh) | 2018-01-02 |
Family
ID=51911801
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410374744.XA Active CN104168154B (zh) | 2014-07-31 | 2014-07-31 | 面向网络态势感知的多级别网络系统及其构建方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104168154B (zh) |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105049345B (zh) * | 2015-07-22 | 2018-03-30 | 中国科学院计算技术研究所 | 一种bgp路由流量数据融合的方法及系统 |
CN106506360B (zh) * | 2016-11-11 | 2019-08-13 | 华北电力大学(保定) | 一种基于链路动态负载的光纤网络均衡路由方法 |
CN108418754A (zh) * | 2017-02-10 | 2018-08-17 | 中国移动通信集团贵州有限公司 | 建立网络拓扑的方法及装置 |
CN108123876B (zh) * | 2017-12-14 | 2020-08-11 | 新华三技术有限公司 | 边界网关协议bgp路由信息处理方法及装置 |
CN108768856A (zh) * | 2018-05-31 | 2018-11-06 | 新华三技术有限公司 | 一种路由处理方法和装置 |
CN110636008B (zh) * | 2018-06-22 | 2022-02-08 | 中国电信股份有限公司 | 网络拓扑信息采集方法、网络拓扑构建系统和边界路由器 |
US10999182B2 (en) | 2019-05-13 | 2021-05-04 | 128 Technology, Inc. | Routing using segment-based metrics |
US11153202B2 (en) * | 2019-05-13 | 2021-10-19 | 128 Technology, Inc. | Service and topology exchange protocol |
CN110278150B (zh) * | 2019-06-02 | 2020-05-19 | 北京航空航天大学 | 一种基于边缘节点请求信息特征的域间聚合路径分析方法 |
CN111064669B (zh) * | 2019-12-19 | 2022-03-25 | 北京达佳互联信息技术有限公司 | 一种路由存储方法、装置、设备及存储介质 |
CN113055297B (zh) * | 2019-12-26 | 2022-09-27 | 中国移动通信集团天津有限公司 | 网络拓扑发现方法及装置 |
CN112491726B (zh) * | 2020-11-03 | 2022-09-16 | 晏平 | 路由查找分析方法、装置、计算机设备及存储介质 |
CN114465943B (zh) * | 2020-11-04 | 2022-11-18 | 华为技术有限公司 | 拓扑信息的发布方法、网络拓扑收集方法及设备 |
CN114553773B (zh) * | 2020-11-24 | 2022-11-22 | 中国科学院声学研究所 | 一种层次结构的标识寻址方法 |
CN114567580B (zh) * | 2020-11-27 | 2023-10-20 | 华为技术有限公司 | 一种消息发送方法、消息处理方法、装置及系统 |
CN113411255A (zh) * | 2021-05-12 | 2021-09-17 | 郑州埃文计算机科技有限公司 | 一种自底向上的骨干网路由器分层方法 |
CN113347103B (zh) * | 2021-05-31 | 2022-02-18 | 深圳市风云实业有限公司 | 一种无骨干区域的网络建立方法 |
CN114006800B (zh) * | 2021-10-11 | 2023-12-05 | 中盈优创资讯科技有限公司 | 一种基于igp-spf算法的设备脱网告警方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7200120B1 (en) * | 2001-05-21 | 2007-04-03 | At&T Corp. | Packet-switched network topology tracking method and system |
CN101163109A (zh) * | 2007-11-14 | 2008-04-16 | 中国科学院计算技术研究所 | 一种自治系统级网络路由拓扑构建方法 |
CN101252488A (zh) * | 2008-04-15 | 2008-08-27 | 中国科学院计算技术研究所 | 一种多自治系统路由器级拓扑处理系统和方法 |
CN101547125A (zh) * | 2008-03-25 | 2009-09-30 | 中国科学院计算技术研究所 | 一种自治系统内网络异常定位的系统和方法 |
CN101547114A (zh) * | 2008-03-25 | 2009-09-30 | 中国科学院计算技术研究所 | 一种自治系统内的拓扑处理系统和方法 |
-
2014
- 2014-07-31 CN CN201410374744.XA patent/CN104168154B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7200120B1 (en) * | 2001-05-21 | 2007-04-03 | At&T Corp. | Packet-switched network topology tracking method and system |
CN101163109A (zh) * | 2007-11-14 | 2008-04-16 | 中国科学院计算技术研究所 | 一种自治系统级网络路由拓扑构建方法 |
CN101547125A (zh) * | 2008-03-25 | 2009-09-30 | 中国科学院计算技术研究所 | 一种自治系统内网络异常定位的系统和方法 |
CN101547114A (zh) * | 2008-03-25 | 2009-09-30 | 中国科学院计算技术研究所 | 一种自治系统内的拓扑处理系统和方法 |
CN101252488A (zh) * | 2008-04-15 | 2008-08-27 | 中国科学院计算技术研究所 | 一种多自治系统路由器级拓扑处理系统和方法 |
Non-Patent Citations (3)
Title |
---|
Internet路由关联分析与监测系统设计;梁伟等;《计算机研究与发展》;20090615(第6期);全文 * |
域间路由不稳定性检测分析技术研究;王旸旸;《中国优秀硕士学位论文全文数据库(信息科技辑)》;20050815;全文 * |
基于OSPF和BGP协议的拓扑发现系统研究与实现;潘文熹;《中国优秀硕士学位论文全文数据库(信息科技辑)》;20090415;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN104168154A (zh) | 2014-11-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104168154B (zh) | 面向网络态势感知的多级别网络系统及其构建方法 | |
US6836465B2 (en) | Method and system for path identification in packet networks | |
CN103947156B (zh) | 用于根原因分析的方法、装置和通信网络 | |
US8526325B2 (en) | Detecting and identifying connectivity in a network | |
CN106992891B (zh) | 一种针对ospf网络的路由配置异常检测方法及系统 | |
Haddadi et al. | Network topologies: inference, modeling, and generation | |
Rakheja et al. | Performance analysis of RIP, OSPF, IGRP and EIGRP routing protocols in a network | |
US20060056328A1 (en) | Identifying network rotuters and paths | |
CN102215136B (zh) | 流量拓扑生成方法和装置 | |
CN101547125B (zh) | 一种自治系统内网络异常定位的系统和方法 | |
CN105721321B (zh) | 一种等价多路径的出接口更新方法及装置 | |
CN108449210B (zh) | 一种网络路由故障监测系统 | |
CN105471725B (zh) | 穿越自治系统的路由方法和装置 | |
CN107104809B (zh) | 一种生成网络拓扑图的方法和系统 | |
Gregori et al. | A novel methodology to address the internet as-level data incompleteness | |
US7860024B1 (en) | Network monitoring method and system | |
Cittadini et al. | Doing don'ts: Modifying BGP attributes within an autonomous system | |
CN105306362B (zh) | 基于IPv6的OSPF网络路由信息的被动采集方法及系统 | |
Raspall | Building Nemo, a system to monitor IP routing and traffic paths in real time | |
Park | Understanding the impact of internal BGP route reflection | |
Gregori et al. | Improving the reliability of inter-AS economic inferences through a hygiene phase on BGP data | |
Park et al. | Quantifying i-BGP Convergence inside Large ISPs | |
Nomura | Detecting BGP zombies and inferring their source | |
Samyal et al. | Network Based On EIGRP Routing Protocol And Comparison Between OSPF and EIGRP Using Network Simulator | |
Sani | An analysis of the completeness of the internet AS-level topology discovered by route collectors |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |