发明内容
有鉴于此,本申请提供一种TRILL网络中组播路由表项更新方法和装置,在当前RB与组播树根之间的链路不可达时,能够快速重新计算有效的组播表项,保证多目的报文的正常转发。
为解决上述技术问题,本发明的技术方案是这样实现的:
一种多链接透明互联TRILL网络中组播路由表项更新方法,所述TRILL网络中任一组播树包括多个路由桥RB,所述方法包括:
任一所述RB检测到自身与所述组播树的组播树根之间的链路可达时,使用所述组播树根生成最短路径优先SPF树,记录该组播树根到自身的路径信息,并遍历所述SPF树,使用所述组播树根生成并更新组播路由表项;
所述RB检测到自身与所述组播树的组播树根之间的链路不可达时,使用所述记录的路径信息中与自身链路可达的RB作为临时树根生成SPF树,遍历所述使用临时树根生成的SPF树,使用所述组播树根生成并更新组播路由表项。
一种装置,可应用于多链接透明互联TRILL网络中任一组播树中的任一路由桥RB上,所述装置包括:检测单元、处理单元、记录单元;
所述检测单元,用于检测本RB与所述组播树中的组播树根之间的链路是否可达;
所述处理单元,用于当所述检测单元检测到本RB与所述组播树的组播树根之间的链路可达时,使用所述组播树根生成最短路径优先SPF树,并遍历所述SPF树使用所述组播树根生成并更新组播路由表项;当所述检测单元检测到本RB与所述组播树的组播树根之间的链路不可达时,使用所述记录的路径信息中与自身链路可达的RB作为临时树根生成SPF树,并遍历所述使用临时树根生成的SPF树使用所述组播树根生成并更新组播路由表项;
所述记录单元,用于当所述处理单元使用所述组播树根生成SPF树时,记录所述组播树根到本RB的路径信息。
综上所述,本申请通过检测到与组播树根之间的链路不可达时,根据记录的路径信息选择一个与所述组播树根距离最近,且与自身链路可达的RB作为临时树根生成SPF树,并遍历该SPF树使用所述组播树根生成并更新组播路由表项。在当前RB与组播树根之间的链路不可达时,能够快速重新计算有效的组播表项,保证多目的报文的正常转发。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本发明所述方案作进一步地详细说明。
本发明实施例中提出一种TRILL网络中组播路由表项更新方法,该TRILL网络中任一组播树包括多个RB,所述任一BR对目的报文转发方法具体如下文所述,在当前RB与组播树根之间的链路不可达时,能够快速重新计算有效的组播表项,保证多目的报文的正常转发。
参见图2,图2为本发明实施例中组播路由表项更新方法流程图。具体步骤为:
步骤201,任一RB检测自身与自身所在组播树的组播树根之间的链路是否可达。
步骤202,当所述RB检测到自身与所述组播树根之间的链路可达时,使用所述组播树根生成最短路径优先(SPF)树,记录该组播树根到自身的路径信息。
本步骤中当检测到路径可达时同现有实现一致,使用组播树中的组播树根生成SPF树,这里不再详细赘述。其中记录的组播树根到自身的路径信息包括所述组播树根沿着生成的所述SPF树到达自身所经过的各RB的RB标识。其中,RB标识为RB的系统ID或昵称(Nickname)。
步骤203,所述RB遍历所述SPF树使用所述组播树根生成并更新组播路由表项。
步骤204,当所述RB检测到自身与所述组播树根之间的链路不可达时,使用所述记录的路径信息中与自身链路可达的RB作为临时树根生成SPF树。
本步骤当检测到链路不可达时,使用记录的路径信息中与自身链路可达的原则选择一个RB作为临时树根,并使用该临时树根生成SPF树。较佳地,在具体实现时可以在记录的路径信息中与自身链路可达的RB中选择距离所述组播树根最近的RB作为临时树根。使生成的SPF树中包含最多的可达的RB,且生成的SPF树与使用所述组播树根生成的SPF树最相似,使遍历该SPF树生成的组播路由表项,在更新路由表项时变动最小。
在具体实现时,还可记录临时树根到自身的路径信息,该路径信息包括所述临时树根沿着所述使用临时树根生成的SPF树到达自身所经过的各RB的RB标识。如果在当前的TRILL子网中再次检测到与临时树根之间的链路不可达时,可以根据记录的路径关键信息重新生成SPF树和组播路由表项,过程类似,这里不再一一赘述。
步骤205,所述RB遍历所述使用临时树根生成的SPF树使用所述组播树根生成并更新组播路由表项。
TRILL网络中,RB生成的组播路由表项与组播树根相关联,多目的报文中携带有组播树根的信息。RB在接收到多目的报文后,根据该报文中携带的组播树根的信息,通过查找对应的组播路由表项进行转发。
本步骤中生成的路由表项仍然以原组播树根生成,但是遍历的SPF树为使用临时树根生的SPF树,这样能够重新计算出有效的组播路由表项,在LSP老化前即可进行多目的报文的正常转发。
本发明实施例在上述步骤201中,RB可以利用双向转发检测(BidirectionalForwarding Detection,BFD)会话来检测自身与自身所在组播树的组播树根之间的链路是否可达,当然具体实现中并不局限于此,所有用于进行链路连通性检测的方式均在本发明的保护范围之内,如通过ARP(Address Resolution Protocol,地址解析协议)对链路进行故障检测等。本发明实施例中,还可以利用路由表项来进行上述链路检测,RB通过确定本地的单播路由表项中是否存在自身到所述组播树的组播树根的单播路由表项,来判断自身与所述组播树根之间的链路是否可达,此时上述步骤201具体可以包括以下步骤:
步骤A,任一所述RB使用自身作为单播树根生成SPF树,并遍历所述SPF树使用自身作为单播树根生成单播路由表项。
TRILL网络中的任意节点、链路的状态变化,都可能触发步骤A的执行。本步骤A中生成SPF树以及单播路由表项同现有实现,这里不再详细赘述。
步骤B,所述RB确定所述单播路由表项中是否存在自身到所述组播树的组播树根的单播路由表项,如果是,执行步骤C;否则,执行步骤D。
本步骤中所述RB在本地生成的单播路由表项中查找是否存在自身到所述组播树根的单播路由表项来确定自身到所述组播树根之间的链路是否可达,因为如果所述RB与所述组播树根之间的链路不可达时,无法计算出所述RB到所述组播树根的单播路由表项。
步骤C,所述RB确定自身与所述组播树根之间的链路可达。
本步骤中所述RB确定自身与所述组播树根之间的链路可达时,该方法进一步包括:所述RB使用所述组播树根生成SPF树,并遍历所述使用所述组播树根生成的SPF树使用所述组播树根生成组播路由表项。
步骤D,所述RB确定自身与所述组播树根之间的链路不可达。
本发明实施例在判断组播树根是否可达时,可以直接基于本地已生成的单播路由表项执行步骤A~D所述的判断。当然,本发明实施例也可以在判断组播树根是否可达时,首先执行上述步骤A以更新单播路由表项,然后再执行步骤B~D所述的判断。由上技术方案可见,本发明实施例在不需要增加任何交互报文的情况下,通过对生成的单播路由表项内容的检查,就能快速地确定当前RB同自身所在组播树的组播树根之间的链路是否可达。
下面参见附图,结合具体实施例详细说明本发明是如何实现组播路由表项更新的。
参见图3,图3为本发明具体实施例中TRILL网络的组网结构示意图。图3中假设默认使用RB1一个组播树根,RB1和RB2之间链路故障,以RB8检测到自身到RB1链路不可达时如何进行组播路由表项更新为例。
当RB8和RB1链路可达时,生成SPF树和组播路由表项同现有实现,并记录RB1到RB8的路径信息,记录的路径信息包括RB1、RB2、RB4的标识。当RB2和RB1之间的链路down时,RB8检测到自身到RB1的路径不可达时,重新生成SPF树以及组播路由表项。
在生成SPF树时使用RB2作为临时树根,使得RB2、RB4、RB5、RB8、RB9、RB10、RB14、RB15组成的TRILL子网中仍能生成可用的组播路由表项;在生成组播路由表项中仍使用RB1作为组播树根,但是遍历当前使用RB2生成的SPF树,以使生成并更新的组播路由表项有效,在当前的TRILL子网中指导多目的报文的正常转发。
上述实现方式,也可选择RB4作为临时树根实现,但是选择RB2作为临时树根生成的SPF树包括的RB更多,树的形状与使用RB1生成的SPF树更相似,最终生成的有效的组播路由表项更多,具体实现时可以根据具体需要和网络的实际配置进行选择。若RB2检测到自身到RB1链路不可达时,由于RB2到RB1的路径信息仅包括RB1、RB2的标识,因此,选择RB2作为临时树根生成SPF树。
当RB3和RB7之间的链路down时,以RB12如何进行组播路由更新为例。
当RB12和RB1之间的链路可达时,RB12上生成SPF树和组播路由表项同现有实现,并记录RB1到RB12的路径信息包括RB1、RB3、RB7、RB12的标识。当RB3和RB7之间的链路down时,RB12检测到自身到RB1的路径不可达时,重新生成SPF树以及组播路由表项。
在生成SPF树时使用RB7作为临时树根,使得RB7、RB12、RB13、RB16、RB17组成的TRILL子网中仍能生成可用的组播路由表项;在生成组播路由表项中仍使用RB1作为组播树根,但是遍历当前使用RB7生成的SPF树,以使生成的组播路由表项有效,在当前的TRILL子网中指导多目的报文的正常转发。
本发明具体实施例中,生成新的组播路由表项时,与当前芯片上的组播路由表项进行相比,将新生成的组播路由表项下发到芯片上更新原有的组播路由表项。具体实现方式同现有实现,这里不再详细赘述。
本发明具体实施例中基于同样的发明构思,还提出一种装置,可应用于TRILL网络中任一组播树中的任一RB上。参见图4,图4为可用于组播路由表项更新的装置的结构示意图。该装置包括:检测单元401、处理单元402、记录单元403。
检测单元401,用于检测本RB与所述组播树中的组播树根之间的链路是否可达。
处理单元402,用于当检测单元401检测到本RB与所述组播树的组播树根之间的链路可达时,使用所述组播树根生成最短路径优先SPF树,并遍历所述SPF树使用所述组播树根生成并更新组播路由表项;当检测单元401检测到本RB与所述组播树的组播树根之间的链路不可达时,使用记录单元403记录的路径信息中与自身链路可达的RB作为临时树根生成SPF树,并遍历所述使用临时树根生成的SPF树使用所述组播树根生成并更新组播路由表项。
记录单元403,用于当处理单元402使用所述组播树根生成SPF树时,记录所述组播树根到本RB的路径信息。
较佳地,
所述临时树根为所述记录的路径信息中距离所述组播树根最近的RB。
较佳地,
记录单元403,记录的路径信息包括所述组播树根沿着所述SPF树到达自身所经过的各RB的RB标识。
较佳地,
所述RB标识为RB的系统ID或昵称Nickname。
较佳地,
检测单元,用于确定本地的单播路由表项中是否存在本RB到所述组播树的组播树根的单播路由表项,如果是,确定本RB与所述组播树根之间的链路可达;否则,确定本RB与所述组播树根之间的链路不可达。
上述实施例的单元可以集成于一体,也可以分离部署;可以合并为一个单元,也可以进一步拆分成多个子单元。
综上所述,本发明具体实施例中通过检测到与组播树根之间的链路不可达时,根据记录的路径信息选择一个与所述组播树根距离最近,且与自身链路可达的RB作为临时树根生成SPF树,并遍历该SPF树使用所述组播树根生成并更新组播路由表项。在当前RB与组播树根之间的链路不可达时,能够快速重新计算有效的组播表项,保证多目的报文的正常转发
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。