CN104767687B - 传播关键路由以及建立和更新路由表的方法和设备 - Google Patents

传播关键路由以及建立和更新路由表的方法和设备 Download PDF

Info

Publication number
CN104767687B
CN104767687B CN201410003511.9A CN201410003511A CN104767687B CN 104767687 B CN104767687 B CN 104767687B CN 201410003511 A CN201410003511 A CN 201410003511A CN 104767687 B CN104767687 B CN 104767687B
Authority
CN
China
Prior art keywords
critical path
routing
lsa
path
key
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
Application number
CN201410003511.9A
Other languages
English (en)
Other versions
CN104767687A (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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Priority to CN201410003511.9A priority Critical patent/CN104767687B/zh
Publication of CN104767687A publication Critical patent/CN104767687A/zh
Application granted granted Critical
Publication of CN104767687B publication Critical patent/CN104767687B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种传播关键路由的方法和设备,以及一种建立和更新路由表的方法和设备。传播关键路由的方法包括:接收设置的关键路由;在关键路由对应的链路状态通告LSA上设置关键路由标记;以及将关键路由对应的LSA利用洪泛机制传播到对应的开放最短路径优先协议OSPF网络。建立路由表的方法包括:接收关键路由对应的LSA;计算网络拓扑和最短路径;计算关键路由;在路由表中建立关键路由对应的路由表项;计算非关键路由;以及在路由表中建立非关键路由对应的路由表项。利用上述方法能够使关键路径快速收敛,防止关键路径的报文丢失。

Description

传播关键路由以及建立和更新路由表的方法和设备
技术领域
本公开涉及网络传输,更具体地涉及一种传播关键路由以及建立和更新路由表的方法和设备。
背景技术
路由是网络中的路由器收到一个IP数据包之后,根据路由表中的路由表项决定把这个数据包转发给哪个相邻的路由器,从而让这个数据包正确地转发到目的地的过程。
路由表中的路由表项可以简单描述如下:
到目的地10.1.1.1的数据包,发送给R2路由器
到目的地20.0.0.0这个网络的数据包,发送给R3路由器
路由器路由表项可以简单描述如下:
到达R1路由器,发送给R3,也就是说去往R1的下一跳是R3.
到达R2路由器,发送给R4,也就是说去往R2的下一跳是R4.
本发明中的路由表项包含上述两种类型的路由表项。其中,数据包将要到达的路由器R2,R3,R4称为下一跳(Next Hop)。
路由器的路由协议根据网络拓扑信息计算生成大量如上述的路由表项,并且存储在路由表中。
OSPF(Open Shortest Path First开放式最短路径优先)是一种广泛使用的内部网关协议(Interior Gateway Protocol,简称IGP),用于在单一自治***(AutonomousSystem,AS)内决策路由。路由收敛是指能够一定时间内将路由变化传递到整个自治***的过程,OSPF中路由收敛的快慢是高端路由器的一个很重要的评价指标。图2示出了OSPF在互联网中典型的使用场景,路由器R1和R2是自治***边界路由器ASBR(Autonomous SystemBorder Router),它们将大量的路由信息从互联网分发到该自治***,有些路由信息可能是很重要的,对某些应用是非常关键的。假设所有从该自治***到互联网的外部路由在正常状态下是通过R1出去的,当R1出现问题时,所有的路由器,例如R3、R4、R5、R6、R7,都需要更新其路由表中的路由表项。因为路由表的路由表项很多,更新全部的路由表项需要花费较多时间,可能是10秒或者更多,使得路由收敛变慢。其间的网络传输会中断,导致数据报文丢失。尤其是某些关键路径的路由器出现问题造成较长时间网络数据丢失,这对客户来说是不可接受的。
现有技术对该问题的解决方案通常是在计算路由表的表项时,同时计算备选路由表项。但也存在可能同时不止一台路由器出现故障的情况,导致备选路由表项失效。因此,保证关键路径的路由信息迅速更新是非常必要的。
发明内容
根据本公开的一个方面,提供了一种传播关键路由的方法,包括:
接收设置的关键路由;
在关键路由对应的链路状态通告LSA上设置关键路由标记;以及
将关键路由对应的LSA利用洪泛机制传播到对应的开放最短路径优先协议OSPF网络。
根据本公开的另一个方面,提供了一种建立路由表的方法,包括:
接收关键路由对应的LSA;
计算网络拓扑和最短路径;
根据关键路由对应的LSA以及计算出的网络拓扑和最短路径来计算关键路由;
在路由表中建立关键路由对应的路由表项;
根据关键路由对应的LSA之外的LSA以及计算出的网络拓扑和最短路径来计算非关键路由;以及
在路由表中建立非关键路由对应的路由表项。
根据本公开的又一个方面,提供了一种更新路由表的方法,包括:
接收关键路由对应的LSA;
响应于路由表需要更新,执行如下操作:
计算网络拓扑和最短路径
根据关键路由对应的LSA以及计算出的网络拓扑和最短路径来计算关键路由;
更新路由表中的关键路由对应的路由表项;
根据关键路由对应的LSA之外的LSA以及计算出的网络拓扑和最短路径来计算非关键路由;
更新路由表中的非关键路由对应的路由表项。
根据本公开的再一个方面,提供了一种传播关键路由的设备,包括:
接收装置,被配置为接收设置的关键路由;
设置装置,被配置为在关键路由对应的链路状态通告LSA上设置关键路由标记;以及
传播装置,被配置为将关键路由对应的LSA利用洪泛机制传播到对应的开放最短路径优先协议OSPF网络。
根据本公开的又一个方面,提供了一种建立路由表的设备,包括:
接收装置,被配置为接收关键路由对应的LSA;
网络拓扑和最短路径计算装置,被配置为计算网络拓扑和最短路径;
关键路由计算装置,被配置为根据关键路由对应的LSA以及网络拓扑和最短路径计算装置计算出的网络拓扑和最短路径来计算关键路由;
关键路由对应的路由表项建立装置,被配置为在路由表中建立关键路由对应的路由表项;
非关键路由计算装置,被配置为根据关键路由对应的LSA之外的LSA以及网络拓扑和最短路径计算装置计算出的网络拓扑和最短路径来计算非关键路由;以及
非关键路由对应的路由表项建立装置,被配置为在路由表中建立非关键路由对应的路由表项。
根据本公开的又一个方面,提供了一种更新路由表的设备,包括:
接收装置,被配置为接收关键路由对应的LSA;
路由表更新判断装置,被配置为判断路由表需要更新;
网络拓扑和最短路径计算装置,被配置为计算网络拓扑和最短路径;
关键路由计算装置,被配置为根据关键路由对应的LSA以及网络拓扑和最短路径计算装置计算出的网络拓扑和最短路径来计算关键路由;
关键路由对应的路由表项更新装置,被配置为更新路由表中的关键路由对应的路由表项;
非关键路由计算装置,被配置为根据关键路由对应的LSA之外的LSA以及网络拓扑和最短路径计算装置计算出的网络拓扑和最短路径来计算非关键路由;
非关键路由对应的路由表项更新装置,被配置为更新路由表中的非关键路由对应的路由表项。
利用根据本公开上述方面的方法和设备,可以加速关键路由的收敛,减少关键路由上的报文丢失。
附图说明
通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。
图1示出了适于用来实现本公开实施方式的示例性计算机***/服务器的框图;
图2示出了OSPF在互联网中典型的使用场景;
图3示出了根据本公开一种实施方式的一种传播关键路由的方法的流程图;
图4示出了LSA的头部的数据格式;
图5示出了3型LSA和4型LSA的数据格式;
图6示出了5型LSA和7型LSA的数据格式;
图7示意性示出了一种关键路由选项在LSA的选项字段中的表示方式;
图8示出了根据本公开的一种实施方式的建立路由表的方法的流程图;
图9示出了根据本公开的一种实施方式的更新路由表的方法的流程图;
图10示意性示出了根据本公开一个实施方式的传播关键路由的设备的结构框图;
图11示意性示出了根据本公开一个实施方式的建立路由表的设备的结构框图;以及
图12示意性示出了根据本公开一个实施方式的更新路由表的设备的结构框图。
具体实施方式
下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
所属技术领域的技术人员知道,本发明可以实现为***、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:可以是完全的硬件、也可以是完全的软件(包括固件、驻留软件、微代码等),还可以是硬件和软件结合的形式,本文一般称为“电路”、“模块”或“***”。此外,在一些实施例中,本发明还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言-诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言-诸如”C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)-连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
下面将参照本发明实施例的方法、装置(***)和计算机程序产品的流程图和/或框图描述本发明。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种虚拟机,这些计算机程序指令通过计算机或其它可编程数据处理装置执行,产生了实现流程图和/或框图中的方框中规定的功能/操作的装置。
也可以把这些计算机程序指令存储在能使得计算机或其它可编程数据处理装置以特定方式工作的计算机可读介质中,这样,存储在计算机可读介质中的指令就产生出一个包括实现流程图和/或框图中的方框中规定的功能/操作的指令装置(instructionmeans)的制造品(manufacture)。
也可以把计算机程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机或其它可编程装置上执行的指令能够提供实现流程图和/或框图中的方框中规定的功能/操作的过程。
图1示出了适于用来实现本发明实施方式的示例性计算机***/服务器12的框图。图1显示的计算机***/服务器12仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图1所示,计算机***/服务器12以通用计算设备的形式表现。计算机***/服务器12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,***存储器28,连接不同***组件(包括***存储器28和处理单元16)的总线18。
总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,***总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及***组件互连(PCI)总线。
计算机***/服务器12典型地包括多种计算机***可读介质。这些介质可以是任何能够被计算机***/服务器12访问的可用介质,包括易失性和非易失性介质,可迁移的和不可迁移的介质。
***存储器28可以包括易失性存储器形式的计算机***可读介质,例如随机存取存储器(RAM)30和/或高速缓存存储器32。计算机***/服务器12可以进一步包括其它可迁移/不可迁移的、易失性/非易失性计算机***存储介质。仅作为举例,存储***34可以用于读写不可迁移的、非易失性磁介质(图1未显示,通常称为“硬盘驱动器”)。尽管图1中未示出,可以提供用于对可迁移非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可迁移非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如存储器28中,这样的程序模块42包括——但不限于——操作***、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本发明所描述的实施例中的功能和/或方法。
计算机***/服务器12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该计算机***/服务器12交互的设备通信,和/或与使得该计算机***/服务器12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口22进行。并且,计算机***/服务器12还可以通过网络适配器20与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器20通过总线18与计算机***/服务器12的其它模块通信。应当明白,尽管图中未示出,可以结合计算机***/服务器12使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗佘处理单元、外部磁盘驱动阵列、RAID***、磁带驱动器以及数据备份存储***等。
本公开仅以OSPFv2(应用于IPv4网络的OSPF版本)举例,但是本公开中描述的思想完全适用于OSPFv3(应用于IPv6的OSPF版本),甚至可以应用到其它路由协议,比如IS-IS,BGP路由协议。
这里首先简单介绍一些背景知识:OSPFv2一共有11种类型的链路状态通告(LinkState Advertisements,LSA),与路由表项计算相关联的主要有1、2、3、4,5、7这几种类型,本公开主要涉及到1、2、3、4,5、7类型LSA。其中1、2两种类型LSA用来描述网络拓扑;3型LSA用来描述OSPF各个区域间的路由;4型用来描述到ASBR的路由器路由信息;5、7型LSA用来描述OSPF自治***外部的网络路由;其中,每个3、5、7类型的LSA对应路由表中的一条路由表项。每个4类型的LSA对应一个OSPF的路由器的路由表项,路由器的路由表项在计算5类型LSA时使用。
OSPF是对链路状态路由协议的一种实现,运行于自治***内部。整个OSPF自治***中的每个路由器需要独立完成本地的路由计算。OSPF的路由计算过程描述如下:
步骤1:先根据1型、2型LSA计算OSPF区域内拓扑和路由。在计算过程中主要使用1型和2型LSA。1型和2型LSA描述了各路由器与其他路由器的连接信息。通过收集分析网络中所有的1型和2型LSA,就可以知道整个网络中哪个路由器和哪个路由器相连接,也就是说,每个路由器都知道了这个网络的拓扑。然后,将这个网络拓扑抽象成一个网状图,每一个OSPF路由器对这个网状图使用迪杰斯特拉(Dijkstra)算法计算从该路由器到图中的任何节点(节点可以是路由器也可以是网络)走哪条路最近,也就是OSPF中所谓的计算最短路径的SPF(Short Path First)的算法。这一步主要进行构建全部的最短路径树及下一跳的解析,为后面的步骤2和步骤3服务。同时会计算出一些少量的路由。
步骤2:根据3型、4型LSA,每个路由器利用网络的拓扑和计算出的最短路径来计算OSPF区域间的路由和到ASBR的路由器路由。通常会计算出大量的路由。
步骤3:根据5、7型LSA,每个路由器利用网络的拓扑和计算出的最短路径来计算OSPF外部路由。通常也会计算出大量的路由。
在步骤2和步骤3计算过程中,对于特定的路由器来说,接收的LSA在链路状态数据库LSDB(Link State Database)中的存储顺序是不确定的。而在步骤2和3中会按照链路状态数据库中LSA存储顺序计算每个LSA对应的路由。因此,路由表中各路由的计算顺序是不确定的,每一条路由的计算是完全独立的,路由的计算顺序与路由重要程度不相关。对于特定的某条路径来说,同一路径上的各个路由器的计算顺序也是独立的,不相关的。
当某个路由器中的路由数目特别多的时候,关键路由信息在建立路由顺序过程中,可能被随机放在了其它路由的最后,导致其路由的计算也放在了最后,就会导致关键的路由信息没有得到及时计算,引起网络长时间不能得到收敛。
现有技术中有一些快速路由信息收敛的方法,例如增量最短路径优先算法(algorithms of Incremental Shortest Path First,ISPF),该算法是最短路径优先(SPF)算法的改进,当区域内路径发生变化时,仅计算受影响的那部分节点。所以该算法能够加速步骤1中的区域内部路由计算,但是无法解决步骤2和步骤3中路由数目过多的问题;现有技术中还有部分路径计算技术(Partial Route Calculation,PRC),该技术的原理是在某个(或某一些)区域外或者自治***外部路由发生变化时,仅计算这些变化了的路由。但是该技术无法处理因为区域内部路由重新计算从而导致步骤2和步骤3全部重新计算的问题。
为了解决上述技术问题,本公开提出了关键路由的概念,即关键路径对应的路由。首先公开了一种传播关键路由的方法,图3示出了根据本公开一种实施方式的一种传播关键路由的方法的流程图,根据图3,在步骤S301,接收设置的关键路由;在步骤S302,在关键路由对应的链路状态通告LSA上设置关键路由标记;以及在步骤S303,将关键路由对应的LSA利用洪泛机制传播到对应的开放最短路径优先协议OSPF网络。
设置关键路由的方式有多种实现方法。例如***管理员直接定义一个文本或者标记文档,列出关键路由信息,然后用一个转换程序将文本中列出的重要路由,转化为命令行接口加载到OSPF协议中去。
例如,下述文本中给出了路由的前缀和网络掩码的长度或者网络号和网络掩码,这两种方法是等价的,用于设置关键路由。
30.30.30.1/24
50.50.50.2/8
80.80.80.0/24
或者
30.30.30.1 255.255.255.0
50.50.50.2 255.0.0.0
80.80.80.0 255.255.255.0
在另一种实施方式中,还可以使用XML文档指定关键路由,XML文档是一个通俗易懂的描述语言。这里通过指定路由属性,将这些条件加载到OSPF中去,当OSPF通告LSA的时候,会去检查这些条件,当相应路由或LSA满足条件的时候,就会在LSA上设置关键路由标识。以下给出一个XML文档的示例。
<?xml version=”1.0”standalone=”yes”encoding=”UTF-8”?>
#根据路由的网络号定义关键路由信息
<virtal-route>
<IP>30.30.30.1</IP>
<Netmask>255.255.255.0</Netmask>
</virtal-route>
#根据标签值定义关键路由信息
<virtal-route>
<LSA-type>type-5</LSA-type>
<tag>35</tag>
</virtal-route>
然后将这些信息应用到路由器的控制平面,如OSPF,ISIS,BGP协议等。
在一种实施方式中,还可以根据路由的网络号指定关键路由,例如使用如下命令指定68.0.0.0网络掩码是255.0.0.0的路由是关键路由
vital-route ip-address68.0.0.0255.0.0.0
在另一种实施方式中,还可以根据LSA的类型指定关键路由,LSA的类型可以是3,4,5,7,例如使用如下命令指定类型3的LSA对应的路由都是关键路由:
vital-route lsa-type type-3
在一种实施方式中,还可以根据路由的下一跳指定关键路由,适用于3,4,5,7型LSA,例如使用如下命令指定产生3,4,5,7型LSA时,如果对应的路由的下一跳是30.30.30.2,则产生相应LSA对应的路由是关键路由:
vital-route next-hop30.30.30.2
在另一种实施方式中,还可以根据外部路由携带的标签值设置关键路由,适用于5,7型LSA,例如使用如下命令指定外部路由的标签值是300的设置为关键路由:
vital-route external-tag300
在一种实施方式中,还可以根据路由的代价设置关键路由,适用于3、4、5和7型LSA,例如使用如下命令指定路由代价是300的理由被设置为关键路由:
vital-route metric300
在另一种实施方式中,还可以根据外部路由的来源类型设置关键路由,适用于5,7型LSA,例如使用如下命令指定路由的类型是ISIS-L1的被设置为关键路由:
vital-route route-type isis-11
其中参数可以是bgp、bgp-int、bgp-ext、isis-11、isis-12等,这些都是常见的路由类型。
在一种实施方式中,还可以根据设定的策略设置关键路由。例如使用如下命令指定满足标签值是50并且代价是400的路由将被设置为关键路由:
route-map ibm
match tag 50
match metric 400
vital-route route-map ibm
关键路由被使用上述至少一种方式设置后,在步骤S301,接收设置的关键路由。
OSPF是一个动态运行的协议,现在有许多功能的开关,和一些参数的调节。用户通过命令行接口来下发用户的命令。本文中用户通过命令行接口下发的是关键路由的条件。当3、4、5、或7型LSA产生的时候会去检查关键路由的条件。如果满足条件的话,就会在步骤S302,在关键路由对应的LSA上设置关键路由标记。反之,则不会设置上关键路由选项。这个只是在LSA产生的流程中增加一个设置关键路由选项的流程。
如何在关键路由对应的LSA上设置关键路由标记?每一个LSA都以一个LSA的头部开始,接下来的部分根据LSA的类型而有所不同,给出3、4、5、7型LSA的详细解释以及LSA的头部。
OSPF LSA有其固定的报文格式,图4示出了LSA的头部的数据格式。图4中的其它字段都有具体的意义,不能用于扩展。但是选项字段(options)可以用于扩展LSA特性,可以在此设置关键路由标记。
图5示出了3型LSA和4型LSA的数据格式,二者是一样的,只是类型字段一个是3;另一个是4;另外就是链路状态标识一个是网络号,另外一个是通告路由器标识,4型LSA的时候,网络掩码无意义,始终为0.
图6示出了5型LSA和7型LSA的数据格式,二者是一样的。只是类型字段一个是5一个是7。其中选项字段(options)在LSA的头部部分。
LSA的头部选项字段共有8位,其它的大部分标识位都已经被占用。第三位最初适用于表示支持组播能力的,但目前基本没有人使用。所以用这个位可以用来表示关键路由选项。16进制表示就是0x04。图7示意性示出了一种关键路由选项在LSA的选项字段中的表示方式。当然也可以采用其它的方式来扩展,例如TLV(类型,长度,值)方式,其中,TLV是报文扩展常见的方式,网络中的设备通常需要交换许多属性,当交换的双方约定好的属性用相同的类型T(type)来表示传递的属性;L(1ength),表示这个属性的长度是多少,就是占用的空间是多少。值(value)就是表示具体的数值。比如这里也可以约定:在LSA中,类型为65536,长度是4字节,值为4来作为设置的关键路由的标记。
上述定义的关键的路由会被传播到对应的开放最短路径优先协议OSPF网络,如何传播可以利用LSA的洪泛机制,其中,关键路由对应的LSA的选项字段会被设置上标识位。LSA遵循OSPF的洪泛机制在OSPF邻居之间传递和同步,从而整个OSPF网络都获悉了关键路由信息。如何洪泛属于本领域技术人员的常识,这里不再赘述。
本公开中,LSA在整个网络中传播,通过其携带的关键路由标记使网络中的每一个路由器都会优先计算这个关键路由。单个设备发生了故障,需要这个网络中的所有设备都进行这个故障的处理,就是网络中的所有设备都把这个路由的更新当做优先的事情。
本公开还公开了一种建立路由表方法,图8示出了根据本公开的一种实施方式的建立路由表的方法的流程图,根据图8,在步骤S801,接收关键路由对应的LSA;在步骤S802,计算网络拓扑和最短路径;在步骤S803,根据关键路由对应的LSA以及计算出的网络拓扑和最短路径来计算关键路由;在步骤S804,在路由表中建立关键路由对应的路由表项;在步骤S805,根据关键路由对应的LSA之外的LSA以及计算出的网络拓扑和最短路径来计算非关键路由;在步骤S806,在路由表中建立非关键路由对应的路由表项。
在图3所示方法将关键路由对应的LSA利用洪泛机制传播到对应的开放最短路径优先协议OSPF网络后,每个路由器都收到关键路由对应的LSA。路由器可以将这些关键路由对应的LSA存储在链路状态数据库中,一种更为简单的方式是采用一个单独的数据库表存储所有的关键路由对应的LSA,这样在计算时可以先从该数据表计算关键路由。使用上述方法建立路由表后,关键路由会被优先计算,则关键路由收敛的速度快,网络报文丢失的可能性降低。至于路由如何计算属于本领域技术人员的常识,这里不再赘述。
或者,路由表的建立仍然使用现有技术,但是,适用本公开的方法和进行路由表的更新。在同一个发明构思下,本发明还公开了一种更新路由表的方法。图9示出了根据本公开的一种实施方式的更新路由表的方法的流程图,根据图9,在步骤S901,接收关键路由对应的LSA;在步骤S902,响应于路由表需要更新,执行如下操作:在步骤S903,计算网络拓扑和最短路径;在步骤S904,根据关键路由对应的LSA以及计算出的网络拓扑和最短路径来计算关键路由;在步骤S905,更新路由表中的关键路由对应的路由表项;在步骤S906,根据关键路由对应的LSA之外的LSA以及计算出的网络拓扑和最短路径来计算非关键路由;在步骤S907,更新路由表中的非关键路由对应的路由表项。
路由器收到的LSA内容发生变化或者本地的LSA发生变化,会触发OSPF进行路由计算,从而判断路由表中的路由需要更新。其中包括如下两种情况:
(1)如果是区域内LSA(即1或2型LSA)发生变化,会导致整个路由表的全部路由重算,包括3、4、5和7型LSA对应的路由的计算。
(2)如果是区域外LSA(即3、4、5或7型LSA)发生变化导致的路由的重算,分两种情况:
A)如果该OSPF路由器实现了部分路径计算技术(PRC)技术,那么只需要计算对应的路由。但是有个例外,4型LSA的变化会导致所有5型LSA对应的理由条目的重算。
B)如果该OSPF路由器没有实现部分路径计算技术计算,那就需要把所有的路由都重算。
然后,OSPF会将新计算出来的路由和之前保存的路由进行比较。如果旧路由表(条目)和新的路由表(条目)不一样,说明路由表中的路由需要更新,就用新计算出来的路由更新旧的路由,同时把状态信息更新;如果一样,则不需要更新路由内容,只需要将路由的状态信息更新。如果旧的路由状态信息没有被更新,旧的路由就会被删除。可见,全部的路由计算需要较多的时间,如果关键路由对应的LSA被随机存储在链路状态数据库的后面时,计算关键路由前需要计算很多非关键路由。
然后,在计算网络拓扑和最短路径后,就根据关键路由对应的LSA计算关键路由,计算出来的结果就可以优先更新路由表中的路由。例如原来有10000条路由,依次为1,2,。。。999,。。。9999,10000,现在定义9999条路由为关键路由,则下次计算路由表时,按照9999,1,2,。。。10000的顺序计算。即,先计算并更新关键路由,再计算并更新非关键路由。而根据LSA计算路由的方法仍然使用现有技术中的方法,这样可以在路由表更新时,加速关键路由的收敛。
在一种实施方式中,接收关键路由对应的LSA的步骤发生在路由表建立之后。也就是说,再没有接收到关键路由对应的LSA时,已经建立了路由表,然后,才接收到关键路由对应的LSA,判断需要路由表更新。
在同一个发明构思下,本公开的实施方式还公开了一种传播关键路由的设备,图10示意性示出了根据本公开一个实施方式的传播关键路由的设备1000的结构框图,根据图10,设备1000包括:接收装置1001,被配置为接收设置的关键路由;设置装置1002,被配置为在关键路由对应的链路状态通告LSA上设置关键路由标记;以及传播装置1003,被配置为将关键路由对应的LSA利用洪泛机制传播到对应的开放最短路径优先协议OSPF网络。
在一种实施方式中,关键路由被使用以下至少一种方式设置:使用文档指定关键路由;根据路由的网络号指定关键路由;根据LSA的类型指定关键路由;根据路由的下一跳指定关键路由;根据外部路由携带的标签值设置关键路由;根据路由的代价设置关键路由;根据外部路由的来源类型设置关键路由;根据设定的策略设置关键路由。
在另一种实施方式中,设置装置被进一步配置为:在LSA的头部的选项字段设置关键路由标记。
在同一个发明构思下,本公开的实施方式还公开了一种建立路由表的设备,图11示意性示出了根据本公开一个实施方式的建立路由表的设备1100的结构框图,根据图11,设备1100包括:接收装置1101,被配置为接收关键路由对应的LSA;网络拓扑和最短路径计算装置1102,被配置为计算网络拓扑和最短路径;关键路由计算装置1103,被配置为根据关键路由对应的LSA以及网络拓扑和最短路径计算装置计算出的网络拓扑和最短路径来计算关键路由;关键路由对应的路由表项建立装置1104,被配置为在路由表中建立关键路由对应的路由表项;非关键路由计算装置1105,被配置为根据关键路由对应的LSA之外的LSA以及网络拓扑和最短路径计算装置计算出的网络拓扑和最短路径来计算非关键路由;以及非关键路由对应的路由表项建立装置1106,被配置为在路由表中建立非关键路由对应的路由表项。
在同一个发明构思下,本公开的实施方式还公开了一种更新路由表的设备,图12示意性示出了根据本公开一个实施方式的更新路由表的设备1200的结构框图,根据图12,设备1200包括:接收装置1201,被配置为接收关键路由对应的LSA;路由表更新判断装置1202,被配置为判断路由表需要更新;网络拓扑和最短路径计算装置1203,被配置为计算网络拓扑和最短路径;关键路由计算装置1204,被配置为根据关键路由对应的LSA以及网络拓扑和最短路径计算装置计算出的网络拓扑和最短路径来计算关键路由;关键路由对应的路由表项更新装置1205,被配置为更新路由表中的关键路由对应的路由表项;非关键路由计算装置1206,被配置为根据关键路由对应的LSA之外的LSA以及网络拓扑和最短路径计算装置计算出的网络拓扑和最短路径来计算非关键路由;非关键路由对应的路由表项更新装置1207,被配置为更新路由表中的非关键路由对应的路由表项。
在一种实施方式中,接收装置接收关键路由对应的LSA的发生在路由表建立之后。
附图中的流程图和框图显示了根据本发明的多个实施例的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

Claims (10)

1.一种传播关键路由的方法,包括:
接收设置的关键路由;
在关键路由对应的链路状态通告LSA上设置关键路由标记;以及
将关键路由对应的LSA利用洪泛机制传播到对应的开放最短路径优先协议OSPF网络;
其中在关键路由对应的链路状态通告LSA上设置关键路由标记包括:在LSA的头部的选项字段设置关键路由标记。
2.如权利要求1所述的方法,其中,关键路由被使用以下至少一种方式设置:
使用文档指定关键路由;
根据路由的网络号指定关键路由;
根据LSA的类型指定关键路由;
根据路由的下一跳指定关键路由;
根据外部路由携带的标签值设置关键路由;
根据路由的代价设置关键路由;
根据外部路由的来源类型设置关键路由;
根据设定的策略设置关键路由。
3.一种建立路由表的方法,包括:
接收关键路由对应的LSA;
计算网络拓扑和最短路径;
根据关键路由对应的LSA以及计算出的网络拓扑和最短路径来计算关键路由;
在路由表中建立关键路由对应的路由表项;
根据关键路由对应的LSA之外的LSA以及计算出的网络拓扑和最短路径来计算非关键路由;以及
在路由表中建立非关键路由对应的路由表项。
4.一种更新路由表的方法,包括:
接收关键路由对应的LSA;
响应于路由表需要更新,执行如下操作:
计算网络拓扑和最短路径;
根据关键路由对应的LSA以及计算出的网络拓扑和最短路径来计算关键路由;
更新路由表中的关键路由对应的路由表项;
根据关键路由对应的LSA之外的LSA以及计算出的网络拓扑和最短路径来计算非关键路由;
更新路由表中的非关键路由对应的路由表项。
5.如权利要求4所述的方法,其中接收关键路由对应的LSA的步骤发生在路由表建立之后。
6.一种传播关键路由的设备,包括:
接收装置,被配置为接收设置的关键路由;
设置装置,被配置为在关键路由对应的链路状态通告LSA上设置关键路由标记;以及
传播装置,被配置为将关键路由对应的LSA利用洪泛机制传播到对应的开放最短路径优先协议OSPF网络;
其中设置装置被进一步配置为:在LSA的头部的选项字段设置关键路由标记。
7.如权利要求6所述的设备,其中,关键路由被使用以下至少一种方式设置:
使用文档指定关键路由;
根据路由的网络号指定关键路由;
根据LSA的类型指定关键路由;
根据路由的下一跳指定关键路由;
根据外部路由携带的标签值设置关键路由;
根据路由的代价设置关键路由;
根据外部路由的来源类型设置关键路由;
根据设定的策略设置关键路由。
8.一种建立路由表的设备,包括:
接收装置,被配置为接收关键路由对应的LSA;
网络拓扑和最短路径计算装置,被配置为计算网络拓扑和最短路径;
关键路由计算装置,被配置为根据关键路由对应的LSA以及网络拓扑和最短路径计算装置计算出的网络拓扑和最短路径来计算关键路由;
关键路由对应的路由表项建立装置,被配置为在路由表中建立关键路由对应的路由表项;
非关键路由计算装置,被配置为根据关键路由对应的LSA之外的LSA以及网络拓扑和最短路径计算装置计算出的网络拓扑和最短路径来计算非关键路由;以及
非关键路由对应的路由表项建立装置,被配置为在路由表中建立非关键路由对应的路由表项。
9.一种更新路由表的设备,包括:
接收装置,被配置为接收关键路由对应的LSA;
路由表更新判断装置,被配置为判断路由表需要更新;
网络拓扑和最短路径计算装置,被配置为计算网络拓扑和最短路径;
关键路由计算装置,被配置为根据关键路由对应的LSA以及网络拓扑和最短路径计算装置计算出的网络拓扑和最短路径来计算关键路由;
关键路由对应的路由表项更新装置,被配置为更新路由表中的关键路由对应的路由表项;
非关键路由计算装置,被配置为根据关键路由对应的LSA之外的LSA以及网络拓扑和最短路径计算装置计算出的网络拓扑和最短路径来计算非关键路由;
非关键路由对应的路由表项更新装置,被配置为更新路由表中的非关键路由对应的路由表项。
10.如权利要求9所述的设备,其中接收装置接收关键路由对应的LSA的发生在路由表建立之后。
CN201410003511.9A 2014-01-03 2014-01-03 传播关键路由以及建立和更新路由表的方法和设备 Active CN104767687B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410003511.9A CN104767687B (zh) 2014-01-03 2014-01-03 传播关键路由以及建立和更新路由表的方法和设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410003511.9A CN104767687B (zh) 2014-01-03 2014-01-03 传播关键路由以及建立和更新路由表的方法和设备

Publications (2)

Publication Number Publication Date
CN104767687A CN104767687A (zh) 2015-07-08
CN104767687B true CN104767687B (zh) 2019-04-23

Family

ID=53649310

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410003511.9A Active CN104767687B (zh) 2014-01-03 2014-01-03 传播关键路由以及建立和更新路由表的方法和设备

Country Status (1)

Country Link
CN (1) CN104767687B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9842060B1 (en) * 2016-07-13 2017-12-12 Seagate Technology Llc Cache over-provisioning in a data storage device
CN107426097B (zh) * 2017-04-24 2020-06-12 山西大学 一种基于增量最短路径优先的域内路由保护方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101155135A (zh) * 2006-09-28 2008-04-02 华为技术有限公司 一种泛洪自治***边界路由器能力信息的方法及装置
CN101227403A (zh) * 2008-02-21 2008-07-23 中兴通讯股份有限公司 一种路由渗透方法
CN101401083A (zh) * 2006-03-08 2009-04-01 思科技术公司 在ospf配置的网络中散布bgp属性信息来防止路由环的技术
CN101547139A (zh) * 2008-03-28 2009-09-30 华为技术有限公司 网络拓扑变化的通告方法及装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7978708B2 (en) * 2004-12-29 2011-07-12 Cisco Technology, Inc. Automatic route tagging of BGP next-hop routes in IGP

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101401083A (zh) * 2006-03-08 2009-04-01 思科技术公司 在ospf配置的网络中散布bgp属性信息来防止路由环的技术
CN101155135A (zh) * 2006-09-28 2008-04-02 华为技术有限公司 一种泛洪自治***边界路由器能力信息的方法及装置
CN101227403A (zh) * 2008-02-21 2008-07-23 中兴通讯股份有限公司 一种路由渗透方法
CN101547139A (zh) * 2008-03-28 2009-09-30 华为技术有限公司 网络拓扑变化的通告方法及装置

Also Published As

Publication number Publication date
CN104767687A (zh) 2015-07-08

Similar Documents

Publication Publication Date Title
US10833976B2 (en) Loop detection and avoidance for segment routed traffic engineered paths
CN105075194B (zh) 有索引的段id
US8848544B2 (en) Event correlation using network data flow simulation over unmanaged network segments
US9736263B2 (en) Temporal caching for ICN
CN103999431B (zh) 软件定义的网络中灵活的并且可扩展的流处理***
CN105594167B (zh) 转发报文的方法、控制器、转发设备和网络***
CN108702326A (zh) 检测软件定义网络(sdn)中的控制平面循环的机制
US9531627B1 (en) Selecting a remote path using forwarding path preferences
CN104378298A (zh) 一种流表条目生成方法及相应设备
CN105075195A (zh) 分段路由上的标签分发协议
CN105376162B (zh) 一种链路状态信息通告方法和设备
CN109218197A (zh) 分段路由中的冲突解决
CN109756521B (zh) 一种nsh报文处理方法、装置及***
EP3616369B1 (en) Communications network node, communications network and communication method
CN112583714B (zh) 路由控制方法和装置
CN114553769B (zh) 计算机网络中的端到端流监控
US20210374530A1 (en) Architecture for utilizing key-value store for distributed neural networks and deep learning
CN104767687B (zh) 传播关键路由以及建立和更新路由表的方法和设备
CN107078953A (zh) 用于可扩展计算机网络划分的方法
US20180026933A1 (en) Service aware label address resolution protocol switched path instantiation
CN113726652B (zh) 一种通告信息的处理方法、装置及存储介质
CN112787832B (zh) 用于生成网络拓扑的方法、电子设备和计算机存储介质
CN108259331B (zh) 路由发布方法及装置
JP5108845B2 (ja) シミュレーション装置、bgpシミュレーション方法およびそのプログラム
CN111865797B (zh) 传播链路标记的方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
EXSB Decision made by sipo to initiate substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant