一种隧道建立方法、装置、电子设备及可读存储介质与流程

文档序号:15752707发布日期:2018-10-26 18:04阅读:157来源:国知局
一种隧道建立方法、装置、电子设备及可读存储介质与流程

本申请涉及无线通信技术领域,特别是涉及一种openflow隧道建立方法、装置、电子设备及可读存储介质。



背景技术:

随着无线热点建设的逐步升级,ap(accesspoint,接入点)接入数量越来越大,如何保障无线接入的可靠性变得至关重要。在集中式转发模式下,ac(accesscontroller,接入控制器)承担了大量ap的状态维护和数据转发工作。参见图1,图1为本申请实施例应用场景示意图,ac通过交换机对ap进行管理,802.1x用户终端通过ap接入无线网络。为了释放ac控制层面的较大压力,实现控制平面和数据平面的分离,现有技术引入了openflow网络模型。在ac和ap之间通过基于openflow协议建立的openflow隧道进行通信,从而实现802.1x认证等本地转发对应的用户终端上线过程中ap与ac之间的认证报文通过openflow隧道进行交互,进而缓解了ac与ap之间capwap(controlandprovisioningofwirelessaccesspointsprotocolspecification,控制的无线接入点和配置协议)隧道的部分压力,提高了ac管理ap的能力及转发性能。

相关技术中,openflow隧道是在ac和ap之间关联的capwap隧道建立成功之后,立即建立的,并且只有在capwap隧道断开之后,ac和ap之间的openflow隧道才会被断开。

实际上,ap只有在为用户终端提供本地转发时,为了实现802.1x认证,才会使用openflow隧道与ac进行交互。然而,有的ap在openflow隧道建立和断开期间,可能并没有收到用户终端的本地转发请求,这种情况下预先已经建立好的openflow隧道就不会被使用,造成了ac的cpu(centralprocessingunit,中央处理器)及内存等资源的浪费。通常一个ac会管理多个ap,如果其管理的ap都出现上述情况,那么ac资源的浪费就会更加明显。



技术实现要素:

本申请实施例的目的在于提供一种openflow隧道建立方法、装置、电子设备及可读存储介质,以降低ac资源的浪费。具体技术方案如下:

本申请实施例提供了一种openflow隧道建立方法,应用于ap,所述方法包括:

在接收到用户终端发送的上线请求报文之后,根据所述ap存储的bssid(basicservicesetidentifier,基础服务集标识符)信息和转发方式的对应关系,确定所述上线请求报文中携带的bssid信息对应的转发方式;

在确定出的转发方式是本地转发时,判断所述ap是否已经与所述ap关联的ac建立了openflow隧道;

如果所述ap未与所述ac建立openflow隧道,与所述ac建立openflow隧道。

本申请实施例提供了一种openflow隧道建立装置,应用于ap,所述装置包括:

本地转发判断模块,用于在接收到用户终端发送的上线请求报文之后,根据所述ap存储的bssid信息和转发方式的对应关系,确定所述上线请求报文中携带的bssid信息对应的转发方式;

openflow隧道判断模块,用于在确定出的转发方式是本地转发时,判断所述ap是否已经与所述ap关联的ac建立了openflow隧道;

openflow隧道建立模块,用于如果所述ap未与所述ac建立openflow隧道,与所述ac建立openflow隧道。

本申请实施例提供了一种电子设备,包括:处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令,所述处理器被所述机器可执行指令促使:实现上述openflow隧道建立方法的步骤。

本申请实施例提供了一种机器可读存储介质,所述机器可读存储介质存储有机器可执行指令,所述机器可执行指令在被处理器调用和执行时,所述机器可执行指令促使所述处理器:实现上述openflow隧道建立方法的步骤。

本申请实施例提供的openflow隧道建立方法、装置、电子设备及可读存储介质,在接收到用户终端发送的上线请求报文之后,根据ap存储的bssid信息和转发方式的对应关系,确定上线请求报文中携带的bssid信息对应的转发方式;在确定出的转发方式是本地转发时,判断ap是否已经与ap关联的ac建立了openflow隧道;如果ap未与ac建立openflow隧道,与ac建立openflow隧道。本申请实施例中,当ap上有本地转发对应的用户终端接入时再建立openflow隧道,也就是当需要使用openflow隧道时才建立,相比现有技术中预先建立openflow隧道,节省了ac的资源。当然,实施本申请的任一产品或方法并不一定需要同时达到以上所述的所有优点。

附图说明

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

图1为本申请实施例应用场景示意图;

图2为本申请实施例的openflow隧道建立方法的一种流程图;

图3为本申请实施例的openflow隧道建立方法的另一种流程图;

图4为本申请实施例中断开openflow隧道的一种流程图;

图5为本申请实施例的openflow隧道建立装置的一种结构图;

图6为本申请实施例的openflow隧道建立装置的另一种结构图;

图7为本申请实施例的电子设备的结构图。

具体实施方式

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

为了解决在ap和ac之间建立openflow隧道时对ac造成资源浪费的问题,本申请实施例提供了一种openflow隧道建立方法、装置、电子设备及可读存储介质,以减少ac资源的浪费。

参见图2,图2为本申请实施例的openflow隧道建立方法的一种流程图,应用于ap,包括以下步骤:

s201,在接收到用户终端发送的上线请求报文之后,根据ap存储的bssid信息和转发方式的对应关系,确定上线请求报文中携带的bssid信息对应的转发方式。

s202,在确定出的转发方式是本地转发时,判断ap是否已经与ap关联的ac建立了openflow隧道。

s203,如果ap未与ac建立openflow隧道,与ac建立openflow隧道。

图2所示实施例的有益效果在于,当ap上有本地转发对应的用户终端接入时再建立openflow隧道,也就是当需要使用openflow隧道时才建立,相比现有技术中预先建立openflow隧道,节省了ac的资源。

参见图3,图3为本申请实施例的openflow隧道建立方法的另一种流程图,应用于ap,包括以下步骤:

s301,接收用户终端发送的上线请求报文。

s302,根据ap存储的bssid信息和转发方式的对应关系,确定上线请求报文中携带的bssid信息对应的转发方式是否为本地转发。

本申请实施例中,ap与ac关联成功之后,在ap与ac之间建立capwap隧道,之后,ac可以将bssid信息和转发方式(本地转发或者集中转发)的对应关系发送给ap。这样,ap在接收到用户终端发送的上线请求报文之后,可以根据ap本地存储的bssid信息和转发方式的对应关系,判断上线请求报文中携带的bssid信息对应的转发方式是否为本地转发。在确定出的转发方式为本地转发时,执行s304;否则,不需要使用openflow隧道,执行s303,即不与ap关联的ac建立openflow隧道,流程结束。

s304,判断ap是否已经与ap关联的ac建立了openflow隧道;如果是,执行s306;否则,执行s305。

具体的,如果确定出的转发方式是本地转发,那么发送该上线请求报文的用户终端需要在ac上进行认证,在ac对用户终端认证通过之后,用户终端发送的数据报文将在ap上进行转发。由于对用户终端的认证是由ac完成的,因此,ap接收到上线请求报文之后,需要转发至ac。本申请实施例中,ap可以通过openflow隧道将上线请求报文转发至ac。所以,需要先判断ap是否已经与ap关联的ac建立了openflow隧道,如果未与ac建立openflow隧道,执行s305,如果已经与ac建立了openflow隧道,执行s306。

本申请的一种实现方式中,ap中可以存储ap与ac之间openflow隧道的建立状态,例如,openflow隧道的建立状态包括:开启和关闭,开启和关闭仅仅用于表示两种openflow隧道的建立状态:已建立openflow隧道和未建立openflow隧道,openflow隧道的建立状态不限于上述方式。该openflow隧道的建立状态初始可以设置为关闭,当openflow隧道建立成功后,将该openflow隧道的建立状态修改为开启,断开后再修改为关闭。那么,判断ap是否已经与ap关联的ac建立了openflow隧道的方法可以为:获取ap与ac之间的openflow隧道的建立状态;如果openflow隧道的建立状态为开启,确定ap已经与ac建立了openflow隧道;如果openflow隧道的建立状态为关闭,确定ap未与ac建立openflow隧道。

s305,与ap关联的ac建立openflow隧道。

本申请实施例中,为了实现通过openflow隧道将上线请求报文转发至ac,以减轻ac资源消耗,在ap未与ac建立openflow隧道的情况下,ap可以基于tcp(transmissioncontrolprotocol,传输控制协议)与ac建立openflow隧道,之后,执行s306。具体的建立openflow隧道的过程为现有技术,在此不再赘述。

s306,通过已建立的openflow隧道将上线请求报文发送至ac,以使ac对用户终端进行认证。

本申请实施例中,对于本地转发对应的用户终端,由于用户终端接入ap时,需要在ac上进行认证,因此,ap通过已建立的openflow隧道将上线请求报文发送至ac,以使ac对用户终端进行认证。当然,该已建立的openflow隧道是在收到其他用户终端发的上线请求报文且未建立openflow隧道时建立的。

具体的,本步骤中,可以将上线请求报文封装为openflow协议报文后,通过已建立的openflow隧道发送至ac。

s307,若接收到ac发送的对用户终端认证通过的报文,确定用户终端上线成功,对用户终端发送的数据报文进行转发。

具体的,若ac对用户终端认证通过,向ap发送对用户终端认证通过的报文,ap确定用户终端上线成功。由于用户终端发送的上线请求报文中携带的bssid信息对应的转发方式为本地转发,因此,用户终端与接入ap的其他用户终端或服务器进行通信的数据报文均由ap转发出去。

本申请实施例的openflow隧道建立方法,在接收到用户终端发送的上线请求报文之后,根据ap存储的bssid信息和转发方式的对应关系,确定上线请求报文中携带的bssid信息对应的转发方式;在确定出的转发方式是本地转发时,判断ap是否已经与ap关联的ac建立了openflow隧道;如果ap未与ac建立openflow隧道,与ac建立openflow隧道。通过已建立的openflow隧道将上线请求报文发送至ac,以使ac对用户终端进行认证,并在ac对用户终端认证通过后,ap对用户终端发送的数据报文进行转发。本申请实施例的openflow隧道建立方法,当ap上有本地转发对应的用户终端接入时再建立openflow隧道,也就是当需要使用openflow隧道时才建立,相比现有技术中预先建立openflow隧道,节省了ac的资源。另外,通过试验还发现,本申请实施例可以降低批量ap并发上下线或先后反复上下线时,或者ap关联ac的下一跳接口反复变化时,产生openflow进程挂死或进程内存泄漏等异常问题导致的ac业务不能正常使用的风险。

参见图4,图4为本申请实施例中断开openflow隧道的一种流程图,应用于ap,包括以下步骤:

s401,判断本地转发对应的用户终端是否全部下线。如果是,执行s402,如果否,执行s403。

具体的,根据建立的在线用户终端记录表,确定每个bssid信息对应的在线用户终端的个数;在线用户终端记录表中每个bssid信息对应的在线用户终端的信息是在该用户终端上线成功后添加的。本申请实施例中,在每个用户终端终端发送的上线请求报文中携带的bssid信息对应的转发方式为本地转发时,那么,在用户终端上线成功之后,可以根据上线请求报文中携带的bssid信息,将该用户终端的信息添加至在线用户终端记录表中,相应地,当用户终端下线时,将该用户终端从在线用户终端记录表中删除。

如果在线用户终端记录表中所有bssid信息对应的在线用户终端的个数之和为0,确定本地转发对应的用户终端全部下线,执行s402;否则,确定本地转发对应的用户终端没有全部下线,执行s403。

s402,将已经与ac建立的openflow隧道断开。

具体的,若确定本地转发对应的用户终端全部下线,可以通过tcp四次握手将已经与ac建立的openflow隧道断开。

s403,将已经与ac建立的openflow隧道保留。

图4所示的openflow隧道断开的流程,可以应用于图2或图3所示的实施例中。这样,本实施例在图2实施例或图3实施例的基础上,可以进一步减少ac资源的浪费。

相应于上述方法实施例,本申请实施例还提供了一种openflow隧道建立装置,应用于ap,参见图5,图5为本申请实施例的openflow隧道建立装置的一种结构图,包括:

本地转发判断模块501,用于在接收到用户终端发送的上线请求报文之后,根据ap存储的bssid信息和转发方式的对应关系,确定上线请求报文中携带的bssid信息对应的接入服务的转发方式;

openflow隧道判断模块502,用于在确定出的转发方式是本地转发时,判断ap是否已经与ap关联的ac建立了openflow隧道;

openflow隧道建立模块503,用于如果ap未与ac建立openflow隧道,与ac建立openflow隧道。

本申请实施例的openflow隧道建立装置,在接收到用户终端发送的上线请求报文之后,根据ap存储的bssid信息和转发方式的对应关系,确定上线请求报文中携带的bssid信息对应的转发方式;在确定出的转发方式是本地转发时,判断ap是否已经与ap关联的ac建立了openflow隧道;如果ap未与ac建立openflow隧道,与ac建立openflow隧道。本申请实施例中,当ap上有本地转发对应的用户终端接入时再建立openflow隧道,也就是当需要使用openflow隧道时才建立,相比现有技术中预先建立openflow隧道,节省了ac的资源。

需要说明的是,本申请实施例的装置是应用上述openflow隧道建立方法的装置,则上述openflow隧道建立方法的所有实施例均适用于该装置,且均能达到相同或相似的有益效果。

参见图6,图6为本申请实施例的openflow隧道建立装置的另一种结构图,包括:

本地转发判断模块601,用于在接收到用户终端发送的上线请求报文之后,根据ap存储的bssid信息和转发方式的对应关系,确定上线请求报文中携带的bssid信息对应的接入服务的转发方式;

openflow隧道判断模块602,用于在确定出的转发方式是本地转发时,判断ap是否已经与ap关联的ac建立了openflow隧道;

openflow隧道建立模块603,用于如果ap未与ac建立openflow隧道,与ac建立openflow隧道;

报文发送模块604,用于通过已建立的openflow隧道将上线请求报文发送至ac,以使ac对用户终端进行认证;

报文转发模块605,用于若接收到ac发送的对用户终端认证通过的报文,确定用户终端上线成功,对用户终端发送的数据报文进行转发。

本申请实施例的openflow隧道建立装置,在接收到用户终端发送的上线请求报文之后,根据ap存储的bssid信息和转发方式的对应关系,确定上线请求报文中携带的bssid信息对应的转发方式;在确定出的转发方式是本地转发时,判断ap是否已经与ap关联的ac建立了openflow隧道;如果ap未与ac建立openflow隧道,与ac建立openflow隧道。通过已建立的openflow隧道将上线请求报文发送至ac,以使ac对用户终端进行认证,并在ac对用户终端认证通过后,ap对用户终端发送的数据报文进行转发。本申请实施例中,当ap上有本地转发对应的用户终端接入时再建立openflow隧道,也就是当需要使用openflow隧道时才建立,相比现有技术中预先建立openflow隧道,节省了ac的资源。另外,通过试验还发现,本申请实施例可以降低批量ap并发上下线或先后反复上下线时,或者ap关联ac的下一跳接口反复变化时,产生openflow进程挂死或进程内存泄漏等异常问题导致的ac业务不能正常使用的风险。

本申请的一种实现方式中,openflow隧道判断模块具体用于,获取ap与ap关联的ac之间的openflow隧道的建立状态;如果openflow隧道的建立状态为开启,确定ap已经与ac建立了openflow隧道;如果openflow隧道的建立状态为关闭,确定ap未与ac建立openflow隧道。

本申请的一种实现方式中,上述openflow隧道建立装置还包括:

下线判断模块,用于判断本地转发对应的用户终端是否全部下线;

openflow隧道断开模块,用于若本地转发对应的用户终端全部下线,将已经与ac建立的openflow隧道断开。

本申请的一种实现方式中,下线判断模块具体用于,根据建立的在线用户终端记录表,确定每个bssid信息对应的在线用户终端的个数;在线用户终端记录表中每个bssid信息对应的在线用户终端的信息是在该用户终端上线成功后添加的;如果在线用户终端记录表中所有bssid信息对应的在线用户终端的个数之和为0,确定本地转发对应的用户终端全部下线;否则,确定本地转发对应的用户终端没有全部下线。

本申请实施例还提供了一种电子设备,参见图7,图7为本申请实施例的电子设备的结构图,包括:处理器701和机器可读存储介质702,机器可读存储介质702存储有能够被处理器701执行的机器可执行指令,处理器701被机器可执行指令促使,实现图2所示实施例或图3所示实施例中的openflow隧道建立方法的步骤。

其中,上述处理器701可以是通用处理器,包括:cpu、np(networkprocessor,网络处理器)等;还可以是dsp(digitalsignalprocessing,数字信号处理器)、asic(applicationspecificintegratedcircuit,专用集成电路)、fpga(field-programmablegatearray,现场可编程门阵列)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。

机器可读存储介质702可以包括ram(randomaccessmemory,随机存取存储器),也可以包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器,机器可读存储介质还可以是至少一个位于远离前述处理器的存储装置。

本申请实施例的电子设备中,处理器通过执行机器可读存储介质上所存放的机器可执行指令,在接收到用户终端发送的上线请求报文之后,根据ap存储的bssid信息和转发方式的对应关系,确定上线请求报文中携带的bssid信息对应的转发方式;在确定出的转发方式是本地转发时,判断ap是否已经与ap关联的ac建立了openflow隧道;如果ap未与ac建立openflow隧道,与ac建立openflow隧道。本申请实施例中,当ap上有本地转发对应的用户终端接入时再建立openflow隧道,也就是当需要使用openflow隧道时才建立,相比现有技术中预先建立openflow隧道,节省了ac的资源。

本申请实施例还提供了一种机器可读存储介质,机器可读存储介质存储有机器可执行指令,机器可执行指令在被处理器调用和执行时,机器可执行指令促使处理器:实现上述任一openflow隧道建立方法的步骤。

本申请实施例的机器可读存储介质内存储的机器可执行指令被处理器执行时,在接收到用户终端发送的上线请求报文之后,根据ap存储的bssid信息和转发方式的对应关系,确定上线请求报文中携带的bssid信息对应的转发方式;在确定出的转发方式是本地转发时,判断ap是否已经与ap关联的ac建立了openflow隧道;如果ap未与ac建立openflow隧道,与ac建立openflow隧道。本申请实施例中,当ap上有本地转发对应的用户终端接入时再建立openflow隧道,也就是当需要使用openflow隧道时才建立,相比现有技术中预先建立openflow隧道,节省了ac的资源。

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

本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于openflow隧道建立装置、电子设备及可读存储介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

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

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