一种流量转发方法及装置与流程

文档序号:11064761阅读:580来源:国知局
一种流量转发方法及装置与制造工艺

本发明涉及互联网技术领域,特别涉及一种流量转发方法及装置。



背景技术:

以传统WLAN(Wireless Local Area Networks,无线局域网)的单AC(Access Controller,接入控制器)+FitAP(Access Point,接入点)架构中,如图1所示,在AC+FitAP组网下,可以将至少两台AC100通过IRF链路200连接建立IRF(Intelligent Resilient Framework,智能弹性架构)系统,进而将这至少两台AC100虚拟化为一台AC,也就是IRF AC。另外,各台AC100的业务端口通过聚合的方式与对端的交换机300连接,这里,聚合在一起的业务端口称为聚合口,其中,每一业务端口为该聚合口的成员端口;另外,聚合口又分为上行聚合口和下行聚合口,上行聚合口对应的链路为上行聚合链路400,下行聚合口对应的链路为下行聚合链路500,各台AC100通过下行聚合口连接AP600(接入设备),通过上行聚合口连接外部网络。

在该IRF系统中进行流量转发时,AC接收到的流量分为上行流量和下行流量,其中,上行流量为:来自客户端,经AP通过上行聚合口的成员端口发送给外部网络的流量;下行流量为:来自外部网络通过AP对应的下行聚合口的成员端口,经该AP发送给客户端的流量。若AC1接收到一条上行/下行的流量,该AC1不是该流量对应的客户端的上线AC,也就是,该AC1是该流量对应的客户端的非上线AC,则AC1需要通过IRF链路将该流量发送给该客户端的上线AC2,由AC2将该流量通过上行聚合口或下行聚合口转发出去。

在实际IRF系统中,对端的交换机按照负载均衡的原则将流量接入一个AC中,受负载均衡因素的影响,流量接入各个AC的几率是相等的。这种情况下,当IRF系统中的流量较大时,将有大量的流量需要通过IRF链路转发至对应的上线AC,使得流量的转发依赖于IRF链路的带宽,降低了IRF AC的整机转发性能。



技术实现要素:

本发明实施例公开了一种流量转发方法及装置,以提高IRF AC的转发性能。

为达到上述目的,本发明实施例公开了一种流量转发方法,应用于IRF系统中的AC,所述方法包括:

接收针对客户端的流量;

当所述AC是所述客户端的非上线AC时,判断本地是否存在针对所述流量的转发表项;

如果存在,根据所述转发表项,转发所述流量;

如果不存在,将所述流量重定向至所述客户端的上线AC,以使所述客户端的上线AC根据所述流量生成针对所述流量的转发表项,并根据所述转发表项转发所述流量,将所述转发表项发送至第一非上线AC;所述第一非上线AC为:所述客户端的上线AC对应的上行聚合口或下行聚合口的成员端口所在的其他AC。

为达到上述目的,本发明实施例还公开了一种流量转发装置,应用于IRF系统中的AC,所述装置包括:

接收单元,用于接收针对客户端的流量;

判断单元,用于当所述AC是所述客户端的非上线AC时,判断本地是否存在针对所述流量的转发表项;

转发单元,用于在所述判断单元的判断结果为是的情况下,根据所述转发表项,转发所述流量;

重定向单元,用于在所述判断单元的判断结果为否的情况下,将所述流量重定向至所述客户端的上线AC,以使所述客户端的上线AC根据所述流量生成针对所述流量的转发表项,并根据所述转发表项转发所述流量,将所述转发表项发送至第一非上线AC;所述第一非上线AC为:所述客户端的上线AC对应的上行聚合口或下行聚合口的成员端口所在的其他AC。

本发明实施例中,AC在接收到针对客户端的流量后,若该AC是该客户端的非上线AC,当该AC上存在该流量对应的转发表项时,可以根据该转发表项,转发该流量;当该AC上不存在该流量对应的转发表项时,则将该流量重定向至该客户端的上线AC,该客户端的上线AC根据该流量,生成该流量对应的转发表项,并发送给其他第一非上线AC。可见,客户端的上线AC和非上线AC上都可以存储针对该客户端的流量的转发表项,并且根据转发表项转发流量,降低了流量的转发对IRF链路的带宽的依赖,提高了IRF AC的转发性能。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为IRF系统结构示意图;

图2为本发明实施例提供的一种流量转发方法的一种流程示意图;

图3为本发明实施例提供的一种流量转发方法的另一种流程示意图;

图4为本发明实施例提供的一种流量转发装置的一种结构示意图;

图5为本发明实施例提供的一种流量转发装置的另一种结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

下面通过具体实施例,对本发明进行详细说明。

参考图2,图2为本发明实施例提供的一种流量转发方法的一种流程示意图,该方法可以应用于IRF系统中的任一AC,下面以AC1为例,该方法包括:

S201:接收针对客户端的流量;

这里,针对客户端的流量可以理解为,从外部网络发送至客户端的流量;也可以理解为,从客户端发送至外部网络的流量。

值得一提的是,无论是从外部网络发送至客户端的流量,还是从客户端发送至外部网络的流量,都需要经过接入设备。具体地,从外部网络发送至客户端的流量的转发路径为:外部网络侧将流量发送给AC1,AC1将流量通过交换机发送给接入设备(可以是AP),接入设备再将流量发送给客户端;从客户端发送至外部网络的流量的转发路径为:客户端将流量发送给接入设备,接入设备通过交换机将流量发送给AC1,AC1再将流量发送给外部网络侧。

S202:当AC1是所述客户端的非上线AC时,判断本地是否存在针对所述流量的转发表项;如果存在,执行S203;否则,执行S204;

实际应用中,交换机按照负载均衡的原则将流量接入一个AC中,流量接入各个AC的几率是相等的,因此,接收流量的AC不一定是该流量对应的客户端的上线AC。

为了避免非上线AC接收的流量全部通过IRF链路转发给上线AC,由上线AC处理流量,进而降低了IRF AC的转发性能的问题,可以在非上线AC上预先存储针对各条流量的转发表项。基于此,当AC1是客户端的非上线AC时,可以先检查本地是否存储有针对该流量的转发表项,如果存储有,则可以直接执行S203,根据该转发表项,转发流量,而不必通过IRF链路将该流量通转发给该客户端的上线AC。

S203:根据所述转发表项,转发所述流量;

这里,转发表项中可以包括:封装信息、源地址信息和目的地址信息;封装信息可以包括:封装协议类型、接入设备信息等。其中,封装协议类型可以为:CAPWAP(Control And Provisioning of Wireless Access Points,无线接入点的控制和配置)协议等;接入设备信息可以包括:CAPWAP隧道信息、下一跳端口信息等;源地址信息可以包括:源IP(Internet Protocol,网络协议)地址、源端口信息等;目的地址信息可以包括:目的IP地址、目的端口信息等。

上述AC1在根据转发表项,转发流量时,若该流量为上行流量,根据该转发表项中包括的源地址信息和目的地址信息,确定第一转发路径;另外,根据该转发表项中包括的封装信息,解封装该流量的外层封装;通过该AC1的上行聚合口的成员端口,按照确定的第一转发路径转发解封装后的该流量;

若该流量为下行流量,根据该转发表项包括的源地址信息和目的地址信息,确定第二转发路径;另外,根据转发表项包括的封装信息,封装该流量;最后,通过该AC1的下行聚合口中对应客户端的成员端口,按照确定的第二转发路径转发封装后的该流量。

值得一提的是,客户端是通过接入设备在AC上线的,基于该情况,上述对应客户端的成员端口可以理解为,对应接入设备的成员端口。

S204:将所述流量重定向至所述客户端的上线AC,以使所述客户端的上线AC根据所述流量生成针对所述流量的转发表项,并根据所述转发表项转发所述流量,将所述转发表项发送至第一非上线AC。

这里,第一非上线AC为:客户端的上线AC对应的上行聚合口或下行聚合口的成员端口所在的其他AC。其中,其他AC包括AC1。

若AC1上没有存储针对该流量的转发表项,则可以认为是首次处理该流量,将该流量重定向至客户端的上线AC,该客户端的上线AC在首次接收到该流量后,可以根据该流量生成针对该流量的转发表项,进而根据生成的转发表项转发该流量,并将该转发表项发送至第一非上线AC。当AC1接收到客户端的上线AC发送的转发表项时,存储该转发表项。这样,当AC1再次接收到该流量时,可以直接根据该转发表项转发流量,而不必通过IRF链路将该流量通转发给客户端的上线AC,提高了IRF AC的转发性能。

第一非上线AC的确定如图1所示,业务端口a、b、c和d聚合为上行聚合口,业务端口a、b、c和d为上行聚合口的成员端口;业务端口e、f、g和h聚合为下行聚合口,业务端口e、f、g和h为下行聚合口的成员端口。若客户端的上线AC为AC2,第一非上线AC为:AC2对应的下行聚合口的成员端口所在的其他AC,AC2包括的业务端口为f,其对应的下行聚合口的成员端口为e、f、g和h,业务端口e、f、g和h所在的AC包括:AC1、AC2、AC3和AC4,因此可以确定第一非上线AC可以为AC1、AC3和AC4。

每一AC中都保存有两种转发表项,一种是跨板的转发表项,也就是其他AC作为客户端的上线AC时生成并发送来的转发表项;一种是本板的转发表项,也就是该AC作为客户端的上线AC时生成的转发表项。为了便于快速地确定本地是否存在针对流量的转发表项,需要区分出这两种转发表项。一般的,可以为每一转发表项配置一个标记位,可以将标记位为表示非上线AC的标识的转发表项作为跨板的转发表项,将标记位为表示上线AC的标识的转发表项作为本板的转发表项。具体地,当AC1接收到客户端的上线AC发送的转发表项时,也就是,接收到其他AC发送的转发表项时,存储该转发表项,并将该转发表项的标记位设置为表示非上线AC的标识;若AC1本地生成了转发表项,则在存储该转发表项后,并将该转发表项的标记位设置为表示上线AC的标识。

在本发明的一个实施例中,为了避免AC中存储过多无用的跨板的转发表项,可以定时的清除AC中存储的跨板的转发表项。一般的,可以在AC1接收到客户端的上线AC发送来的转发表项,并存储该转发表项,将该转发表项的标记位设置为表示非上线AC的标识之后,为该转发表项配置第一定时器;若在第一定时器超时后,该AC1仍未接收到与该转发表项匹配的流量,则可以认为该转发表项已为无用的跨板的转发表项,删除该转发表项;若在第一定时器超时前,该AC1接收到与该转发表项匹配的流量,则可以认为该转发表项不是无用的跨板的转发表项,保留该转发表项,并重置第一定时器。

例如,第一定时器的时长为10分钟,AC1接收并存储客户端的上线AC发送的转发表项a后,在10:00为转发表项a配置第一定时器,在当前时刻到配置第一定时器时刻的时长小于10分钟的时间内,AC1未接收到与转发表项a匹配的任何流量,在第一定时器超时后,也就是在10:10后,AC1仍未接收到与转发表项a匹配的任何流量,则删除转发表项a;若在第一定时器超时前,也就是在10:10前,AC1接收到了与转发表项a匹配的流量,则保留转发表项a,同时重置第一定时器,也就是在10:10时重置第一定时器,重新确定第一定时器超时前,也就是在10:20前,AC1是否接收到了与转发表项a匹配的流量。

在本发明的一个实施例中,AC1接收到客户端的上线AC发送来的转发表项,并存储该转发表项,将该转发表项的标记位设置为表示非上线AC的标识之后,在当前时刻到存储转发表项的时刻的时长超过第一预设时长时,再为该转发表项配置第一定时器。

在本发明的一个实施例中,每一AC接收到流量几率是相同的,当AC1为接收到的流量对应的客户端的上线AC时,在图2的基础上,参考图3,该方法还可以包括:

S301:当AC1是所述客户端的上线AC时,判断本地是否存在针对所述流量的转发表项;如果存在,执行S302;否则,执行S303;

这里的转发表项可以理解为本板的转发表项。

S302:根据所述转发表项,转发所述流量;

S302的实现过程与S203相似,一般可以为:

若该流量为上行流量,根据该转发表项中包括的源地址信息和目的地址信息,确定第三转发路径;另外,根据该转发表项中包括的封装信息,解封装该流量的外层封装;通过该AC1的上行聚合口的成员端口,按照确定的第三转发路径转发解封装后的该流量;

若该流量为下行流量,根据该转发表项包括的源地址信息和目的地址信息,确定第四转发路径;另外,根据该转发表项包括的封装信息,封装该流量;最后,通过该AC1的下行聚合口中对应上述客户端的成员端口,按照确定的第四转发路径转发封装后的该流量。

S303:当所述流量为上行流量、所述AC1的业务端口包含上行聚合口的成员端口时,或当所述流量为下行流量、所述客户端在所述AC1上对应的业务端口包含下行聚合口的成员端口时,生成所述转发表项,并将所述转发表项的标记位设置为表示上线AC的标识;

AC1生成转发表项后,将转发表项的标记位设置为表示上线AC的标识,也就是,将该转发表项作为本板的转发表项存储。

S304:将所述转发表项发送至所述客户端的第二非上线AC。

这里,第二非上线AC为:AC1对应的上行聚合口或下行聚合口的成员端口所在的其他AC。上述将转发表项发送至各个第二非上线AC,进而达到AC1与各个第二非上线AC中转发表项的同步。第二非上线AC接收到转发表项后,将该转发表项作为跨板的转发表项存储。

例如,如图1所示,AC1包括的业务端口为a、e,其对应的上行聚合口的成员端口为a、b、c和d,下行聚合口的成员端口为e、f、g和h,当AC1接收到流量后,确定AC1为该流量对应的客户端的上线AC,而AC1上不存在该流量对应的转发表项:

当该流量为上行流量时,AC1上的业务端口a为上行聚合口的成员端口,生成转发表项,并发送给第二非上线AC;若AC1上只有业务端口e,此时AC1的业务端口不包含上行聚合口的成员端口,此时生成转发表项,但拒绝将该转发表项发送给第二非上线AC;

当该流量为下行流量时,AC1上的业务端口e为下行聚合口的成员端口,并且业务端口e对应客户端,生成转发表项,并发送给第二非上线AC;若AC1上只有业务端口b,AC2的业务端口不包含下行聚合口的成员端口,或者AC2上业务端口e不对应客户端,这两种情况下,生成转发表项,但拒绝将该转发表项发送给第二非上线AC。

在本发明的一个实施例中,为了避免AC中存储过多无用的本板的转发表项,可以定时的清除AC中存储的本板的转发表项。一般的,AC1可以在生成转发表项,并将该转发表项的标记位设置为表示上线AC的标识之后,为该转发表项配置第二定时器,并向各个第二非上线AC发送针对该转发表项的查询报文;第二非上线AC接收到该查询报文后,根据该查询报文查询本地是否存储有该转发表项,如果存储有,则向AC1发送反馈消息,如果未存储,则不向AC1发送反馈消息;若在第二定时器超时后,AC1未接收到任何反馈消息,则可以认为该转发表项已为无用的本板的转发表项,删除该转发表项;若在第二定时器超时前,AC1接收到了一条反馈消息,则可以认为该转发表项不是无用的本板的转发表项,保留该转发表项,并重置第二定时器。

例如,第二定时器的时长为15分钟,AC1生成一条转发表项b后,在10:00为该转发表项b配置第二定时器,并向各个第二非上线AC发送针对该转发表项b的查询报文,在当前时刻到配置第二定时器时刻的时长小于15分钟的时间内,AC1未接收到任何对应该转发表项b的反馈消息,在第二定时器超时后,也就是在10:15后,AC1仍未接收到任何对应转发表项b的反馈消息,则删除转发表项b;若在第二定时器超时前,也就是在10:15前,AC1接收到了一个对应转发表项b的反馈消息,则拒绝删除转发表项b,同时重置第二定时器,也就是在10:15时重置第二定时器,并重新向各个第二非上线AC发送针对转发表项b的查询报文,确定在10:30前,AC1是否接收到了对应转发表项b的反馈消息。

在本发明的一个实施例中,AC1生成转发表项之后,在当前时刻到生成转发表项的时刻的时长超过第二预设时长时,再为该转发表项配置第二定时器。另外,上述向第二非上线AC发送针对该转发表项的查询报文可以为:

在配置第二定时器后,按照预设时间间隔,向每一第二非上线AC发送针对该转发表项的查询报文,以确保每一第二非上线AC都接收到了该查询报文;

上述向第二非上线AC发送针对该转发表项的查询报文也可以为:

在配置第二定时器后,向每一第二非上线AC只发送一次针对该转发表项的查询报文,以避免过多的查询报文占用IRF链路,影响流量的转发。

在本发明的一个实施例中,为了保证转发表项的准确,还需要实时检测本地生成的转发表项是否发生变化;如果发生变化,更新该转发表项,并向各个第二非上线AC发送更新消息,各个第二非上线AC根据该更新消息更新该转发表项。

在本发明的一个实施例中,客户端可以定时的向其上线AC发送在线消息,若在第三预设时间内,上线AC未接收到其对应的客户端发送的在线消息,则可以认为该客户端已下线,确定转发表项发生变化,该上线AC删除该客户端对应的转发表项,并向该客户端的非上线AC发送删除消息;该客户端的非上线AC根据该删除消息,删除该转发表项;

另外,在转发表项中还可以包括:上行聚合口和下行聚合口;若AC检测到其上行聚合口和下行聚合口的成员端口发生变化时,如:该AC的一个业务端口变为了上行聚合口的一个成员端口,确定转发表项发生变化,更新该AC上的转发表项,并向该AC对应的上行聚合口或下行聚合口的成员端口所在的其他AC发送更新消息,其他AC更新转发表项。

应用上述各个实施例,AC在接收到针对客户端的流量后,若该AC是该客户端的非上线AC,当该AC上存在该流量对应的转发表项时,可以根据该转发表项,转发该流量;当该AC上不存在该流量对应的转发表项时,则将该流量重定向至该客户端的上线AC,该客户端的上线AC根据该流量,生成该流量对应的转发表项,并发送给其他第一非上线AC。可见,客户端的上线AC和非上线AC上都可以存储针对该客户端的流量的转发表项,并且根据转发表项转发流量,降低了流量的转发对IRF链路的带宽的依赖,提高了IRF AC的转发性能。

参考图4,图4为本发明实施例提供的一种流量转发装置的一种结构示意图,应用于IRF系统中的AC,所述装置包括:

接收单元401,用于接收针对客户端的流量;

判断单元402,用于当所述AC是所述客户端的非上线AC时,判断本地是否存在针对所述流量的转发表项;

转发单元403,用于在所述判断单元402的判断结果为是的情况下,根据所述转发表项,转发所述流量;

重定向单元404,用于在所述判断单元402的判断结果为否的情况下,将所述流量重定向至所述客户端的上线AC,以使所述客户端的上线AC根据所述流量生成针对所述流量的转发表项,并根据所述转发表项转发所述流量,将所述转发表项发送至第一非上线AC;所述第一非上线AC为:所述客户端的上线AC对应的上行聚合口或下行聚合口的成员端口所在的其他AC。

在本发明的一个实施例中,所述接收单元401,还用于接收所述客户端的上线AC发送的转发表项;

这种情况下,所述装置还可以包括:

存储单元(图4中未示出),用于存储所述转发表项,并将所述转发表项的标记位设置为表示非上线AC的标识;

配置单元(图4中未示出),用于为所述转发表项配置第一定时器;

删除单元(图4中未示出),用于若所述第一定时器超时后所述AC未接收到与所述转发表项匹配的流量,则删除所述转发表项;

重置单元(图4中未示出),用于若所述第一定时器超时前所述AC接收到与所述转发表项匹配的流量,则拒绝删除所述转发表项,并重置所述第一定时器。

在本发明的一个实施例中,所述判断单元402,还可以用于当所述AC是所述客户端的上线AC时,判断本地是否存在针对所述流量的转发表项;

所述转发单元403,还可以用于在所述判断单元402的判断结果为是的情况下,根据所述转发表项,转发所述流量;

这种情况下,参考图5,在图4的基础上,所述装置还可以包括:

生成单元501,用于在所述判断单元502的判断结果为否的情况下,当所述流量为上行流量、所述AC的业务端口包含上行聚合口的成员端口时,或当所述流量为下行流量、所述客户端在所述AC上对应的业务端口包含下行聚合口的成员端口时,生成所述转发表项,并将所述转发表项的标记位设置为表示上线AC的标识;

发送单元502,用于将所述转发表项发送至所述客户端的第二非上线AC;所述第二非上线AC为:所述AC对应的上行聚合口或下行聚合口的成员端口所在的其他AC。

在本发明的其他实施例中,所述装置还可以包括:

配置单元(图5中未示出),用于在将所述转发表项的标记位设置为表示上线AC的标识之后,为所述转发表项配置第二定时器,并向所述第二非上线AC发送针对所述转发表项的查询报文,以使所述第二非上线AC根据所述查询报文查询本地是否存储有所述转发表项;

删除单元(图5中未示出),用于若所述第二定时器超时后所述AC未接收到反馈消息,则删除所述转发表项;所述反馈消息为所述第二非上线AC在本地存储有所述转发表项的情况下根据所述查询报文反馈的消息;

重置单元(图5中未示出),用于若所述第二定时器超时前所述AC接收到反馈消息,则拒绝删除所述转发表项,并重置所述第二定时器。

在本发明的其他实施例中,所述装置还可以包括:

检测单元(图5中未示出),用于在将所述转发表项的标记位设置为表示上线AC的标识之后,检测所述转发表项是否发生变化;

更新单元(图5中未示出),用于在检测到所述转发表项发生变化时,更新所述转发表项,并向所述第二非上线AC发送更新消息,以使所述第二非上线AC根据所述更新消息更新所述转发表项。

应用上述各个实施例,AC在接收到针对客户端的流量后,若该AC是该客户端的非上线AC,当该AC上存在该流量对应的转发表项时,可以根据该转发表项,转发该流量;当该AC上不存在该流量对应的转发表项时,则将该流量重定向至该客户端的上线AC,该客户端的上线AC根据该流量,生成该流量对应的转发表项,并发送给其他第一非上线AC。可见,客户端的上线AC和非上线AC上都可以存储针对该客户端的流量的转发表项,并且根据转发表项转发流量,降低了流量的转发对IRF链路的带宽的依赖,提高了IRF AC的转发性能。

对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本领域普通技术人员可以理解实现上述方法实施方式中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于计算机可读取存储介质中,这里所称得的存储介质,如:ROM/RAM、磁碟、光盘等。

以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1