CN111786870B - 数据传输方法及strongswan服务器 - Google Patents
数据传输方法及strongswan服务器 Download PDFInfo
- Publication number
- CN111786870B CN111786870B CN201910273227.6A CN201910273227A CN111786870B CN 111786870 B CN111786870 B CN 111786870B CN 201910273227 A CN201910273227 A CN 201910273227A CN 111786870 B CN111786870 B CN 111786870B
- Authority
- CN
- China
- Prior art keywords
- strongswan
- server
- vpn tunnel
- terminal user
- client
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4633—Interconnection of networks using encapsulation techniques, e.g. tunneling
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4641—Virtual LANs, VLANs, e.g. virtual private networks [VPN]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/2866—Architectures; Arrangements
- H04L67/30—Profiles
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种数据传输方法及strongswan服务器,其中,所述方法包括:基于strongswan服务器的配置文件,在所述strongswan服务器中创建至少两个终端用户各自的虚拟网卡;基于所述至少两个终端用户的连接信息,与所述至少两个终端用户的各个客户端分别建立VPN隧道;接收所述终端用户的客户端发来的外网数据报文,并识别所述外网数据报文所属的目标VPN隧道;获取所述目标VPN隧道的报文处理策略,并按照所述报文处理策略对所述外网数据报文处理后,将得到的内部数据通过所述目标VPN隧道绑定的虚拟网卡进行转发。本申请提供的技术方案,使得strongswan服务器能够正确区分不同终端用户的数据报文,保证终端用户的数据报文能够正常传输。
Description
技术领域
本发明涉及互联网技术领域,特别涉及一种数据传输方法及strongswan服务器。
背景技术
Strongswan服务器由于其简单易用以及安全性较高的特点,正在被越来越多的企业使用。为了提高网络连接的灵活性,目前可以将strongswan服务器应用至SD-WAN(Software-Defined Wide Area Network,软件定义的广域网)***中。在SD-WAN***中,strongswan服务器需要向多个不同的终端用户提供服务。
然而,现有的strongswan服务器在向多个不同的终端用户提供服务时,这些终端用户的安全关联信息(Security Alliance,SA)、授权策略、IP地址池等各项信息无法彼此区分。这样,不同的终端用户在现有的strongswan服务器中可能会出现相同的配置,这就使得当strongswan服务器接收到多个终端用户的数据报文时,无法对这些数据报文进行区分,从而导致终端用户无法通过strongswan服务器正常传输自身的数据报文。
发明内容
本申请的目的在于提供一种数据传输方法及strongswan服务器,使得strongswan服务器能够正确区分不同终端用户的数据报文,保证终端用户的数据报文能够正常传输。
为实现上述目的,本申请一方面提供一种SD-WAN***中strongswan服务器的数据传输方法,所述strongswan服务器的配置文件中包括至少两个终端用户的连接信息;所述方法包括:加载所述strongswan服务器的配置文件,并基于所述配置文件,在所述strongswan服务器中创建所述至少两个终端用户各自的虚拟网卡;基于所述至少两个终端用户的连接信息,与所述至少两个终端用户的各个客户端分别建立VPN隧道,其中,同一个终端用户的不同客户端对应的各个VPN隧道与所述同一个终端用户的虚拟网卡相绑定;接收所述终端用户的客户端发来的外网数据报文,并识别所述外网数据报文所属的目标VPN隧道;获取所述目标VPN隧道的报文处理策略,并按照所述报文处理策略对所述外网数据报文处理后,将得到的内部数据通过所述目标VPN隧道绑定的虚拟网卡进行转发。
为实现上述目的,本申请另一方面还提供一种strongswan服务器,所述strongswan服务器的配置文件中包括至少两个终端用户的连接信息;所述strongswan服务器包括:虚拟网卡创建单元,用于加载所述strongswan服务器的配置文件,并基于所述配置文件,在所述strongswan服务器中创建所述至少两个终端用户各自的虚拟网卡;VPN隧道建立单元,用于基于所述至少两个终端用户的连接信息,与所述至少两个终端用户的各个客户端分别建立VPN隧道,其中,同一个终端用户的不同客户端对应的各个VPN隧道与所述同一个终端用户的虚拟网卡相绑定;隧道识别单元,用于接收所述终端用户的客户端发来的外网数据报文,并识别所述外网数据报文所属的目标VPN隧道;报文传输单元,用于获取所述目标VPN隧道的报文处理策略,并按照所述报文处理策略对所述外网数据报文处理后,将得到的内部数据通过所述目标VPN隧道绑定的虚拟网卡进行转发。
为实现上述目的,本申请另一方面还提供一种strongswan服务器,所述strongswan服务器包括存储器和处理器,所述存储器用于存储计算机程序,所述计算机程序被所述处理器执行时,实现上述的数据传输方法。
由上可见,本申请提供的技术方案,在strongswan服务器的配置文件中,可以注明多个终端用户各自的连接信息。这样,当strongswan服务器启动后,可以根据上述的配置文件,创建各个终端用户的虚拟网卡。后续,针对每个终端用户的不同客户端,strongswan服务器可以与这些客户端建立VPN隧道。其中,每个客户端都可以具备自身独立的VPN隧道,并且对于同一个终端用户而言,该终端用户的多个客户端对应的各个VPN隧道,可以共用该终端用户的虚拟网卡。为了避免不同客户端的外网数据报文互相冲突,可以识别外网数据报文所属的目标VPN隧道,客户端与strongswan服务器在建立该目标VPN隧道时,可以协商得到多项数据,这些数据例如可以包括对报文的处理策略,以及对处理后的报文的路由策略等。这样,在识别出外网数据报文所属的目标VPN隧道后,可以获取所述目标VPN隧道的报文处理策略,并按照该报文处理策略对外网数据报文进行处理后,通过目标VPN隧道绑定的虚拟网卡进行转发。由上可见,本申请提供的技术方案,通过终端用户的客户端、VPN隧道、以及虚拟网卡之间的关联关系,能够准确地对外网数据报文进行处理,从而避免数据报文之间的冲突。因此,本申请提供的技术方案,可以使得strongswan服务器能够正确区分不同终端用户的数据报文,并且保证终端用户的数据报文能够正常传输。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施方式中strongswan服务器的***结构示意图;
图2是本发明实施方式中数据传输方法的步骤图;
图3是本发明实施方式中外网数据报文的结构示意图;
图4是本发明实施方式中strongswan服务器的功能模块示意图;
图5是本发明实施方式中strongswan服务器的结构示意图;
图6是本发明中计算机终端的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
本申请提供一种SD-WAN***中strongswan服务器的数据传输方法,该方法可以针对当前的strongswan服务器进行改进。具体地,在所述strongswan服务器中可以预先创建配置文件,所述配置文件中可以包含多项信息。具体地,所述配置文件中可以包含多个终端用户的连接信息。请参阅图1,strongswan服务器可以同时向多个终端用户提供服务,每个终端用户都可以包含一个或者多个客户端。在所述终端用户的连接信息中,可以包含终端用户的用户标识、终端用户的路由策略、安全关联信息、终端用户的授权(Policy)策略以及客户端的连接模式中的至少一种。其中,所述用户标识可以是能够唯一表征终端用户的字符或者数字。不同终端用户的用户标识互不相同。所述用户IP地址池可以是IP地址的集合,该IP地址池中的IP地址可以分配给终端用户的各个客户端使用。所述用户路由策略,可以用于限定终端用户发送的数据报文的路由方式。所述虚拟网卡信息,可以用于在strongswan服务器中为对应的终端用户创建虚拟网卡。所述连接模式可以根据实际应用场景的不同而灵活设置,例如在本实施方式中,所述终端用户的客户端与strongswan服务器的连接模式可以是hub(中心节点)模式。当然,在实际应用中,所述配置文件中还可以包含更多的信息。例如,所述配置文件中还可以包括服务端证书等公共配置信息。
请参阅图2,本申请提供的数据传输方法,可以包括以下步骤。
S1:加载所述strongswan服务器的配置文件,并基于所述配置文件,在所述strongswan服务器中创建所述至少两个终端用户各自的虚拟网卡。
在一个实施方式中,当strongswan服务器启动后,为了加快对多个终端用户的客户端发来的报文进行处理,可以创建多个工作线程,从而可以通过所述多个工作线程,并行处理所述至少两个终端用户的各个客户端发来的外网数据报文,从而提高报文的处理效率。
在一个实施方式中,strongswan服务器还可以加载所述配置文件,并解析其中的内容。然后,可以根据其中的终端用户的连接信息,为各个终端用户创建各自的虚拟网卡。根据应用场景的不同,虚拟网卡的形式也可以不同。例如,所述虚拟网卡可以是tun网卡,或者是tap网卡。这样,每个终端用户在strongswan服务器中便可以具备自身对应的虚拟网卡,不同终端用户对应的虚拟网卡也各不相同。
S3:基于所述至少两个终端用户的连接信息,与所述至少两个终端用户的各个客户端分别建立VPN隧道,其中,同一个终端用户的不同客户端对应的各个VPN隧道与所述同一个终端用户的虚拟网卡相绑定。
在本实施方式中,在为不同的终端用户创建不同的虚拟网卡后,终端用户的客户端可以与strongswan服务器建立通信连接。请参阅图1,为了避免不同客户端与strongswan服务器交互的数据互相干扰,strongswan服务器可以基于终端用户的连接信息,为终端用户的各个客户端分别建立VPN隧道。具体地,客户端可以向strongswan服务器发送连接建立请求,该请求中可以携带客户端所属终端用户的用户标识。这样,strongswan服务器接收到该请求后,可以根据其中携带的用户标识,在配置文件中查询到该用户标识对应的连接信息。后续,客户端与strongswan服务器可以根据查询得到的连接信息,进行通信协商,从而确定出数据加解密方法、路由策略、内网网段、客户端网段、客户端使用的身份信息、客户端使用的虚拟网卡等各项信息。在完成通信协商后,便可以在客户端与strongswan服务器之间建立起VPN隧道。该VPN隧道可以作为客户端的连接实例,该连接实例中可以包含上述通信协商过程中产生的各项信息。这样,针对每个客户端而言,都可以建立自身的VPN隧道。
在实际应用中,在所述strongswan服务器中可以维护两张数据表,其中一张数据表是终端用户的连接信息,另一张数据表是客户端的连接实例。其中,客户端的连接实例可以通过指针指向对应的终端用户的连接信息,或者可以复制终端用户的连接信息,并将复制的连接信息在客户端的连接实例的数据表中存储。这样,客户端的连接实例和终端用户的连接信息之间,便可以建立起关联关系。具体地,终端用户在strongswan服务器中可以具备自身的虚拟网卡,那么该终端用户下的各个客户端,在建立VPN隧道后,这些VPN隧道便可以与该终端用户的虚拟网卡相绑定。也就是说,同一个终端用户下的客户端可以共用同一个虚拟网卡。
在本实施方式中,上述客户端的连接实例和终端用户的连接信息之间的关联关系保存在strongswan进程共享内存中,可以被strongswan服务器内的多个工作线程共享,这样,无论哪个工作线程接收到外网数据报文,都能通过共享的关联关系,正确地对外网数据报文进行处理。
在一个实施方式中,当客户端在与strongswan服务器建立VPN隧道时,还可以为该客户端分配可使用的IP地址。具体地,终端用户的连接信息中可以包括终端用户的IP地址池,那么当strongswan服务器接收到当前客户端发来的连接建立请求后,可以根据该请求中携带的用户标识,识别出当前客户端所属的目标终端用户,并可以从所述目标终端用户的连接信息中提取所述目标终端用户的IP地址池。然后,在所述目标终端用户的IP地址池中,可以选择未被占用的IP地址,并将选择的所述IP地址分配给所述当前客户端。其中,所述未被占用的IP地址可以是随机选择的,也可以是按序选择的,本申请对此并不做限定。
相应地,后续strongswan服务器在接收到所述当前客户端发来的连接断开请求后,可以回收分配给所述当前客户端的IP地址,并将回收的IP地址作为未被占用的IP地址返回至所述目标终端用户的IP地址池中,从而使得该回收的IP地址可以被其它的客户端使用。然后,可以在所述strongswan服务器的连接实例数据表中查找到所述当前客户端的连接实例,并删除所述连接实例。这样,当前客户端与strongswan服务器经过协商,可以断开对应的VPN隧道的连接。
S5:接收所述终端用户的客户端发来的外网数据报文,并识别所述外网数据报文所属的目标VPN隧道。
在本实施方式中,当客户端与strongswan服务器之间建立VPN隧道后,便可以通过建立的VPN隧道向strongswan服务器发送外网数据报文。客户端发送的外网数据报文,可以具备固定的报文格式。具体地,所述报文格式可以如图3所示。所述外网数据报文中可以包括IP头部信息、UDP头部信息、strongswan头部信息以及加密后的内层报文。其中,内层报文可以是客户端发送的数据内容,该数据内容可以按照与strongswan服务器协商的加密方式进行加密,从而得到加密后的内层报文。然后,该加密后的内层报文可以与其它的几个字段共同构成外网数据报文。在所述外网数据报文的strongswan头部信息中,可以包括安全参数索引(Security Parameter Index,SPI)、序列号、完整性校验码等内容。其中,SPI可以用于查询连接实例。序列号可以用于对报文进行抗重放攻击。完整性校验码可以对报文进行完整性校验。其中,SPI便可以是用于填充隧道标识的指定字段。
在本实施方式中,strongswan服务器可以根据外网数据报文的内容,识别该外网数据报文所属的目标VPN隧道。具体地,在识别所述外网数据报文所属的目标VPN隧道时,可以从所述外网数据报文的VPN头部信息中提取出所述指定字段,并将所述指定字段内的隧道标识指向的VPN隧道作为所述外网数据报文所属的目标VPN隧道。
S7:获取所述目标VPN隧道的报文处理策略,并按照所述报文处理策略对所述外网数据报文处理后,将得到的内部数据通过所述目标VPN隧道绑定的虚拟网卡进行转发。
在本实施方式中,识别出外网数据报文所属的目标VPN隧道,便可以获取到该目标VPN隧道与strongswan服务器之间的协商数据。该协商数据中可以包括报文处理策略,所述报文处理策略可以包含报文的加解密方式和封装/解封装方式。那么,由于外网数据报文是经过加密和封装的,因此,strongswan服务器在获取到所述目标VPN隧道的报文处理策略后,可以按照所述报文处理策略限定的方式,对所述外网数据报文进行解封装,并提取解封装后的外网数据报文中经过加密的内部数据。通过所述目标VPN隧道的解密秘钥,可以对所述经过加密的内部数据进行解密,以还原所述内部数据的内容。最终,strongswan服务器便可以将还原得到的所述内部数据通过所述目标VPN隧道绑定的虚拟网卡进行转发。例如在图1中,strongswan服务器可以接收SD-WAN控制器发来的路由策略,将解密得到的内部数据通过所述目标VPN隧道绑定的虚拟网卡转发至SD-WAN的路由策略指向的另一个虚拟网卡处。
在一个实施方式中,strongswan服务器内的虚拟网卡之间可以进行数据传输,这样,其中一个虚拟网卡可以接收到另一个虚拟网卡发送的内部数据报文,该内部数据报文可以是未经过加密和封装的。在实际应用中,该内部数据报文也具备固定的报文格式。具体地,所述内部数据报文可以包含IP头部信息、UDP头部信息和内部数据信息,其中,内部数据信息中携带的数据便可以是提供给客户端的数据。当strongswan服务器接收到该内部数据报文后,可以提取出其中的IP头部信息。在该IP头部信息中,可以具备目的IP地址,该目的IP地址便可以是待接收该内部数据报文的客户端的IP地址。那么根据该目的IP地址,便可以确定出对应的目标客户端。然后,根据确定出的目标客户端,便可以进一步地确定出该内部数据报文所属的VPN隧道。后续,由于strongswan服务器需要将该内部数据报文发送给目标客户端,因此需要对该内部数据报文进行加密和封装。具体地,由于已经确定出该内部数据报文所属的VPN隧道,便可以获取识别出的所述VPN隧道对应的报文加密方式和报文封装方式,并按照所述报文加密方式和所述报文封装方式对所述内部数据报文加密和封装后,将得到的外网数据报文发送至对应的终端用户的客户端处。这样,便完成了客户端与strongswan服务器的双向数据传输。
在一个实施方式中,strongswan服务器还可以动态地对终端用户进行删除或者添加。具体地,若针对所述strongswan服务器添加新的终端用户,可以在所述strongswan服务器的配置文件中添加所述新的终端用户的连接信息,所述新的终端用户的连接信息用于在所述strongswan服务器中创建所述新的终端用户的虚拟网卡。若接收到指向所述strongswan服务器中已存在的目标终端用户的删除指令,可以将所述目标终端用户的虚拟网卡从所述strongswan服务器中删除,并从所述strongswan服务器的配置文件中将所述目标终端用户的连接信息删除。
在一个实施方式中,请参阅图1,为了更好地区分不同终端用户的数据流量,可以通过SD-WAN控制器,在所述strongswan服务器中创建与所述虚拟网卡的数量相等的若干个网络隔离空间。然后,可以将各个所述虚拟网卡添加至所述若干个网络隔离空间中,以使得得到的外网数据报文发送至对应的终端用户的客户端处。这样,不同终端用户的虚拟网卡便处于不同的网络隔离空间内,不同的网络隔离空间可以实现资源隔离,后续当虚拟网卡进行报文的转发时,可以进一步保证不会与其它虚拟网卡转发的报文相互影响。
本申请还提供一种strongswan服务器,所述strongswan服务器的配置文件中包括至少两个终端用户的连接信息。请参阅图4,所述strongswan服务器包括:
虚拟网卡创建单元,用于加载所述strongswan服务器的配置文件,并基于所述配置文件,在所述strongswan服务器中创建所述至少两个终端用户各自的虚拟网卡;
VPN隧道建立单元,用于基于所述至少两个终端用户的连接信息,与所述至少两个终端用户的各个客户端分别建立VPN隧道,其中,同一个终端用户的不同客户端对应的各个VPN隧道与所述同一个终端用户的虚拟网卡相绑定;
隧道识别单元,用于接收所述终端用户的客户端发来的外网数据报文,并识别所述外网数据报文所属的目标VPN隧道;
报文传输单元,用于获取所述目标VPN隧道的报文处理策略,并按照所述报文处理策略对所述外网数据报文处理后,将得到的内部数据通过所述目标VPN隧道绑定的虚拟网卡进行转发。
在一个实施方式中,所述外网数据报文中包括VPN头部信息,所述VPN头部信息中至少包括用于填写隧道标识的指定字段;
相应地,所述隧道识别单元包括:
字段识别模块,用于从所述外网数据报文的VPN头部信息中提取出所述指定字段,并将所述指定字段内的隧道标识指向的VPN隧道作为所述外网数据报文所属的目标VPN隧道。
在一个实施方式中,所述strongswan服务器还包括:
资源隔离单元,用于在所述strongswan服务器中创建与所述虚拟网卡的数量相等的若干个网络隔离空间,并将各个所述虚拟网卡添加至所述若干个网络隔离空间中,以使得同一个终端用户的虚拟网卡位于相同的网络隔离空间中,并且同一个网络隔离空间内,仅存在一个终端用户的虚拟网卡。
在一个实施方式中,所述strongswan服务器还包括:
内部数据报文识别单元,用于接收内部数据报文,并识别所述内部数据报文所属的VPN隧道;
内部数据报文传输单元,用于获取识别出的所述VPN隧道对应的报文加密方式和报文封装方式,并按照所述报文加密方式和所述报文封装方式对所述内部数据报文加密和封装后,将得到的外网数据报文发送至对应的终端用户的客户端处。
请参阅图5,本申请还提供一种strongswan服务器,所述strongswan服务器包括存储器和处理器,所述存储器用于存储计算机程序,所述计算机程序被所述处理器执行时,实现上述的数据传输方法。
请参阅图6,在本申请中,上述实施例中的技术方案可以应用于如图6所示的计算机终端10上。计算机终端10可以包括一个或多个(图中仅示出一个)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器104、以及用于通信功能的传输模块106。本领域普通技术人员可以理解,图6所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,计算机终端10还可包括比图6中所示更多或者更少的组件,或者具有与图6所示不同的配置。
存储器104可用于存储应用软件的软件程序以及模块,处理器102通过运行存储在存储器104内的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端10的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
由上可见,本申请提供的技术方案,在strongswan服务器的配置文件中,可以注明多个终端用户各自的连接信息。这样,当strongswan服务器启动后,可以根据上述的配置文件,创建各个终端用户的虚拟网卡。后续,针对每个终端用户的不同客户端,strongswan服务器可以与这些客户端建立VPN隧道。其中,每个客户端都可以具备自身独立的VPN隧道,并且对于同一个终端用户而言,该终端用户的多个客户端对应的各个VPN隧道,可以共用该终端用户的虚拟网卡。为了避免不同客户端的外网数据报文互相冲突,可以识别外网数据报文所属的目标VPN隧道,客户端与strongswan服务器在建立该目标VPN隧道时,可以协商得到多项数据,这些数据例如可以包括对报文的处理策略,以及对处理后的报文的路由策略等。这样,在识别出外网数据报文所属的目标VPN隧道后,可以获取所述目标VPN隧道的报文处理策略,并按照该报文处理策略对外网数据报文进行处理后,通过目标VPN隧道绑定的虚拟网卡进行转发。由上可见,本申请提供的技术方案,通过终端用户的客户端、VPN隧道、以及虚拟网卡之间的关联关系,能够准确地对外网数据报文进行处理,从而避免数据报文之间的冲突。因此,本申请提供的技术方案,可以使得strongswan服务器能够正确区分不同终端用户的数据报文,并且保证终端用户的数据报文能够正常传输。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件来实现。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (16)
1.一种SD-WAN***中strongswan服务器的数据传输方法,其特征在于,所述strongswan服务器的配置文件中包括至少两个终端用户的连接信息;所述方法包括:
加载所述strongswan服务器的配置文件,并基于所述配置文件,在所述strongswan服务器中创建所述至少两个终端用户各自的虚拟网卡;
基于所述至少两个终端用户的连接信息,与所述至少两个终端用户的各个客户端分别建立VPN隧道,其中,同一个终端用户的不同客户端对应的各个VPN隧道与所述同一个终端用户的虚拟网卡相绑定;
接收所述终端用户的客户端发来的外网数据报文,并识别所述外网数据报文所属的目标VPN隧道;
获取所述目标VPN隧道的报文处理策略,并按照所述报文处理策略对所述外网数据报文处理后,将得到的内部数据通过所述目标VPN隧道绑定的虚拟网卡进行转发。
2.根据权利要求1所述的方法,其特征在于,所述连接信息中包括终端用户的用户标识、终端用户的路由策略、安全关联信息、终端用户的授权策略以及客户端的连接模式中的至少一种;其中,不同终端用户的用户标识互不相同,所述客户端的连接模式包括hub模式。
3.根据权利要求2所述的方法,其特征在于,所述连接信息中还包括终端用户的IP地址池;
相应地,与所述至少两个终端用户的各个客户端分别建立VPN隧道包括:
针对当前客户端,识别所述当前客户端所属的目标终端用户,并从所述目标终端用户的连接信息中确定所述目标终端用户的IP地址池;
在所述目标终端用户的IP地址池中选择未被占用的IP地址,并将选择的所述IP地址分配给所述当前客户端。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
在接收到所述当前客户端发来的连接断开请求后,回收分配给所述当前客户端的IP地址,并将回收的IP地址作为未被占用的IP地址返回至所述目标终端用户的IP地址池中;
在所述strongswan服务器的连接实例数据表中查找到所述当前客户端的连接实例,并删除所述连接实例。
5.根据权利要求1所述的方法,其特征在于,所述外网数据报文中包括VPN头部信息,所述VPN头部信息中至少包括用于填写隧道标识的指定字段;
相应地,识别所述外网数据报文所属的目标VPN隧道包括:
从所述外网数据报文的VPN头部信息中提取出所述指定字段,并将所述指定字段内的隧道标识指向的VPN隧道作为所述外网数据报文所属的目标VPN隧道。
6.根据权利要求1所述的方法,其特征在于,按照所述报文处理策略对所述外网数据报文处理包括:
对所述外网数据报文进行解封装,并提取解封装后的外网数据报文中经过加密的内部数据;
通过所述目标VPN隧道的解密秘钥,对所述经过加密的内部数据进行解密,以还原所述内部数据的内容;
相应地,将还原得到的所述内部数据通过所述目标VPN隧道绑定的虚拟网卡进行转发。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若针对所述strongswan服务器添加新的终端用户,在所述strongswan服务器的配置文件中添加所述新的终端用户的连接信息,所述新的终端用户的连接信息用于在所述strongswan服务器中创建所述新的终端用户的虚拟网卡;
若接收到指向所述strongswan服务器中已存在的目标终端用户的删除指令,将所述目标终端用户的虚拟网卡从所述strongswan服务器中删除,并从所述strongswan服务器的配置文件中将所述目标终端用户的连接信息删除。
8.根据权利要求7所述的方法,其特征在于,所述方法还包括:
在从所述strongswan服务器的配置文件中将所述目标终端用户的连接信息删除之后,移除所述目标终端用户的IP地址池。
9.根据权利要求1所述的方法,其特征在于,在所述strongswan服务器中创建所述至少两个终端用户各自的虚拟网卡之后,所述方法还包括:
在所述strongswan服务器中创建与所述虚拟网卡的数量相等的若干个网络隔离空间,并将各个所述虚拟网卡添加至所述若干个网络隔离空间中,以使得同一个终端用户的虚拟网卡位于相同的网络隔离空间中,并且同一个网络隔离空间内,仅存在一个终端用户的虚拟网卡。
10.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收内部数据报文,并识别所述内部数据报文所属的VPN隧道;
获取识别出的所述VPN隧道对应的报文加密方式和报文封装方式,并按照所述报文加密方式和所述报文封装方式对所述内部数据报文加密和封装后,将得到的外网数据报文发送至对应的终端用户的客户端处。
11.根据权利要求10所述的方法,其特征在于,识别所述内部数据报文所属的VPN隧道包括:
识别所述内部数据报文中的目的IP地址,并确定所述目的IP地址对应的目标客户端;
将所述目标客户端建立的VPN隧道作为所述内部数据报文所属的VPN隧道。
12.一种strongswan服务器,其特征在于,所述strongswan服务器的配置文件中包括至少两个终端用户的连接信息;所述strongswan服务器包括:
虚拟网卡创建单元,用于加载所述strongswan服务器的配置文件,并基于所述配置文件,在所述strongswan服务器中创建所述至少两个终端用户各自的虚拟网卡;
VPN隧道建立单元,用于基于所述至少两个终端用户的连接信息,与所述至少两个终端用户的各个客户端分别建立VPN隧道,其中,同一个终端用户的不同客户端对应的各个VPN隧道与所述同一个终端用户的虚拟网卡相绑定;
隧道识别单元,用于接收所述终端用户的客户端发来的外网数据报文,并识别所述外网数据报文所属的目标VPN隧道;
报文传输单元,用于获取所述目标VPN隧道的报文处理策略,并按照所述报文处理策略对所述外网数据报文处理后,将得到的内部数据通过所述目标VPN隧道绑定的虚拟网卡进行转发。
13.根据权利要求12所述的strongswan服务器,其特征在于,所述外网数据报文中包括VPN头部信息,所述VPN头部信息中至少包括用于填写隧道标识的指定字段;
相应地,所述隧道识别单元包括:
字段识别模块,用于从所述外网数据报文的VPN头部信息中提取出所述指定字段,并将所述指定字段内的隧道标识指向的VPN隧道作为所述外网数据报文所属的目标VPN隧道。
14.根据权利要求12所述的strongswan服务器,其特征在于,所述strongswan服务器还包括:
资源隔离单元,用于在所述strongswan服务器中创建与所述虚拟网卡的数量相等的若干个网络隔离空间,并将各个所述虚拟网卡添加至所述若干个网络隔离空间中,以使得同一个终端用户的虚拟网卡位于相同的网络隔离空间中,并且同一个网络隔离空间内,仅存在一个终端用户的虚拟网卡。
15.根据权利要求12所述的strongswan服务器,其特征在于,所述strongswan服务器还包括:
内部数据报文识别单元,用于接收内部数据报文,并识别所述内部数据报文所属的VPN隧道;
内部数据报文传输单元,用于获取识别出的所述VPN隧道对应的报文加密方式和报文封装方式,并按照所述报文加密方式和所述报文封装方式对所述内部数据报文加密和封装后,将得到的外网数据报文发送至对应的终端用户的客户端处。
16.一种strongswan服务器,其特征在于,所述strongswan服务器包括存储器和处理器,所述存储器用于存储计算机程序,所述计算机程序被所述处理器执行时,实现如权利要求1至11中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910273227.6A CN111786870B (zh) | 2019-04-04 | 2019-04-04 | 数据传输方法及strongswan服务器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910273227.6A CN111786870B (zh) | 2019-04-04 | 2019-04-04 | 数据传输方法及strongswan服务器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111786870A CN111786870A (zh) | 2020-10-16 |
CN111786870B true CN111786870B (zh) | 2022-01-04 |
Family
ID=72755666
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910273227.6A Active CN111786870B (zh) | 2019-04-04 | 2019-04-04 | 数据传输方法及strongswan服务器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111786870B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116132220B (zh) * | 2021-11-15 | 2024-07-02 | 中国联合网络通信集团有限公司 | 数据发送方法、装置、设备及存储介质 |
CN115529206A (zh) * | 2022-09-30 | 2022-12-27 | 上海地面通信息网络股份有限公司 | 基于拨号云vpn的远程及移动办公协同控制***及接入方法 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101626337A (zh) * | 2009-06-18 | 2010-01-13 | 南京联创科技股份有限公司 | 基于虚拟网卡技术的多隧道并发模型实现方法 |
CN102255979A (zh) * | 2010-05-21 | 2011-11-23 | 上海繁云信息科技有限公司 | 一种接入服务器的方法和*** |
CN102469004A (zh) * | 2010-10-29 | 2012-05-23 | 中国科学院计算技术研究所 | 虚拟机网络***及其创建方法 |
CN104144096A (zh) * | 2014-08-25 | 2014-11-12 | 深圳市中兴移动通信有限公司 | 虚拟网络层构建方法、装置及*** |
CN105610675A (zh) * | 2016-01-28 | 2016-05-25 | 浪潮(北京)电子信息产业有限公司 | 一种虚拟vpn网关的创建方法及装置 |
CN105635335A (zh) * | 2015-12-30 | 2016-06-01 | 浙江宇视科技有限公司 | 社会资源接入方法、装置及*** |
CN109547392A (zh) * | 2017-09-21 | 2019-03-29 | 杭州达乎科技有限公司 | 一种在sdn网络中支持多用户隔离的加密接入方法及*** |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013173973A1 (zh) * | 2012-05-22 | 2013-11-28 | 华为技术有限公司 | 网络通信方法和装置 |
-
2019
- 2019-04-04 CN CN201910273227.6A patent/CN111786870B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101626337A (zh) * | 2009-06-18 | 2010-01-13 | 南京联创科技股份有限公司 | 基于虚拟网卡技术的多隧道并发模型实现方法 |
CN102255979A (zh) * | 2010-05-21 | 2011-11-23 | 上海繁云信息科技有限公司 | 一种接入服务器的方法和*** |
CN102469004A (zh) * | 2010-10-29 | 2012-05-23 | 中国科学院计算技术研究所 | 虚拟机网络***及其创建方法 |
CN104144096A (zh) * | 2014-08-25 | 2014-11-12 | 深圳市中兴移动通信有限公司 | 虚拟网络层构建方法、装置及*** |
CN105635335A (zh) * | 2015-12-30 | 2016-06-01 | 浙江宇视科技有限公司 | 社会资源接入方法、装置及*** |
CN105610675A (zh) * | 2016-01-28 | 2016-05-25 | 浪潮(北京)电子信息产业有限公司 | 一种虚拟vpn网关的创建方法及装置 |
CN109547392A (zh) * | 2017-09-21 | 2019-03-29 | 杭州达乎科技有限公司 | 一种在sdn网络中支持多用户隔离的加密接入方法及*** |
Non-Patent Citations (2)
Title |
---|
《Experimental performance evaluation of VPN implemented with strongSwan client and Cisco IOS IPSec gateway》;Ana Anđelić等;《2011 19thTelecommunications Forum (TELFOR) Proceedings of Papers》;20111124;全文 * |
《一种基于strongSwan的IPSec_VPN网关的实现》;蒋华;《计算机应用于软件》;20170731;第34卷(第7期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN111786870A (zh) | 2020-10-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111786867B (zh) | 一种数据传输方法及服务器 | |
CN111786869B (zh) | 一种服务器之间的数据传输方法及服务器 | |
CN109450852B (zh) | 网络通信加密解密方法及电子设备 | |
CN106376003B (zh) | 检测无线局域网连接及无线局域网数据发送方法及其装置 | |
CN103339901B (zh) | 内容导向网络环境中的终端和中间节点以及终端和中间节点的通信方法 | |
US20200344208A1 (en) | Method and apparatus for processing service request | |
CN106878199B (zh) | 一种接入信息的配置方法和装置 | |
CN103580980A (zh) | 虚拟网络自动发现和自动配置的方法及其装置 | |
CN101800781B (zh) | 一种穿越nat的隧道过渡方法及*** | |
CN111786868B (zh) | 服务器之间的数据传输方法及strongswan服务器 | |
US11870701B2 (en) | Data transmission method, switch, and site | |
CN101902482B (zh) | 基于IPv6自动配置实现终端安全准入控制的方法和*** | |
CN103944867A (zh) | 动态主机配置协议报文的处理方法、装置和*** | |
CN107135190B (zh) | 基于传输层安全连接的数据流量归属识别方法及装置 | |
CN113852552B (zh) | 一种网络通讯方法、***与存储介质 | |
CN111786870B (zh) | 数据传输方法及strongswan服务器 | |
CN110417632B (zh) | 一种网络通信方法、***及服务器 | |
US10419212B2 (en) | Methods, systems, apparatuses, and devices for securing network communications using multiple security protocols | |
EP4287550A1 (en) | Packet processing method, client end device, server end device, and computer-readable medium | |
CN103746768A (zh) | 一种数据包的识别方法及设备 | |
CN102546429A (zh) | 基于dhcp监听的isatap隧道的认证方法和*** | |
CN115225414B (zh) | 基于ipsec的加密策略匹配方法、装置及通信*** | |
CN111835613B (zh) | 一种vpn服务器的数据传输方法及vpn服务器 | |
US7623666B2 (en) | Automatic setting of security in communication network system | |
CN106612307B (zh) | 一种永远在线业务的实现方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |