一种报文传输方法和装置与流程

文档序号:12477787阅读:260来源:国知局
一种报文传输方法和装置与流程

本申请涉及通信技术领域,尤其涉及一种报文传输方法和装置。



背景技术:

SSL(Secure Sockets Layer,安全套接字层)VPN(Virtual Private Network,虚拟专用网络)是以SSL为基础的VPN技术,可以充分利用SSL协议提供的身份认证、数据加密、消息完整性验证等机制,为应用层的通信建立安全连接。

在部署了SSL VPN网关的网络中,终端设备向SSL VPN网关发送会话协商请求报文,SSL VPN网关为终端设备分配认证加密信息,并将认证加密信息发送给终端设备。终端设备在发送数据报文时,利用认证加密信息对数据报文进行加密等处理,SSL VPN网关在接收到数据报文后,对数据报文进行解密等处理,并将数据报文发送给服务器。上述方式可以保证数据报文的传输安全性。

目前,若网络中部署两个以上的SSL VPN网关,则不同的SSL VPN网关为不同终端设备提供服务。当某个SSL VPN网关下线时,接入该SSL VPN网关的终端设备会被强制下线,之后,该终端设备重新接入到其它SSL VPN网关,从而影响了用户使用体验,且终端设备的业务会发生中断。



技术实现要素:

本申请提供一种报文传输方法,应用于包括控制器和至少两个安全套接字层虚拟专用网络SSL VPN网关的网络中,该方法应用于控制器,包括:

向每个SSL VPN网关下发第一控制流表,所述第一控制流表用于使所述SSL VPN网关将来自终端设备的会话协商请求报文上送给所述控制器;

在接收到会话协商请求报文后,确定所述终端设备能够访问的服务器、与所述服务器关联的至少两个SSL VPN网关,并将携带所述服务器的IP地址、所述至少两个SSL VPN网关的IP地址的响应报文发送给所述终端设备,以使所述终端设备通过所述至少两个SSL VPN网关中的一个SSL VPN网关向所述服务器发送数据报文。

本申请提供一种报文传输装置,应用于包括控制器和至少两个安全套接字层虚拟专用网络SSL VPN网关的网络中,该装置应用于控制器,包括:

发送模块,用于向每个SSL VPN网关下发第一控制流表,所述第一控制流表用于使SSL VPN网关将来自终端设备的会话协商请求报文上送给控制器;

确定模块,用于在接收到会话协商请求报文后,确定所述终端设备能够访问的服务器、与所述服务器关联的至少两个SSL VPN网关;

所述发送模块,还用于将携带所述服务器的IP地址、所述至少两个SSL VPN网关的IP地址的响应报文发送给所述终端设备,以使所述终端设备通过所述至少两个SSL VPN网关中的一个SSL VPN网关向所述服务器发送数据报文。

基于上述技术方案,本申请实施例中,可以在网络中部署至少两个SSL VPN网关,并在这至少两个SSL VPN网关之间进行负载分担,从而避免一个SSL VPN网关对大量终端设备提供服务,提高SSL VPN网关的处理性能,SSL VPN网关不会成为性能瓶颈。而且,一个终端设备的数据报文可以在不同SSL VPN网关上分担,而不是由一个SSL VPN网关处理。这样,当某个SSL VPN网关下线时,接入该SSL VPN网关的终端设备能够无缝切换到其它SSL VPN网关,可以及时的对业务进行保护,提高了用户使用体验,避免业务会发生中断。

附图说明

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

图1是本申请一种实施方式中的报文传输方法的流程图;

图2是本申请一种实施方式中的应用场景示意图;

图3是本申请一种实施方式中的控制器的硬件结构图;

图4是本申请一种实施方式中的报文传输装置的结构图。

具体实施方式

在本申请使用的术语仅仅是出于描述特定实施例的目的,而非限制本申请。本申请和权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其它含义。还应当理解,本文中使用的术语“和/或”是指包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,此外,所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

本申请实施例中提出一种报文传输方法,该方法可以应用于包括控制器和至少两个SSL VPN网关的网络(如SDN(Soft Define Network,软件定义网络)网络)中,该方法可以应用于控制器,参见图1所示,该方法可以包括:

步骤101,向每个SSL VPN网关下发第一控制流表,该第一控制流表用于使SSL VPN网关将来自终端设备的会话协商请求报文上送给控制器。

在一个例子中,在向每个SSL VPN网关下发第一控制流表之前,控制器还可以为每个SSL VPN网关配置相同的全局地址信息,并将该全局地址信息发送给每个SSL VPN网关。每个SSL VPN网关在接收到该全局地址信息之后,均可以对外发布携带该全局地址信息的路由。基于此,终端设备在向任一SSL VPN网关发送会话协商请求报文时,该会话协商请求报文中可以携带该全局地址信息,且该会话协商请求报文会被最终发送到任意一个SSL VPN网关上。

在传统方式中,管理员可以登录SSL VPN网关,并在SSL VPN网关上创建与服务器对应的资源。SSL VPN网关在接收到会话协商请求报文后,可以从会话协商请求报文中解析出用户名、密码等身份信息,并利用该身份信息进行认证,如果认证成功,则将资源对应的服务器的IP地址发送给终端设备。

与此不同的是,本申请实施例中,SSL VPN网关在接收到会话协商请求报文后,并不会执行“从会话协商请求报文中解析出用户名、密码等身份信息”等过程,由于会话协商请求报文可以匹配到第一控制流表,因此,SSL VPN网关会将来自终端设备的会话协商请求报文上送给控制器,由控制器进行后续处理。

为了实现将会话协商请求报文上送给控制器的过程,在一个例子中,所述第一控制流表的匹配选项可以包括上述全局地址信息,该全局地址信息可以包括:全局IP地址;或者,全局IP地址和全局TCP(Transmission Control Protocol,传输控制协议)端口。所述第一控制流表的动作选项可以包括:将匹配到该匹配选项的报文(即会话协商请求报文)上送给控制器。

步骤102,在接收到会话协商请求报文后,确定终端设备能够访问的服务器、与该服务器关联的至少两个SSL VPN网关。

在一个例子中,控制器在接收到会话协商请求报文后,从会话协商请求报文中解析出身份信息(如用户名、密码等),并利用该身份信息对终端设备进行认证。若认证成功,则确定终端设备能够访问的服务器、与该服务器关联的至少两个SSL VPN网关。若认证失败,则向终端设备发送认证失败的响应报文。

在一个例子中,针对“确定终端设备能够访问的服务器”的过程,可以在控制器上预先配置身份信息与资源的映射关系,并在控制器上预先配置提供各资源的服务器的信息(如服务器的IP地址)。基于此,控制器在从会话协商请求报文中解析出身份信息后,就可以得到该身份信息对应的资源,并可以确定出提供该资源的服务器的IP地址。其中,该资源可以为FTP(File Transfer Protocol,文件传输协议)资源、WEB资源、文件存储资源等。

在一个例子中,针对“确定与该服务器关联的至少两个SSL VPN网关”的过程,与服务器关联的SSL VPN网关是指:能够将数据报文发送至该服务器的SSL VPN网关。通常情况下,网络中的所有SSL VPN网关均能够将数据报文发送至服务器,因此,控制器可以从所有SSL VPN网关中,选取出至少两个SSL VPN网关,这至少两个SSL VPN网关是与该服务器关联的SSL VPN网关。

步骤103,将携带该服务器的IP地址、该至少两个SSL VPN网关的IP地址的响应报文发送给终端设备,以使终端设备通过该至少两个SSL VPN网关中的一个SSL VPN网关,向该服务器发送数据报文。

在一个例子中,终端设备在接收到响应报文后,可以从该响应报文中解析出该服务器的IP地址、该至少两个SSL VPN网关的IP地址。在向该服务器发送数据报文时,终端设备可以从至少两个SSL VPN网关中选择任意一个SSL VPN网关,并通过选择的SSL VPN网关向该服务器发送数据报文。当选择的SSL VPN网关不在线时,则终端设备还可以选择另一个SSL VPN网关,并通过另一个SSL VPN网关向该服务器发送数据报文。

在一个例子中,控制器还可以确定终端设备对应的认证加密信息,且控制器向终端设备发送的响应报文中还携带该认证加密信息,该认证加密信息用于使终端设备在发送数据报文时,通过该认证加密信息对数据报文进行处理。而且,控制器还可以将该认证加密信息分别发送给至少两个SSL VPN网关,以使该SSL VPN网关利用该认证加密信息对来自终端设备的数据报文进行处理。

在一个例子中,该认证加密信息可以包括但不限于:加密算法、交换加密密钥、消息完整性验证算法等信息,对此不做限制。终端设备在发送数据报文时,可以利用该认证加密信息对数据报文进行认证加密等处理。SSL VPN网关在接收到来自终端设备的数据报文后,利用该认证加密信息对该数据报文进行解密、消息完整性验证等处理,并将处理后的数据报文发送给服务器。

在一个例子中,控制器在确定与服务器关联的至少两个SSL VPN网关之后,还可以确定至少两个SSL VPN网关的优先级,不同SSL VPN网关的优先级不同。响应报文中还携带至少两个SSL VPN网关的优先级,至少两个SSL VPN网关的优先级用于使终端设备在优先级最高的SSL VPN网关在线时,通过优先级最高的SSL VPN网关向服务器发送数据报文,在优先级最高的SSL VPN网关不在线时,通过优先级次高的SSL VPN网关向服务器发送数据报文。例如,当SSL VPN网关1的优先级高于SSL VPN网关2的优先级时,若SSL VPN网关1在线,则终端设备通过SSL VPN网关1向服务器发送数据报文,若SSL VPN网关1不在线,则终端设备通过SSL VPN网关2向服务器发送数据报文。

在一个例子中,控制器还可以向优先级非最高的SSL VPN网关下发第二控制流表;其中,第二控制流表用于使优先级非最高的SSL VPN网关将服务器向终端设备返回的响应报文,发送给优先级最高的SSL VPN网关。进一步的,在确定优先级最高的SSL VPN网关不在线后,控制器还可以向优先级次高的SSL VPN网关发送删除命令,以使优先级次高的SSL VPN网关删除第二控制流表;向优先级最高的SSL VPN网关、优先级次高的SSL VPN网关之外的其它SSL VPN网关发送删除命令,以使其它SSL VPN网关删除第二控制流表;向其它SSL VPN网关下发第三控制流表,第三控制流表用于使其它SSL VPN网关将服务器向终端设备返回的响应报文,发送给优先级次高的SSL VPN网关。

基于上述技术方案,本申请实施例中,可以在网络中部署至少两个SSL VPN网关,并在这至少两个SSL VPN网关之间进行负载分担,从而避免一个SSL VPN网关对大量终端设备提供服务,提高SSL VPN网关的处理性能,SSL VPN网关不会成为性能瓶颈。而且,一个终端设备的数据报文可以在不同SSL VPN网关上分担,而不是由一个SSL VPN网关处理。这样,当某个SSL VPN网关下线时,接入该SSL VPN网关的终端设备能够无缝切换到其它SSL VPN网关,可以及时的对业务进行保护,提高了用户使用体验,避免业务会发生中断。

以下结合图2所示的应用场景,对本申请实施例的上述过程进行详细说明。在图2中,可以包括控制器、终端设备、网络设备R1、SSL VPN网关1、SSL VPN网关2、网络设备R2、服务器1和服务器2等设备。其中,终端设备的IP地址为100.1.1.1,SSL VPN网关1的IP地址为1.1.1.200,SSL VPN网关2的IP地址为1.1.1.201,服务器1的IP地址为20.1.1.254,服务器2的IP地址为30.1.1.254。

在上述应用场景下,该报文传输方法可以包括以下步骤:

步骤1、控制器为SSL VPN网关1、SSL VPN网关2配置相同的全局地址信息,并将该全局地址信息分别发送给SSL VPN网关1和SSL VPN网关2。

其中,该全局地址信息可以包括IP地址1.1.1.254和TCP端口443。

在一个例子中,SSL VPN网关1和SSL VPN网关2可以位于同一个VPN实例内,且控制器为该VPN实例配置一个全局地址信息,这样,就相当于为该VPN实例内的SSL VPN网关1和SSL VPN网关2配置相同的全局地址信息。

步骤2、控制器生成第一控制流表,并将该第一控制流表分别发送给SSL VPN网关1和SSL VPN网关2。其中,该第一控制流表的匹配选项可以包括:目的IP地址为IP地址1.1.1.254,目的TCP端口为端口标识443。该第一控制流表的动作选项可以包括:将匹配到该匹配选项的报文上送给控制器。

步骤3、SSL VPN网关1在接收到IP地址1.1.1.254和TCP端口443后,对外发布携带该IP地址1.1.1.254和TCP端口443的路由。网络设备R1、网络设备R2均可以学习到携带该IP地址1.1.1.254和TCP端口443的路由。

同理,SSL VPN网关2在接收到IP地址1.1.1.254和TCP端口443后,对外发布携带该IP地址1.1.1.254和TCP端口443的路由。网络设备R1、网络设备R2均可以学习到携带该IP地址1.1.1.254和TCP端口443的路由。

这样,网络设备R1、网络设备R2均可以学习到IP地址1.1.1.254的两条路由,而这两条路由在网络设备R1、网络设备R2上,就形成等价路由。

步骤4、用户登陆SSL VPN页面,并输入用户名、密码等身份信息。终端设备接收用户输入的身份信息,并生成包括该身份信息的会话协商请求报文,并发送该会话协商请求报文。其中,该会话协商请求报文的源IP地址可以为100.1.1.1,目的IP地址可以为1.1.1.254,目的TCP端口可以为443。

步骤5、网络设备R1在接收到该会话协商请求报文后,由于本地存在目的IP地址1.1.1.254的两条路由,SSL VPN网关1和VPN SSL网关2都是目的IP地址1.1.1.254对应的下一跳,因此可以将该会话协商请求报文发送给SSL VPN网关1或者SSL VPN网关2,以发送给SSL VPN网关1为例进行说明。

步骤6、SSL VPN网关1在接收到会话协商请求报文后,由于目的IP地址为1.1.1.254,目的TCP端口为443,因此该会话协商请求报文可以匹配到上述第一控制流表,SSL VPN网关1将该会话协商请求报文上送给控制器。

步骤7、控制器在接收到会话协商请求报文后,从该会话协商请求报文中解析出身份信息,并利用该身份信息对终端设备进行认证。若认证成功,则执行步骤8。若认证失败,则向终端设备发送认证失败的响应报文,结束流程。

步骤8、控制器为终端设备分配虚拟接入IP地址10.1.1.1和虚拟接入MAC地址(如虚拟MAC1),并确定该终端设备能够访问服务器1和服务器2,并确定与服务器1关联的是SSL VPN网关1和SSL VPN网关2,确定与服务器2关联的是SSL VPN网关1和SSL VPN网关2。进一步的,针对服务器1,可以指定SSL VPN网关1的优先级大于SSL VPN网关2的优先级,针对服务器2,可以指定SSL VPN网关2的优先级大于SSL VPN网关1的优先级。

在一个例子中,可以在控制器上预先配置虚IP网段,如10.1.1.0/24,控制器在为终端设备分配虚拟接入IP地址时,可以从虚IP网段内选择一个可用的IP地址10.1.1.1,并标记该IP地址不可用。同理,可以在控制器上预先配置虚MAC范围,且控制器在为终端设备分配虚拟接入MAC地址时,可以从虚MAC范围内选择一个可用的MAC地址(如虚拟MAC1),并标记该MAC地址不可用。而且,服务器上也会预先配置该虚IP网段和该虚MAC范围,且服务器只会对源IP地址属于虚IP网段、源MAC地址属于虚MAC范围的数据报文进行处理。

步骤9、控制器确定终端设备对应的资源信息和认证加密信息。该资源信息可以包括虚拟接入IP地址和虚拟接入MAC地址、服务器的IP地址、SSL VPN网关的IP地址,如表1所示,为资源信息的一个示例。该认证加密信息可以包括:加密算法、交换加密密钥、消息完整性验证算法等信息,对此不做限制。

表1

步骤10、控制器将携带资源信息和认证加密信息的响应报文发送给SSL VPN网关1或者SSL VPN网关2,并将认证加密信息和IP地址100.1.1.1(即会话协商请求报文的源IP地址)发送给SSL VPN网关1和SSL VPN网关2。

步骤11、SSL VPN网关1或者SSL VPN网关2在接收到携带资源信息和认证加密信息的响应报文后,将该响应报文发送给终端设备。SSL VPN网关1或者SSL VPN网关2在接收到认证加密信息和IP地址100.1.1.1后,在本SSL VPN网关的存储介质中保存该认证加密信息和该IP地址100.1.1.1。

步骤12、终端设备在接收到该响应报文后,从该响应报文中解析出该资源信息和该认证加密信息,并利用该资源信息和该认证加密信息发送数据报文。

基于认证加密信息和表1所示的资源信息,终端设备在向服务器1(IP地址为20.1.1.254)发送数据报文时,先生成一个内层数据报文,该内层数据报文的源IP地址为虚拟接入IP地址10.1.1.1,目的IP地址为服务器1的IP地址20.1.1.254,源MAC地址为虚拟MAC1,目的MAC地址为任意MAC。终端设备利用认证加密信息对内层数据报文进行加密等处理,得到一个SSL加密数据。终端设备在SSL加密数据之前封装报文头,得到数据报文。其中,该报文头的源IP地址为100.1.1.1,目的IP地址为SSL VPN网关的IP地址,源TCP端口为任意的端口标识,目的TCP端口为上述端口标识443。

在一个例子中,由于IP地址1.1.1.200的优先级2高于IP地址1.1.1.201的优先级1,因此,当IP地址1.1.1.200对应的SSL VPN网关1在线时,该报文头的目的IP地址可以为IP地址1.1.1.200。当IP地址1.1.1.200对应的SSL VPN网关1不在线时,该报文头的目的IP地址可以为IP地址1.1.1.201。

同理,针对终端设备向服务器2(IP地址为30.1.1.254)发送数据报文的过程,与终端设备向服务器1发送数据报文的过程类似,在此不再重复赘述。

步骤13、网络设备R1在接收到数据报文之后,根据该数据报文的目的IP地址1.1.1.200,将该数据报文发送给SSL VPN网关1。

步骤14、SSL VPN网关1在接收到数据报文后,确定源IP地址100.1.1.1对应的认证加密信息,从数据报文中剥掉报文头,得到SSL加密数据,并利用该认证加密信息对该SSL加密数据进行解密等处理,得到内层数据报文。

步骤15、SSL VPN网关1利用内层数据报文的目的IP地址(20.1.1.254)发送该内层数据报文,该内层数据报文被最终发送给服务器1。

步骤16、服务器1发送内层数据报文对应的数据响应报文,该数据响应报文的源IP地址为服务器1的IP地址20.1.1.254,目的IP地址为虚拟接入IP地址10.1.1.1,源MAC地址为服务器1的MAC地址,目的MAC地址为虚拟MAC1。

步骤17、网络设备R2在接收到数据响应报文之后,进行负载分担,将该数据响应报文转发给SSL VPN网关1或者SSL VPN网关2。

在一个例子中,可以在SSL VPN网关1和SSL VPN网关2上预先配置虚IP网段,该虚IP网段与控制器上配置的虚IP网段相同,如10.1.1.0/24。而且,SSL VPN网关1可以对外发布携带该IP网段10.1.1.0/24的路由,网络设备R2可以学习到携带该IP网段10.1.1.0/24的路由。SSL VPN网关2可以对外发布携带该IP网段10.1.1.0/24的路由,网络设备R2可以学习到携带该IP网段10.1.1.0/24的路由。因此,网络设备R2可以学习到IP网段10.1.1.0/24的两条路由,而这两条路由在网络设备R2上,就可以形成等价路由。

综上所述,网络设备R2在接收到数据响应报文后,由于目的IP地址为IP地址10.1.1.1,该IP地址10.1.1.1可以匹配到IP网段10.1.1.0/24的两条路由,因此,可以将该数据响应报文转发给SSL VPN网关1或者SSL VPN网关2。

步骤18、若SSL VPN网关1接收到该数据响应报文,则执行步骤19;若SSL VPN网关2接收到该数据响应报文,则SSL VPN网关2将该数据响应报文发送给SSL VPN网关1,由SSL VPN网关1执行步骤19。

在一个例子中,由于终端设备是将数据报文发送给SSL VPN网关1,因此,对于服务器1返回的数据响应报文,只能由SSL VPN网关1返回给终端设备,而不能由SSL VPN网关2返回给终端设备。其原因是:终端设备向SSL VPN网关1发送的是TCP类型的数据报文(即报文头携带的是TCP端口的信息),只有SSL VPN网关1返回的数据响应报文,终端设备才认为是上述数据报文的响应报文,可以继续向服务器1发送数据报文,而对于SSL VPN网关2返回的数据响应报文,终端设备不认为是上述数据报文的响应报文,因此会丢弃该数据响应报文,继续等待响应报文,从而导致传输异常。

在一个例子中,为了使SSL VPN网关2能够将数据响应报文发送给SSL VPN网关1,一个具体的实现方式为:针对服务器1,控制器在确定SSL VPN网关1的优先级大于SSL VPN网关2的优先级后,向SSL VPN网关2发送第二控制流表,该第二控制流表的匹配选项为:源IP地址为服务器1的IP地址20.1.1.254,目的IP地址为虚拟接入IP地址10.1.1.1;该第二控制流表的动作选项为将匹配到该匹配选项的报文上送给SSL VPN网关1。针对服务器2,控制器在确定SSL VPN网关2的优先级大于SSL VPN网关1的优先级后,向SSL VPN网关1发送第二控制流表,该第二控制流表的匹配选项为:源IP地址为服务器2的IP地址30.1.1.254,目的IP地址为虚拟接入IP地址10.1.1.1;该第二控制流表的动作选项为将匹配到该匹配选项的报文上送给SSL VPN网关2。

基于此第二控制流表,SSL VPN网关2在接收到数据响应报文后,由于数据响应报文的源IP地址为20.1.1.254,目的IP地址为10.1.1.1,因此,SSL VPN网关2可以将该数据响应报文发送给SSL VPN网关1。

步骤19、SSL VPN网关1利用认证加密信息对数据响应报文进行加密等处理,得到一个SSL加密数据,在SSL加密数据之前封装报文头,并发送封装后的数据响应报文。该报文头的源IP地址为IP地址1.1.1.200,目的IP地址为100.1.1.1,源TCP端口为端口标识443,目的TCP端口为任意的端口标识。

步骤20、网络设备R1在接收到数据响应报文后,将该数据响应报文发送给终端设备。终端设备从数据响应报文中剥掉报文头,得到SSL加密数据,并利用认证加密信息对该SSL加密数据进行解密等处理,得到数据响应报文。

至此,完成了终端设备访问VPN网络内的服务器资源的过程。

在一个例子中,若在某个时刻,SSL VPN网关1发生故障,即SSL VPN网关1不在线后,则终端设备可以通过SSL VPN网关2向服务器1发送数据报文。为了使SSL VPN网关2能够将服务器1返回的数据响应报文发送给终端设备,则控制器在获知SSL VPN网关1不在线时,还可以向SSL VPN网关2发送删除命令,以使SSL VPN网关2删除第二控制流表。这样,SSL VPN网关2在接收到服务器1返回的数据响应报文后,不再将数据响应报文发送给SSL VPN网关1,而是将数据响应报文发送给终端设备。进一步的,当SSL VPN网关1恢复时,控制器可以重新将第二控制流表下发给SSL VPN网关2,且终端设备可以重新通过SSL VPN网关1向服务器1发送数据报文。

基于与上述方法同样的申请构思,本申请实施例中还提供了一种报文传输装置,应用于包括控制器和至少两个SSL VPN网关的网络中,该报文传输装置应用于控制器。其中,该报文传输装置可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在的控制器的处理器,读取非易失性存储器中对应的计算机程序指令形成的。从硬件层面而言,如图3所示,为本申请提出的报文传输装置所在的控制器的一种硬件结构图,除了图3所示的处理器、非易失性存储器外,控制器还可以包括其他硬件,如负责处理报文的转发芯片、网络接口、内存等;从硬件结构上来讲,该控制器还可能是分布式设备,可能包括多个接口卡,以便在硬件层面进行报文处理的扩展。

如图4所示,为本申请提出的报文传输装置的结构图,包括:

发送模块11,用于向每个SSL VPN网关下发第一控制流表,所述第一控制流表用于使SSL VPN网关将来自终端设备的会话协商请求报文上送给控制器;

确定模块12,用于在接收到会话协商请求报文后,确定所述终端设备能够访问的服务器、与所述服务器关联的至少两个SSL VPN网关;

所述发送模块11,还用于将携带所述服务器的IP地址、所述至少两个SSL VPN网关的IP地址的响应报文发送给所述终端设备,以使所述终端设备通过所述至少两个SSL VPN网关中的一个SSL VPN网关向所述服务器发送数据报文。

在一个例子中,所述确定模块12,还用于确定所述终端设备对应的认证加密信息;所述发送模块11发送的响应报文中还携带所述认证加密信息,所述认证加密信息用于使所述终端设备在发送数据报文时,通过所述认证加密信息对数据报文进行处理;而且,所述发送模块11,还用于将所述认证加密信息分别发送给所述至少两个SSL VPN网关,以使SSL VPN网关利用所述认证加密信息对来自所述终端设备的数据报文进行处理。

在一个例子中,所述发送模块11,还用于在在向每个SSL VPN网关下发第一控制流表之前,为所述每个SSL VPN网关配置相同的全局地址信息,并将所述全局地址信息发送给所述每个SSL VPN网关,以使所述每个SSL VPN网关对外发布携带所述全局地址信息的路由;所述第一控制流表的匹配选项包括:所述全局地址信息;所述第一控制流表的动作选项包括:将匹配到所述匹配选项的报文上送给所述控制器;所述全局地址信息包括:全局IP地址;或者,全局IP地址和全局传输控制协议TCP端口。

所述确定模块12,还用于确定所述至少两个SSL VPN网关的优先级,且不同SSL VPN网关的优先级不同;所述发送模块11发送的响应报文中还携带所述至少两个SSL VPN网关的优先级,所述至少两个SSL VPN网关的优先级用于使所述终端设备在优先级最高的SSL VPN网关在线时,通过所述优先级最高的SSL VPN网关向所述服务器发送数据报文,在优先级最高的SSL VPN网关不在线时,通过优先级次高的SSL VPN网关向所述服务器发送数据报文。

所述发送模块11,还用于向优先级非最高的SSL VPN网关下发第二控制流表;其中,所述第二控制流表用于使所述优先级非最高的SSL VPN网关将所述服务器向所述终端设备返回的响应报文,发送给优先级最高的SSL VPN网关。

所述发送模块11,还用于在确定优先级最高的SSL VPN网关不在线后,向优先级次高的SSL VPN网关发送删除命令,以使优先级次高的SSL VPN网关删除所述第二控制流表;向优先级最高的SSL VPN网关、优先级次高的SSL VPN网关之外的其它SSL VPN网关发送删除命令,以使所述其它SSL VPN网关删除所述第二控制流表;向所述其它SSL VPN网关下发第三控制流表,所述第三控制流表用于使所述其它SSL VPN网关将所述服务器向所述终端设备返回的响应报文,发送给所述优先级次高的SSL VPN网关。

其中,本申请装置的各个模块可以集成于一体,也可以分离部署。上述模块可以合并为一个模块,也可以进一步拆分成多个子模块。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流程并不一定是实施本申请所必须的。

本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可进一步拆分成多个子模块。上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。

以上公开的仅为本申请的几个具体实施例,但是,本申请并非局限于此,任何本领域的技术人员能思之的变化都应落入本申请的保护范围。

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