本发明涉及网络技术领域,尤其涉及一种基于asic的聚合链路快速收敛方法、转发报文的方法及装置。
背景技术:
随着数据通信技术的发展,越来越多的网络设备采用链路聚合组(linkaggregationgroup,lag)方式进行数据通信。其中,链路聚合组是通过将多条链路聚合起来形成的带宽更大的逻辑链路。
在交换设备中,链路聚合是一种增加链路带宽,提高设备之间可靠性通信的技术。它将一组具有相同属性的物理端口,抽象成一个逻辑端口;该逻辑链路的带宽为各物理链路的带宽之和;链路聚合(lag)可以捆绑任何相关的端口,也可以随时取消设置,这样提供了很高的灵活性;lag可以提供负载均衡能力以及系统容错,由于lag实时平衡各个交换设备端口和服务器接口的流量,一旦某个端口出现故障,它会自动把故障端口从lag组中撤消,进而重新分配各个lag端口的流量,从而实现系统容错,为交换设备之间的可靠性通信提供保障。
对于框式交换设备或分布式的堆叠系统,当跨板聚合的一个成员端口链路断掉(down)时,报文如何快速的从这条down的物理链路切换到连通的物理链路上(也即聚合链路收敛),减少交换设备之间的报文丢失,这是衡量链路聚合的一个重要指标。
链路聚合成员一般由框上不同线卡的端口或堆叠设备的成员交换设备上端口组成,跨板聚合实现了数据流量的可靠传输,链路聚合成员跨线卡和堆叠成员交换设备的方式也实现了链路间的设备级相互备份。
交换设备端口经常会由于链路故障,人为插拔等原因导致端口链路断掉down,为了在端口down之后能迅速通知上层做出相应的处理,需要相应的端口检测的机制,目前主流设备都使用中断机制和cpu轮询达到快速检测的目的。
当聚合的一个端口链路断掉down时,端口所在单板会把down的端口从本地聚合组中删除,然后将端口链路down消息通知协议模块,协议模块再通过板间通信通知到主控板卡;然后主控板卡通过板间消息通知所有的业务板卡的聚合模块,线卡上的聚合模块然后再通知刷新交换芯片中的聚合表项,将该down的端口从聚合成员表中删除。
上述方法大部分时间花费在软件业务模块的处理以及业务板卡和主控板卡之间的交互过程。虽然能达到链路切换的要求,但切换时间大约在几百毫秒。对于电信级设备,要求切换时间不能高于50ms,因此这种方法是远远不能满足电信级设备的要求。
技术实现要素:
为了实现聚合链路的快速收敛,以满足电信系设备的通信响应要求,本发明提供了一种基于asic的聚合链路快速收敛方法,应用于交换设备,交换设备的多个链路聚合成一个链路聚合组,形成多个链路的物理端口即为链路聚合组的成员端口,每一成员端口均配置其它成员端口之一作为备份端口,所述方法包括:
响应于任一所述成员端口出现故障,交换设备的交换芯片基于出现故障的成员端口的备份端口将聚合链路切换至备份链路,其中,备份链路由备份端口和其它状态正常的成员端口建立。
可选地,所述方法包括:检测成员端口的状态;于储存于交换芯片的链路聚合成员表中将出现故障的成员端口的故障标志置位。
可选地,所述方法包括:检测成员端口的状态;于储存于交换芯片的链路聚合成员表中取消恢复正常状态的所述成员端口的故障标志。
可选地,所述方法包括步骤:
s1:扫描各端口状态,判断是否有链路聚合组中的成员端口的状态由up变down,若是,则进入s2,若否,则重复s1;以及
s2:触发交换芯片,于链路聚合成员表中将变为down状态的成员端口的故障标志置位。
可选地,每一成员端口的备份端口均不相同。
本发明提供了一种转发报文方法,基于上述基于asic的聚合链路快速收敛方法转发报文,所述方法包括:
选择用于转发报文的成员端口;
检测链路聚合成员表中,成员端口的故障标志是否为1,若是,且成员端口的备份端口状态正常,则通过备份端口转发所述报文。
可选地,所述方法包括:若所述备份端口的故障标志也为1,则进一步检测所述备份端口的备份端口的故障标志是否为1,直至寻找到可以转发所述报文的所述成员端口。
本发明提供了一种转发报文方法,基于上述基于asic的聚合链路快速收敛方法转发报文,所述方法包括:
s01:选择用于转发报文的成员端口;
s02:判断成员端口的故障标志是否为1,若是,则进入s03,若否,转发报文;
s03:判断当前成员端口的备份端口是否有效,若是,则进入s04,若否,丢弃报文;
s04:判断当前成员端口的故障标志是否为1,若是,返回执行s03,若否,转发报文。
可选地,所述方法还包括,若返回执行s03的递归跳数超过预设阈值,则丢弃报文。
本发明提供了一种转发报文方法,基于上述基于asic的聚合链路快速收敛方法转发报文,所述方法包括:
遍历检测端口的链路状态,获取链路状态改变的端口信息;
若端口为链路聚合组的成员端口,则根据端口的状态变更,更新链路聚合成员表;
基于链路聚合组中各成员端口的状态,转发报文。
本发明提供了一种转发报文装置,应用上述转发报文方法转发报文。
本发明的技术效果为:将原来需要由cpu参与的聚合链路切换方法,改为直接由交换芯片来实现。通过基于asic的联动技术,在检测到端口故障后直接按照用户预先配置的备份端口通过链路聚合成员表转发。不需要通过cpu刷新聚合成员表。将时间要求较高的操作改由交换芯片处理,从而缩短了聚合链路切换时间,也降低了系统cpu的开销。
附图说明
图1是本申请实施例中所提供的堆叠系统及交换设备的结构示意图;
图2是本申请实施例中所提供的交换芯片的链路聚合成员变的结构示意图;
图3是本申请实施例中所提供的聚合链路快速收敛方法的流程示意图;
图4是本申请实施例中所提供的转发报文方法的流程示意图;
图5是本申请实施例中所提供的另一报文转发方法的流程示意图。
具体实施方式
实施例
本实施例提供了一种基于asic的聚合链路快速收敛方法,为了便于说明,如图1所示,本实施例包括两台链路聚合的交换设备的堆叠系统作为示例,两台设备分别为第一交换设备1和第二交换设备2,第一交换设备1具有第一端口11、第二端口12以及第三端口13,第二交换设备2具有第四端口21,第一交换设备1和第二交换设备2链路聚合形成的链路聚合组3共包括三个成员端口:第一交换设备1的第二端口12、第三端口13以及第二交换设备的第四端口21。
当链路聚合组3中的某一成员端口(例如第二端口12)出现故障时,为了使报文指定转发端口为故障端口时,仍能正常转发报文,本实施例中,为每一成员端口设置了备份端口,具体地,如图2所示,第二端口12的备份端口为第三端口13,第三端口13的备份端口为第四端口21,第四端口的备份端口为第二端口13,也即,每一成员端口的备份端口各不相同,且均为链路聚合组3的成员端口。
如此设置,可以使得某一成员端口出现故障时,指定该故障端口的报文可以经备份端口转发,进一步地,该备份端口可以与其它状态正常的成员端口建立新的链路。
可选地,第一交换设备1还包括交换芯片14,交换芯片14存储有链路聚合成员表,当接收到经链路聚合组3转发报文的指令时,交换芯片14能够基于链路聚合组id,找到链路聚合成员表,并按哈希值或者其他方式选定转发报文的成员端口。
可选地,本实施例中,交换芯片14能够在成员端口出现故障时将其故障标志置位,并在成员端口恢复正常时取消其故障标志。
如此设置,可以在交换芯片层面快速识别并标记成员端口的状态。
需要说明的是,本实施例中,堆叠系统仅作为基于asic的聚合链路快速收敛方法的说明示例,下述方法也适用于其它链路聚合的网络系统。
本实施例所提供的基于asic的聚合链路快速收敛方法,响应于任一成员端口出现故障,交换芯片14能够基于出现故障的成员端口的备份端口将聚合链路自当前链路切换至备份链路,以实现聚合链路的快速收敛。
其中,备份链路由备份端口和其它状态正常的成员端口建立。
和现有技术中,通过中断机制或轮询实现聚合链路的收敛的方式相比,将时间要求较高的操作改由交换芯片14处理,从而缩短了聚合链路故障切换时间,也即自当前链路切换至备份链路的时间,同时也降低了系统cpu的开销。
可选地,上述方法还包括:检测链路聚合组3中成员端口的状态,于链路聚合成员表中将出现故障的成员端口的故障标志置位,也即将该成员端口的故障标志置为1。
可选地,上述方法还包括,检测链路聚合组3中的成员端口的状态;于链路聚合成员表中取消恢复正常状态的成员端口的故障标志。
可选地,如图3所示,上述方法还包括:
s1、扫描各端口状态,判断是否有链路聚合组3中的成员端口的状态由up变down,若是,则进入s2,若否,则重复s1;以及
s2、触发交换芯片14,于链路聚合成员表中将变为down状态的成员端口的故障标志置位。
如此设置,能够使得交换芯片14快速获知各成员端口的状态并标记故障端口。
需要说明的是,本实施例中,成员端口的状态up代表其处于正常状态,成员端口的状态down代表其发生故障。
本实施例提供了一种转发报文方法,基于上文中所述的基于asic的聚合链路快速收敛方法转发报文,所述方法包括:
选择用于转发报文的成员端口;
检测链路聚合成员表中,成员端口的故障标志是否为1,若是,且成员端口的备份端口状态正常,则通过备份端口转发所述报文。
可选地,若备份端口的故障标志也为1,则进一步检测备份端口的备份端口的故障标志是否为1,直至寻找到可以转发所述报文的成员端口。
本实施例提供了一种转发报文方法,如图4所示,基于上文中所述的基于asic的聚合链路快速收敛方法转发报文,所述方法包括:
s01:选择用于转发报文的成员端口;
s02:判断成员端口的故障标志是否为1,若是,则进入步骤s03,若否,转发报文;
s03:判断当前成员端口的备份端口是否有效,若是,则进入s04,若否,丢弃报文;
s04:判断当前成员端口的故障标志是否为1,若是,返回执行s03,若否,转发报文。
可选地,所述方法还包括,若返回执行s03的递归跳数超过预设阈值,则丢弃报文。
本实施例中,每一成员端口的备份端口均不相同,更为具体地,各成员端口首尾相连形成一环形备份链路,其中任一成员端口出现故障时,若该成员端口被选定为用于转发报文,则沿该环形备份链路跳转至其备份端口,若该备份端口故障,则继续沿该环形备份链路跳转至该备份端口的备份端口,直至寻找到状态正常的成员端口以转发报文。若返回执行s03的递归跳数超过预设阈值,以成员端口的数量为n为例,则递归跳数阈值设置为n-1,当递归运算的跳数阈值超过n-1时,也即,若全部所述成员端口的故障标志均为1,则放弃报文。
下面结合图2和图4对上述转发报文的方法进行具体说明,以用于转发报文的成员端口为第二端口12为例,判断第二端口12的故障标志是否为1,若否,则转发报文,若是,则判断第二端口12的备份端口,也即第三端口13是否有效,若否,则丢弃报文,若是,则进一步检测第三端口13的故障标志是否为1,此时,第三端口13即为上文中所述的当前成员端口,若否,则转发报文,若是,则进一步检测第三端口13的备份端口,也即第四端口21是否有效,此时,第四端口21即为当前成员端口,若否,则丢弃报文,若是,进一步检测第四端口21的故障标志是否为1,若否,转发报文,若是,丢弃报文。
由上述方法可知,若不设定上述递归运算的跳数阈值,当全部成员端口故障时,上述方法将进入无限循环,为了避免重复判断,本实施例中,将递归运算的跳数阈值设置为2,也即,由于第四端口21的备份端口第二端口12已经在初始被判定为故障端口,因此,当上述转发报文的方法运行至获知第四端口21的故障标志为1时,则放弃报文,而不再返回执行上述步骤s03。
本实施例提供了一种转发报文方法,如图5所示,基于上文中所述的基于asic的聚合链路快速收敛方法转发报文,所述方法包括:
遍历检测端口的链路状态,获取链路状态改变的端口信息;
若端口为所述链路聚合组的成员端口,则根据端口的状态变更,更新链路聚合成员表;
基于所述链路聚合组中各成员端口的状态,转发报文。
仍以图1中的堆叠系统为例,由于堆叠系统中还可能存在成员端口以外的其它端口,该转发报文方法与其它报文转发方法的区别在于,遍历检测堆叠系统的所有端口的链路状态,并根据成员端口的状态变更更新链路聚合成员表,进一步的,基于更新后的链路聚合成员表,以各成员端口的状态,转发报文,也即,在接收到转发报文指令前,提前更新链路聚合成员表,以在上述转发报文的方法的基础上,进一步提到链路收敛速度。
由于以上整个过程,软件只需要预先配置链路聚合组成员端口之间的备份关系。成员端口的故障检测和收敛都不需要cpu参与,由此,实现了由交换芯片14查找并选择成员端口转发。
本实施例还提供了一种报文转发装置,能够应用上述转发报文方法转发报文,具体地,其可以为上文中所述的第一交换设备1或堆叠系统。
本发明的技术内容及技术特征已揭示如上,然后熟悉本领域的技术人员仍可基于本发明的教示及揭示而作种种不背离本发明精神的替换及修饰,因此,本发明保护范围不限于实施例所揭示的内容,而应包括各种不背离本发明的替换及修饰,并为本专利申请的权利要求所涵盖。
1.一种基于asic的聚合链路快速收敛方法,应用于交换设备,所述交换设备的多个链路聚合成一个链路聚合组,形成所述多个链路的物理端口即为所述链路聚合组的成员端口,每一所述成员端口均配置其它所述成员端口之一作为备份端口,其特征在于,所述方法包括:
响应于任一所述成员端口出现故障,所述交换设备的交换芯片基于出现故障的所述成员端口的备份端口将所述聚合链路切换至备份链路,其中,所述备份链路由所述备份端口和其它状态正常的所述成员端口建立。
2.如权利要求1所述的基于asic的聚合链路快速收敛方法,其特征在于,所述方法包括:
检测所述成员端口的状态;
于储存于所述交换芯片的链路聚合成员表中将出现故障的所述成员端口的故障标志置位;以及
于储存于所述交换芯片的链路聚合成员表中取消恢复正常状态的所述成员端口的故障标志。
3.如权利要求1所述的基于asic的聚合链路快速收敛方法,其特征在于,包括步骤:
s1:扫描各端口状态,判断是否有所述链路聚合组中的成员端口的状态由up变down,若是,则进入s2,若否,则重复s1;以及
s2:触发所述交换芯片,于链路聚合成员表中将变为down状态的所述成员端口的故障标志置位。
4.如权利要求1-3中任一项所述的基于asic的聚合链路快速收敛方法,其特征在于,每一所述成员端口的所述备份端口均不相同。
5.一种转发报文方法,基于权利要求1-4中任一项所述的基于asic的聚合链路快速收敛方法转发报文,其特征在于,所述方法包括:
选择用于转发报文的成员端口;
检测所述链路聚合成员表中,所述成员端口的故障标志是否为1,若是,且所述成员端口的所述备份端口状态正常,则通过所述备份端口转发所述报文。
6.如权利要求5所述的转发报文方法,其特征在于,所述方法包括:若所述备份端口的故障标志也为1,则进一步检测所述备份端口的备份端口的故障标志是否为1,直至寻找到可以转发所述报文的所述成员端口。
7.一种转发报文方法,基于权利要求1-4中任一项所述的基于asic的聚合链路快速收敛方法转发报文,其特征在于,所述方法包括:
s01:选择用于转发报文的所述成员端口;
s02:判断所述成员端口的故障标志是否为1,若是,则进入s03,若否,转发报文;
s03:判断当前成员端口的所述备份端口是否有效,若是,则进入s04,若否,丢弃报文;
s04:判断所述当前成员端口的故障标志是否为1,若是,返回执行s03,若否,转发报文。
8.如权利要求7所述的转发报文方法,其特征在于,所述方法还包括,若返回执行s03的递归跳数超过预设阈值,则丢弃报文。
9.一种转发报文方法,基于权利要求1-4中任一项所述的基于asic的聚合链路快速收敛方法转发报文,其特征在于,所述方法包括:
遍历检测端口的链路状态,获取链路状态改变的端口信息;
若所述端口为所述链路聚合组的成员端口,则根据所述端口的状态变更,更新链路聚合成员表;
基于所述链路聚合组中各成员端口的状态,转发报文。
10.一种转发报文装置,其特征在于,应用权利要求5-9中任一项所述的转发报文方法转发报文。
技术总结