发明内容
本发明实施例提供一种逆向路径转发检查方法和设备,以在单播路由同步失败时,避免RPF检查失败。
为了达到上述目的,本发明实施例提供一种逆向路径转发检查方法,应用于包括单播路由管理模块和组播路由管理模块的网络设备中,该方法包括:
所述单播路由管理模块在获知发生了单播路由同步时间大于预设时间的事件后,将单播路由会同步失败的信息通知给所述组播路由管理模块;
所述组播路由管理模块在获知单播路由会同步失败的信息之后,备份与逆向路径转发RPF检查相对应的单播路由;
在与RPF检查相对应的单播路由同步失败之后,所述组播路由管理模块利用自身备份的单播路由进行RPF检查。
所述单播路由同步时间大于预设时间的事件包括:平滑重启GR事件或者主备倒换事件。
所述组播路由管理模块备份与RPF检查相对应的单播路由之后,所述方法还包括:所述组播路由管理模块标记自身备份的单播路由为指定类型路由;
所述组播路由管理模块利用自身备份的单播路由进行RPF检查,具体包括:在与RPF检查相对应的单播路由同步失败之后,所述组播路由管理模块判断同步失败的单播路由是否为指定类型路由;如果是,则所述组播路由管理模块利用自身备份的单播路由进行RPF检查。
所述组播路由管理模块备份与RPF检查相对应的单播路由之后,所述方法还包括:所述组播路由管理模块标记自身备份的单播路由为指定类型路由;
所述组播路由管理模块利用自身备份的单播路由进行RPF检查,具体包括:在与RPF检查相对应的单播路由同步失败之后,所述组播路由管理模块判断同步失败的单播路由是否为指定类型路由;如果为指定类型路由,则所述组播路由管理模块判断与所述单播路由具有相同组播源的其他单播路由中是否有激活的路由;如果有激活的路由,则所述组播路由管理模块利用所述激活的路由进行RPF检查;如果没有激活的路由,则所述组播路由管理模块利用自身备份的单播路由进行RPF检查。
所述组播路由管理模块备份与RPF检查相对应的单播路由,并标记自身备份的单播路由为指定类型路由,之后还包括:在与RPF检查相对应的单播路由同步成功之后,所述组播路由管理模块删除自身备份的单播路由,并删除指定类型路由的标记。
本发明实施例提供一种网络设备,该设备包括:
单播路由管理模块,用于在获知发生了单播路由同步时间大于预设时间的事件后,将单播路由会同步失败的信息通知给组播路由管理模块;
组播路由管理模块,用于在获知单播路由会同步失败的信息之后,备份与逆向路径转发RPF检查相对应的单播路由;以及,在与RPF检查相对应的单播路由同步失败之后,利用自身备份的单播路由进行RPF检查。
所述单播路由同步时间大于预设时间的事件包括:平滑重启GR事件或者主备倒换事件。
所述组播路由管理模块,进一步用于在备份与RPF检查相对应的单播路由之后,标记自身备份的单播路由为指定类型路由;以及,在与RPF检查相对应的单播路由同步失败之后,判断同步失败的单播路由是否为指定类型路由;如果是,则利用自身备份的单播路由进行RPF检查。
所述组播路由管理模块,进一步用于在备份与RPF检查相对应的单播路由后,标记自身备份的单播路由为指定类型路由;以及,在与RPF检查相对应的单播路由同步失败之后,判断同步失败的单播路由是否为指定类型路由;如果为指定类型路由,则判断与所述单播路由具有相同组播源的其他单播路由中是否有激活的路由;如果有激活的路由,则利用所述激活的路由进行RPF检查;如果没有激活的路由,则利用自身备份的单播路由进行RPF检查。
所述组播路由管理模块,进一步用于在备份与RPF检查相对应的单播路由,并标记自身备份的单播路由为指定类型路由后,在与RPF检查相对应的单播路由同步成功之后,删除自身备份的单播路由,并删除指定类型路由的标记。
与现有技术相比,本发明实施例至少具有以下优点:本发明实施例中,当发生单播路由同步时间大于预设时间的事件后,即使由于单播路由同步时间过长导致单播路由同步失败,也可以避免RPF检查失败。
具体实施方式
下面结合附图对本发明实施例进行详细描述。
本发明实施例提供一种逆向路径转发检查方法,该方法应用于包括单播路由管理模块(用于管理单播路由)和组播路由管理模块(用于管理组播路由)的网络设备(如路由器和交换机等)中,如图2所示,该方法包括:
步骤201,单播路由管理模块在获知发生了单播路由同步时间大于预设时间(可以根据实际经验值进行设置)的事件后,将单播路由会同步失败的信息通知给组播路由管理模块;其中,该单播路由同步时间大于预设时间的事件包括但不限于:GR(Graceful Restart,平滑重启)事件或者主备倒换事件。
本发明实施例中,通过对单播路由同步过程进行分析,可以分析出单播路由同步需要较长时间的事件,即可以获知单播路由同步时间大于预设时间的事件,且这些事件会使得单播路由由于同步时间过长导致单播路由同步失败,继而导致组播路由管理模块进行RPF检查失败。
具体的,通过对单播路由同步过程进行分析可以获知:网络设备在执行GR(GR是一种通过备份OSPF(Open Shortest Path First,开放式最短路径优先)配置信息,在协议重启或主备倒换时OSPF进行平滑重启,从邻居获得邻居关系,并对LSDB(Link State Data Base,链路状态数据库)进行同步,从而保证转发业务不中断的机制)或主备倒换时,会涉及大量路由的同步;即在GR过程或主备倒换过程中,单播路由同步需要较长时间,且会使得单播路由由于同步时间过长导致单播路由同步失败,因此单播路由管理模块可以确定GR事件或者主备倒换事件为单播路由同步时间大于预设时间的事件。
步骤202,组播路由管理模块在获知单播路由会同步失败的信息之后,备份与RPF检查相对应的单播路由(即RPF检查时需要使用的单播路由)。
具体的,由于单播转发过程与组播转发过程是两个转发平面,单播转发过程与组播转发过程的关系为:组播转发过程中需要使用单播路由表中的单播路由进行RPF检查;因此,在单播路由由于同步时间过长导致单播路由同步失败时,会影响到组播路由管理模块进行RPF检查的过程,从而会影响组播转发过程;基于此,组播路由管理模块在获知单播路由会同步失败的信息之后,需要备份与RPF检查相对应的单播路由,继而在与RPF检查相对应的单播路由同步失败之后,组播路由管理模块可以利用自身备份的单播路由进行RPF检查,以避免单播路由同步失败所造成的RPF检查失败。
步骤203,在与RPF检查相对应的单播路由同步失败之后,组播路由管理模块利用自身备份的单播路由进行RPF检查。
在本发明实施例的一种优选实施方式中,组播路由管理模块在备份与RPF检查相对应的单播路由之后,该组播路由管理模块还可以标记自身备份的单播路由为指定类型路由(该指定类型路由为用于进行RPF检查的单播路由)。
具体的,组播路由管理模块可以通过为自身备份的单播路由设置指定标志位,以标记该单播路由为指定类型路由,该指定标志位用于表示相应的单播路由处于繁忙状态,且设置该指定标志位表示需要利用相应的单播路由进行RPF检查;或者,组播路由管理模块可以为用于备份单播路由的路由表设置指定标识,以标记该路由表内的所有单播路由为指定类型路由,该指定标识用于表示路由表内的所有单播路由处于繁忙状态,且表示需要利用路由表内的所有单播路由进行RPF检查。
基于组播路由管理模块备份的单播路由以及标记单播路由为指定类型路由的信息,则组播路由管理模块利用自身备份的单播路由进行RPF检查的过程,具体包括但不限于如下方式:
方式一、在与RPF检查相对应的单播路由同步失败之后,组播路由管理模块判断同步失败的单播路由是否为指定类型路由;如果是,则组播路由管理模块利用自身备份的单播路由进行RPF检查;如果否,则组播路由管理模块不需要利用自身备份的单播路由进行RPF检查。
方式二、在与RPF检查相对应的单播路由同步失败之后,组播路由管理模块判断同步失败的单播路由是否为指定类型路由;如果为指定类型路由,则组播路由管理模块判断与标记为指定类型路由的单播路由具有相同组播源的其他单播路由中是否有激活的路由;如果有激活的路由,则组播路由管理模块利用激活的路由进行RPF检查;如果没有激活的路由,则组播路由管理模块利用自身备份的单播路由进行RPF检查;如果不是指定类型路由,则组播路由管理模块不需要利用自身备份的单播路由进行RPF检查。
方式三、在与RPF检查相对应的单播路由同步失败之后,单播路由管理模块将自身需要删除该单播路由的信息通知给组播路由管理模块;之后,该组播路由管理模块判断该单播路由是否为指定类型路由;如果不是指定类型路由,则该单播路由管理模块按照现有流程删除该单播路由(该过程在此不再赘述),且该组播路由管理模块不需要利用自身备份的单播路由进行RPF检查;如果为指定类型路由,则该组播路由管理模块判断与单播路由具有相同组播源的其他单播路由中是否有激活的路由;如果有激活的路由,则该组播路由管理模块利用激活的路由进行RPF检查;如果没有激活的路由,则该组播路由管理模块利用自身备份的单播路由进行RPF检查。
本发明实施例中,组播路由管理模块在备份与RPF检查相对应的单播路由,并标记自身备份的单播路由为指定类型路由之后,如果与RPF检查相对应的单播路由同步成功,则该组播路由管理模块还需要删除自身备份的单播路由,并删除该单播路由的指定类型路由的标记。
在主备倒换过程中,如果备份事件完成(即主设备备份了备设备上相关内容,备设备备份了主设备上相关内容),则说明主备倒换过程中的单播路由同步成功,组播路由管理模块需要删除自身备份的单播路由,并删除该单播路由的指定类型路由的标记;在GR过程中,如果邻居状态变成normal(正常)状态,则说明GR过程中的单播路由同步成功,组播路由管理模块需要删除自身备份的单播路由,并删除该单播路由的指定类型路由的标记。
在一种具体的实现方式中,利用组播路由管理模块中备份的单播路由进行RPF检查的过程,可以具体包括:
(1)对于路由器来说,由于进行软转发,因此所有的数据报文都会上送到CPU(Central Processing Unit,中央处理单元)进行处理;因此,在发生了单播路由同步时间大于预设时间的事件后,如果收到RPF检查失败的报文,则先从单播路由表中匹配单播路由,如果匹配到单播路由,则按照现有流程进行后续处理;如果未匹配到单播路由,则查看组播路由管理模块中保存的单播路由,如果匹配到单播路由,则按照现有流程进行后续处理。
(2)对于交换机来说,会对收到的数据报文进行RPF检查,且RPF检查失败的数据报文,默认情况下会丢弃(即不上送CPU进行处理),而本发明实施例中,通过配置使得将RPF检查失败的数据报文上送给CPU进行处理;因此在发生了单播路由同步时间大于预设时间的事件后,如果收到RPF检查失败的报文,则先从单播路由表中匹配单播路由,如果匹配到单播路由,则按照现有流程进行后续处理;如果未匹配到单播路由,则查看组播路由管理模块中保存的单播路由,如果匹配到单播路由,按照现有流程进行后续处理。
基于与上述方法同样的发明构思,本发明实施例中还提出了一种网络设备,如图3所示,该网络设备包括:
单播路由管理模块11,用于在获知发生了单播路由同步时间大于预设时间的事件后,将单播路由会同步失败的信息通知给组播路由管理模块;
组播路由管理模块12,用于在获知单播路由会同步失败的信息之后,备份与逆向路径转发RPF检查相对应的单播路由;以及,在与RPF检查相对应的单播路由同步失败之后,利用自身备份的单播路由进行RPF检查。
本发明实施例中,所述单播路由同步时间大于预设时间的事件包括:平滑重启GR事件或者主备倒换事件。
所述组播路由管理模块12,进一步用于在备份与RPF检查相对应的单播路由之后,标记自身备份的单播路由为指定类型路由;以及,在与RPF检查相对应的单播路由同步失败之后,判断同步失败的单播路由是否为指定类型路由;如果是,则利用自身备份的单播路由进行RPF检查。
所述组播路由管理模块12,进一步用于在备份与RPF检查相对应的单播路由后,标记自身备份的单播路由为指定类型路由;以及,在与RPF检查相对应的单播路由同步失败之后,判断同步失败的单播路由是否为指定类型路由;如果为指定类型路由,则判断与所述单播路由具有相同组播源的其他单播路由中是否有激活的路由;如果有激活的路由,则利用所述激活的路由进行RPF检查;如果没有激活的路由,则利用自身备份的单播路由进行RPF检查。
所述组播路由管理模块12,进一步用于在备份与RPF检查相对应的单播路由,并标记自身备份的单播路由为指定类型路由后,在与RPF检查相对应的单播路由同步成功之后,删除自身备份的单播路由,并删除指定类型路由的标记。
其中,本发明装置的各个模块可以集成于一体,也可以分离部署。上述模块可以合并为一个模块,也可以进一步拆分成多个子模块。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可以通过硬件实现,也可以借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
上述本发明序号仅仅为了描述,不代表实施例的优劣。
以上公开的仅为本发明的几个具体实施例,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。