发明内容
有鉴于此,本发明提供一种基于OSPF协议的平滑重启方法和路由器,保证了在GR过程中流量的不中断。
为解决上述技术问题,本发明的技术方案是这样实现的:
一种基于OSPF协议的平滑重启方法,记录邻居信息,所述方法包括:
路由器重启后,根据记录的邻居信息,向所述记录中邻居信息对应的邻居发送进入平滑重启GR流程的报文使其维护邻居关系不变;
接收到任一所述记录中邻居信息对应的邻居发送的确认报文时,与对应邻居进行hello报文与链路状态信息库描述DD报文交互和连接状态数据库LSDB同步,完成所述LSDB同步后,通知所述记录中邻居信息对应的邻居结束GR流程并进入正常的OSPF流程。
一种路由器,可应用于基于开放式最短路径优先OSPF协议的平滑重启中,所述路由器包括:记录单元、收发单元和处理单元;
所述记录单元,用于记录邻居的邻居信息;
所述收发单元,用于根据所述记录单元记录的邻居信息向所述记录中邻居信息对应的邻居发送进入平滑重启GR流程的报文使其维护邻居关系不变;接收所述记录中邻居信息对应的邻居发送的确认报文;
所述处理单元,当所述收发单元接收到任一所述记录中邻居信息对应的邻居发送的确认报文时,与对应邻居进行hello报文与链路状态信息库描述DD报文交互和连接状态数据库LSDB同步,完成所述LSDB同步后,通知所述记录中邻居信息对应的邻居结束GR流程并进入正常的OSPF流程。
综上所述,本发明通过实时记录邻居的邻居信息,在路由器重启后,根据记录的邻居信息进行GR流程,并通知记录中邻居信息对应的邻居使其维护邻居关系不变,在完成LSDB同步后,通知记录中邻居信息对应的邻居结束GR流程并进入正常的OSPF流程,保证了在GR过程中流量的不中断。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本发明所述方案作进一步地详细说明。
本发明提出一种基于OSPF协议的平滑重启方法,在OSPF协议正常的时候,实时记录邻居信息,将邻居信息记录到一个存储空间,可以是磁盘,也可以是内存,具体实现时根据具体情况确定。
参见图1,图1为本发明实施例中平滑重启流程示意图。具体步骤为:
步骤101,路由器重启后,根据记录的邻居信息,向所述记录中邻居信息对应的邻居发送进入GR流程的报文使其维护邻居关系不变。
路由器重启后,开始GR时,获取记录的邻居信息,获知重启前该路由器存在的邻居信息,则向记录中邻居信息对应的所有邻居发送自身进入GR流程的报文,使收到该报文的邻居维护其邻居关系不变;而不是重启路由器之后,发送hello报文以发现邻居,收到该发现报文的邻居会把该重启路由器从邻居列表中删除,引起网络的路由震荡及转发中断。
在OSPF的GR过程中,邻居维护其邻居关系不变,即所有邻居的邻居状态都置为信息交换初始状态(Exstart),在该状态下向邻居发送OSPF报文。
步骤102,路由器接收到任一所述记录中邻居信息对应的邻居发送的确认报文时,与对应邻居进行hello报文与DD报文交互和LSDB同步。
本步骤中路由器接收到任一记录中邻居信息对应的邻居发送的确认报文时,开始与发来确认报文的邻居进行hello报文与DD报文交互。对于每个邻居分别进行交互和LSDB同步。邻居路由器接收到其他由器发送的进入GR流程的报文时,使自身维护邻居关系不变,并跳过2-way检查发送确认报文。
步骤103,路由器完成LSDB同步后,通知所述记录中邻居信息对应的邻居结束GR流程并进入正常的OSPF流程。
本步骤中的路由器完成LSDB同步指记录了邻居信息的所有邻居都完成了LSDB同步,即记录中邻居信息对应的所有邻居的邻居状态均为FULL。
在路由器的GR过程中,路由器维护路由信息不变。即在GR流程结束之前路由器的路由管理不下发FIB。这样保证了路由不切换,不会导致用户流量丢失。
当所述路由器上配置IETF标准能力时,步骤101中向记录中邻居信息对应的邻居发送进入GR流程的报文为GRACE LSA报文;
步骤102中接收到任一记录中邻居信息对应的邻居发送的确认报文为OSPF ACK报文。
当所述路由器上配置非IETF标准能力时,步骤101中向记录中邻居信息对应的邻居发送进入GR流程的报文为LR和RS都置位的hello报文;
步骤102中接收到任一记录中邻居信息对应的邻居发送的确认报文为LR被置位,RS位被清除的hello报文。其中,LR字段置位时用于标识实现OOB能力的协商;RS字段置位时用以通知邻居当前路由器进入GR流程。
本发明的具体实施例中记录中邻居信息对应的邻居为VLINK和SHAMLINK邻居。记录的邻居信息为下述之一或任意组合:邻居的路由器标识ID、邻居的区域ID、邻居的出接口地址、邻居的对端接口IP地址以及邻居的下一跳。
上述之一或任意组合用来标识一个VLINK或SHAMLINK邻居以及向对应VLINK或SHAMLINK邻居发送报文时的重启路由器的出接口。具体实现根据组网情况以及实际应用确定。
OSPF的VLINK和SHAMLINK邻居的Hello报文是IP单播报文,这点不同于普通的OSPF的Hello报文是组播,因此GR过程中发送的OSPF报文的IP报文头都填写记录的VLINK和SHAMLINK邻居的对端接口IP地址为目的地址,本端的出接口的IP地址为源地址。这里描述的是本发明的一种具体实施例,一种记录的邻居信息组合情况,具体实现时,根据记录的邻居信息情况发送报文,填写报文头。
本发明的具体实施例中,当路由器重启后,获取记录的VLINK和SHAMLINK邻居的邻居信息,并向各邻居发送通知自身进入重启流程的报文,使各邻居维持邻居关系不变,进入GR help过程。对于VLINK和SHAMLINK邻居的GR流程和其他OSPF邻居一样处理,hello报文与DD报文的交互和LSDB同步,直到所有记录中邻居信息对应的所有邻居均为FULL,结束GR流程,进入正常的OSPF流程,在这里不再详细描述。
基于上述同样的发明构思,本发明还提出一种路由器,可应用于基于OSPF协议的平滑重启中。参见图2,图2为本发明具体实施例中应用于实现平滑重启的路由器的结构示意图。该路由器包括:记录单元201、收发单元202和处理单元203。
记录单元201,用于记录邻居信息。
收发单元202,用于根据记录单元201记录的邻居信息向所述记录中邻居信息对应的邻居发送进入GR流程的报文使其维护邻居关系不变;接收所述记录中邻居信息对应的邻居发送的确认报文。
处理单元203,当收发单元202接收到任一记录中邻居信息对应的邻居发送的确认报文时,与对应邻居进行hello报文与DD报文交互和LSDB同步,完成所述LSDB同步后,通知所述记录中邻居信息对应的邻居结束GR流程并进入正常的OSPF流程。
较佳地,该路由器进一步包括:维护单元204。
维护单元204,用于当处理单元203进行GR流程中,维护路由信息不变。
较佳地,
处理单元203完成所述LSDB同步为:记录单元201记录中邻居信息对应的所有邻居的邻居状态均为FULL。
较佳地,
收发单元202,当自身所在的路由器上配置IETF标准能力时,向所述记录中邻居信息对应的邻居发送进入GR流程的报文为GRACE LSA报文;接收到任一记录中邻居信息对应的邻居发送的确认报文为OSPF ACK报文。
较佳地,
收发单元202,当自身所在的路由器上配置非IETF标准能力时,向所述记录中邻居信息对应的邻居发送进入GR流程的报文为LR和RS都置位的hello报文;接收到任一记录中邻居信息对应的邻居发送的确认报文为LR被置位,RS位被清除的hello报文。
较佳地,
记录单元201记录中邻居信息对应的邻居为VLINK和SHAMLINK邻居。
较佳地,
记录单元201记录的邻居信息为下述之一或任意组合:邻居的路由器标识ID、邻居的区域ID、邻居的出接口地址、邻居的对端接口IP地址以及邻居的下一跳。
上述实施例的单元可以集成于一体,也可以分离部署;可以合并为一个单元,也可以进一步拆分成多个子单元。
综上所述,本发明通过实时记录VLINK和SHAMLINK邻居的邻居信息,在路由器重启后,根据记录的邻居信息进行GR流程,并通知VLINK和SHAMLINK邻居使其维护邻居关系。使在路由器重启后,其VLINK和SHAMLINK邻居也进行GR,保证了在GR过程中流量的不中断。
本发明具体实施例中实现了OSPF协议VLINK和SHAMLINK邻居的GR流程,增强了OSPF协议的容错性,加强了OSPF协议的可靠性和可维护性。使OSPF的GR可以支持有VLINK和SHAMLINK邻居的情况下通过VLINK和SHAMLINK邻居计算出的路由不发生变化,保证用户流量不丢失。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。