CN116760830A - 路由信息的处理方法、装置、计算机可读介质及电子设备 - Google Patents

路由信息的处理方法、装置、计算机可读介质及电子设备 Download PDF

Info

Publication number
CN116760830A
CN116760830A CN202311018890.4A CN202311018890A CN116760830A CN 116760830 A CN116760830 A CN 116760830A CN 202311018890 A CN202311018890 A CN 202311018890A CN 116760830 A CN116760830 A CN 116760830A
Authority
CN
China
Prior art keywords
routing
information
server
peer
communication connection
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.)
Granted
Application number
CN202311018890.4A
Other languages
English (en)
Other versions
CN116760830B (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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202311018890.4A priority Critical patent/CN116760830B/zh
Publication of CN116760830A publication Critical patent/CN116760830A/zh
Application granted granted Critical
Publication of CN116760830B publication Critical patent/CN116760830B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/10015Access to distributed or replicated servers, e.g. using brokers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1008Server selection for load balancing based on parameters of servers, e.g. available memory or workload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1034Reaction to server failures by a load balancer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/148Migration or transfer of sessions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/63Routing a service request depending on the request content or context

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请公开了一种路由信息的处理方法、装置、计算机可读介质以及电子设备,所述方法包括:与网络设备建立第一通信连接,并基于第一通信连接获取网络设备发起的路由会话建立请求;根据路由会话建立请求与目标路由服务器建立第二通信连接,以基于第一通信连接和第二通信连接构建网络设备与目标路由服务器之间的路由会话;接收网络设备通过第一通信连接发送的路由协议信息;通过第二通信连接将路由协议信息转发至目标路由服务器,以使目标路由服务器对路由协议信息进行解析而生成路由数据。本申请解耦网络设备和路由服务器之间的绑定关系,设备仅需连接代理服务器即可上传路由协议信息,无需感知路由协议信息会上传到哪一个具体的路由服务器中。

Description

路由信息的处理方法、装置、计算机可读介质及电子设备
技术领域
本申请属于互联网技术领域,具体涉及一种路由信息的处理方法、装置、计算机可读介质以及电子设备。
背景技术
BGP监测协议(BGP Monitoring Protocol,BMP)能够对网络中的设备的BGP(Border Gateway Protocol,边界网关协议)运行状态和BGP路由处理轨迹进行实时监测。目前,在采集BGP路由信息时,网络设备直接和指定的BMP采集平台建立网络连接,设备将BGP路由信息发送给BMP采集平台,再由BMP采集平台将该路由信息上报给上层应用(即应用层),由上层应用识别出路由信息的具体内容后进行相应处理。由于设备需要和指定BMP建立连接,故而在设备端需要预先配置指定BMP的地址信息,当BMP出现问题时,设备需要重新配置其他BMP的地址信息,否则会导致设备无法上传路由信息。可见,这种路由采集方式对设备端来说过于繁琐。
发明内容
本申请的目的在于提供一种路由信息的处理方法、路由信息的处理装置、计算机可读介质以及电子设备,可以解耦网络设备和路由服务器之间的绑定关系,提高了路由协议信息上传的稳定性。
本申请的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本申请的实践而习得。
根据本申请实施例的一个方面,提供一种路由信息的处理方法,包括:
与网络设备建立第一通信连接,并基于所述第一通信连接获取所述网络设备发起的路由会话建立请求;
根据所述路由会话建立请求与目标路由服务器建立第二通信连接,以基于所述第一通信连接和所述第二通信连接构建所述网络设备与所述目标路由服务器之间的路由会话;
接收所述网络设备通过所述第一通信连接发送的路由协议信息;
通过所述第二通信连接将所述路由协议信息转发至所述目标路由服务器,以使所述目标路由服务器对所述路由协议信息进行解析而生成路由数据。
根据本申请实施例的一个方面,提供一种路由信息的处理方法,包括:
与代理服务器之间建立第二通信连接,所述第二通信连接是所述代理服务器根据网络设备发起的路由会话建立请求而与目标路由服务器建立的,所述路由会话建立请求是所述代理服务器基于与所述网络设备建立的第一通信连接而获取的;
通过所述第二通信连接接收所述代理服务器转发的路由协议信息,所述路由协议信息是所述网络设备通过所述第一通信连接发送给所述代理服务器的;
对所述路由协议信息进行解析,以生成路由数据。
根据本申请实施例的一个方面,提供一种路由信息的处理装置,包括:
第一通信连接建立模块,用于与网络设备建立第一通信连接,并基于所述第一通信连接获取所述网络设备发起的路由会话建立请求;
第二通信连接建立模块,用于根据所述路由会话建立请求与目标路由服务器建立第二通信连接,以基于所述第一通信连接和所述第二通信连接构建所述网络设备与所述目标路由服务器之间的路由会话;
信息接收模块,用于接收所述网络设备通过所述第一通信连接发送的路由协议信息;
信息发送模块,用于通过所述第二通信连接将所述路由协议信息转发至所述目标路由服务器,以使所述目标路由服务器对所述路由协议信息进行解析而生成路由数据。
在本申请的一个实施例中,第二通信连接建立模块包括:
目标路由服务器选择单元,用于从多个路由服务器中选择一个路由服务器作为目标路由服务器;
请求发送单元,用于将所述路由会话建立请求发送至所述目标路由服务器,并接收所述目标路由服务器针对所述路由会话建立请求反馈的连接建立响应信息;
连接建立单元,用于基于所述连接建立响应信息与所述目标路由服务器建立第二通信连接。
在本申请的一个实施例中,所述装置还包括:
目标路由服务器重选模块,用于在将所述路由会话建立请求发送至所述目标路由服务器之后,若接收到所述目标路由服务器反馈的拒绝连接信息,则从除当前选择的路由服务器之外的其它路由服务器中重新选择一个路由服务器作为目标路由服务器。
在本申请的一个实施例中,所述目标路由服务器选择单元具体用于:
获取各个路由服务器的负载量;
选择负载量最小的路由服务器作为目标路由服务器。
在本申请的一个实施例中,所述方法还包括:
第一重连模块,用于当检测到与所述目标路由服务器建立的第二通信连接断开时,重新向所述目标路由服务器发送所述路由会话建立请求;
第二重连模块,用于当设定时长内未接收到所述目标路由服务器针对所述路由会话建立请求反馈的连接建立响应信息时,从其它路由服务器中重新选择一个路由服务器作为所述目标路由服务器,并与重新选择的所述目标路由服务器建立第二通信连接。
根据本申请实施例的一个方面,提供一种路由信息的处理装置,包括:
通信连接建立模块,用于与代理服务器之间建立第二通信连接,所述第二通信连接是所述代理服务器根据网络设备发起的路由会话建立请求而与目标路由服务器建立的,所述路由会话建立请求是所述代理服务器基于与所述网络设备建立的第一通信连接而获取的;
信息接收模块,用于通过所述第二通信连接接收所述代理服务器转发的路由协议信息,所述路由协议信息是所述网络设备通过所述第一通信连接发送给所述代理服务器的;
信息解析模块,用于对所述路由协议信息进行解析,以生成路由数据。
在本申请的一个实施例中,信息解析模块具体用于:
根据所述路由协议信息中的路由表标识将所述路由协议信息分发至对应的协程,以使所述协程对所述路由协议信息进行解析,以生成路由数据。
在本申请的一个实施例中,信息解析模块具体用于:
对所述路由协议信息进行解析,以根据解析结果确定所述路由协议信息所对应的事件类型;
根据所述路由协议信息所对应的事件类型生成路由数据。
在本申请的一个实施例中,信息解析模块包括:
会话事件处理单元,用于当所述事件类型为会话开始事件时,将所述路由协议信息包含的会话信息作为路由数据;当所述事件类型为会话结束事件时,将所述会话结束事件转化为所述对等体结束事件进行处理。
在本申请的一个实施例中,信息解析模块包括:
对等体事件处理单元,用于当所述事件类型为对等体开始事件时,将所述路由协议信息包含的对等体信息作为路由数据;当所述事件类型为对等体结束事件时,生成用于删除所述路由协议信息对应的对等体所关联的路由数据的删除指令。
在本申请的一个实施例中,所述对等体事件处理单元具体用于:
生成用于删除所述对等体所关联的路由数据的第一删除指令,并将所述第一删除指令发送至第一数据库,以使所述第一数据库根据所述第一删除指令删除所述对等体所关联的路由数据;所述第一数据库用于将所述路由数据上传至上层应用;
生成用于删除所述对等体所关联的路由表信息的第二删除指令,并将所述第一删除指令发送至第二数据库,以使所述第二数据库根据所述第二删除指令删除所述对等体所关联的路由表信息;所述第二数据库用于存储所述路由表信息,所述路由表信息包括所述路由数据。
在本申请的一个实施例中,信息解析模块包括:
震荡处理单元,用于确定所述路由协议信息对应的对等体是否处于震荡状态;若所述对等体处于震荡状态,则在本地缓存所述路由协议信息包含的对等体信息,并返回确定所述对等体结束事件对应的对等体是否处于震荡状态的步骤;若所述对等体未处于震荡状态,则将所述路由协议信息包含的对等体信息作为路由数据。
在本申请的一个实施例中,信息解析模块包括:
路由事件处理单元,用于当所述事件类型为路由事件时,确定所述路由协议信息对应的对等体是否处于震荡状态;若所述对等体处于震荡状态,则在本地缓存所述路由协议信息包含的路由事件数据,并返回确定所述路由事件对应的对等体是否处于震荡状态的步骤;若所述对等体未处于震荡状态,则根据所述路由协议信息包含的路由事件数据生成路由数据。
在本申请的一个实施例中,所述震荡处理单元具体用于:
获取所述对等体的信息上报频率,所述信息上报频率包括接收到所述对等体的同一对等体事件对应的路由协议信息的频率;
当所述信息上报频率大于预设阈值时,确定所述对等体处于震荡状态;
当所述信息上报频率小于预设阈值时,确定所述未对等体处于震荡状态。
在本申请的一个实施例中,所述装置还包括:
数据存储模块,用于检测用于存储所述路由数据的第二数据库是否可用;当所述第二数据库可用时,将所述路由数据存储至所述第二数据库;当所述第二数据库不可用时,在本地缓存所述路由数据。
在本申请的一个实施例中,所述装置还包括:
数据重存模块,用于在预设时长内重新检测所述第二数据库是否可用;当所述第二数据库可用时,将所述预设时长内缓存在本地的路由数据存储至所述第二数据库。
在本申请的一个实施例中,所述装置还包括:
路由查询模块,用于接收网关发送的路由摘要查询请求,所述路由摘要查询请求是所述网关根据路由数据查询请求所需查询的路由摘要信息而生成、并根据所述路由数据查询请求中的网络设备标识而发送至目标路由服务器的;根据所述路由摘要查询请求确定所需查询的路由数据的摘要信息;将所述摘要信息发送至所述网关,以使所述网关根据所述摘要信息从所述第二数据库获取所需查询的路由数据。
根据本申请实施例的一个方面,提供一种计算机可读介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如以上技术方案中的路由信息的处理方法。
根据本申请实施例的一个方面,提供一种电子设备,该电子设备包括:处理器;以及存储器,用于存储所述处理器的可执行指令;其中,所述处理器执行所述可执行指令使得所述电子设备执行如以上技术方案中的路由信息的处理方法。
根据本申请实施例的一个方面,提供一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行如以上技术方案中的路由信息的处理方法。
在本申请实施例提供的技术方案中,首先代理服务器与网络设备建立第一通信连接,并基于第一通信连接获取网络设备发起的路由会话建立请求;然后代理服务器根据路由会话建立请求与目标路由服务器建立第二通信连接,以基于第一通信连接和第二通信连接构建网络设备与路由服务器之间的路由会话;最后,代理服务器接收网络设备通过第一通信连接发送的路由协议信息,并通过第二通信连接将路由协议信息转发至目标路由服务器,以使目标路由服务器对路由协议信息进行解析而生成路由数据。由此可以看出,代理服务器分别与网络设备和路由服务器建立连接,从而解耦网络设备和路由服务器之间的绑定关系,设备仅需连接代理服务器即可上传路由协议信息,无需感知路由协议信息会上传到哪一个具体的路由服务器中;当路由服务器出现问题时,网络设备可以正常上传路由协议信息到代理服务器,再由代理服务器决定后续处理方式,从而降低了网络设备端操作的繁琐性,同时也提高了路由协议信息上传的稳定性。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示意性地示出了应用本申请技术方案的示例性系统架构框图。
图2示意性地示出了本申请一个实施例提供的路由会话的建立流程的示意图。
图3示意性地示出了本申请一个实施例提供的路由协议信息的处理流程的示意图。
图4示意性地示出了本申请一个实施例提供的路由信息的处理方法的流程图。
图5示意性地示出了本申请一个实施例提供的路由信息的处理方法的流程图。
图6示意性的示出了应用本申请技术方案的示例性系统架构框图。
图7示意性地示出了本申请一个实施例提供的路由信息的处理方法的流程图。
图8示意性地示出了本申请一个实施例提供的路由协议信息分发过程的示意图。
图9示意性地示出了本申请一个实施例提供的会话事件的处理过程的流程图。
图10示意性地示出了本申请一个实施例提供的对等体事件的处理过程的流程图。
图11示意性地示出了本申请一个实施例提供的路由事件的处理过程的流程图。
图12示意性地示出了本申请一个实施例提供的震荡处理流程的示意图。
图13示意性地示出了本申请一个实施例提供的数据存储过程的示意图。
图14示意性地示出了本申请一个实施例提供的路由数据查询过程的示意图。
图15示意性地示出了本申请一个实施例提供的路由数据查询过程的流程图。
图16示意性地示出了本申请一个实施例提供的路由查询结果的示意图。
图17示意性地示出了应用本申请技术方案的示例性系统架构框图。
图18示意性地示出了本申请技术方案的流程图。
图19示意性地示出了本申请实施例提供的路由信息的处理装置的结构框图。
图20示意性地示出了本申请实施例提供的路由信息的处理装置的结构框图。
图21示意性示出了适于用来实现本申请实施例的电子设备的计算机系统结构框图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本申请将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本申请的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本申请的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本申请的各方面。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
在本申请实施例中,BGP(Border Gateway Protocol,边界网关协议)是运行于TCP(Transmission Control Protocol,传输控制协议)上的自治系统中的路由协议,负责本自治系统和外部自治系统之间路由可达信息的交换。BGP运行于路由器上,两台可以正常通信的路由器互为BGP邻居,在同一个自治系统内的BGP邻居称为iBGP邻居,在不同自治系统的BGP邻居称为eBGP邻居。当一个路由器与其他路由器形成BGP邻居后,这两个路由器称为BGP对等体(BGP peer)。BGP监测协议(BGP Monitoring Protocol,BMP)负责监测BGP邻居之间的BGP路由。
图1示意性地示出了应用本申请技术方案的示例性系统架构框图。
如图1所示,系统架构可以包括网络设备110、代理服务器120和路由服务器130。在图1中,ebgp表示互相形成ebgp邻居的设备,ibgp表示互相形成ibgp邻居的设备,BMP表示运行BMP的设备,可以理解,ebgp邻居设备、ibgp邻居设备、运行BMP的设备均属于网络设备。在本申请实施例中,网络设备110指运行BMP的设备,运行BMP的设备通常是指定的设备,简称BMP设备,例如,网络设备110可以是商用交换机、自研交换机等,及本申请中的BMP利用一套网络可以实现对两种设备的有效支持。在将指定设备作为BMP设备后,该BMP设备类似于其他网络设备的服务端,其他网络设备类似于客户端,其他网络设备会将BGP路由的变化信息发送至BMP设备,BGP路由的变化信息是根据BMP协议所生成的信息,故而称为路由协议信息。BMP设备接收路由协议信息后,将采集的BGP路由变化信息反馈至代理服务器120,继而由代理服务器120将路由协议信息转发至路由服务器130。网络设备110要将路由协议信息发送至路由服务器130,因此,相对于路由服务器130来说,网络设备110属于下层设备,网络设备110所产生的路由协议信息可以简称为下层路由信息。路由服务器130在获取路由协议信息后,需要将路由协议信息包含的路由数据发送至要使用该路由数据的应用层(或称为业务层),因此,相对于路由服务器130来说,使用该路由协议信息包含的路由数据的应用层(或称为业务层)又称为上层应用(或称为上层业务)。
在图1所示的系统架构中,本申请技术方案由代理服务器120实施,代理服务器120又称为TCP Proxy,是指TCP代理服务器,简称TCP代理,是支持TCP的代理服务器,也可以是支持TCP的中间服务器。路由服务器130是指处理路由协议信息的服务器,也可以记为TBMP。
本申请技术方案的实现过程为:代理服务器120首先与网络设备110建立第一通信连接,该第一通信连接的建立请求可以由网络设备110主动发起。在与网络设备110建立第一通信连接后,代理服务器120基于第一通信连接获取网络设备110发起的路由会话建立请求,该路由会话建立请求用于建立网络设备110和路由服务器130之间的路由会话,路由会话用于进行网络设备110和路由服务器130之间的数据传输,例如传输路由协议信息。代理服务器120接收到网络设备110发送的路由会话建立请求后,根据该请求与路由服务器130建立第二通信连接,与代理服务器120建立第二通信连接的路由服务器130也称为目标路由服务器。这样就使得网络110通过代理服务器120与路由服务器130建立了路由会话,该路由会话由第一通信连接和第二通信连接组成。示例性的,图2示意性地示出了本申请一个实施例提供的路由会话的建立流程的示意图。如图2所示,在步骤201中,设备和TCP代理(TCPProxy)建立TCP连接,设备是指网络设备110,TCP代理是指代理服务器120,由于BGP是运行于TCP上的路由协议,那么在进行路由信息传输时,应基于TCP连接进行信息传输,故而网络设备110和代理服务器120之间建立的第一通信连接为TCP连接。在步骤202中,设备向TCP代理发起建立BMP会话请求,也即,在建立第一通信连接后,网络设备110通过第一通信连接向代理服务器120发送路由会话建立请求,该路由会话是用于处理基于BMP所生成的路由信息的会话,故而也称为BMP会话。在步骤203中,TCP代理将请求负载到TBMP采集平台,TBMP采集平台提供TBMP服务器,即提供路由服务器130,步骤203是代理服务器120将路由会话建立请求发送至目标路由服务器。在步骤204中,TCP代理和TBMP采集平台建立TCP连接,当目标路由服务器接收到路由会话建立请求后,对其作出响应,从而与代理服务器120建立第二通信连接,该第二通信连接也属于TCP连接。
在建立路由会话后,网络设备110在发送路由协议信息时,通过路由会话的第一通信连接将路由协议信息发送至代理服务器120,代理服务器120通过路由会话的第二通信连接将路由协议信息发送至路由服务器130,从而使得路由服务器130接收到路由协议信息,并对路由协议信息进行解析或相关处理后生成路由数据,该路由数据是指上层应用(即应用层,也可以称为上层业务)能够直接识别的数据,例如,上层应用可以是路由差异性分析业务、路由劫持分析业务、网络流量调度业务等。示例性的,图3示意性地示出了本申请一个实施例提供的路由协议信息的处理流程的示意图。如图3所示,在步骤310中,设备上报BMP事件,即网络设备110通过第一通信连接将路由协议信息发送至代理服务器120,路由协议信息是基于BMP所生成的路由信息,也称为BMP事件。在步骤320中,TCP 代理透传BMP事件到TBMP,即代理服务器120通过第二通信连接将路由协议信息转发至目标路由服务器,透传是指透明传送,代理服务器120不对路由协议信息进行处理,而只是将该信息传输至目标路由服务器。在步骤330中,TBMP将事件分发到对应协程,目标路由服务器采用协程来处理路由协议信息。在步骤340中,BMP事件处理,此步骤为路由协议信息的具体处理过程,将在后续的实施例中进行详细说明。
下面结合具体实施方式对本申请提供的路由信息的处理方法做出详细说明。
图4示意性地示出了本申请一个实施例提供的路由信息的处理方法的流程图,该方法由代理服务器实施,下面将以代理服务器作为执行主体来阐述方法的具体实施过程。如图4所示,本申请实施例提供的路由信息的处理方法包括步骤410至步骤440,具体如下:
步骤410、与网络设备建立第一通信连接,并基于第一通信连接获取网络设备发起的路由会话建立请求。
具体地,第一通信连接的建立请求可以由网络设备主动向代理服务器发起,第一通信连接为TCP连接,网络设备和代理服务器之间经过三次握手形成TCP连接。在建立第一通信连接之后,网络设备基于该第一通信连接向代理服务器发起路由会话建立请求,代理服务器可以通过该第一通信连接获取到该路由会话建立请求,路由会话建立请求是用于建立传输基于BMP协议生成的路由信息的会话的请求。
步骤420、据路由会话建立请求与目标路由服务器建立第二通信连接,以基于第一通信连接和第二通信连接构建网络设备与目标路由服务器之间的路由会话。
具体地,代理服务器在接收到路由会话建立请求后,将该路由会话建立请求转发至目标路由服务器,以通知目标路由服务器建立路由会话。目标路由服务器响应路由会话建立请求后,代理服务器就与目标路由服务器之间建立了第二通信连接。在本申请实施例中,路由会话由第一通信连接和第二通信连接构成,在分别建立第一通信连接和第二通信连接后,网络设备与目标路由服务器之间的路由会话也就构建好了。
步骤430、接收网络设备通过第一通信连接发送的路由协议信息。
具体地,在构建路由会话后,网络可以通过路由会话向目标路由服务器上报路由协议信息。在本申请实施例中,路由协议信息是指基于BMP协议所生成的路由信息,该信息一般体现的是路由变化信息,例如对等体关系的建立与解除、路由信息的刷新等,路由变化事件也称为BMP事件,故而路由协议信息也可以称为BMP事件信息。由于路由会话包括第一通信连接和第二通信连接,在上报路由协议信息时,代理服务器首先通过第一通信连接接收路由协议信息。
步骤440、通过第二通信连接将路由协议信息转发至目标路由服务器,以使目标路由服务器对路由协议信息进行解析而生成路由数据。
具体地,代理服务器接收到路由协议信息后,通过路由会话的第二通信连接将该路由协议信息转发至目标路由服务器,从而使得目标路由服务器接收到网络设备上报的路由协议信息。路由信息的变化最终会通知到上层应用,以便于上层应用基于路由信息的变化做出相应的处理,而路由协议信息是基于BMP协议所生成的信息,是协议层面的数据,上层应用无法直接解读该信息。在本申请实施例中,目标路由服务器对路由协议信息进行解析后,即可生成上层应用可以直接订阅使用的路由数据,如此,上层应用无需进行路由协议信息的解析操作,从而简化上层应用获取路由数据的操作流程,使得路由数据上报对上层应用更加友好。
在本申请的一个实施例中,代理服务器在转发路由协议信息时,使用透传技术,即不对路由协议信息进行任何会改变数据结构、内容等的处理,而是将路由协议信息完整的转发至目标路由服务器,如此,使得路由协议信息即使经过代理服务器的中转,也不会使其所包含的数据信息产生缺失或错乱等问题,在通过代理服务器解耦网络设备和目标路由服务器之间的强绑定关系的情况下,保证目标路由服务器所获取的路由协议信息的准确性。
在本申请实施例提供的技术方案中,首先代理服务器与网络设备建立第一通信连接,并基于第一通信连接获取网络设备发起的路由会话建立请求;然后代理服务器根据路由会话建立请求与目标路由服务器建立第二通信连接,以基于第一通信连接和第二通信连接构建网络设备与路由服务器之间的路由会话;最后,代理服务器接收网络设备通过第一通信连接发送的路由协议信息,并通过第二通信连接将路由协议信息转发至目标路由服务器,以使目标路由服务器对路由协议信息进行解析而生成路由数据。由此可以看出,代理服务器分别与网络设备和路由服务器建立连接,从而解耦网络设备和路由服务器之间的绑定关系,设备仅需连接代理服务器即可上传路由协议信息,无需感知路由协议信息会上传到哪一个具体的路由服务器中;当路由服务器出现问题时,网络设备可以正常上传路由协议信息到代理服务器,再由代理服务器决定后续处理方式,从而降低了网络设备端操作的繁琐性,同时也提高了路由协议信息上传的稳定性。
图5示意性地示出了本申请一个实施例提供的路由信息的处理方法的流程图,本实施例对代理服务器所执行的路由信息的处理方法做了进一步细化。如图5所示,该方法包括步骤510至步骤580,具体如下:
步骤510、与网络设备建立第一通信连接,并基于第一通信连接获取网络设备发起的路由会话建立请求。
步骤510可以参考前述步骤410的相关描述,在此不再赘述。
步骤520、从多个路由服务器中选择一个路由服务器作为目标路由服务器。
具体地,实施本申请技术方案的系统架构提供多个路由服务器(或称为TBMP实例),代理服务器可以从多个路由服务器中选择一个路由服务器作为目标路由服务器,进而与该目标路由服务器建立第二通信连接。例如,代理服务器可以从多个路由服务器中选择任意一个路由服务器作为目标路由服务器。
在本申请的一个实施例中,代理服务器可以根据各个路由服务器的负载量从多个路由服务器中选择目标路由服务器。具体而言,代理服务器可以先获取各个路由服务器的负载量,在这个过程中,代理服务器可以周期性地向各个路由服务器发送负载量获取请求以获取代理服务器的负载量;代理服务器也可以在检测到与网络设备已成功建立第一通信连接,或者接收到路由会话建立请求后,向各个路由服务器发送负载量获取请求以获取代理服务器的负载量。在得到各个路由服务器的负载量之后,代理服务器可以从中选择负载量最小的路由服务器作为目标路由服务器。选择负载量最小的路由服务器作为目标路由服务器,可以使得当前构建路由会话的路由服务器有较多的资源来处理网络设备所上报的路由协议信息,加快路由协议信息的处理效率,同时也可以平衡各个路由服务器的负载量,避免某一个或几个路由服务器负载量过大而出现信息处理堵塞或失败的情况。
步骤530、将路由会话建立请求发送至目标路由服务器;
步骤540、接收目标路由服务器针对路由会话建立请求反馈的连接建立响应信息。
步骤550、基于连接建立响应信息与目标路由服务器建立第二通信连接,以基于第一通信连接和第二通信连接构建网络设备与目标路由服务器之间的路由会话。
步骤560、在将路由会话建立请求发送至目标路由服务器之后,若接收到目标路由服务器反馈的拒绝连接信息,则从除当前选择的路由服务器之外的其它路由服务器中重新选择一个路由服务器作为目标路由服务器,并返回步骤530。
具体地,在将路由会话建立请求发送至目标路由服务器后,目标路由服务器会判断是否响应该路由会话建立请求,如果目标路由服务器确定可以响应该路由会话建立请求,则执行步骤530-550,目标路由服务器向代理服务器反馈连接建立响应信息,代理服务器基于该连接建立响应信息确定与目标路由服务器之间的第二通信连接建立成功。
如果目标路由服务器认为不能响应该路由会话建立请求,则执行步骤560,目标路由服务器向代理服务器反馈拒绝连接信息,代理服务器接收到该拒绝连接信息后,则从其他路由服务器中重新选择一个路由服务器作为目标路由服务器,然后返回步骤530,向重新选择的目标路由服务器重发路由会话建立请求,以与重新选择的目标路由服务器建立第二通信连接。
在本申请的一个实施例中,路由服务器可以基于自身当前的负载情况确定是否响应路由会话建立请求。一般的,当路由服务器确定自身负载量过大,或自身容量不足时,就会拒绝与代理服务器建立第二通信连接,使代理服务器与其他路由服务器建立第二通信连接,此为路由服务器的过载保护能力,避免路由服务器超负荷运行而发生异常。
在本申请的一个实施例中,代理服务器在于目标路由服务器建立第二通信连接之后,可以周期性地或实时检测第二通信连接的稳定性,例如,周期性地向目标路由服务器发送检测数据包,以判断第二通信连接是否断开,当目标路由服务器能够正常反馈响应数据包时,则认为第二通信连接正常;当目标路由服务器反馈响应数据包超时时,可以认为第二通信连接断开。当检测到与目标路由服务器建立的第二通信连接断开时,重新向目标路由服务器发送路由会话建立请求。在一些情况下,可能是网络抖动、路由服务器暂不可用、路由服务器异常重启等情况造成与目标路由服务器之间的第二通信连接断开,因此,在检测到第二通信连接断开时,可以重新向目标路由服务器发送路由会话建立请求,以期望能够重新与目标路由服务器建立第二通信连接。如果网络恢复正常或者目标路由服务器恢复正常,则目标路由服务器会重新响应该路由会话建立请求以建立第二通信连接。如果长时间未接收到目标路由服务器的反馈,即在设定时长内未接收到目标路由服务器针对路由会话建立请求反馈的连接建立响应信息,则表明该目标路由服务器当前已不能够继续使用,为了保证路由信息处理的稳定性,此时代理服务器可以从其它路由服务器中重新选择一个路由服务器作为目标路由服务器,并向重新选择的目标路由服务器发送路由会话建立请求以建立第二通信连接。由于目标路由服务器的重新选择由代理服务器实施,网络设备侧并不会感知到路由服务器侧所发生的异常情况,从而避免了网络设备因更换目标路由服务器而重新进行路由服务器配置的操作,降低了网络设备操作的繁琐性,也保证了路由信息处理的稳定性,做到了整体路由服务的高可用性。
步骤570、接收网络设备通过第一通信连接发送的路由协议信息。
步骤580、通过第二通信连接将路由协议信息转发至目标路由服务器,以使目标路由服务器对路由协议信息进行解析而生成路由数据。
步骤570-步骤580可以参考前述实施例中步骤430-步骤440的相关描述,在此不再赘述。
在本申请实施例提供的技术方案中,通过代理服务器来选择目标路由服务器,进而与目标路由服务器建立第二通信连接,不仅使得网络设备端对路由服务器端无感知,也可以更加方便地扩展路由服务器的数量,即在网络设备无感知的情况下实现路由服务器的水平扩展,一个路由服务器不可用(比如出现故障或者负载量较大等情况)时,可以由其他的路由服务器构建路由会话而继续进行路由协议信息的处理,从而可以确保总是有路由服务器来处理网络设备上报的路由协议信息,提高了路由服务器端的容错率,也提高了路由信息处理的稳定性。
示例性的,图6示意性的示出了应用本申请技术方案的示例性系统架构框图。如图6所示,该系统架构包括网络设备610、代理服务器620和TBMP采集平台630,网络设备610包括设备BMP1和设备BMP2,TBMP采集平台630包括路由服务器TBMP1、路由服务器TBMP2和路由服务器TBMP3。代理服务器620的IP(Internet Protocol,互联网协议)地址为1.1.1.3,设备BMP1和设备BMP2配置代理服务器620的IP地址,无需配置路由服务器的IP地址。设备BMP1和代理服务器620建立第一通信连接,并基于第一通信连接向代理服务器620发送路由会话请求,代理服务器620选择路由服务器TBMP2作为目标路由服务器,与路由服务器TBMP2建立第二通信连接,那么第一通信连接和第二通信连接构成设备BMP1和路由服务器TBMP2之间的路由会话session1。同样的,设备BMP2和路由服务器TBMP1之间的路由会话session2。设备BMP1通过路由会话session1将路由协议信息上传至路由服务器TBMP2,设备BMP2通过路由会话session2将路由协议信息上传至路由服务器TBMP1。
在一些情况下,路由会话session1和路由会话session2对应的第二通信连接可以连接至同一个路由服务器。在一些情况下,当代理服务器620检测到路由会话session1在路由服务器TBMP2侧对应的第二通信连接断开时,可以将目标路由服务器修改为路由服务器TBMP1或路由服务器TBMP3,从而与路由服务器TBMP1或路由服务器TBMP3重新建立第二通信连接,那么路由服务器TBMP1或路由服务器TBMP3可以继续对设备BMP1的路由信息进行处理,不必等待路由服务器TBMP2维护好后才能够进行路由信息处理,有效保证了路由信息处理服务的高可用性和稳定性。
图7示意性地示出了本申请一个实施例提供的路由信息的处理方法的流程图,本实施例是从路由服务器侧来说明本申请技术方案的实施过程,下面将以路由服务器(或目标路由服务器)作为执行主体来阐述该方法的具体实现过程。如图7所示,本申请实施例提供的路由信息的处理方法包括步骤710至步骤730,具体如下:
步骤710、与代理服务器之间建立第二通信连接,第二通信连接是代理服务器根据网络设备发起的路由会话建立请求而与目标路由服务器建立的,路由会话建立请求是代理服务器基于与网络设备建立的第一通信连接而获取的。
具体地,目标路由服务器接收代理服务器转发的路由会话建立请求,与代理服务器建立第二通信连接,该路由会话请求由代理服务器通过第一通信连接获取,该第一通信连接是代理服务器与网络设备之间建立的通信连接。在建立第二通信连接后,目标路由服务器和网络设备之间的路由会话即构建好,该路由会话包括第一通信连接和第二通信连接。
步骤720、通过第二通信连接接收代理服务器转发的路由协议信息,路由协议信息是网络设备通过第一通信连接发送给代理服务器的。
具体地,网络设备生成的路由协议信息通过第一通信连接发送至代理服务器,再由代理服务器通过第二通信连接转发至目标路由服务器,从而使目标路由服务器获取到网络设备上报的路由协议信息。
步骤730、对路由协议信息进行解析,以生成路由数据。
具体地,路由信息的变化最终会通知到上层应用,以便于上层应用基于路由信息的变化做出相应的处理,而路由协议信息是基于BMP协议所生成的信息,是协议层面的数据,上层应用无法直接解读该信息。在本申请实施例中,目标路由服务器对路由协议信息进行解析后,即可生成上层应用可以直接订阅使用的路由数据,如此,上层应用无需进行路由协议信息的解析操作,从而简化上层应用获取路由数据的操作流程,使得路由数据上报对上层应用更加友好。
在本申请实施例提供的技术方案中,代理服务器作为网络设备和路由服务器之间的中转服务器,分别与网络设备建立第一通信连接,与路由服务器建立第二通信连接,使得网络设备生成的路由协议信息通过第一通信连接、代理服务器和第二通信连接上传至目标路由服务器,继而由目标路由服务器对其解析生成路由数据,代理服务器解耦了网络设备和路由服务器之间的强绑定关系,网络设备仅需连接代理服务器即可上传路由协议信息,无需感知路由协议信息会上传到哪一个具体的路由服务器中;当路由服务器出现问题时,网络设备可以正常上传路由协议信息到代理服务器,再由代理服务器决定后续处理方式,从而降低了网络设备端操作的繁琐性,同时也提高了路由协议信息上传的稳定性。
在本申请的一个实施例中,目标路由服务器采用多协程处理网络设备上报的路由协议信息,即路由协议信息的解析过程包括:根据路由协议信息中的路由表标识将路由协议信息分发至对应的协程,以使协程对路由协议信息进行解析,以生成路由数据。
具体地,协程与子例程一样,是一种程序组件,一个程序可以包含多个协程。路由表是路由器或者其他网络设备上存储的表,该表中存有到达特定网络终端的路由路径。不同网络设备邻居之间路由表是相互独立的,基于这个特点,结合多协程开发的特点,可以使用不同协程来处理不同设备邻居路由表所对应的路由信息,使得不同网络设备(包括不同网络设备邻居)所产生的路由信息能够通过多协程并发处理,同时一个设备邻居出现问题也不会对其他设备邻居的路由信息处理产生影响,提高了路由信息的处理效率和可靠性。
在本申请的一个实施例中,采用路由表标识来匹配处理路由协议信息的协程。路由协议信息实际上是网络设备对BMP事件按照BMP协议封装后所形成的报文信息,在报文信息的头部,通常携带了路由协议信息对应的路由表标识,生成该路由协议信息的网络设备标识等等。每个协程具有协程标识,将路由协议信息与协程的协程标识相匹配,当二者一致,则对应的协程即是用于执行该路由协议信息的解析操作的协程,从而将路由协议信息分发至该协程。示例性的,图8示意性地示出了本申请一个实施例提供的路由协议信息分发过程的示意图。如图8所示,目标路由服务器提供多种路由通道,包括路由通道ch1~ch5,路由通道即协程,每个路由通道具有对应的通道标识(即协程标识),例如路由通道ch1具有通道标识“1.1.1.0-VRF1”,在进行任务分发(即将路由协议信息分发至对应的协程)时,根据通道标识来匹配处理路由协议信息的路由通道,例如,当一个路由协议信息的路由表标识为“1.1.1.0-VRF1”,则将其分发至路由通道ch1。需要说明的是,本申请所涉及的“标识”是一种起到唯一识别作用的信息,其可以是名称、ID等信息或多种信息的组合。
在本申请的一个实施例中,目标路由服务器在对路由协议信息进行处理时,首先对路由协议信息进行解析,基于解析结果确定路由协议信息所对应的事件类型;然后根据路由协议信息所对应的事件类型生成路由数据。
具体而言,路由协议信息所对应的事件类型即路由协议信息所体现路由变化事件的类型,即BMP事件类型。路由协议信息是一种报文信息,该报文信息携带了事件类型信息,通过对其进行解析,可以获知对应的事件类型。
在本申请的一个实施例中,路由协议信息所对应的事件类型包括会话事件、对等体事件和路由事件。会话(session)事件是指用于传输路由协议信息的路由会话的变化事件,例如会话事件开始、会话事件结束等。对等体(peer)事件是指设备间的变化事件,例如对等体关系的建立与解除。路由(path)事件是指路由路径的变化事件,例如路由路径的更新。在一个路由会话中,设备间对等体关系可以进行多次变化,故而一个会话事件可以包括多个对等体事件,而对等体之间的路由路径也可以进行多次变化,故而一个对等体事件包括多个路由事件,其中,一个会话事件是指从会话开始到结束所表示一个完整路由会话,一个对等体事件是一次对等体关系构建到解除所表示的一个完整对等体建立过程。
在本申请的一个实施例中,会话事件可以进一步进行事件子类型划分,可以分为会话开始(session up)事件和会话结束(session down)事件。会话开始事件用于表示一个路由会话的创建,也就是一个会话事件的开始;会话结束事件用于表示一个路由会话的终止,也就是一个会话事件的结束。对等体事件可以进一步进行事件子类型划分,可以分为对等体开始(peer up)事件和对等体结束(peer down)事件。对等体开始事件用于表示设备间对等体关系的构建,也就是开始建立对等体关系;对等体结束事件用于表示设备间对等体关系的终止,也就是结束对等体关系。
在本申请的一个实施例中,针对不同事件类型的路由协议信息,所生成的路由数据不同的。针对会话事件,可以进一步根据会话事件所对应的事件子类型来生成路由数据;针对对等体事件,可以进一步根据对等体事件所对应的事件子类型来生成路由数据;针对路由事件,可以根据路由事件所指示的路由事件数据,即路由路径变化信息生成路由数据。
在本申请的一个实施例中,针对会话事件,判断是会话开始事件还是会话结束事件。如果是会话开始事件,则将路由协议信息包含的会话信息作为路由数据。会话开始事件所对应的路由协议信息主要是会话信息,该会话信息一般记录了路由会话所对应的网络设备信息、目标路由服务器信息以及路由会话标识信息,例如会话信息包括网络设备IP、设备ID、目标路由服务器IP、会话ID等信息。记录会话信息可以将路由会话与对等体事件关联起来,从而方便确定一个路由会话所包含的对等体事件有哪些,也即实现对对等体事件的分类。
如果事件类型为会话结束事件,则将会话结束事件转化为对等体结束事件进行处理。会话结束事件标志着路由会话的结束,对等体事件所对应的路由协议信息需要通过路由会话进行传输,当路由会话结束时,可以认为对等体关系解除,故而可以将会话结束事件转化为对等体结束事件进行处理。
示例性的,图9示意性地示出了本申请一个实施例提供的会话事件的处理过程的流程图。如图9所示,在处理会话事件时,在步骤910中,首先判断事件是否为会话开始(session up)事件。如果是会话开始事件,则在步骤920中,记录会话(session)信息,该信息即目标路由服务器解析后所生成的路由数据。例如记录路由会话对应的网络设备信息、目标路由服务器信息、会话标识信息等。如果不是会话开始事件,则在步骤930中,判断是否为会话结束(session down)事件。如果是会话结束事件,则在步骤940中,将会话结束事件转化为对等体结束(peer down)事件,然后在步骤950中,对该对等体事件进行进一步处理。在步骤930中,如果判断不是会话结束事件,则表明路由协议信息所包含的事件不是会话事件,此时对会话事件的处理流程结束,可以转至对等体事件处理流程,例如转至图10所示流程的步骤1010。
在本申请的一个实施例中,对于对等体事件,判断是对等体开始事件还是对等体结束事件。如果是对等体开始事件,则根据路由协议信息中包含的对等体信息生成路由数据,例如对等体所属网络设备信息、对等体对应的路由表信息等,还可以包括对等体的信息上报频率,信息上报频率是指接收到对等体的同一对等体事件对应的路由协议信息的频率,相当于产生同一对等体(peer)事件的频率,该信息上报频率也可以由路由上报次数替代。信息上报频率可以用于后续判断对等体是否发生异常。对等体所对应的路由数据可以存储第二数据库,便于后续的数据查询,第二数据库的定义将在后文介绍。
如果事件类型为对等体结束事件,表明对等体关系解除,那么对等体所关联的路由数据都没有必要再记录,故而生成用于删除路由协议信息对应的对等体所关联的路由数据的删除指令。
在本申请的一个实施例中,对等体所关联的路由数据一般存储于第一数据库和第二数据库。其中,第一数据库用于将路由数据上传至上层应用,第一数据库可以存储路由数据,同时可以将路由数据提供给上层应用使用,例如,第一数据库可以是kafka,kafka可以提供高吞吐量的、分布式的、发布-订阅消息操作。上层应用可以根据网络设备不同、路由表类型不同来差异化订阅对应的路由数据,形成差异化订阅。这样使得上层应用可以直接订阅使用路由数据,而无需对路由协议信息进行识别解析,提高上层应用使用路由数据的效率,同时也过滤了除路由数据外的不必要数据信息,防止冗余信息带来的上层应用系统性能额外消耗以及误处理的风险。
第二数据库用于存储路由表信息,路由表是用于记录多种路由路径的表,路由路径即路由数据。第二数据库可以采用redis数据库,redis是一种关系型数据库,方便进行数据查找。
由于对等体所关联的路由数据存储在上述两种数据库中,在生成对等体所关联的路由数据的删除指令时,需要同时删除上述两种数据库中的数据,故而生成删除指令的过程包括:生成用于删除对等体所关联的路由数据的第一删除指令,并将第一删除指令发送至第一数据库,以使第一数据库根据第一删除指令删除对等体所关联的路由数据;以及,生成用于删除对等体所关联的路由表信息的第二删除指令,并将第一删除指令发送至第二数据库,以使第二数据库根据第二删除指令删除对等体所关联的路由表信息。第一数据库接收到第一删除指令后,将其所存储的该对等体关联的全部路由数据删除,第一数据库还可以将第一删除指令上传至上层应用,以通知上传应用对等体关系的解除,并进行路由数据的清理。第二数据库接收到第二删除指令后,将该对等体关联的路由表信息删除,以释放存储空间。
在本申请的一个实施例中,在生成删除指令之前,本申请技术方案还包括:确定路由协议信息对应的对等体是否处于震荡状态;若对等体处于震荡状态,则在本地缓存路由协议信息包含的对等体信息,并返回确定对等体结束事件对应的对等体是否处于震荡状态的步骤;若对等体未处于震荡状态,则将路由协议信息包含的对等体信息作为路由数据。
对等体震荡是指对等体关系建立后很快断开,又很快重建,如此反复。在这种情况下,如果不对路由数据进行处理,会导致对等体关系中的同一BGP邻居或同一路由数据频繁且反复的上报路由数据,导致大量路由数据在短时间内反复增删,十分影响业务的处理逻辑,不利于其他服务的稳定运行。
在本申请实施例中,当对等体未处于震荡状态时,根据路由协议信息中包含的对等体信息(该信息通过对路由协议信息解析得到)生成路由数据,并将该路由数据上传第一数据库和第二数据库。当对等体处于震荡状态时,目标路由服务器不将此时产生的路由数据上报第一数据库,而是在本地缓存路由协议信息中包含的对等体信息,同时判断对等体的震荡状态是否恢复。如果对等体的震荡状态已经恢复,即对等体不再处于震荡状态,则目标路由服务器恢复对等体路由数据的上传,并且将从对等体开始震荡而缓存在本地的路由数据全部上传至第一数据库和第二数据库。
示例性的,图10示意性地示出了本申请一个实施例提供的对等体事件的处理过程的流程图。如图10所示,在处理对等体事件时,在步骤1010中,判断事件是否为对等体开始(peer up)事件。如果是对等体开始事件,则在步骤1020中,记录对等体(peer)相关信息,例如对等体所属网络设备信息、对等体对应的路由表信息等。然后在步骤1030中,记录对等体的路由上报频次(即信息上报频率),该路由上报频次存储于第二数据库redis,步骤1020中的对等体(peer)相关信息也可以存储至redis。通过步骤1020和步骤1030,peer up事件会记录peer所属设备信息以及peer对应路由表的信息写入redis,同时会记录peer上报频次后续做防抖处理。在步骤1010中,如果判断事件不是对等体开始事件,则在步骤1040中,判断事件是否为对等体结束(peer down)事件。如果是对等体结束事件,则在步骤1050中判断对等体是否处于震荡状态。如果对等体处于震荡状态,则在步骤1060中进行对等体的震荡处理。如果对等体未处于震荡状态,则在步骤1070中生成第二删除指令并发送至第二数据库redis,以使redis删除对等体相关的路由表信息。然后在步骤1080中,生成第一删除指令并发送至第一数据库kafka。在步骤1090中,第一数据库kafka根据第一删除指令删除对等体相关的路由数据。在步骤1040中,如果判断事件不是对等体结束事件,则可以转至路由事件处理流程,例如转至图11所示流程的步骤1110。总而言之,在图10所示示例中,对于peer事件,首先会区分peer up事件和peer down事件。peer up事件会记录peer所属设备信息以及peer对应路由表的信息写入redis,同时会记录peer上报频次后续做防抖处理。peerdown事件会判断该peer是否处于震荡状态,如果为震荡状态则在本地做防抖处理,不写入redis也不上报kafka。若peer未处于震荡状态,则将peer关联的路由全部以删除逻辑上报kafka并删除redis路由表信息。
在本申请的一个实施例中,针对路由事件,可以直接提取路由协议信息中的s作为路由数据,并将该路由数据上传至第一数据库和第二数据库。在将路由数据存储至数据库时,目标路由服务器还可以在本地记录路由数据的摘要信息,后续可以使用该摘要信息查询对应的路由数据。
在本申请的一个实施例中,路由事件其实描述了对等体设备间的路由路径变化情况,故而在上报路由事件时,也可以对关联的对等体进行震荡判断。若对等体未处于震荡状态,则目标路由服务器根据路由协议信息包含的路由事件数据生成路由数据。若对等体处于震荡状态,则目标路由服务器在本地缓存路由协议信息包含的路由事件数据,并返回确定路由事件对应的对等体是否处于震荡状态的步骤;如果对等体的震荡状态恢复,则目标路由服务器将本地缓存的路由数据上传至第一数据库和第二数据库。
示例性的,图11示意性地示出了本申请一个实施例提供的路由事件的处理过程的流程图。如图11所示,在步骤1110中,目标路由服务器记录路由事件对应的路由摘要信息。在步骤1120中,目标路由服务器判断路由事件对应的对等体是否处于震荡状态。如果对等体未处于震荡状态,则在步骤1130中,目标路由服务器将路由数据写入第二数据库redis。在步骤1140中,目标路由服务器将路由数据上报至第一数据库kafka。在步骤1120中,如果判断对等体处于震荡状态,则在步骤1150中,目标路由服务器在本地缓存该路由事件对应的路由数据,并在经过预定时长后,例如10min(分钟),在步骤1160中重新判断对等体是否处于震荡状态。如果对等体仍然处于震荡状态,则返回步骤1150,继续在本地缓存路由数据。如果对等体已经没有处于震荡状态,则进入步骤1140和步骤1150,将路由数据存储至redis并上报kafka。总而言之,在图11所示示例中,对于path事件,首先会记录该路由的摘要信息存入本地(方便后续进行快速查询)。然后判断该Path事件所属的Peer是否在处于震荡状态,若处于震荡状态,则将此路由在本地临时路由表缓存记录,过十分钟后,再次判断该Peer是否处于震荡状态,若依然处于则继续十分钟重试机制,若结束震荡则将路由写入redis并上报kafka。如果Path事件所属Peer不处于震荡状态,路由写入redis并上报kafka。
在本申请的一个实施例中,判断对等体是否处于震荡状态,可以通过对等体的信息上报频率来确定,对等体的信息上报频率是指目标路由服务器接收到同一对等体事件对应的路由协议信息的频率,简称为同一对等体事件的上报频率。当对等体的信息上报频率(同一对等体事件的上报频率)大于预设阈值时,即对等体频繁上报路由数据,则认为对等体处于震荡状态;当对等体的信息上报频率(同一对等体事件的上报频率)小于预设阈值时,表明对等体处于正常上报路由数据的状态,故而认为对等体未处于震荡状态。可以理解,对等体的信息上报频率等于预设阈值可以归类至信息上报频率大于预设阈值或信息上报频率小于预设阈值中的任一种。例如,目标路由服务器在10分钟接收到超过20次同一对等体事件对应的路由协议信息,则认为对等体震荡。
在本申请的一个实施例中,在对路由(path)事件进行处理时,还可以根据路由事件的上报频率(简称path上报频率)判断路由事件对应的路由数据是否正常,路由事件的上报频率是指目标路由服务器接收到同一路由事件对应的路由协议信息的频率。path上报频率过快(即path上报频率超过阈值),代表该条路由不正常,那么可以将该条路由数据缓存在本地,待path上报频率正常(即path上报频率低于阈值)时,才上报对应的路由数据至数据库(包括第一数据库和第二数据库)。
在本申请的一个实施例中,目标路由服务器可以通过令牌桶的方式来进行震荡处理。令牌桶可以看作是存放一定数量令牌的容器,目标路由服务器按照设定的速度向令牌桶中放置令牌,当上报对等体的路由数据时,需要从令牌桶中取一定数量的令牌。如果取令牌的速度大于向令牌桶中放置令牌的速度,则表明路由数据上报频率较大。当令牌桶中的令牌数量不足以支持路由数据上报时,可以认为路由数据上报频率异常,需要进行震荡处理。
示例性的,图12示意性地示出了本申请一个实施例提供的震荡处理流程的示意图。如图12所示,网络设备产生的会话事件(session event)和对等体事件(peer event)通过代理服务器(图12中未示出)上报至BMP服务器(BMP Server),该BMP服务器即为目标路由服务器。BMP服务器(BMP Server)将事件上报频率(即信息上报频率)记录至第二数据库redis。在需要进行震荡处理时,BMP服务器(BMP Server)从第二数据库redis获取事件上报频率,判断该频率是否超过设置的阈值,如果该频率超过设置阈值,则BMP服务器(BMPServer)在本地缓存会话或对等体相关的路由事件,并且生成告警信息,通知异常情况发生。如果该频率未超过设置阈值,则BMP服务器(BMP Server)将路由信息存储至第二数据库redis以及上报第一数据库kafka。
对等体(peer)上报频率过快代表整个对等体震荡,那么这个震荡的对等体对应的路由就属于非正常路由,故而在确定对等体震荡时,目标路由服务器不进行路由数据的存储和上报,而是将路由数据缓存在本地,只有在对等体没有震荡时才将路由数据存储和上报。目标路由服务器通过实施震荡处理,可以将震荡所引起的路由变化(或称为路由抖动)抑制在本地,而不会发送到redis和上报到kafka,从而使得上层应用对震荡没有任何感知,从震荡发生到震荡结束,上层应用都不会收到反复冗余且不必要的路由消息,极大地降低了上层应用的接入复杂度。
在本申请的一个实施例中,目标服务器对路由协议信息进行解析得到路由数据后,需要将路由数据存储至第二数据库,然而,在一些情况下,第二数据库可能无法进行数据存储,例如网络抖动或者第二数据库的数据存储服务不可用等。为了提高数据存储的成功率,本申请技术方案在存储路由数据时,首先检测用于存储路由数据的第二数据库是否可用;如果第二数据库可用,则将路由数据存储至第二数据库;如果第二数据库不可用,则在本地缓存路由数据,从而避免路由数据未成功存储至第二数据库时产生数据丢失。
在本申请的一个实施例中,在检测到第二数据库不可用时,目标路由服务器可以在预设时长内重新检测第二数据库是否可用;如果第二数据库在预设时长内恢复可用状态,则将该预设时长内缓存在本地的路由数据均存储至第二数据库,并在确保路由数据存储至第二数据库后,清除本地的缓存数据,以释放本地缓存空间。如此,确保第二数据库中能够存储完整的路由数据。
示例性的,图13示意性地示出了本申请一个实施例提供的数据存储过程的示意图。如图13所示,在第一阶段,路由协议信息即BMP事件(BMP Event)上报至BMP服务器(BMPSever),该BMP服务器即为目标路由服务器,此时网络中断,或者redis集群发生单点故障,导致redis不可用,进而第二阶段。在第二阶段,由于数据未能正常存储至redis,导致BMP事件(BMP Event)上报阻塞,此时BMP服务器(BMP Sever)尝试重新将数据写入redis(相当于重新检测redis是否可用),如果写入失败,例如重试超时,则BMP服务器(BMP Sever)生成告警信息,通知redis不可用。在第三阶段,如果redis恢复正常,例如网络恢复正常,redis集群切换至可用节点等,则BMP事件(BMP Event)上报恢复,BMP服务器(BMP Sever)可用将数据成功写入redis,并将数据上报kafka,保证了路由的完整性。
在本申请的一个实施例中,第二数据库不可用包括以下任意一种情况:接收到第二数据库反馈的数据写入失败信息;设定时长内未接收到第二数据库反馈的数据写入成功信息;与第二数据库之间的通信链路中断;接收到第二数据库不可用信息;将路由数据重写至第二数据库的次数大于设定次数。
在本申请的一个实施例中,本申请技术方案还提供路由数据的查询服务。为了减轻路由服务器的负担,本申请技术方案通过部署路由查询网关(简称网关)来将上层应用的路由查询和路由服务器解耦,路由查询过程具体包括:接收网关发送的路由摘要查询请求,路由摘要查询请求是网关根据路由数据查询请求所需查询的路由摘要信息而生成、并根据路由数据查询请求中的网络设备标识而发送至目标路由服务器的;根据路由数据查询请求确定所需查询的路由数据的摘要信息;将摘要信息发送至网关,以使网关根据摘要信息从第二数据库获取所需查询的路由数据。
具体地,上层应用将路由查询请求发送至网关,路由查询请求包括产生所需查询路由数据的网络设备标识信息以及所需查询路由数据的路由摘要信息。网关根据所需查询路由数据的路由摘要信息生成路由摘要查询请求,以从路由服务器获取对应的摘要信息;同时,网关根据网络设备标识确定处理该设备的路由数据的目标路由服务器具体是哪一个,然后将路由摘要查询请求发送至目标路由服务器。目标路由服务器根据路由摘要查询请求确定所需查询的摘要信息,然后向网关反馈摘要信息。目标路由服务器在处理路由协议信息时,会将解析后的路由数据存储到全网唯一标识的路由表中,该路由表存储在第二数据库中,记录每一条路由数据的明细信息,该明细信息包含路由数据的摘要信息。网关获取摘要信息后,即可根据该摘要信息从第二数据库中查询对应的路由数据。
示例性的,图14示意性地示出了本申请一个实施例提供的路由数据查询过程的示意图。如图14所示,上层应用(APP)向网关(TBMP Gateway)发起路由查询请求。网关解析该路由查询请求提取该请求所需的路由摘要信息,生成路由摘要查询请求,同时根据路由查询请求中的网络设备标识确定执行摘要查询的目标路由服务器(TBMP),将路由摘要查询请求发送至目标路由服务器。目标路由服务器向网关反馈摘要信息,根据该摘要信息从第二数据库redis中获取对应的路由数据,然后将路由数据反馈至上层应用。
图15示意性地示出了本申请一个实施例提供的路由数据查询过程的流程图。如图15所示,在步骤1510中,网关根据网络设备标识(设备id)查找设备所属TBMP实例,即确定处理该网络设备的路由信息的目标路由服务器。在步骤1520中,网关解析路由数据查询请求提取该请求所需的路由摘要信息,如基于AS_PATH的查询需要提取该AS_PATH关联的路由,基于COMMUNITY的查询需要提取该COMMUNITY关联的路由。以查询AS_PATH摘要信息为例,在步骤1530中,目标路由服务器(TBMP)查询AS_PATH摘要信息并反馈至网关。在步骤1540中,网关根据摘要信息查询redis具体路由数据。在步骤1550中,网关将查询结果返回上层应用。示例性的,图16示意性地示出了本申请一个实施例提供的路由查询结果的示意图。如图16所示,在进行路由查询时,可以根据以下条件进行路由数据的查询:路由区域(Region)、路由前缀、园区/域核、VRF、设备信息等。
图17示意性地示出了应用本申请技术方案的示例性系统架构框图,应用本申请技术方案的系统架构可以称为TBMP架构。TBMP架构如图17所示,可分为几个组件块,由下至上:TCP代理、TBMP服务、Redis、Kafka,组件块间的协同合作解决了设备水平扩展问题、路由差异化上报问题以及对外提供多样化路由查询问题。TCP代理是指代理服务器,代理服务器TCP代理用于解耦网络设备和路由采集平台的绑定关系,做到了在设备无感知的情况下路由采集平台水平扩展以及在一个路由服务器不可用的情况,BMP会话(路由会话)会自动建联到其他路由服务器。TBMP服务是指路由采集平台(或称为TBMP采集平台),路由采集平台实现了对BMP事件(路由协议信息)的统一处理转换,对外实现定制化的路由信息上报,并同时针对各种设备异常情况做出异常处理,保证上层应用不会感知下层抖动,并且路由服务器对设备的路由表信息进行存储,对外提供多样化的路由查询能力。BGP路由的传输过程是,网络设备产生路由协议信息并传输至路由采集平台,路由采集平台解析路由协议信息后得到路由数据,将路由数据传输至业务层,故而网络设备相对于路由采集平台是下层设备,应用层相对于路由采集平台是上层应用,网络设备将下层路由信息发送至路由采集平台的过程也称为下层路由信息上报,路由采集平台将路由数据传输至上层应用是通过第一数据库kafka提供的消息订阅方式实现的,故而该过程也称为上报订阅路由数据。第二数据库redis用于存储设备路由表信息。第一数据库kafka用于上报订阅路由数据,即第一数据库kafka通过消息订阅的方式将路由数据上传至上层应用。
网络设备BMP将路由协议信息通过第一通信连接上传至代理服务器TCP Proxy,代理服务器TCP Proxy通过第二通信连接将路由协议信息透传至路由服务器TBMP。路由服务器TBMP对路由协议信息进行解析后,生成路由数据,该路由数据可以存储至第二数据库redis,同时也可以上报至第一数据库kafka。上层应用可以通过第一数据库kafka订阅使用路由数据,上层应用包括但不限于路由引擎(Route-engine)和应用程序(Application,APP)。路由服务器TBMP还可以对外提供路由数据查询服务,“对外”是指除TBMP之外的上层业务,包括但不限于路由分析业务(Route-analysis)、流量调度业务(Traffic-schedule)、路由引擎业务(Route-engine)和应用程序业务(APP)、给出公网整个调度路径的流量画像等。例如,路由服务器TBMP采集了下层设备的路由协议信息后会进行解析处理生成路由数据,然后将路由数据通过第一数据库kafka上报给订阅的上层业务,上层业务可以根据实际需要对获取的路由数据进行处理。例如,路由分析业务可以订阅TBMP采集平台的路由数据实时进行路由的相关分析,如进行路由差异化分析来判断不同设备上的路由是否具有一致性,或者进行路由劫持分析来判断设备侧的路由是否符合预期,从而实现网络内路由的可控性保证。又例如,流量调度业务可以查询TBMP采集平台获取的路由数据,来进行不同路由属性(如路由起源、AS路径、优先级等)的流量调度,并且路由变化也可以通过订阅kafka实现调度的动态调整,达到应动而动的目的。
图18示意性地示出了本申请技术方案的流程图,本实施例的执行主体为路由服务器TBMP。如图18所示,在步骤1810中,路由服务器TBMP进行BMP事件采集,即路由服务器TBMP获取网络设备产生的路由协议信息。在步骤1820中,路由服务器TBMP进行BMP事件处理,即路由服务器TBMP对路由协议信息进行解析,生成路由数据。在步骤1830中,路由服务器TBMP进行路由存储和上报,即路由服务器TBMP将路由数据存储至第二数据库redis并上报第一数据库kafka。在步骤1840中,路由服务器TBMP提供对外查询服务,即外部业务可以通过路由服务器TBMP进行路由数据的查询。各个步骤的具体实现过程在前述实施例中均已详细描述,在此不再赘述。
本申请技术方案可以实现以下有益效果:
1、路由采集平台和网络设备之间通过一层代理服务器进行解耦,网络设备不感知路由采集平台本身,只需要和代理服务器建立TCP连接,代理服务器则会根据负载策略和路由服务器再建立TCP连接。当某一个路由服务器挂掉,代理服务器会自动将BMP会话连接到其他的路由服务器,保证了服务的可用性;后续加入的新的网络设备直接和代理服务器建立TCP连接,不需要繁琐的去配置指定的路由服务器的地址,路由服务器的水平扩展性得到了极大地提升。
2、路由采集平台对BMP消息进行解封装后,还对消息进行了自定义解析,提供多样化的路由查询功能(如PREFIX、COMMUNITY等多种路由属性)。
3、路由采集平台将采集到的BMP路由放入redis中进行存储,同时对redis存储进行了优化,保证了全网千万级路由的存储性能。
4、路由采集平台对BMP事件转换为路由事件,不同的业务能根据不同的策略订阅kafka消息来满足自身的业务需求。
应当注意,尽管在附图中以特定顺序描述了本申请中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。
以下介绍本申请的装置实施例,可以用于执行本申请上述实施例中的路由信息的处理方法。图19示意性地示出了本申请实施例提供的路由信息的处理装置的结构框图。如图19所示,本申请实施例提供的路由信息的处理装置包括:
第一通信连接建立模块1910,用于与网络设备建立第一通信连接,并基于所述第一通信连接获取所述网络设备发起的路由会话建立请求;
第二通信连接建立模块1920,用于根据所述路由会话建立请求与目标路由服务器建立第二通信连接,以基于所述第一通信连接和所述第二通信连接构建所述网络设备与所述目标路由服务器之间的路由会话;
信息接收模块1930,用于接收所述网络设备通过所述第一通信连接发送的路由协议信息;
信息发送模块1940,用于通过所述第二通信连接将所述路由协议信息转发至所述目标路由服务器,以使所述目标路由服务器对所述路由协议信息进行解析而生成路由数据。
在本申请的一个实施例中,第二通信连接建立模块1920包括:
目标路由服务器选择单元,用于从多个路由服务器中选择一个路由服务器作为目标路由服务器;
请求发送单元,用于将所述路由会话建立请求发送至所述目标路由服务器,并接收所述目标路由服务器针对所述路由会话建立请求反馈的连接建立响应信息;
连接建立单元,用于基于所述连接建立响应信息与所述目标路由服务器建立第二通信连接。
在本申请的一个实施例中,所述装置还包括:
目标路由服务器重选模块,用于在将所述路由会话建立请求发送至所述目标路由服务器之后,若接收到所述目标路由服务器反馈的拒绝连接信息,则从除当前选择的路由服务器之外的其它路由服务器中重新选择一个路由服务器作为目标路由服务器。
在本申请的一个实施例中,所述目标路由服务器选择单元具体用于:
获取各个路由服务器的负载量;
选择负载量最小的路由服务器作为目标路由服务器。
在本申请的一个实施例中,所述方法还包括:
第一重连模块,用于当检测到与所述目标路由服务器建立的第二通信连接断开时,重新向所述目标路由服务器发送所述路由会话建立请求;
第二重连模块,用于当设定时长内未接收到所述目标路由服务器针对所述路由会话建立请求反馈的连接建立响应信息时,从其它路由服务器中重新选择一个路由服务器作为所述目标路由服务器,并与重新选择的所述目标路由服务器建立第二通信连接。
图20示意性地示出了本申请实施例提供的路由信息的处理装置的结构框图。如图20所示,本申请实施例提供的路由信息的处理装置包括:
通信连接建立模块2010,用于与代理服务器之间建立第二通信连接,所述第二通信连接是所述代理服务器根据网络设备发起的路由会话建立请求而与目标路由服务器建立的,所述路由会话建立请求是所述代理服务器基于与所述网络设备建立的第一通信连接而获取的;
信息接收模块2020,用于通过所述第二通信连接接收所述代理服务器转发的路由协议信息,所述路由协议信息是所述网络设备通过所述第一通信连接发送给所述代理服务器的;
信息解析模块2030,用于对所述路由协议信息进行解析,以生成路由数据。
在本申请的一个实施例中,信息解析模块2030具体用于:
根据所述路由协议信息中的路由表标识将所述路由协议信息分发至对应的协程,以使所述协程对所述路由协议信息进行解析,以生成路由数据。
在本申请的一个实施例中,信息解析模块2030具体用于:
对所述路由协议信息进行解析,以根据解析结果确定所述路由协议信息所对应的事件类型;
根据所述路由协议信息所对应的事件类型生成路由数据。
在本申请的一个实施例中,信息解析模块2030包括:
会话事件处理单元,用于当所述事件类型为会话开始事件时,将所述路由协议信息包含的会话信息作为路由数据;当所述事件类型为会话结束事件时,将所述会话结束事件转化为所述对等体结束事件进行处理。
在本申请的一个实施例中,信息解析模块2030包括:
对等体事件处理单元,用于当所述事件类型为对等体开始事件时,将所述路由协议信息包含的对等体信息作为路由数据;当所述事件类型为对等体结束事件时,生成用于删除所述路由协议信息对应的对等体所关联的路由数据的删除指令。
在本申请的一个实施例中,所述对等体事件处理单元具体用于:
生成用于删除所述对等体所关联的路由数据的第一删除指令,并将所述第一删除指令发送至第一数据库,以使所述第一数据库根据所述第一删除指令删除所述对等体所关联的路由数据;所述第一数据库用于将所述路由数据上传至上层应用;
生成用于删除所述对等体所关联的路由表信息的第二删除指令,并将所述第一删除指令发送至第二数据库,以使所述第二数据库根据所述第二删除指令删除所述对等体所关联的路由表信息;所述第二数据库用于存储所述路由表信息,所述路由表信息包括所述路由数据。
在本申请的一个实施例中,信息解析模块2030包括:
震荡处理单元,用于确定所述路由协议信息对应的对等体是否处于震荡状态;若所述对等体处于震荡状态,则在本地缓存所述路由协议信息包含的对等体信息,并返回确定所述对等体结束事件对应的对等体是否处于震荡状态的步骤;若所述对等体未处于震荡状态,则将所述路由协议信息包含的对等体信息作为路由数据。
在本申请的一个实施例中,信息解析模块2030包括:
路由事件处理单元,用于当所述事件类型为路由事件时,确定所述路由协议信息对应的对等体是否处于震荡状态;若所述对等体处于震荡状态,则在本地缓存所述路由协议信息包含的路由事件数据,并返回确定所述路由事件对应的对等体是否处于震荡状态的步骤;若所述对等体未处于震荡状态,则根据所述路由协议信息包含的路由事件数据生成路由数据。
在本申请的一个实施例中,所述震荡处理单元具体用于:
获取所述对等体的信息上报频率,所述信息上报频率包括接收到所述对等体的同一对等体事件对应的路由协议信息的频率;
当所述信息上报频率大于预设阈值时,确定所述对等体处于震荡状态;
当所述信息上报频率小于预设阈值时,确定所述未对等体处于震荡状态。
在本申请的一个实施例中,所述装置还包括:
数据存储模块,用于检测用于存储所述路由数据的第二数据库是否可用;当所述第二数据库可用时,将所述路由数据存储至所述第二数据库;当所述第二数据库不可用时,在本地缓存所述路由数据。
在本申请的一个实施例中,所述装置还包括:
数据重存模块,用于在预设时长内重新检测所述第二数据库是否可用;当所述第二数据库可用时,将所述预设时长内缓存在本地的路由数据存储至所述第二数据库。
在本申请的一个实施例中,所述装置还包括:
路由查询模块,用于接收网关发送的路由摘要查询请求,所述路由摘要查询请求是所述网关根据路由数据查询请求所需查询的路由摘要信息而生成、并根据所述路由数据查询请求中的网络设备标识而发送至目标路由服务器的;根据所述路由摘要查询请求确定所需查询的路由数据的摘要信息;将所述摘要信息发送至所述网关,以使所述网关根据所述摘要信息从所述第二数据库获取所需查询的路由数据。
本申请各实施例中提供的路由信息的处理装置的具体细节已经在对应的方法实施例中进行了详细的描述,此处不再赘述。
图21示意性地示出了用于实现本申请实施例的电子设备的计算机系统结构框图。
需要说明的是,图21示出的电子设备的计算机系统2100仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图21所示,计算机系统2100包括中央处理器2101(Central Processing Unit,CPU),其可以根据存储在只读存储器2102(Read-Only Memory,ROM)中的程序或者从存储部分2108加载到随机访问存储器2103(Random Access Memory,RAM)中的程序而执行各种适当的动作和处理。在随机访问存储器2103中,还存储有系统操作所需的各种程序和数据。中央处理器2101、在只读存储器2102以及随机访问存储器2103通过总线2104彼此相连。输入/输出接口2105(Input /Output接口,即I/O接口)也连接至总线2104。
以下部件连接至输入/输出接口2105:包括键盘、鼠标等的输入部分2106;包括诸如阴极射线管(Cathode Ray Tube,CRT)、液晶显示器(Liquid Crystal Display,LCD)等以及扬声器等的输出部分2107;包括硬盘等的存储部分2108;以及包括诸如局域网卡、调制解调器等的网络接口卡的通信部分2109。通信部分2109经由诸如因特网的网络执行通信处理。驱动器2110也根据需要连接至输入/输出接口2105。可拆卸介质2111,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器2110上,以便于从其上读出的计算机程序根据需要被安装入存储部分2108。
特别地,根据本申请的实施例,各个方法流程图中所描述的过程可以被实现为计算机软件程序。例如,本申请的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分2109从网络上被下载和安装,和/或从可拆卸介质2111被安装。在该计算机程序被中央处理器2101执行时,执行本申请的系统中限定的各种功能。
需要说明的是,本申请实施例所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(Erasable Programmable Read Only Memory,EPROM)、闪存、光纤、便携式紧凑磁盘只读存储器(Compact Disc Read-Only Memory,CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本申请的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本申请实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、触控终端、或者网络设备等)执行根据本申请实施方式的方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。

Claims (20)

1.一种路由信息的处理方法,其特征在于,包括:
与网络设备建立第一通信连接,并基于所述第一通信连接获取所述网络设备发起的路由会话建立请求;
根据所述路由会话建立请求与目标路由服务器建立第二通信连接,以基于所述第一通信连接和所述第二通信连接构建所述网络设备与所述目标路由服务器之间的路由会话;
接收所述网络设备通过所述第一通信连接发送的路由协议信息;
通过所述第二通信连接将所述路由协议信息转发至所述目标路由服务器,以使所述目标路由服务器对所述路由协议信息进行解析而生成路由数据。
2.根据权利要求1所述的路由信息的处理方法,其特征在于,根据所述路由会话建立请求与目标路由服务器建立第二通信连接,包括:
从多个路由服务器中选择一个路由服务器作为目标路由服务器;
将所述路由会话建立请求发送至所述目标路由服务器,并接收所述目标路由服务器针对所述路由会话建立请求反馈的连接建立响应信息;
基于所述连接建立响应信息与所述目标路由服务器建立第二通信连接。
3.根据权利要求2所述的路由信息的处理方法,其特征在于,所述处理方法还包括:
在将所述路由会话建立请求发送至所述目标路由服务器之后,若接收到所述目标路由服务器反馈的拒绝连接信息,则从除当前选择的路由服务器之外的其它路由服务器中重新选择一个路由服务器作为目标路由服务器。
4.根据权利要求2所述的路由信息的处理方法,其特征在于,从多个路由服务器中选择一个路由服务器作为目标路由服务器,包括:
获取各个路由服务器的负载量;
选择负载量最小的路由服务器作为目标路由服务器。
5.根据权利要求1所述的路由信息的处理方法,其特征在于,在根据所述路由会话建立请求与目标路由服务器建立第二通信连接之后,所述方法还包括:
当检测到与所述目标路由服务器建立的第二通信连接断开时,重新向所述目标路由服务器发送所述路由会话建立请求;
当设定时长内未接收到所述目标路由服务器针对所述路由会话建立请求反馈的连接建立响应信息时,从其它路由服务器中重新选择一个路由服务器作为所述目标路由服务器,并与重新选择的所述目标路由服务器建立第二通信连接。
6.一种路由信息的处理方法,其特征在于,包括:
与代理服务器之间建立第二通信连接,所述第二通信连接是所述代理服务器根据网络设备发起的路由会话建立请求而与目标路由服务器建立的,所述路由会话建立请求是所述代理服务器基于与所述网络设备建立的第一通信连接而获取的;
通过所述第二通信连接接收所述代理服务器转发的路由协议信息,所述路由协议信息是所述网络设备通过所述第一通信连接发送给所述代理服务器的;
对所述路由协议信息进行解析,以生成路由数据。
7.根据权利要求6所述的路由信息的处理方法,其特征在于,对所述路由协议信息进行解析,以生成路由数据,包括:
根据所述路由协议信息中的路由表标识将所述路由协议信息分发至对应的协程,以使所述协程对所述路由协议信息进行解析,以生成路由数据。
8.根据权利要求6所述的路由信息的处理方法,其特征在于,对所述路由协议信息进行解析,以生成路由数据,包括:
对所述路由协议信息进行解析,以根据解析结果确定所述路由协议信息所对应的事件类型;
根据所述路由协议信息所对应的事件类型生成路由数据。
9.根据权利要求8所述的路由信息的处理方法,其特征在于,根据所述路由协议信息所对应的事件类型生成路由数据,包括:
当所述事件类型为会话开始事件时,将所述路由协议信息包含的会话信息作为路由数据;
当所述事件类型为会话结束事件时,将所述会话结束事件转化为对等体结束事件进行处理。
10.根据权利要求8所述的路由信息的处理方法,其特征在于,根据所述路由协议信息所对应的事件类型生成路由数据,包括:
当所述事件类型为对等体开始事件时,将所述路由协议信息包含的对等体信息作为路由数据;
当所述事件类型为对等体结束事件时,生成用于删除所述路由协议信息对应的对等体所关联的路由数据的删除指令。
11.根据权利要求10所述的路由信息的处理方法,其特征在于,生成用于删除所述路由协议信息对应的对等体所关联的路由数据的删除指令,包括:
生成用于删除所述对等体所关联的路由数据的第一删除指令,并将所述第一删除指令发送至第一数据库,以使所述第一数据库根据所述第一删除指令删除所述对等体所关联的路由数据;所述第一数据库用于将所述路由数据上传至上层应用;
生成用于删除所述对等体所关联的路由表信息的第二删除指令,并将所述第一删除指令发送至第二数据库,以使所述第二数据库根据所述第二删除指令删除所述对等体所关联的路由表信息;所述第二数据库用于存储所述路由表信息,所述路由表信息包括所述路由数据。
12.根据权利要求10所述的路由信息的处理方法,其特征在于,在生成用于删除所述路由协议信息对应的对等体所关联的路由数据的删除指令之前,所述方法还包括:
确定所述路由协议信息对应的对等体是否处于震荡状态;
若所述对等体处于震荡状态,则在本地缓存所述路由协议信息包含的对等体信息,并返回确定所述对等体结束事件对应的对等体是否处于震荡状态的步骤;
若所述对等体未处于震荡状态,则将所述路由协议信息包含的对等体信息作为路由数据。
13.根据权利要求8所述的路由信息的处理方法,其特征在于,根据所述路由协议信息所对应的事件类型生成路由数据,包括:
当所述事件类型为路由事件时,确定所述路由协议信息对应的对等体是否处于震荡状态;
若所述对等体处于震荡状态,则在本地缓存所述路由协议信息包含的路由事件数据,并返回确定所述路由事件对应的对等体是否处于震荡状态的步骤;
若所述对等体未处于震荡状态,则根据所述路由协议信息包含的路由事件数据生成路由数据。
14.根据权利要求12或13所述的路由信息的处理方法,其特征在于,确定所述路由协议信息对应的对等体是否处于震荡状态,包括:
获取所述对等体的信息上报频率,所述信息上报频率包括接收到所述对等体的同一对等体事件对应的路由协议信息的频率;
当所述信息上报频率大于预设阈值时,确定所述对等体处于震荡状态;
当所述信息上报频率小于预设阈值时,确定所述对等体未处于震荡状态。
15.根据权利要求6所述的路由信息的处理方法,其特征在于,在生成路由数据之后,所述方法还包括:
检测用于存储所述路由数据的第二数据库是否可用;
当所述第二数据库可用时,将所述路由数据存储至所述第二数据库;
当所述第二数据库不可用时,在本地缓存所述路由数据。
16.根据权利要求15所述的路由信息的处理方法,其特征在于,在本地缓存所述路由数据之后,所述方法还包括:
在预设时长内重新检测所述第二数据库是否可用;
当所述第二数据库可用时,将所述预设时长内缓存在本地的路由数据存储至所述第二数据库。
17.根据权利要求15所述的路由信息的处理方法,其特征在于,在将所述路由数据存储至所述第二数据库之后,所述方法还包括:
接收网关发送的路由摘要查询请求,所述路由摘要查询请求是所述网关根据路由数据查询请求所需查询的路由摘要信息而生成、并根据所述路由数据查询请求中的网络设备标识而发送至目标路由服务器的;
根据所述路由摘要查询请求确定所需查询的路由数据的摘要信息;
将所述摘要信息发送至所述网关,以使所述网关根据所述摘要信息从所述第二数据库获取所需查询的路由数据。
18.一种路由信息的处理装置,其特征在于,包括:
第一通信连接建立模块,用于与网络设备建立第一通信连接,并基于所述第一通信连接获取所述网络设备发起的路由会话建立请求;
第二通信连接建立模块,用于根据所述路由会话建立请求与目标路由服务器建立第二通信连接,以基于所述第一通信连接和所述第二通信连接构建所述网络设备与所述目标路由服务器之间的路由会话;
信息接收模块,用于接收所述网络设备通过所述第一通信连接发送的路由协议信息;
信息发送模块,用于通过所述第二通信连接将所述路由协议信息转发至所述目标路由服务器,以使所述目标路由服务器对所述路由协议信息进行解析而生成路由数据。
19.一种计算机可读介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至17中任意一项所述的路由信息的处理方法。
20.一种电子设备,其特征在于,包括:
处理器;以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器执行所述可执行指令使得所述电子设备执行权利要求1至17中任意一项所述的路由信息的处理方法。
CN202311018890.4A 2023-08-14 2023-08-14 路由信息的处理方法、装置、计算机可读介质及电子设备 Active CN116760830B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311018890.4A CN116760830B (zh) 2023-08-14 2023-08-14 路由信息的处理方法、装置、计算机可读介质及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311018890.4A CN116760830B (zh) 2023-08-14 2023-08-14 路由信息的处理方法、装置、计算机可读介质及电子设备

Publications (2)

Publication Number Publication Date
CN116760830A true CN116760830A (zh) 2023-09-15
CN116760830B CN116760830B (zh) 2024-03-01

Family

ID=87951750

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311018890.4A Active CN116760830B (zh) 2023-08-14 2023-08-14 路由信息的处理方法、装置、计算机可读介质及电子设备

Country Status (1)

Country Link
CN (1) CN116760830B (zh)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003001819A2 (en) * 2001-06-25 2003-01-03 Empower Interactive Group Limited Message transmission system and method
CN102594787A (zh) * 2011-01-14 2012-07-18 腾讯科技(深圳)有限公司 数据抓取方法、系统和路由服务器
US20130094350A1 (en) * 2011-10-14 2013-04-18 Subhasree Mandal Semi-Centralized Routing
CN106059934A (zh) * 2016-06-27 2016-10-26 杭州华三通信技术有限公司 一种路由信息处理方法及装置
CN110191059A (zh) * 2019-07-29 2019-08-30 华为技术有限公司 一种路由信息监控方法和装置
CN113098750A (zh) * 2021-03-11 2021-07-09 网宿科技股份有限公司 一种站点互连方法、系统及中转设备
CN116055393A (zh) * 2021-10-27 2023-05-02 北京金山云网络技术有限公司 专线通信方法、装置及系统
CN116094978A (zh) * 2019-11-15 2023-05-09 华为技术有限公司 一种信息上报方法和信息处理方法及设备

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003001819A2 (en) * 2001-06-25 2003-01-03 Empower Interactive Group Limited Message transmission system and method
CN102594787A (zh) * 2011-01-14 2012-07-18 腾讯科技(深圳)有限公司 数据抓取方法、系统和路由服务器
US20130094350A1 (en) * 2011-10-14 2013-04-18 Subhasree Mandal Semi-Centralized Routing
CN103947164A (zh) * 2011-10-14 2014-07-23 谷歌公司 半集中式路由
CN106059934A (zh) * 2016-06-27 2016-10-26 杭州华三通信技术有限公司 一种路由信息处理方法及装置
CN110191059A (zh) * 2019-07-29 2019-08-30 华为技术有限公司 一种路由信息监控方法和装置
CN116094978A (zh) * 2019-11-15 2023-05-09 华为技术有限公司 一种信息上报方法和信息处理方法及设备
CN113098750A (zh) * 2021-03-11 2021-07-09 网宿科技股份有限公司 一种站点互连方法、系统及中转设备
CN116055393A (zh) * 2021-10-27 2023-05-02 北京金山云网络技术有限公司 专线通信方法、装置及系统

Also Published As

Publication number Publication date
CN116760830B (zh) 2024-03-01

Similar Documents

Publication Publication Date Title
US7978631B1 (en) Method and apparatus for encoding and mapping of virtual addresses for clusters
CN112868206A (zh) 在使用基于服务的体系架构的电信网络核心中提供服务代理功能的方法、系统和计算机可读介质
US7518983B2 (en) Proxy response apparatus
CN1702996B (zh) 通信网络连接重新路由的方法及系统
US20130304805A1 (en) Network system and network relay apparatus
US20070165546A1 (en) Packet-switched network topology tracking method and system
CN102291455B (zh) 分布式集群处理系统及其报文处理方法
CN106878072B (zh) 一种报文传输方法和装置
CN114339854A (zh) 会话管理方法、通信设备及存储介质
CN113472646B (zh) 一种数据传输方法、节点、网络管理器及系统
CN112968969B (zh) 区块链系统、消息传输方法及装置
KR20220046626A (ko) 혼잡 제어 방법, 장치, 설비, 매체 및 시스템
CN101192959A (zh) 一种自动交换光网络组播业务连接的恢复方法
CN102571383B (zh) 一种接入控制方法及系统
CN116760830B (zh) 路由信息的处理方法、装置、计算机可读介质及电子设备
CN101340457B (zh) 一种不依赖于中心服务器的对等网络启动方法和系统
CN103581011A (zh) 内容网络中的返回路径实现方法及装置
CN110661836B (zh) 消息路由方法、装置及系统、存储介质
CN114785695A (zh) 一种基于ZeroC ICE实现的高性能网络通信库
KR20100100936A (ko) 소스 스위칭 방법, 시스템, 및 디바이스
CN114090342A (zh) 存储容灾的链路管理方法及消息执行节点、存储控制集群
CN109818870B (zh) 一种组播选路方法、装置、业务板及机器可读存储介质
CN113573379A (zh) 数据传输方法和装置
CN113300869A (zh) 带内网络遥感功能通信方法、网络设备及存储介质
WO2019134572A1 (zh) 基于sdn的光传送网保护恢复方法、设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant