一种路由计算方法和设备的制作方法

文档序号:7805527阅读:127来源:国知局
一种路由计算方法和设备的制作方法
【专利摘要】本发明公开了一种路由计算方法和设备,该方法包括:控制器向网络设备发送LSR报文,并接收所述网络设备返回的LSU报文,并将收到的LSA存储到LSDB中;基于所述LSDB中记录的LSA,所述控制器为所述网络设备计算出最短路径树,并利用所述最短路径树计算出所述网络设备对应的路由,并将所述网络设备对应的路由通知给所述网络设备。本发明实施例中,节省了网络设备的LSDB的存储空间,并节约了网络设备的CPU资源。
【专利说明】一种路由计算方法和设备
【技术领域】
[0001 ] 本发明涉及通信【技术领域】,尤其是涉及一种路由计算方法和设备。
【背景技术】
[0002]OSPF (Open Shortest Path First,开放最短路径优先)协议是一个基于链路状态的动态路由协议,其基本思路如下:在自治系统中,每一台运行OSPF协议的网络设备(如路由器)收集各自的链路状态(如接口 /邻接信息等),并向其它网络设备泛洪携带有本网络设备的链路状态信息的LSA(Link State Advertisement,链路状态通告),并接收其它网络设备泛洪的LSA,将收到的LSA存储到本网络设备的LSDB (Link State Database,链路状态数据库)中。
[0003]基于上述处理,各网络设备将维护相同的LSDB,即各网络设备上维护的LSDB中记录有相同的LSA。进一步的,基于本网络设备维护的LSDB,各网络设备可以通过SPF(Shortest Path First,最短路径优先)算法计算出一条以本网络设备为根的最短路径树,从而利用该最短路径树计算出本网络设备到达系统内部其它网络设备的最佳路由,并根据该最佳路由传输流量。
[0004]在上述实现方式中,所有网络设备都会维护LSDB,且LSDB中需要包含所有网络设备的LSA,从而造成LSDB的存储空间的浪费。进一步的,当网络设备的LSA很多时,还会导致LSDB无法存储所有网络设备的LSA,继而导致各网络设备维护的LSDB不一样,并最终导致路由计算错误。

【发明内容】

[0005]本发明实施例提供一种路由计算方法和设备,以避免在所有网络设备的LSDB中都记录所有网络设备的LSA,从而可以节省LSDB的存储空间。
[0006]为了达到上述目的,本发明实施例提供一种路由计算方法,该方法应用于包括控制器和网络设备的开放最短路径优先OSPF网络中,所述方法包括以下步骤:所述控制器向所述网络设备发送用于请求链路状态通告LSA的链路状态请求LSR报文,并接收所述网络设备返回的携带了所述网络设备的LSA的链路状态更新LSU报文,并将收到的LSA存储到链路状态数据库LSDB中;基于所述LSDB中记录的LSA,所述控制器为所述网络设备计算出以所述网络设备为根的最短路径树,并利用所述最短路径树计算出所述网络设备对应的路由,并将所述网络设备对应的路由通知给所述网络设备。
[0007]所述控制器向所述网络设备发送用于请求LSA的LSR报文之前,所述方法还包括:所述控制器接收来自所述网络设备的第一数据库描述DD报文,所述第一 DD报文中携带了所述网络设备本地LSDB中的LSA的摘要信息;所述控制器在收到所述第一 DD报文后,向所述网络设备返回第二 DD报文,所述第二 DD报文中未携带所述控制器本地LSDB中的LSA的
摘要信息。
[0008]所述控制器接收来自所述网络设备的第一数据库描述DD报文之前,所述方法还包括:所述控制器接收来自所述网络设备的第一 Hello报文,所述第一 Hello报文中携带了所述网络设备的路由标识信息;所述控制器在收到所述第一 Hello报文后,向所述网络设备返回第二 Hello报文,所述第二 Hello报文中携带了所述网络设备的路由标识信息。
[0009]所述控制器将所述网络设备对应的路由通知给所述网络设备的过程,具体包括:所述控制器在计算出所述网络设备对应的路由之后,如果获知需要对所述网络设备对应的路由进行路由策略管理,则所述控制器确定路由策略管理后的路由,并将所述路由策略管理后的路由通知给所述网络设备。
[0010]所述控制器与网络设备之间通过专用隧道连接,且通过所述专用隧道传输控制器与网络设备之间交互的报文,并通过所述专用隧道传输控制器与网络设备之间交互的路由。
[0011]本发明实施例提供一种控制器,应用于包括所述控制器和网络设备的开放最短路径优先OSPF网络中,所述控制器具体包括:报文发送模块,用于向所述网络设备发送用于请求链路状态通告LSA的链路状态请求LSR报文;报文接收模块,用于接收所述网络设备返回的携带了所述网络设备的LSA的链路状态更新LSU报文;LSA存储模块,用于将收到的LSA存储到链路状态数据库LSDB中;路由计算模块,用于基于所述LSDB中记录的LSA,为所述网络设备计算出以所述网络设备为根的最短路径树,并利用所述最短路径树计算出所述网络设备对应的路由;路由发送模块,用于将所述网络设备对应的路由通知给所述网络设备。
[0012]所述报文接收模块,还用于在向所述网络设备发送用于请求LSA的LSR报文之前,接收来自所述网络设备的第一数据库描述DD报文,所述第一 DD报文中携带了所述网络设备本地LSDB中的LSA的摘要信息;所述报文发送模块,还用于向所述网络设备返回第二 DD报文,所述第二 DD报文中未携带所述控制器本地LSDB中的LSA的摘要信息。
[0013]所述报文接收模块,还用于在接收第一 DD报文之前,接收来自所述网络设备的第一Hello报文,所述第一Hello报文中携带了所述网络设备的路由标识信息;所述报文发送模块,还用于在向所述网络设备返回第二Hello报文,所述第二Hello报文中携带了所述网络设备的路由标识信息。
[0014]所述路由发送模块,具体用于在计算出所述网络设备对应的路由之后,如果获知需要对所述网络设备对应的路由进行路由策略管理,则确定路由策略管理后的路由,并将所述路由策略管理后的路由通知给所述网络设备。
[0015]控制器与网络设备之间通过专用隧道连接,且通过所述专用隧道传输控制器与网络设备之间交互的报文,并通过所述专用隧道传输控制器与网络设备之间交互的路由。
[0016]与现有技术相比,本发明实施例至少具有以下优点:本发明实施例中,通过在控制器的LSDB中记录所有网络设备的LSA,使得不需要在各网络设备的LSDB中都记录所有网络设备的LSA,即网络设备的LSDB中不再维护全网的LSA,极大的节省了网络设备的LSDB的存储空间。进一步的,通过控制器为各网络设备计算对应的路由,并将网络设备对应的路由通知给该网络设备,使各网络设备只需要接收路由即可,不再需要运行SPF算法计算路由,节约了各网络设备的CPU (Central Processing Unit,中央处理器)资源。
【专利附图】

【附图说明】[0017]图1是本发明实施例的应用场景示意图;
[0018]图2是本发明实施例提供的一种路由计算方法流程示意图;
[0019]图3是本发明实施例提供的一种控制器的结构示意图。
【具体实施方式】
[0020]针对现有技术中存在的问题,本发明实施例提供一种路由计算方法,以图1为本发明实施例的应用场景示意图,该方法可以应用于包括控制器(即OSPF控制器)和多个网络设备的OSPF网络中,该控制器在OSPF网络中作为OSPF服务器,各个网络设备在OSPF网络中作为OSPF客户端。
[0021]本发明实施例中,网络设备与网络设备之间需要交互Hello报文,以在网络设备与网络设备之间建立邻居关系,但是网络设备与网络设备之间不需要交互LSA。例如,在网络设备A与网络设备B之间建立邻居关系的过程中,网络设备A向网络设备B发送Hello报文,该Hello报文中携带了网络设备A的Router-1d (路由标识)、区域号和优先级别等信息。网络设备B在收到Hello报文后,向网络设备A回应一个Hello报文,该Hello报文中携带了网络设备A的Router-1d。网络设备A在收到携带了本网络设备A的Router-1d的Hello报文后,获知网络设备A与网络设备B之间的双向通信已经建立。至此,网络设备A与网络设备B完成邻居关系的建立。在后续过程中,网络设备A与网络设备B之间通过周期性发送Hello报文来进行邻居的维持。
[0022]本发明实施例中,针对网络设备与控制器之间传输报文的相关处理流程,如图2所示,相应的处理流程具体可以包括以下步骤:
[0023]步骤201,网络设备向控制器发送Hello报文,由控制器接收来自网络设备的Hello报文。其中,该Hello报文中携带了该网络设备的路由标识信息,但是该Hello报文中可以不携带该网络设备的区域号和优先级别。
[0024]步骤202,控制器在收到来自网络设备的Hello报文后,向该网络设备返回Hello报文,且该Hello报文中携带了该网络设备的路由标识信息。
[0025]步骤203,网络设备在收到携带了本网络设备的路由标识信息的Hello报文之后,获知本网络设备与控制器之间的双向通信已经建立,将邻居状态变为UP。至此,网络设备与控制器完成邻居关系的建立。在后续过程中,网络设备与控制器之间通过周期性发送Hello报文来进行邻居的维持。
[0026]步骤204,网络设备向控制器发送DD (Database Descript1n,数据库描述)报文,之后由控制器接收来自网络设备的DD报文。
[0027]其中,该DD报文中携带了网络设备本地的LSDB中的LSA的摘要信息。由于各网络设备在本地的LSDB中只需要维护本网络设备的LSA,而不再维护其它网络设备的LSA,因此,该DD报文中携带的摘要信息只包含本网络设备的LSA的摘要信息,而不包含其它网络设备的LSA的摘要信息。
[0028]其中,该DD报文中还包括如下字段:(I) I字段,I字段为I表示当前的DD报文是一个空报文,即DD报文中未携带LSA的摘要信息;1字段为O表不当前的DD报文不是一个空报文,即DD报文中携带LSA的摘要信息;(2)M字段,M字段为I表示当前的DD报文不是最后一个DD报文,M字段为O表示当前的DD报文是最后一个DD报文;(3)M/S字段,M/S字段为I表示当前发送DD报文的是Master设备,M/S字段为O表示当前发送DD报文的是Slave设备;(4) Seq字段,即当前的DD报文的序列号信息。
[0029]现有技术中,网络设备与网络设备之间在传输DD报文时,需要首先协商出以哪个网络设备为主进行同步过程,即在两个网络设备之间协商出Master设备和Slave设备。基于此,网络设备向另一个网络设备发送的第一个DD报文是一个空报文,第一个DD报文的I字段为I。本发明实施例中,网络设备与控制器之间在传输DD报文时,不需要在网络设备与控制器之间协商出Master设备和Slave设备,网络设备直接作为Master设备,因此网络设备向控制器发送的第一个DD报文不是一个空报文,第一个DD报文的I字段为O。
[0030]基于上述分析,本发明实施例中,网络设备向控制器发送的DD报文的I字段为O。如果当前发送的DD报文不是最后一个DD报文,则网络设备向控制器发送的DD报文的M字段为I ;如果当前发送的DD报文是最后一个DD报文,则网络设备向控制器发送的DD报文的M字段为O。由于网络设备作为Master设备,因此网络设备向控制器发送的DD报文的M/S字段为I。
[0031]步骤205,控制器在收到来自网络设备的DD报文后,从该DD报文中获得网络设备本地的LSDB中的LSA的摘要信息,并向网络设备返回DD报文,且该DD报文中未携带控制器本地LSDB中的LSA的摘要信息。
[0032]本发明实施例中,控制器向网络设备发送的DD报文只作为来自网络设备的DD报文的回应报文,即该DD报文中不会携带控制器本地LSDB中的LSA的摘要信息。进一步的,控制器向网络设备发送的DD报文的I字段为O。此外,如果当前发送的DD报文不是最后一个DD报文,则控制器向网络设备发送的DD报文的M字段为I ;如果当前发送的DD报文是最后一个DD报文,则控制器向网络设备发送的DD报文的M字段为O。此外,由于控制器作为Slave设备,因此控制器向网络设备发送的DD报文的Μ/S字段为O。
[0033]步骤206,控制器向网络设备发送LSR(Link State Request,链路状态请求)报文,且该LSR报文用于请求该网络设备的LSA。
[0034]其中,控制器与网络设备在交互完DD报文之后,控制器能够利用DD报文中携带的网络设备本地的LSDB中的LSA的摘要信息,获知网络设备本地的LSDB中的哪些LSA是控制器本地的LSDB中所没有的,针对这些LSA,控制器向网络设备发送LSR报文,以请求网络设备将这些LSA发送给控制器。
[0035]步骤207,网络设备在收到来自控制器的LSR报文后,向控制器发送携带了网络设备的LSA的LSU(Link State Update,链路状态更新)报文。
[0036]本发明实施例中,网络设备在收到来自控制器的LSR报文之后,针对LSR报文中携带的控制器请求的LSA,网络设备从本地LSDB中查询控制器请求的LSA,并将查询到的LSA通过LSU报文发送给控制器。
[0037]本发明实施例中,由于OPSF网络中存在多个网络设备,因此,控制器会分别向多个网络设备发送用于请求LSA的LSR报文,由各网络设备在收到来自控制器的LSR报文后,通过LSU报文将控制器请求的LSA发送给控制器。
[0038]步骤208,控制器接收网络设备返回的携带了网络设备的LSA的LSU报文,并将收到的LSU报文中携带的LSA存储到本地LSDB中。
[0039]本发明实施例中,在上述处理过程中,各网络设备会向控制器发送本地LSDB中的LSA,而控制器不会向各网络设备发送本地LSDB中的LSA。
[0040]基于上述处理,网络设备能够将本地LSDB中的LSA发送给控制器,且控制器能够在本地LSDB中维护所有网络设备的LSDB中的LSA。之后,如果有网络设备的本地LSDB中的LSA发生变化,则该网络设备能够将变化后的LSA通知给控制器,由控制器在本地LSDB中更新该变化后的LSA。
[0041]步骤209,基于控制器本地LSDB中记录的LSA,控制器为网络设备计算出以该网络设备为根的最短路径树,并利用该最短路径树计算出该网络设备对应的路由,并将该网络设备对应的路由通知给该网络设备。
[0042]具体的,由于控制器本地LSDB中记录了所有网络设备的LSA,因此基于本地LSDB中记录的LSA,控制器能够通过SPF算法,为每台网络设备计算出以该网络设备为根的最短路径树,从而利用该最短路径树计算出该网络设备到达系统内部其它网络设备的最佳路由,并将该路由通知给网络设备。
[0043]本发明实施例中,控制器允许管理员对本控制器生成的路由进行策略管理,使得对路由的管理更直观,方便网络管理。其中,管理员对本控制器生成的路由进行策略管理时,管理员可以对单台网络设备的路由进行策略管理,也可以对所有网络设备的路由进行策略管理。基于此,控制器在计算出网络设备对应的路由之后,如果获知需要对网络设备对应的路由进行路由策略管理,则控制器确定路由策略管理后的路由(即对本控制器生成的路由进行策略管理之后得到的路由),并将路由策略管理后的路由通知给网络设备。
[0044]本发明实施例中,控制器与网络设备之间通过专用隧道连接,且通过专用隧道传输控制器与网络设备之间交互的报文(即Hello报文、DD报文等),并通过专用隧道传输控制器与网络设备之间交互的路由。其中,该专用隧道包括但不限于GRE(Generic RoutingEncapsulat1n,通用路由封装)隧道、IPSec (Internet Protocol Security,网络协议安全性)隧道等,本发明实施例中对此专用隧道不再赘述,所有能够传输信息的隧道均在本发明保护范围之内。
[0045]综上所述,本发明实施例中,通过在控制器的LSDB中记录所有网络设备的LSA,使得不需要在各网络设备的LSDB中都记录所有网络设备的LSA,即网络设备的LSDB中不再维护全网的LSA,极大的节省了网络设备的LSDB的存储空间。进一步的,通过控制器为各网络设备计算对应的路由,并将网络设备对应的路由通知给该网络设备,使各网络设备只需要接收路由即可,不再需要运行SPF算法计算路由,节约了各网络设备的CPU资源。
[0046]基于与上述方法同样的发明构思,本发明实施例中还提供了一种控制器,应用于包括控制器和网络设备的OSPF网络中,如图3所示,所述控制器具体包括:报文发送模块11,用于向所述网络设备发送用于请求链路状态通告LSA的链路状态请求LSR报文;报文接收模块12,用于接收所述网络设备返回的携带了所述网络设备的LSA的链路状态更新LSU报文;LSA存储模块13,用于将收到的LSA存储到链路状态数据库LSDB中;路由计算模块14,用于基于所述LSDB中记录的LSA,为所述网络设备计算出以所述网络设备为根的最短路径树,并利用所述最短路径树计算出所述网络设备对应的路由;路由发送模块15,用于将所述网络设备对应的路由通知给所述网络设备。
[0047]所述报文接收模块12,还用于在向所述网络设备发送用于请求LSA的LSR报文之前,接收来自所述网络设备的第一数据库描述DD报文,所述第一 DD报文中携带了所述网络设备本地LSDB中的LSA的摘要信息;
[0048]所述报文发送模块11,还用于向所述网络设备返回第二 DD报文,所述第二 DD报文中未携带所述控制器本地LSDB中的LSA的摘要信息。
[0049]所述报文接收模块12,还用于在接收第一 DD报文之前,接收来自所述网络设备的第一Hello报文,所述第一Hello报文中携带了所述网络设备的路由标识信息;所述报文发送模块11,还用于在向所述网络设备返回第二 Hello报文,所述第二 Hello报文中携带了所述网络设备的路由标识信息。
[0050]所述路由发送模块15,具体用于在计算出所述网络设备对应的路由之后,如果获知需要对所述网络设备对应的路由进行路由策略管理,则确定路由策略管理后的路由,并将所述路由策略管理后的路由通知给所述网络设备。
[0051 ] 本发明实施例中,控制器与网络设备之间通过专用隧道连接,且通过所述专用隧道传输控制器与网络设备之间交互的报文,并通过所述专用隧道传输控制器与网络设备之间交互的路由。
[0052]其中,本发明装置的各个模块可以集成于一体,也可以分离部署。上述模块可以合并为一个模块,也可以进一步拆分成多个子模块。
[0053]通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。以上公开的仅为本发明的几个具体实施例,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。
【权利要求】
1.一种路由计算方法,该方法应用于包括控制器和网络设备的开放最短路径优先OSPF网络中,其特征在于,所述方法包括以下步骤: 所述控制器向所述网络设备发送用于请求链路状态通告LSA的链路状态请求LSR报文,并接收所述网络设备返回的携带了所述网络设备的LSA的链路状态更新LSU报文,并将收到的LSA存储到链路状态数据库LSDB中; 基于所述LSDB中记录的LSA,所述控制器为所述网络设备计算出以所述网络设备为根的最短路径树,并利用所述最短路径树计算出所述网络设备对应的路由,并将所述网络设备对应的路由通知给所述网络设备。
2.如权利要求1所述的方法,其特征在于,所述控制器向所述网络设备发送用于请求LSA的LSR报文之前,所述方法还包括: 所述控制器接收来自所述网络设备的第一数据库描述DD报文,所述第一 DD报文中携带了所述网络设备本地LSDB中的LSA的摘要信息; 所述控制器在收到所述第一 DD报文后,向所述网络设备返回第二 DD报文,所述第二 DD报文中未携带所述控制器本地LSDB中的LSA的摘要信息。
3.如权利要求2所述的方法,其特征在于,所述控制器接收来自所述网络设备的第一数据库描述DD报文之前,所述方法还包括: 所述控制器接收来自所述网络设备的第一 Hello报文,所述第一 Hello报文中携带了所述网络设备的路由标 识信息; 所述控制器在收到所述第一 Hello报文后,向所述网络设备返回第二 Hello报文,所述第二 Hello报文中携带了所述网络设备的路由标识信息。
4.如权利要求1所述的方法,其特征在于,所述控制器将所述网络设备对应的路由通知给所述网络设备的过程,具体包括: 所述控制器在计算出所述网络设备对应的路由之后,如果获知需要对所述网络设备对应的路由进行路由策略管理,则所述控制器确定路由策略管理后的路由,并将所述路由策略管理后的路由通知给所述网络设备。
5.如权利要求1-4任一项所述的方法,其特征在于,所述控制器与网络设备之间通过专用隧道连接,且通过所述专用隧道传输控制器与网络设备之间交互的报文,并通过所述专用隧道传输控制器与网络设备之间交互的路由。
6.一种控制器,应用于包括所述控制器和网络设备的开放最短路径优先OSPF网络中,其特征在于,所述控制器具体包括: 报文发送模块,用于向所述网络设备发送用于请求链路状态通告LSA的链路状态请求LSR报文; 报文接收模块,用于接收所述网络设备返回的携带了所述网络设备的LSA的链路状态更新LSU报文; LSA存储模块,用于将收到的LSA存储到链路状态数据库LSDB中; 路由计算模块,用于基于所述LSDB中记录的LSA,为所述网络设备计算出以所述网络设备为根的最短路径树,并利用所述最短路径树计算出所述网络设备对应的路由; 路由发送模块,用于将所述网络设备对应的路由通知给所述网络设备。
7.如权利要求6所述的控制器,其特征在于,所述报文接收模块,还用于在向所述网络设备发送用于请求LSA的LSR报文之前,接收来自所述网络设备的第一数据库描述DD报文,所述第一 DD报文中携带了所述网络设备本地LSDB中的LSA的摘要信息; 所述报文发送模块,还用于向所述网络设备返回第二 DD报文,所述第二 DD报文中未携带所述控制器本地LSDB中的LSA的摘要信息。
8.如权利要求7所述的控制器,其特征在于, 所述报文接收模块,还用于在接收来自所述网络设备的第一 DD报文之前,接收来自所述网络设备的第一 Hello报文,所述第一 Hello报文中携带了所述网络设备的路由标识信息; 所述报文发送模块,还用于在向所述网络设备返回第二Hello报文,所述第二Hello报文中携带了所述网络设备的路由标识信息。
9.如权利要求6所述的控制器,其特征在于, 所述路由发送模块,具体用于在计算出所述网络设备对应的路由之后,如果获知需要对所述网络设备对应的路由进行路由策略管理,则确定路由策略管理后的路由,并将所述路由策略管理后的路由通知给所述网络设备。
10.如权利要求6-9任一项所述的控制器,其特征在于,控制器与网络设备之间通过专用隧道连接,且通过所述专用隧道传输控制器与网络设备之间交互的报文,并通过所述专用隧道传输控制器与网 络设备之间交互的路由。
【文档编号】H04L12/721GK104038420SQ201410248044
【公开日】2014年9月10日 申请日期:2014年6月5日 优先权日:2014年6月5日
【发明者】周贵鲁, 陆亦雄 申请人:杭州华三通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1