实现链路状态数据库同步方法、路由器及线路板、主控板的制作方法

文档序号:7663397阅读:227来源:国知局
专利名称:实现链路状态数据库同步方法、路由器及线路板、主控板的制作方法
技术领域
本发明涉及通信:忮术领域,具体涉及一种实现链路状态数据库同步方法、 路由器及线路板、主控板。
背景技术
当前的高端路由器的特点是控制和转发相分离, 一般来说,路由器内部
结构可以分为主用主控板AMB、备用主控板SMB以及线^各板LC, AMB和SMB 都属于控制平面,而LC属于转发平面,它们之间用交换网相连,可参阅图l 现有技术路由器结构示意图。图1中包括路由器A、 B和C,从路由器A向路由 器C发送报文的过程是路由器B的LC1接收从路由器A发送过来的报文例如链 路状态通告LSA报文,然后查转发表后发现到路由器C要通过LC2,就利用交 换网向LC2发送该报文,由LC2直接把报文发送给路由器C。 AMB在转发过程 中不起作用,只负责收集路由信息并下发到LC上,而LC只负责对报文进行快 速转发。LC可以支持各种各样的接口类型,并且LC上的转发表是根据AMB 下发的路由信息生成。
在路由器上运行的控制平面由很多路由协议组成,开放最短路径优先协 议OSPF是应用最广泛的一种,用于计算路由。运行OSPF协议,4巴所有状态为 Full状态的邻居作为链路信息保存在链路状态通告LSA报文中,然后依靠协议 的可靠传输使网络上所有的路由器都含有完全相同的链路状态数据库LSDB, 所有的路由器使用相同的算法,通过对相同的LSDB进行计算后得到无环路的 路由。
目前对于路由器的应用,存在一种不间断路由NSR技术。也就是说,为 了提高路由器的可用性,对关键的板卡(常见的是主控板MB)进行1+1备份, 即存在AMB和SMB,正常情况下AMB工作,SMB不工作,当发生故障后就可 以通过倒换来让AMB重启,同时让SMB来变成AMB来尽量减少故障对业务的 影响。如果希望倒换的时间尽量的短,就需要SMB保存尽可能多的AMB的数 据,包括用于生成路由所需要的链路状态数据库LSDB,并且要求此时SMB保存的LSDB尽量是和倒换前的LSDB是同步的,这样倒换发生后,SMB根据已 有的LSDB就能计算得到新的路由表,从而保证倒换的过程不对邻居或业务流 量产生影响。
对于NSR技术,现有技术中实现LSDB同步的一种方案是LC接收到LSA 才艮文后,同时发给AMB和SMB, SMB收到LSA报文后先不处理,而是4巴LSA 报文緩沖保存起来,AMB收到LSA报文后就开始处理,把每一个LSA报文处 理的结果都发送给SMB, SMB按照AMB的处理结果处理緩冲的LSA报文。这 样在发生倒换时,SMB变成新的AMB后就知道缓冲保存的所有的报文是原 AMB可能都没有处理过的,此时新AMB接着处理这些緩冲的LSA报文。
在对现有技术的研究和实践过程中,发明人发现现有技术存在以下问题 上述现有技术的方案虽然能实现LSDB同步,但这种方案比较复杂,例如需要 把LSA报文的所有处理方式都编码加以管理,在LSA报文分支处理的所有地方 都需要进行备份,而且对LSA报文处理的所有改动例如修改代码等都会影响到 最终实现NSR的特性。

发明内容
本发明实施例要解决的技术问题是提供一种实现链路状态数据库同步方 法、路由器及线路板、主控板,能够比较简单的实现链路状态数据库同步。
为解决上述技术问题,本发明所提供实施例是通过以下技术方案实现的
本发明实施例提供一种实现链路状态数据库同步的方法,包括接收链
通告报文比较,在比较出所述接收的链路状态通告报文为新报文时,更新所 述链路状态数据库中的链路状态通告报文,并将接收的链路状态通告报文向 已建立虚拟邻居关系的虚拟邻居发送。
本发明实施例提供一种路由器,包括线路板,用于接收链路状态通告 报文,将接收的链路状态通告报文与链路状态数据库中的链路状态通告报文 比较,在比较出所述接收的链路状态通告报文为新报文时,更新所述链路状 态数据库中的链路状态通告报文,并将接收的链路状态通告报文向主用主控
板和备用主控板发送;主用主控板,用于接收线路板发送的链路状态通告报较,在比较出所述接收的链路状态通告报文为新报文时,更新所述链路状态 数据库中的链路状态通告报文,并将接收的链路状态通告报文向备用主控板 和除发送方线路板外的其他线路板发送;备用主控;f反,用于接收已建立虚拟 邻居关系的线路板或主用主控板发送的链路状态通告报文。
本发明实施例提供一种线路板用于接收链路状态通告报文,将接收的
链路状态通告报文与链路状态数据库中的链路状态通告报文比较,在比较出 所述接收的链路状态通告报文为新报文时,更新所述链路状态数据库中的链 路状态通告报文,并将接收的链路状态通告报文向主用主控板和备用主控板 发送。
本发明实施例提供一种主用主控板用于接收线路板发送的链路状态通 告报文,将接收的链路状态通告报文与链路状态数据库中的链路状态通告报 文比较,在比较出所述接收的链路状态通告报文为新报文时,更新所述链路 状态数据库中的链路状态通告报文,并将接收的链路状态通告报文向备用主 控板和除发送方线路板外的其他线路板发送。
以上技术方案可以看出,本发明实施例技术方案是接收链路状态通告 报文;将所述链路状态通告报文与链路状态数据库中的链路状态通告报文比 较,在比较出所述接收的链路状态通告报文为新报文时,更新链路状态数据 库中的链路状态通告报文,并将接收的链路状态通告报文向已建立虚拟邻居 关系的虚拟邻居发送。因为本发明实施例技术方案是在路由器的内部组成单 元间已建立虚拟邻居关系,并分散存储链路状态数据库LSDB,当接收到链路 状态通告LSA报文后,增加与存储的LSA报文比较的步骤,只有比较出接收 的是新的LSA报文才发给已建立虚拟邻居关系的虚拟邻居,所以是利用OSPF 协议自身的LSDB同步机制比较简单的实现了 LSDB同步,并且使得路由器 内的报文流量大大降低。


图1是现有技术路由器结构示意图2是本发明实施例MB和LC之间进行LSDB同步的过程示意图;图3是本发明实施例LC接收LSA和向虚拟邻居同步LSDB流程图; 图4是本发明实施例AMB接收LSA和向虚拟邻居同步LSDB流程图; 图5是本发明实施例路由器结构示意图; 图6是本发明实施例路由器中线路板LC结构示意图; 图7是本发明实施例路由器中主用主控板AMB结构示意图; 图8是本发明实施例路由器中备用主控板SMB结构示意图。
具体实施例方式
本发明实施例提供了一种实现LSDB同步的方法,能够比较简单的实现 LSDB同步,且可扩展性强。
在运行OSPF协议时,存在指定路由器DR、备份指定路由器BDR以及 非指定路由器DROther。 DR和BDR需要在网络中进行选举,BDR作为DR 的备份, 一旦DR发生故障BDR就会变成DR,这样网络又可以继续工作。 相对于DR和BDR来说,其他的非DR和非BDR都可以称作DROther。
本发明实施例方法中,把AMB当作DR,把SMB当作BDR,把LC当 作DROther,即把路由器内部的AMB 、 SMB和LC都看成是一 个单独的路由 器,它们形成虚拟邻居关系,依靠OSPF协议的同步机制来进行LSDB同步。 此时,DR和BDR不需要经过选举,可以直接认为AMB是DR, SMB是BDR, 或者是将AMB作为BDR, SMB作为DR,但是LC 一定要作为DROther。另 外,与外部路由器实际的接口状态和邻居状态也由LC进行处理。AMB可以 生成LSA报文,SMB不生成LSA报文。对于DR,和每一个LC构成虚拟邻 居关系,与外部路由器的接口状态和邻居状态从LC获得,相关配置则直接备 4分到BDR。对于BDR,同DR—样,也和LC构成虚拟邻居关系,与外部3各 由器的接口状态和邻居状态从LC获得。对于DROther,每个LC都可以称作 DROther, LC在本地存放完整的链路状态数据库LSDB,这个LSDB是该LC 所关联的所有虚拟邻居发送给该LC的LSDB的全集。现有技术中LSDB是存 储在MB中的,本发明实施例方法中是在LC中也存储LSDB,即把LSDB分 布在不同的LC上,每个LC上存储相关的那一部分LSDB,然后发送给AMB
11和SMB汇总,因此可称作分布式LSDB。 LC只有收到更新的LSA报文后, 才会4巴该LSA报文向DR和BDR发送。
如前所述,本发明实施例把^各由器内部的AMB、 SMB和LC都看成是一 个单独的虚拟路由器,它们形成虚拟邻居关系。因此,需要在MB(包括AMB 和SMB)和LC上各创建一个虚拟接口 ,并建立虚拟邻居关系。至于与外部 路由器实际的接口状态和邻居状态,通过LC与外部路由器建立,具体过程与 原来由MB与外部路由器建立的过程类似,只是改为由LC实现了 ,所以此处 不再详述。这样,LC可以同时管理与AMB、 SMB之间的虚拟接口和虚拟邻 居关系以及与外部路由器间的接口和邻居关系。MB和LC之间的虚拟邻居关 系的建立遵循OSPF协议的规则创建,可以有两种方式,第一种方式是利用协 议规定的建立邻居的过程来实现虚拟邻居关系建立,MB和LC之间互相发送 Hello报文(OSPF邻居发现报文),接收Hello报文后互相发送DD报文(OSPF 数据库描述报文),根据DD报文请求对方发送所需要的LSA报文,从而创建 Full状态的虚拟邻居;第二种是可以省略发送Hello报文和DD报文的过程, MB和LC之间直接根据提供的设备管理信息获知对方的存在,直接在相互之 间发送LSA报文,创建Full状态的虚拟邻居。
上述无论哪一种创建虚拟邻居的方式,都需要针对每一个区域Area都设 置一个虚拟4妄口和相应的LC或MB对应。这就是i兑,如果有500个区域Area 在同 一个LC上,那么该LC和MB都需要针对每一个Area都创建一个相应 的虛拟接口 。如果虚拟接口比较多,会使得ASE LSA报文(第五类LSA报 文)在所有的虚拟接口都洪泛一遍,造成一定浪费,因此可以进一步优化, 不再针对每一个区域都创建一套对应于LC、 MB的虚拟接口 ,而是在每个LC 或MB上只创建一个能处理所有区域报文的虚拟接口。需要说明的是,在本 发明实施例方法中,本地接口有效的LSA报文(例如第9类LSA报文)需要 MB和LC进行交换,而不能按照OSPF协议的规定在接口收到了就不再转发 了,因为现有技术中的LSDB直接存储在MB的,而本发明实施例需要LC 4巴自己的LSDB同步给MB上的LSDB。
以下详细介绍本发明实施例方法利用OSPF协议的特性来实现MB和LC 之间进行LSDB同步的过程。请参阅图2 ,是本发明实施例MB和LC之间进行LSDB同步的过程示意图。 如图2所示,AMB和LC之间通过重传机制保证同步,AMB上有多个重传队列 (每个重传队列对应一个LC), LC上有两个重传队列(对应AMB和SMB)。 而对于SMB,不产生LSA报文,只是接收AMB或LC发送的LSA报文,并返回 确认消息ACK。 AMB、 SMB、 LC上面运行的OSPF协议是有区别的,AMB上 会生成新的LSA报文,进行LSA报文的老化和刷新,SMB和LC上不进行LSA 报文的老化和刷新,通过AMB来维护自身的LSDB。路由计算仅在AMB上进 行,SMB和LC不进行路由计算。
LC把自己的LSDB向AMB和SMB同步。LC收到一条LSA报文后,先与自 身存储的LSDB中的LSA报文进行新旧比较。这里所说的比较,可以按照OSPF 标准协议里现有的算法进行比较,例如按链路状态通告报文的序列号、校验 和或者年龄进行比较,则序列号(sequence number)大的为新报文,或者校 验和(checksum)大的为新报文,或者年龄(age)大的为新报文;反之则为 旧报文。当收到旧的或相同的LSA报文按照协议规定处理,收到新的LSA报文 则更新存储的LSA报文,并把该新的LSA报文打包到MTU (IP最大传输单元) 大小加入到向AMB和SMB发送的重传队列,采用多^番方式发送给AMB和 SMB。 LC收到AMB和SMB返回的确认消息ACK就把对应重传队列中的该LSA 报文删除。AMB接收LSA后也与自身存储的LSDB中的LSA进行新旧比较,如 果是相同的LSA报文则返回确认消息ACK给LC,如果是新的LSA报文则更新 存储的LSA报文,并向其他接口板(包括SMB和其他LC)发送,如果是旧的 LSA报文则将存储的新LSA报文发送给LC。这里AMB将LSA报文发送给LC (包括发送给发送方LC和其他LC)也是通过重传队列发送。可以发现,这种 机制是完全可以保证分布式LSDB同步的。
下面以LC接收LSA报文和向虚拟邻居同步LSDB举例说明。
请参阅图3,是本发明实施例LC接收LSA和向虚拟邻居同步LSDB流程图, 包括
步骤301 、 LC将接收的LSA报文与存储的LSDB中的LSA报文进行比较, 如果接收的LSA报文与存储的LSA报文相同,则进入步骤302,如果接收的LSA
13报文比存储的LSA报文旧,则进入步骤303,如果接收的LSA报文比存储的LSA 报文新,则进入步骤304;
需要说明的是,这里LC接收的LSA报文,可能是外部路由器发送的,也 可能是AMB发送的。
步骤302、 LC向发送方返回确认消息ACK;
步骤303、 LC把存储的LSA报文转发给其他外部的路由器;
步骤304、 LC更新存储的LSA报文,如果接收的新的LSA报文是外部路由 器发送的,则把该新的LSA报文添加到对应AMB和SMB的虚拟邻居重传队列 中,使用多播的方式发送给AMB和SMB,如果接收的新的LSA报文是AMB发 送的,则使用多播方式发送给SMB和其他外部的路由器,进入步骤305;
将LSA报文发送给AMB或SMB时,是将LSA报文打包到MTU大小加入到 向AMB和SMB发送的重传队列。对ASE LSA报文(第五类LSA报文)、 OpaquelO LSA报文(第十类LSA报文)的报文头包含进程号,对Router LSA 报文(第一类LSA报文)、Network LSA报文(第二类LSA报文)、Summary LSA 报文(第三类LSA报文)等的报文头包含进程号、区域号,对接口范围的LSA 报文则还包含接口索引。
步骤305、 LC收到AMB的确认消息ACK后,把对应重传队列中的该LSA 报文删除,收到SMB的确认消息ACK后,把对应重传队列中的该LSA报文删 除;如果没有收到AMB或SMB的确认消息ACK,则LC在重传定时器超时后, 将对应重传队列中的LSA报文使用单播的方式重新发送给相应的AMB或 SMB。
另外,当LC上与外部路由器的接口状态、邻居的状态发生变化后,LC将 通知AMB和SMB,使AMB和SMB能获知最新的接口状态、邻居的状态。
下面再以AMB接收LSA和向虚拟邻居同步LSDB举例说明。
请参阅图4,是本发明实施例AMB接收LSA和向虚拟邻居同步LSDB流程 图,包括
步骤401、如果接收的LSA报文与存储的LSA报文相同,进入步骤402,如果接收的LSA 报文比存储的LSA报文旧,则进入步骤403,如果接收的LSA报文比存储的LSA 才艮文新,则进入步骤404;
步骤402、 AMB向对应的发送方LC返回确认消息ACK;
步骤403 、 AMB把存储的LSA报文添加到对应发送方LC的虚拟邻居重传 队列中,发送给发送方LC,进入步骤405;
步骤404、 AMB更新存储的LSA报文,并将新的LSA报文向其他接口板(包 括SMB和其他LC)发送,进入步骤405;
AMB也是将新的LSA报文添加到其他LC的虚拟邻居重传队列中,发送给 除发送方LC外的其他LC。
步骤405 、 AMB收到LC返回的ACK后,把对应重传队列中的该LSA报文 删除,如果没有收到LC返回的ACK,则在重传定时器超时后,将对应重传队 列中的LSA报文重新发送给相应的LC。
需要说明的是,当AMB生成新的LSA报文后,直接发送给SMB和所有LC。 当发送给LC时,具体也是将LSA报文添加到对应LC的虚拟邻居重传队列中, 发送给LC,如果收到LC返回的ACK后,把对应重传队列中的该LSA报文删除, 如果没有收到LC返回的ACK,则在重传定时器超时后,将对应重传队列中的 LSA才艮文重新发送给相应的LC。
上面分别介绍了 LC和AMB接收LSA报文和向虚拟邻居同步LSDB后的流 程,而对于SMB,只是接收LSA报文进行存储并向发送方返回ACK,并不向 外发送LSA报文。因为LC只有在接收到LSA报文是新的时,才向AMB和SMB 发送,而AMB也是在接收的到LSA报文是新的时,才向SMB和其他LC发送, 或者AMB是在生成新的LSA报文时,直接将新的LSA发送给SMB和所有LC, 所以一般来说SMB接收的LSA报文都是新的,只要接收进行存储,并向发送 方返回ACK就可以了 。
需要说明的时,如果新插入SMB,则该SMB创建对应于AMB和LC的虚拟 接口和虚拟邻居,并且把AMB当作DR,然后所有的LC和AMB开始向SMB发 送所有的LSA。如果新插入LC,则该LC创建对应于AMB和SMB的虚拟接口和虚拟邻居,并且把AMB当作DR,然后AMB、SMB开始向该LC发送所有的LSA, 另外,新插入的LC建立与外部路由器接口和邻居关系。由于虚拟邻居和虚拟 接口在LC和MB间建立,那么每新插入一块LC, MB和LC都能获得相应的虚 拟邻居的处理能力。另外由于与外部路由器实际的接口状态和邻居状态也通 过LC实现的,如果每块LC能支持100个邻居,那么10块LC就可以支持1000个 邻居,因此可扩展性比较好。
按照上述方式进行LSDB的同步,可以保证AMB 、 SMB和LC之间的LSDB 同步,而且可以使AMB、 SMB和LC之间的报文流量大大降低,因为LC上存 在LSDB,所以无论是邻居建立过程中,还是LSDB同步的过程中,只有在处 理比LC上更加新的LSA报文或请求更加新的LSA才艮文时才会需要AMB参与处 理,收到相同的或旧的LSA报文或请求后在LC上完全可以独立处理,不需要
制,所以实现起来也是非常简单和可靠。
如果发生倒换,SMB作为新的AMB,贝'jLC把新的AMB当作DR。因为本 发明实施例方法中LC都各自存储LSDB,这样在倒换后,新AMB步就可直接 获取所有LC上的LSDB,另外,发生倒换后,因为接口状态和邻居状态是由 LC存储的,所以AMB倒换不会引起LC上的邻居状态变化,所以新AMB可直 4妄获取各个LC上的接口状态和邻居的状态。所以,新AMB通过从LC获取LC 上的LSDB以及接口和邻居状态关系实现倒换后LSDB的同步。然后,新AMB 根据LSDB和邻居关系进行一遍路由计算,并更新路由表。
需要i兌明的是,上述内容是以1+1备份即 一个AMB与 一个SMB的情况举 例说明,如果是1+N备份即一个AMB与N个SMB的情况,也是很容易实现的, 因为SMB不生成LSA,那么把所有的SMB都看成是BDR就可以了 ,原理是相 同的。
还需说明的是,本发明实施例方法是以运行OSPF协议举例说明但不局限 于此,还可以运用在其他协议例如与OSPF协议非常类似的中间系统到中间系 统IS-IS协议中。
上述内容详细介绍了本发明实施例实现LSDB同步的方法,相应的,本发明实施例提供一种路由器。
请参阅图5,是本发明实施例路由器结构示意图。
如图5所示,路由器包括线路板LC 501、线路板LC 502、主用主控板AMB 503、备用主控板SMB 504。需要说明的是,图5中只是以含两个LC举例说明。
本发明实施例中,把AMB当作DR,把SMB当作BDR,把LC当作DROther, 即4巴路由器内部的AMB 、 SMB和LC都看成是一个单独的^各由器,它们形成虚 拟邻居关系,依靠OSPF协议的同步机制来进行LSDB同步。此时,DR和BDR 不需要经过选举,可以直接认为AMB是DR, SMB是BDR,或者是将AMB作 为BDR, SMB作为DR,但是LC一定要作为DROther。
线路板LC,用于接收LSA报文,将接收的LSA报文与存储的LSDB中的 LSA报文比较,在比较出所述接收的LSA报文为新报文时,更新存储的LSDB 中的LSA报文,并将接收的LSA报文向AMB 503和SMB 504发送。
主用主控板AMB 503,用于接收LC发送的LSA报文,将接收的LSA报文 与存储的LSDB中的LSA报文比较,在比较出所述接收的LSA报文为新报文时, 更新存储的LSDB中的LSA报文,并将接收的LSA报文向SMB 504和除发送方 LC外的其他LC发送。
备用主控板SMB 504,用于接收已建立虚拟邻居关系的虚拟邻居LC或 AMB 503发送的LSA才艮文。
请参阅图6,是本发明实施例路由器中线路板LC结构示意线路板LC包括比较单元601、第一处理单元602、第二处理单元603、第三 处理单元604、虚拟邻居关系创建单元605。
LSA报文比较。比较单元601接收的LSA报文可能是其他路由器发送的,也可 能是本路由器的AMB发送的。
第 一处理单元602,用于在比较单元601比较出所述接收的LSA报文为新报 文时,更新存储的LSDB中的LSA报文,并且如果接收的新的LSA报文是外部 路由器发送的,将接收的LSA报文向AMB和SMB发送,如果接收的新的LSA报文是AMB发送的,则使用多播方式发送给SMB和其他外部的路由器。LC的 第一处理单元602将接收的LSA报文向AMB和SMB发送具体为将接收的LSA 报文加入到对应AMB和SMB的重传队列中采用多播方式向AMB和SMB发送, 如果收到返回的确认消息则删除对应重传队列中的该LSA报文,如果没有收到 返回的确认消息则在重传定时器超时后采用单播方式重发对应重传队列中的 该LSA报文。
第二处理单元603,用于在比较单元601比较出所述接收的LSA报文为旧报 文时,把存储的LSDB中的LSA报文发送给其他路由器。
第三处理单元604,用于在比较单元601比较出所述接收的LSA报文为相同 净艮文时,向发送方返回确i人消息。
虚拟邻居关系创建单元605,用于创建虚拟接口 ,通过所述虚拟接口与所 述主用主控板AMB 503和备用主控板SMB 504建立虚拟邻居关系。
请参阅图7,是本发明实施例路由器中主用主控板AMB结构示意图。
主用主控板AMB 503包括比较单元701、第一处理单元702、第二处理单 元703、第三处理单元704、虚拟邻居关系创建单元705。
比较单元701,用于在接收LC发送的LSA报文后将接收的LSA报文与存储 的LSDB中的LSA报文比较;
第一处理单元702,用于在比较单元701比较出所述接收的LSA报文为新报 文时,更新存储的LSDB中的LSA报文,并将接收的LSA报文向SMB和除发送 方LC外的其他LC发送。
文时,把存储的LSDB中的LSA报文向发送方LC发送。
所述AMB的第一处理单元702或第二处理单元703向LC发送LSA报文具 体为
将LSA报文加入到对应LC的重传队列中向LC发送,如果收到返回的确认 消息则删除对应重传队列中的该LSA报文,如果没有收到返回的确认消息则在 重传定时器超时后重发对应重传队列中的该LSA报文。第三处理单元704,用于在比较单元701比较出所述接收的LSA报文为相同 报文时,向发送方LC返回确iU肖息。
虚拟邻居关系创建单元705,用于创建虚拟4妄口,通过所述虚拟接口与所 述线路板LC和备用主控板SMB 504建立虚拟邻居关系。
主用主控板AMB 503进一步包括生成单元706。
生成单元706,用于生成LSA报文,将所述生成的LSA报文向SMB和 所有LC发送;所述向LC发送具体为将LSA报文加入到对应LC的重传队 列中向LC发送,如果收到返回的确认消息则删除对应重传队列中的该LSA 报文,如果没有收到返回的确认消息则在重传定时器超时后重发对应重传队 列中的该LSA报文。
请参阅图8 ,是本发明实施例路由器中备用主控板SMB结构示意图。
备用主控板SMB包括接收单元801 、处理单元802、虚拟邻居关系创建单 元803。
接收单元801,用于接收已建立虚拟邻居关系的虚拟邻居LC或AMB发送 的LSA才艮文。处理单元802,用于发生倒换时,SMB成为新AMB的情况下,从 虚拟邻居LC上获取LC存储的LSDB以及接口和邻居状态关系。虚拟邻居关系 创建单元803,用于创建虚拟接口 ,通过所述虚拟接口与所述线路板LC和主用 主控板AMB 503建立虚拟邻居关系。
发生倒换后,因为接口状态和邻居状态是由LC存储的,所以AMB倒换不 会引起LC上的邻居状态变化,所以SMB成为新AMB的情况下,SMB的处理单 元802可直接获取各个LC上的接口状态和邻居的状态。然后,根据LSDB进行 一遍路由计算,并更新路由表。
综上所述,现有技术的方案虽然能实现LSDB同步,但这种方案比较复杂, 而本发明实施例技术方案是接收链路状态通告报文;将所述链路状态通告 报文与链路状态数据库中的链路状态通告报文比较,在比较出所述接收的链 路状态通告报文为新报文时,更新链路状态数据库中的链路状态通告报文, 并将接收的链路状态通告报文向已建立虚拟邻居关系的虚拟邻居发送。因为 本发明实施例技术方案是在路由器的内部组成单元间已建立虚拟邻居关系,并分散存储链路状态数据库LSDB,当接收到链路状态通告LSA报文后,增加 与存储的LSA报文比较的步骤,只有比较出接收的是新的LSA报文才发给已建 立虚拟邻居关系的虚拟邻居,所以是利用OSPF协议自身的LSDB同步机制比 较简单的实现了 LSDB同步,并且使得路由器内的报文流量大大降低。
进一步的,因为LC上存在LSDB,所以无论是虚拟邻居建立过程中,还是 LSDB同步的过程中,只有在处理比LC上更加新的LSA报文或请求更加新的 LSA报文时才会需要AMB参与处理,收到相同的或旧的LSA报文或请求后在 LC上完全可以独立处理,不需要AMB的参与。
另夕卜,如果发生倒换,SMB作为新的AMB,则LC把新的AMB当作DR。 因为LC都各自存储LSDB,这样在倒换后,新AMB步就可直接获取所有LC上 的LSDB,还有,因为接口状态和邻居状态是由LC存储的,所以AMB倒换不 会? 1起LC上的邻居状态变化,所以新AMB可直接获取各个LC上的接口状态和 邻居的状态。所以,新AMB通过从LC获取LC上的LSDB以及接口和邻居状态 关系实现倒换后LSDB的同步。更进一步的,当新插入LC时,还可以实现支持 更多邻居。
以上对本发明实施例所提供的 一种实现链路状态数据库同步方法、路由 器及线路板、主控板进行了详细介绍,对于本领域的一般技术人员,依据本 发明实施例的思想,在具体实施方式
及应用范围上均会有改变之处,综上所 述,本说明书内容不应理解为对本发明的限制。
权利要求
1、一种实现链路状态数据库同步的方法,其特征在于,包括接收链路状态通告报文;将所述链路状态通告报文与链路状态数据库中的链路状态通告报文比较,在比较出所述接收的链路状态通告报文为新报文时,更新所述链路状态数据库中的链路状态通告报文,并将接收的链路状态通告报文向已建立虚拟邻居关系的虚拟邻居发送。
2、 根据权利要求1所述的实现链路状态数据库同步的方法,其特征在于, 收包括按所述链路状态通告报文的序列号、校验和或者年龄进行比较;相应的, 比较结果大的为新报文。
3、 根据权利要求1所述的实现链路状态数据库同步的方法,其特征在于所述已建立虚拟邻居关系具体为为主用主控板、备用主控板和线路板 之间创建虚拟接口 ,通过所述虚拟接口建立虚拟邻居关系。
4、 根据权利要求3所述的实现链路状态数据库同步的方法,其特征在于 所述通过虚拟接口建立虚拟邻居关系包括主用主控板、备用主控板与线路板之间根据设备管理信息并通过虚拟接 口相互发送链路状态通告报文,根据接收的链路状态通告报文创建虚拟邻居; 或者,主用主控板、备用主控板与线路板之间在通过虚拟接口相互发送邻居发 现报文和数据库描述报文后,相互发送链路状态通告报文,根据接收的链路 状态通告报文创建虚拟邻居。
5、 根据权利要求1所述的实现链路状态数据库同步的方法,其特征在于所述接收链路状态通告报文具体为线路板接收链路状态通告报文,相 应的,线路板将接收的链路状态通告报文与链路状态数据库中的链路状态通告报文比较,在比较出所述接收的链路状态通告报文为新报文时,更新链路状 态数据库中的链路状态通告报文,如果所述接收的链路状态通告报文来自外部路由器,则将接收的链路状态通告报文向主用主控板和备用主控板发送, 如果所述接收的链路状态通告报文来自主用主控板,则将接收的链路状态通 告报文向备用主控板和外部路由器发送。
6、 根据权利要求5所述的实现链路状态数据库同步的方法,其特征在于:所述将接收的链路状态通告报文向主用主控板和备用主控板发送具体为将接收的链路状态通告报文加入到对应主用主控板和备用主控板的重传 队列中采用多播方式向主用主控板和备用主控板发送,如果收到返回的确认 消息则删除所述重传队列中的该链路状态通告报文,如果没有收到返回的确 认消息则在重传定时器超时后采用单播方式重发所述重传队列中的该链路状 态通告报文。
7、 根据权利要求5所述的实现链路状态数据库同步的方法,其特征在于进一步包括所述线路板在比较出所述接收的链路状态通告报文为旧报文 时,把链路状态数据库中的链路状态通告报文发送给外部路由器,在比较出 所述接收的链路状态通告报文为相同报文时,向发送方返回确认消息。
8、 根据权利要求1所述的实现链路状态数据库同步的方法,其特征在于所述接收链路状态通告报文具体为主用主控板接收线路板发送的链路 状态通告报文,相应的,主用主控板将接收的链路状态通告报文与链路状态数据库中的链路状态 通告报文比较,在比较出所述接收的链路状态通告报文为新报文时,更新链 路状态数据库中的链路状态通告报文,并将接收的链路状态通告报文向备用 主控板和除发送方线路板外的其他线路板发送。
9、 根据权利要求8所述的实现链路状态数据库同步的方法,其特征在于进一步包括所述主用主控板在比较出所述接收的链路状态通告报文为旧 报文时,把链路状态数据库中的链路状态通告报文向发送方线路板发送,在比较出所述接收的链路状态通告报文为相同报文时,向发送方线路板返回确 i人消息。
10、 根据权利要求8所述的实现链路状态数据库同步的方法,其特征在于进一步包括当所述主用主控板生成新的链路状态通告报文后,将所述生 成的新的链路状态通告报文向备用主控板和所有线路板发送。
11、 根据权利要求8、 9或10所述的实现链路状态数据库同步的方法, 其特征在于所述向线路板发送具体为将链路状态通告报文加入到对应线路板的重传队列中向线路板发送,如 果收到返回的确认消息则删除所述重传队列中的该链路状态通告报文,如果 没有收到返回的确认消息则在重传定时器超时后重发所述重传队列中的该链 路状态通告报文。
12、 根据权利要求l、 2或3所述的实现链路状态数据库同步的方法,其 特征在于发生倒换时,备用主控板成为新主用主控板,所述新主用主控板从线路 板上获取线路板存储的链路状态数据库以及接口和邻居状态关系。
13、 一种路由器,其特征在于,包括线路板,用于接收链路状态通告报文,将接收的链路状态通告报文与链 路状态数据库中的链路状态通告报文比较,在比较出所述接收的链路状态通 告报文为新报文时,更新所述链路状态数据库中的链路状态通告报文,并将 接收的链路状态通告报文向主用主控板和备用主控板发送;主用主控板,用于接收线路板发送的链路状态通告报文,将接收的链路接收的链路状态通告报文为新报文时,更新所述链路状态数据库中的链路状 态通告报文,并将接收的链路状态通告报文向备用主控板和除发送方线路板 外的其他线路板发送;备用主控板,用于接收已建立虚拟邻居关系的线路板或主用主控板发送 的链路状态通告报文。
14、 根据权利要求13所述的路由器,其特征在于,所述线路板包括比较单元,用于接收链路状态通告报文后将接收的链路状态通告报文与 链路状态数据库中的链路状态通告报文比较;第一处理单元,用于在比较单元比较出所述接收的链路状态通告报文为 新报文时,更新链路状态数据库中的链路状态通告报文,如果所述接收的链 路状态通告报文来自外部路由器,则将接收的链路状态通告报文向主用主控 板和备用主控板发送,如果所述接收的链路状态通告报文来自主用主控板, 则将接收的链路状态通告报文向备用主控板和外部路由器发送;相同报文时,向发送方返回确认消息;虛拟邻居关系创建单元,用于创建虚拟接口,通过所述虚拟接口与所述 主用主控板和备用主控板建立虚拟邻居关系。
15、 根据权利要求14所述的路由器,其特征在于所述线路板的第一处理单元将接收的链路状态通告报文向主用主控板和 备用主控板发送具体为将接收的链路状态通告报文加入到对应主用主控板和备用主控板的重传 队列中采用多播方式向主用主控板和备用主控板发送,如果收到返回的确认 消息则删除所述重传队列中的该链路状态通告报文,如果没有收到返回的确 认消息则在重传定时器超时后采用单播方式重发所述重传队列中的该链路状 态通告报文。
16、 根据权利要求13所述的路由器,其特征在于,所述主用主控板包括 状态通告报文与链路状态数据库中的链路状态通告报文比较;第一处理单元,用于在比较单元比较出所述接收的链路状态通告报文为 新报文时,更新链路状态数据库中的链路状态通告报文,并将接收的链路状 态通告报文向备用主控板和除发送方线路板外的其他线路板发送;旧报文时,把链路状态数据库中的链路状态通告报文向发送方线路板发送;第三处理单元,用于在比较单元比较出所述接收的链路状态通告报文为 相同报文时,向发送方线路板返回确认消息;虚拟邻居关系创建单元,用于创建虚拟接口 ,通过所述虚拟接口与所述 线路板和备用主控板建立虚拟邻居关系。
17、 根据权利要求16所述的路由器,其特征在于所述主用主控板的第 一处理单元或第二处理单元向线路板发送链路状态 通告报文具体为将链路状态通告报文加入到对应线路板的重传队列中向线路板发送,如 果收到返回的确认消息则删除所述重传队列中的该链路状态通告报文,如果 没有收到返回的确认消息则在重传定时器超时后重发所述重传队列中的该链 路状态通告报文。
18、 根据权利要求16所述的路由器,其特征在于,所述主用主控板进一 步包括生成单元,用于生成链路状态通告报文,将所述生成的链路状态通告报 文向备用主控板和所有线路板发送;所述向线路板发送具体为将链路状态通告报文加入到对应线路板的重 传队列中向线路板发送,如果收到返回的确认消息则删除所述重传队列中的 该链路状态通告报文,如果没有收到返回的确认消息则在重传定时器超时后 重发所述重传队列中的该链路状态通告报文。
19、 根据权利要求13所述的路由器,其特征在于,所述备用主控板包括接收单元,用于接收已建立虚拟邻居关系的线路板或主用主控板发送的 链路状态通告报文;处理单元,用于发生倒换时,备用主控板成为新主用主控板的情况下, 从线路板上获取线路板存储的链路状态数据库以及接口和邻居状态关系;虚拟邻居关系创建单元,用于创建虚拟接口,通过所述虚拟接口与所述 线路板和主用主控板建立虚拟邻居关系。
20、 一种线路板,其特征在于用于接收链路状态通告报文,将接收的链路状态通告报文与链路状态数 据库中的链路状态通告报文比较,在比较出所述接收的链路状态通告报文为 新报文时,更新所述链路状态数据库中的链路状态通告报文,并将接收的链 路状态通告报文向主用主控板和备用主控板发送。
21、 一种主用主控板,其特征在于用于接收线路板发送的链路状态通告报文,将接收的链路状态通告报文 与链路状态数据库中的链路状态通告报文比较,在比较出所述接收的链路状 态通告报文为新报文时,更新所述链路状态数据库中的链路状态通告报文, 并将接收的链路状态通告报文向备用主控板和除发送方线路板外的其他线路 板发送。
全文摘要
本发明实施例公开了一种实现链路状态数据库同步的方法,包括接收链路状态通告报文;将所述链路状态通告报文与链路状态数据库中的链路状态通告报文比较,在比较出所述接收的链路状态通告报文为新报文时,更新所述链路状态数据库中的链路状态通告报文,并将接收的链路状态通告报文向已建立虚拟邻居关系的虚拟邻居发送。相应的,本发明实施例提供一种路由器,包括线路板、主用主控板和备用主控板。本发明实施例还提供一种线路板和主用主控板。本发明实施例技术方案能够比较简单的实现链路状态数据库同步。
文档编号H04L1/22GK101425961SQ200710166419
公开日2009年5月6日 申请日期2007年10月31日 优先权日2007年10月31日
发明者锋 杨, 成 盛, 刚 闫 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1