CN111786868B - 服务器之间的数据传输方法及strongswan服务器 - Google Patents
服务器之间的数据传输方法及strongswan服务器 Download PDFInfo
- Publication number
- CN111786868B CN111786868B CN201910273220.4A CN201910273220A CN111786868B CN 111786868 B CN111786868 B CN 111786868B CN 201910273220 A CN201910273220 A CN 201910273220A CN 111786868 B CN111786868 B CN 111786868B
- Authority
- CN
- China
- Prior art keywords
- strongswan
- server
- virtual network
- user
- data message
- 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/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
- 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
- H04L49/00—Packet switching elements
- H04L49/70—Virtual switches
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服务器中创建一个或者多个虚拟网卡;与其它的一个或者多个strongswan服务器分别建立VPN隧道,其中,所述虚拟网卡与创建的所述VPN隧道一一绑定;接收外网数据报文,以及接收SD‑WAN控制器针对所述外网数据报文下发的路由策略,并在创建的所述一个或者多个虚拟网卡中确定所述路由策略指向的目标虚拟网卡;通过所述目标虚拟网卡对所述外网数据报文进行处理后,将完成处理的外网数据报文通过所述目标虚拟网卡绑定的目标VPN隧道发送至对应的strongswan服务器处。本申请提供的技术方案,能够对strongswan服务器之间传输的数据进行动态路由。
Description
技术领域
本发明涉及互联网技术领域,特别涉及一种服务器之间的数据传输方法及strongswan服务器。
背景技术
Strongswan服务器由于其简单易用以及安全性较高的特点,正在被越来越多的企业使用。为了提高网络连接的灵活性,目前可以将strongswan服务器应用至SD-WAN(Software-Defined Wide Area Network,软件定义的广域网)系统中。在SD-WAN系统中,需要根据实际需求,将用户的数据报文按照不同的路由策略进行转发。
然而,现有的strongswan服务器之间,往往是通过协商得到的路由策略来限定数据报文的传输路径,无法实现动态路由,从而导致现有的strongswan服务器之间的数据传输无法适用于SD-WAN系统中。
发明内容
本申请的目的在于提供一种服务器之间的数据传输方法及strongswan服务器,能够对strongswan服务器之间传输的数据进行动态路由。
为实现上述目的,本申请一方面提供一种SD-WAN系统中strongswan服务器之间的数据传输方法,strongswan服务器的配置文件中至少包括用户的一份或者多份连接信息;所述方法包括:加载所述配置文件,并基于所述配置文件,在所述strongswan服务器中针对所述用户创建与所述连接信息的数量相匹配的一个或者多个虚拟网卡;基于所述一份或者多份连接信息,与其它的一个或者多个strongswan服务器分别建立VPN隧道,其中,所述虚拟网卡与创建的所述VPN隧道一一绑定;接收与所述用户相关的外网数据报文,以及接收SD-WAN控制器针对所述外网数据报文下发的路由策略,并在创建的所述一个或者多个虚拟网卡中确定所述路由策略指向的目标虚拟网卡;通过所述目标虚拟网卡对所述外网数据报文进行处理后,将完成处理的外网数据报文通过所述目标虚拟网卡绑定的目标VPN隧道发送至对应的strongswan服务器处。
为实现上述目的,本申请另一方面还提供一种strongswan服务器,所述strongswan服务器的配置文件中至少包括用户的一份或者多份连接信息;所述strongswan服务器包括:虚拟网卡创建单元,用于加载所述配置文件,并基于所述配置文件,在所述strongswan服务器中针对所述用户创建与所述连接信息的数量相匹配的一个或者多个虚拟网卡;VPN隧道建立单元,用于基于所述一份或者多份连接信息,与其它的一个或者多个strongswan服务器分别建立VPN隧道,其中,所述虚拟网卡与创建的所述VPN隧道一一绑定;路由单元,用于接收与所述用户相关的外网数据报文,以及接收SD-WAN控制器针对所述外网数据报文下发的路由策略,并在创建的所述一个或者多个虚拟网卡中确定所述路由策略指向的目标虚拟网卡;报文传输单元,用于通过所述目标虚拟网卡对所述外网数据报文进行处理后,将完成处理的外网数据报文通过所述目标虚拟网卡绑定的目标VPN隧道发送至对应的strongswan服务器处。
为实现上述目的,本申请另一方面还提供一种strongswan服务器,所述strongswan服务器包括存储器和处理器,所述存储器用于存储计算机程序,所述计算机程序被所述处理器执行时,实现上述的数据传输方法。
由上可见,本申请提供的技术方案,在strongswan服务器的配置文件中,可以包括用户的一份或者多份连接信息。这一份或者多份连接信息,可以对应着一个或者多个虚拟网卡。这样,根据所述连接信息,便可以在strongswan服务器中创建对应的虚拟网卡。这些虚拟网卡可以用于与其它不同的strongswan服务器进行数据交互。具体地,当前的strongswan服务器可以根据上述的连接信息,与其它的一个或者多个strongswan进行通信协商,从而与各个其它的strongswan服务器分别建立VPN隧道。上述创建的虚拟网卡,与建立的VPN隧道可以一一绑定。这样,当strongswan服务器接收到用户的外网数据报文后,可以根据SD-WAN控制器实时下发的路由策略,确定出该路由策略指向的目标虚拟网卡。然后,通过该目标虚拟网卡对外网数据报文进行处理后,便可以通过该目标虚拟网卡绑定的目标VPN隧道,将完成处理的外网数据报文发送至对应的其它strongswan服务器处。这样,通过在一个strongswan服务器中创建多个虚拟网卡,并将虚拟网卡与VPN隧道进行绑定的方式,一方面可以隔离用户,另一方面可以对动态下达至VPN隧道的路由策略进行处理,并且可以按照动态下达的路由策略对虚拟网卡收发的外网数据报文进行转发。由此可见,本申请提供的技术方案,能够对strongswan服务器之间传输的数据进行隔离和动态路由,从而使得改进后的strongswan服务器能够适用于SD-WAN系统。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施方式中strongswan服务器的系统结构示意图;
图2是本发明实施方式中数据传输方法的步骤图;
图3是本发明实施方式中外网数据报文的结构示意图;
图4是本发明实施方式中strongswan服务器的功能模块示意图;
图5是本发明实施方式中strongswan服务器的结构示意图;
图6是本发明中计算机终端的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
本申请提供一种SD-WAN系统中strongswan服务器之间的数据传输方法,该方法可以针对当前的strongswan服务器进行改进。具体地,在所述strongswan服务器中可以预先创建所述strongswan服务器的配置文件,所述配置文件中可以包含多项信息。具体地,所述配置文件中可以包含外网接口标识,还可以包含用户的连接信息。其中,strongswan服务器可以通过外网接口标识表征的外网接口统一接收用户的客户端或者其它strongswan服务器发来的外网数据报文。其中,所述外网接口可以由strongswan服务器的外网IP地址以及接收外网数据报文的端口共同表示。所述外网接口标识便可以包含strongswan服务器的外网IP地址和上述端口的标识。
请参阅图1,strongswan服务器可以同时向多个用户提供服务。在所述用户的连接信息中,可以包含用户的用户标识、用户的路由策略、虚拟网卡信息、strongswan服务器的连接模式等多项信息。其中,所述用户标识可以是能够唯一表征用户的字符或者数字。不同用户的用户标识互不相同。所述用户路由策略,可以用于限定用户发送的数据报文的路由方式。所述虚拟网卡信息,可以用于在strongswan服务器中为对应的用户创建虚拟网卡。所述连接模式可以根据实际应用场景的不同而灵活设置,例如在本实施方式中,用户的客户端与strongswan服务器的连接模式可以是hub模式,而strongswan服务器之间的连接模式可以是tun模式。当然,在实际应用中,所述配置文件中还可以包含更多的信息。例如,所述配置文件中还可以包括服务端证书等公共配置信息。在本实施方式中,对于同一个用户而言,可以具备一份或者多份连接信息,每一份连接信息均可以包含上述例举的各项信息。
请参阅图2,本申请提供的数据传输方法,可以包括以下步骤。
S1:加载所述配置文件,并基于所述配置文件,在所述strongswan服务器中针对所述用户创建与所述连接信息的数量相匹配的一个或者多个虚拟网卡。
在一个实施方式中,当strongswan服务器启动后,为了加快对用户的客户端发来的报文进行处理,可以创建多个工作线程,从而可以通过所述多个工作线程,并行处理用户的各个客户端发来的外网数据报文,从而提高报文的处理效率。
在一个实施方式中,strongswan服务器还可以加载所述配置文件,并解析其中的内容。然后,可以根据其中的用户的连接信息,针对所述用户创建与所述连接信息的数量相匹配的一个或者多个虚拟网卡。例如在图1中,对于strongswan服务器A而言,其可以同时向用户A1和用户A2提供服务。以用户A1为例,连接信息中可以包括三份连接信息,其中一份连接信息表征的模式是hub模式,另外两份连接信息表征的模式是tun模式。那么,根据hub模式的连接信息,可以创建用于与用户进行数据交互的虚拟网卡1,而针对tun模式的连接信息,可以创建两个与其它strongswan服务器进行数据交互的虚拟网卡2和虚拟网卡3。例如,虚拟网卡2可以与strongswan服务器B进行数据交互,而虚拟网卡3可以与strongswan服务器C进行数据交互。
由图1可见,同一个strongswan服务器可以对不同的用户提供服务,在一个实施方式中,为了区分不同用户的数据流量,在strongswan服务器中针对不同的用户创建对应的虚拟网卡之后,可以在所述strongswan服务器中创建与所述用户的数量相等的若干个网络隔离空间,并将各个所述用户的虚拟网卡添加至所述若干个网络隔离空间中,以使得同一个用户的虚拟网卡位于相同的网络隔离空间中,并且同一个网络隔离空间内,仅存在一个用户的一个或者多个虚拟网卡。例如在图1中,用户A1的三个虚拟网卡可以添加于网络隔离空间A1中,用户A2的两个虚拟网卡可以添加于网络隔离空间A2中。这样,通过网络隔离空间实现资源隔离,可以避免不同用户的虚拟网卡之间互相影响。
根据应用场景的不同,虚拟网卡的形式也可以不同。例如,所述虚拟网卡可以是tun网卡,或者是tap网卡。这样,每个用户在strongswan服务器中便可以具备自身对应的一个或者多个虚拟网卡,不同用户对应的虚拟网卡也各不相同。
S3:基于所述一份或者多份连接信息,与其它的一个或者多个strongswan服务器分别建立VPN隧道,其中,所述虚拟网卡与创建的所述VPN隧道一一绑定。
在本实施方式中,在为不同的用户创建不同的虚拟网卡后,当前的strongswan服务器便可以与其它的strongswan服务器建立通信连接。具体地,当前的strongswan服务器可以向其它的strongswan服务器发送连接建立请求,该请求中可以携带用户的用户标识。这样,其它的strongswan服务器接收到该请求后,可以根据其中携带的用户标识,在配置文件中查询到该用户标识对应的连接信息。后续,根据查询得到的连接信息,两个strongswan服务器之间可以进行通信协商,从而确定出数据加解密方法、路由策略、使用的虚拟网卡等各项信息。在完成通信协商后,便可以在两个strongswan服务器之间建立起VPN隧道。该VPN隧道可以作为连接实例,该连接实例中可以包含上述通信协商过程中产生的各项信息。这样,针对每份连接信息而言,都可以建立对应的VPN隧道。
在实际应用中,在所述strongswan服务器中可以维护两张数据表,其中一张数据表是用户的连接信息,另一张数据表是建立的连接实例。其中,连接实例可以通过指针指向对应的用户的连接信息,或者可以复制用户的连接信息,并将复制的连接信息在客户端的连接实例的数据表中存储。这样,连接实例和用户的连接信息之间,便可以建立起关联关系,每一份连接信息都具备对应的连接实例。由于在每一份连接信息中都具备虚拟网卡的信息,因此,在根据连接信息建立了对应的VPN隧道后,虚拟网卡与VPN隧道便也具备了一一对应的关系,从而使得创建的虚拟网卡与建立的VPN隧道能够一一绑定。
在本实施方式中,上述的连接实例和用户的连接信息之间的关联关系保存在strongswan进程共享内存中,可以被strongswan服务器内的多个工作线程共享,这样,无论哪个工作线程接收到外网数据报文,都能通过共享的关联关系,正确地对外网数据报文进行处理。
上述strongswan服务器之间可以通过tun模式的连接信息建立对应的VPN隧道,而strongswan服务器与用户之间,可以通过hub模式的连接信息建立对应的VPN隧道。这样,对于每个虚拟网卡而言,都可以具备各自绑定的VPN隧道,只不过有些虚拟网卡用于实现strongswan服务器之间的数据交互,而有些虚拟网卡用于实现strongswan服务器与用户之间的数据交互。
S5:接收与所述用户相关的外网数据报文,以及接收SD-WAN控制器针对所述外网数据报文下发的路由策略,并在创建的所述一个或者多个虚拟网卡中确定所述路由策略指向的目标虚拟网卡。
在本实施方式中,与所述用户相关的外网数据报文,可以是用户的客户端直接发来的,也可以是strongswan服务器转发的。例如,对于图1中的strongswan服务器A而言,其接收到的与用户相关的外网数据报文,便可以是用户的客户端直接发来的。而对于strongswan服务器B而言,其接收到的与用户相关的外网数据报文,可以是strongswan服务器A转发的。
在本实施方式中,与用户相关的外网数据报文可以具备固定的报文格式。具体地,所述外网数据报文中可以包括IP头部信息、UDP头部信息、strongswan头部信息以及加密后的内层报文。其中,内层报文可以是用户的客户端发送的数据内容,该数据内容可以按照与strongswan服务器协商的加密方式进行加密,从而得到加密后的内层报文。然后,该加密后的内层报文可以与其它的几个字段共同构成外网数据报文。在所述外网数据报文的strongswan头部信息中,可以包含安全参数索引(Security Parameter Index,SPI)、序列号、完整性校验码等内容。其中,SPI可以用于查询连接实例。序列号可以用于对报文进行抗重放攻击。完整性校验码可以对报文进行完整性校验。其中,SPI便可以是用于填充隧道标识的指定字段。
在本实施方式中,外网数据报文可以被strongswan服务器的外网接口统一接收。然后,strongswan服务器可以根据外网数据报文的内容,识别该外网数据报文所属的VPN隧道。具体地,在识别所述外网数据报文所属的VPN隧道时,可以从所述外网数据报文的strongswan头部信息中提取出所述指定字段,并确定所述指定字段内的隧道标识指向的VPN隧道。由于VPN隧道与虚拟网卡具备一一绑定的关系,那么该外网数据报文便可以交由对应的虚拟网卡进行处理。例如,在图1中,用户A1发来的外网数据报文,在识别出对应的VPN隧道后,便可以交由虚拟网卡1来处理。虚拟网卡在对外网数据报文进行处理时,可以获取所述隧道标识指向的VPN隧道的报文处理策略,并按照所述报文处理策略对所述外网数据报文进行处理,得到所述外网数据报文中的内层数据。具体地,所述报文处理策略,可以是用户与strongswan服务器建立VPN隧道时,进行通信协商的结果。该通信协商的结果可以存储于VPN隧道的连接实例中。所述报文处理策略可以包含报文的加解密方式和封装/解封装方式。那么,由于外网数据报文是经过加密和封装的,因此,虚拟网卡可以按照所述报文处理策略限定的方式,对所述外网数据报文进行解封装,并提取解封装后的外网数据报文中经过加密的内层数据。通过所述隧道标识指向的VPN隧道的解密秘钥,可以对所述经过加密的内层数据进行解密,以还原所述内层数据的内容。最终,虚拟网卡便可以对外网数据报文处理后,得到对应的内层数据。
在本实施方式中,在得到所述内层数据后,虚拟网卡一方面可以根据连接实例限定的路由策略,将该内层数据转发至其它的虚拟网卡处。此外,还能够根据SD-WAN控制器针对所述外网数据报文下达的路由策略,动态地调节该内层数据的转发对象。具体地,所述SD-WAN控制器下达的路由策略中,可以指明外网数据报文后续的传输路径,在该传输路径中,可以包括各个strongswan服务器的标识。这样,处理外网数据报文的虚拟网卡可以解析SD-WAN控制器下达的路由策略,从而确定出下一个目标strongswan服务器的标识。由于当前的strongswan服务器与目标strongswan服务器之间已经建立了VPN隧道,那么当目标strongswan服务器确定时,对应的VPN隧道也是确定的。同时,又由于VPN隧道与虚拟网卡之间具备一一绑定的关系,因此,用于接收内层数据的目标虚拟网卡也可以确定。这样,处理外网数据报文的虚拟网卡根据SD-WAN服务器下达的路由策略,便可以在当前strongswan服务器内创建的所述一个或者多个虚拟网卡中确定所述路由策略指向的目标虚拟网卡,并可以将所述内层数据发送至所述目标虚拟网卡处。
S7:通过所述目标虚拟网卡对所述外网数据报文进行处理后,将完成处理的外网数据报文通过所述目标虚拟网卡绑定的目标VPN隧道发送至对应的strongswan服务器处。
在本实施方式中,在所述目标虚拟网卡接收到根据外网数据报文解析得到的内层数据后,可以获取所述目标虚拟网卡绑定的目标VPN隧道的报文处理策略。同样地,该报文处理策略也可以存储于目标VPN隧道的连接实例中。该报文处理策略可以限定报文加密方式和封装方式。因此,目标虚拟网卡可以按照所述目标VPN隧道的报文处理策略,对所述内层数据进行加密和封装后,得到完成处理的外网数据报文。这样,当前的strongswan服务器对于接收到的外网数据报文,可以由两张虚拟网卡分别进行解封装、解密以及加密、封装的流程,从而得到完成处理的外网数据报文,该完成处理的外网数据报文可以被发送至所述SD-WAN控制器下达的路由策略指向的strongswan服务器处。具体地,所述目标虚拟网卡可以将所述完成处理的外网数据报文从所述外网接口标识表征的外网接口发出,并通过所述目标VPN隧道到达对应的strongswan服务器处。
这样,每个strongswan服务器都可以通过统一的外网接口来接收或者发出外网数据报文,而在每个strongswan服务器内,可以通过创建的虚拟网卡,对外网数据报文进行处理和转发,从而能够根据SD-WAN服务器下达的路由策略,动态地更改外网数据报文的传输路径。
在一个实施方式中,strongswan服务器还可以动态地对用户进行删除或者添加。具体地,若针对所述strongswan服务器添加新的用户,可以在所述strongswan服务器的配置文件中添加所述新的用户的连接信息,所述新的用户的连接信息用于在所述strongswan服务器中创建所述新的用户的虚拟网卡。若接收到指向所述strongswan服务器中已存在的目标用户的删除指令,可以将所述目标用户的虚拟网卡从所述strongswan服务器中删除,并从所述strongswan服务器的配置文件中将所述目标用户的连接信息删除。
本申请还提供一种strongswan服务器,所述strongswan服务器的配置文件中至少包括用户的一份或者多份连接信息。请参阅图4,所述strongswan服务器包括:
虚拟网卡创建单元,用于加载所述配置文件,并基于所述配置文件,在所述strongswan服务器中针对所述用户创建与所述连接信息的数量相匹配的一个或者多个虚拟网卡;
VPN隧道建立单元,用于基于所述一份或者多份连接信息,与其它的一个或者多个strongswan服务器分别建立VPN隧道,其中,所述虚拟网卡与创建的所述VPN隧道一一绑定;
路由单元,用于接收与所述用户相关的外网数据报文,以及接收SD-WAN控制器针对所述外网数据报文下发的路由策略,并在创建的所述一个或者多个虚拟网卡中确定所述路由策略指向的目标虚拟网卡;
报文传输单元,用于通过所述目标虚拟网卡对所述外网数据报文进行处理后,将完成处理的外网数据报文通过所述目标虚拟网卡绑定的目标VPN隧道发送至对应的strongswan服务器处。
在一个实施方式中,所述外网数据报文中包括strongswan头部信息,所述strongswan头部信息中至少包括用于填写隧道标识的指定字段;
相应地,所述报文传输单元包括:
字段识别模块,用于从所述外网数据报文的strongswan头部信息中提取出所述指定字段,并确定所述指定字段内的隧道标识指向的VPN隧道;
报文处理模块,用于获取所述隧道标识指向的VPN隧道的报文处理策略,并按照所述报文处理策略对所述外网数据报文进行处理,得到所述外网数据报文中的内层数据。
在一个实施方式中,所述报文传输单元还包括:
内层数据传输模块,用于将所述内层数据发送至所述目标虚拟网卡处,并获取所述目标虚拟网卡绑定的目标VPN隧道的报文处理策略;
内层数据处理模块,用于按照所述目标VPN隧道的报文处理策略,对所述内层数据进行加密和封装后,得到完成处理的外网数据报文。
在一个实施方式中,所述strongswan服务器还包括:
资源隔离单元,用于若所述用户的数量为至少两个,在所述strongswan服务器中针对各个所述用户创建对应的虚拟网卡后,在所述strongswan服务器中创建与所述用户的数量相等的若干个网络隔离空间,并将各个所述用户的虚拟网卡添加至所述若干个网络隔离空间中,以使得同一个用户的虚拟网卡位于相同的网络隔离空间中,并且同一个网络隔离空间内,仅存在一个用户的一个或者多个虚拟网卡。
请参阅图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服务器进行数据交互。具体地,当前的strongswan服务器可以根据上述的连接信息,与其它的一个或者多个strongswan进行通信协商,从而与各个其它的strongswan服务器分别建立VPN隧道。上述创建的虚拟网卡,与建立的VPN隧道可以一一绑定。这样,当strongswan服务器接收到用户的外网数据报文后,可以根据SD-WAN控制器实时下发的路由策略,确定出该路由策略指向的目标虚拟网卡。然后,通过该目标虚拟网卡对外网数据报文进行处理后,便可以通过该目标虚拟网卡绑定的目标VPN隧道,将完成处理的外网数据报文发送至对应的其它strongswan服务器处。这样,通过在一个strongswan服务器中创建多个虚拟网卡,并将虚拟网卡与VPN隧道进行绑定的方式,一方面可以隔离用户,另一方面可以对动态下达至VPN隧道的路由策略进行处理,并且可以按照动态下达的路由策略对虚拟网卡收发的外网数据报文进行转发。由此可见,本申请提供的技术方案,能够对strongswan服务器之间传输的数据进行隔离和动态路由,从而使得改进后的strongswan服务器能够适用于SD-WAN系统。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件来实现。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (12)
1.一种SD-WAN系统中strongswan服务器之间的数据传输方法,其特征在于,strongswan服务器的配置文件中至少包括用户的一份或者多份连接信息,所述连接信息包括用户的用户标识、用户的路由策略和虚拟网卡信息;所述方法包括:
加载所述配置文件,并基于所述配置文件,在所述strongswan服务器中针对所述用户创建与所述连接信息的数量相匹配的一个或者多个虚拟网卡;
基于所述一份或者多份连接信息,与其它的一个或者多个strongswan服务器分别建立VPN隧道,其中,所述虚拟网卡与创建的所述VPN隧道一一绑定;
接收与所述用户相关的外网数据报文,以及接收SD-WAN控制器针对所述外网数据报文下发的路由策略,并在创建的所述一个或者多个虚拟网卡中确定所述路由策略指向的目标虚拟网卡;
通过所述目标虚拟网卡对所述外网数据报文进行处理后,将完成处理的外网数据报文通过所述目标虚拟网卡绑定的目标VPN隧道发送至对应的strongswan服务器处。
2.根据权利要求1所述的方法,其特征在于,所述连接信息中还包括strongswan服务器的连接模式;其中,不同用户的用户标识互不相同,所述strongswan服务器的连接模式包括tun模式。
3.根据权利要求1所述的方法,其特征在于,所述外网数据报文中包括strongswan头部信息,所述strongswan头部信息中至少包括用于填写隧道标识的指定字段;
相应地,在接收与所述用户相关的外网数据报文之后,所述方法还包括:
从所述外网数据报文的strongswan头部信息中提取出所述指定字段,并确定所述指定字段内的隧道标识指向的VPN隧道;
获取所述隧道标识指向的VPN隧道的报文处理策略,并按照所述报文处理策略对所述外网数据报文进行处理,得到所述外网数据报文中的内层数据。
4.根据权利要求3所述的方法,其特征在于,按照所述报文处理策略对所述外网数据报文进行处理包括:
对所述外网数据报文进行解封装,并提取解封装后的外网数据报文中经过加密的内层数据;
通过所述隧道标识指向的VPN隧道的解密秘钥,对所述经过加密的内层数据进行解密,以还原所述内层数据的内容。
5.根据权利要求4所述的方法,其特征在于,通过所述目标虚拟网卡对所述外网数据报文进行处理包括:
将所述内层数据发送至所述目标虚拟网卡处,并获取所述目标虚拟网卡绑定的目标VPN隧道的报文处理策略;
按照所述目标VPN隧道的报文处理策略,对所述内层数据进行加密和封装后,得到完成处理的外网数据报文。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若针对所述strongswan服务器添加新的用户,在所述strongswan服务器的配置文件中添加所述新的用户的连接信息,所述新的用户的连接信息用于在所述strongswan服务器中创建所述新的用户的虚拟网卡;
若接收到指向所述strongswan服务器中已存在的目标用户的删除指令,将所述目标用户的虚拟网卡从所述strongswan服务器中删除,并从所述strongswan服务器的配置文件中将所述目标用户的连接信息删除。
7.根据权利要求1所述的方法,其特征在于,若所述用户的数量为至少两个,在所述strongswan服务器中针对各个所述用户创建对应的虚拟网卡后,所述方法还包括:
在所述strongswan服务器中创建与所述用户的数量相等的若干个网络隔离空间,并将各个所述用户的虚拟网卡添加至所述若干个网络隔离空间中,以使得同一个用户的虚拟网卡位于相同的网络隔离空间中,并且同一个网络隔离空间内,仅存在一个用户的一个或者多个虚拟网卡。
8.一种strongswan服务器,其特征在于,所述strongswan服务器的配置文件中至少包括用户的一份或者多份连接信息,所述连接信息包括用户的用户标识、用户的路由策略和虚拟网卡信息;所述strongswan服务器包括:
虚拟网卡创建单元,用于加载所述配置文件,并基于所述配置文件,在所述strongswan服务器中针对所述用户创建与所述连接信息的数量相匹配的一个或者多个虚拟网卡;
VPN隧道建立单元,用于基于所述一份或者多份连接信息,与其它的一个或者多个strongswan服务器分别建立VPN隧道,其中,所述虚拟网卡与创建的所述VPN隧道一一绑定;
路由单元,用于接收与所述用户相关的外网数据报文,以及接收SD-WAN控制器针对所述外网数据报文下发的路由策略,并在创建的所述一个或者多个虚拟网卡中确定所述路由策略指向的目标虚拟网卡;
报文传输单元,用于通过所述目标虚拟网卡对所述外网数据报文进行处理后,将完成处理的外网数据报文通过所述目标虚拟网卡绑定的目标VPN隧道发送至对应的strongswan服务器处。
9.根据权利要求8所述的strongswan服务器,其特征在于,所述外网数据报文中包括strongswan头部信息,所述strongswan头部信息中至少包括用于填写隧道标识的指定字段;
相应地,所述报文传输单元包括:
字段识别模块,用于从所述外网数据报文的strongswan头部信息中提取出所述指定字段,并确定所述指定字段内的隧道标识指向的VPN隧道;
报文处理模块,用于获取所述隧道标识指向的VPN隧道的报文处理策略,并按照所述报文处理策略对所述外网数据报文进行处理,得到所述外网数据报文中的内层数据。
10.根据权利要求9所述的strongswan服务器,其特征在于,所述报文传输单元还包括:
内层数据传输模块,用于将所述内层数据发送至所述目标虚拟网卡处,并获取所述目标虚拟网卡绑定的目标VPN隧道的报文处理策略;
内层数据处理模块,用于按照所述目标VPN隧道的报文处理策略,对所述内层数据进行加密和封装后,得到完成处理的外网数据报文。
11.根据权利要求8所述的strongswan服务器,其特征在于,所述strongswan服务器还包括:
资源隔离单元,用于若所述用户的数量为至少两个,在所述strongswan服务器中针对各个所述用户创建对应的虚拟网卡后,在所述strongswan服务器中创建与所述用户的数量相等的若干个网络隔离空间,并将各个所述用户的虚拟网卡添加至所述若干个网络隔离空间中,以使得同一个用户的虚拟网卡位于相同的网络隔离空间中,并且同一个网络隔离空间内,仅存在一个用户的一个或者多个虚拟网卡。
12.一种strongswan服务器,其特征在于,所述strongswan服务器包括存储器和处理器,所述存储器用于存储计算机程序,所述计算机程序被所述处理器执行时,实现如权利要求1至7中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910273220.4A CN111786868B (zh) | 2019-04-04 | 2019-04-04 | 服务器之间的数据传输方法及strongswan服务器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910273220.4A CN111786868B (zh) | 2019-04-04 | 2019-04-04 | 服务器之间的数据传输方法及strongswan服务器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111786868A CN111786868A (zh) | 2020-10-16 |
CN111786868B true CN111786868B (zh) | 2022-04-22 |
Family
ID=72755727
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910273220.4A Active CN111786868B (zh) | 2019-04-04 | 2019-04-04 | 服务器之间的数据传输方法及strongswan服务器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111786868B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112653575B (zh) * | 2020-12-11 | 2022-08-30 | 网宿科技股份有限公司 | 一种网络配置方法、控制器及流量引导系统 |
CN112671811B (zh) * | 2021-03-18 | 2021-12-28 | 观脉科技(北京)有限公司 | 一种网络接入方法和设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101197856A (zh) * | 2007-12-27 | 2008-06-11 | 北京交通大学 | Vpn网络间ip地址空间免规划及私有域名访问的方法 |
CN101626337A (zh) * | 2009-06-18 | 2010-01-13 | 南京联创科技股份有限公司 | 基于虚拟网卡技术的多隧道并发模型实现方法 |
CN101668022A (zh) * | 2009-09-14 | 2010-03-10 | 陈博东 | 一种建立在虚拟机上的虚拟网络隔离系统及实现方法 |
CN108111619A (zh) * | 2017-12-28 | 2018-06-01 | 西安抱朴通信科技有限公司 | 一种数据分流方法及装置、计算机设备、存储介质 |
CN109547392A (zh) * | 2017-09-21 | 2019-03-29 | 杭州达乎科技有限公司 | 一种在sdn网络中支持多用户隔离的加密接入方法及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105656747A (zh) * | 2015-11-11 | 2016-06-08 | 乐卡汽车智能科技(北京)有限公司 | 一种多链路数据传输的方法及设备 |
-
2019
- 2019-04-04 CN CN201910273220.4A patent/CN111786868B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101197856A (zh) * | 2007-12-27 | 2008-06-11 | 北京交通大学 | Vpn网络间ip地址空间免规划及私有域名访问的方法 |
CN101626337A (zh) * | 2009-06-18 | 2010-01-13 | 南京联创科技股份有限公司 | 基于虚拟网卡技术的多隧道并发模型实现方法 |
CN101668022A (zh) * | 2009-09-14 | 2010-03-10 | 陈博东 | 一种建立在虚拟机上的虚拟网络隔离系统及实现方法 |
CN109547392A (zh) * | 2017-09-21 | 2019-03-29 | 杭州达乎科技有限公司 | 一种在sdn网络中支持多用户隔离的加密接入方法及系统 |
CN108111619A (zh) * | 2017-12-28 | 2018-06-01 | 西安抱朴通信科技有限公司 | 一种数据分流方法及装置、计算机设备、存储介质 |
Non-Patent Citations (2)
Title |
---|
"基于Openswan的IPv6 IPsec VPN网关的研究";郜文美;《中国优秀博硕士学位论文全文数据库(硕士)——信息科技辑》;20080615;全文 * |
《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;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN111786868A (zh) | 2020-10-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111786869B (zh) | 一种服务器之间的数据传输方法及服务器 | |
CN111786867B (zh) | 一种数据传输方法及服务器 | |
CN109450852B (zh) | 网络通信加密解密方法及电子设备 | |
US7917939B2 (en) | IPSec processing device, network system, and IPSec processing program | |
CN106878199B (zh) | 一种接入信息的配置方法和装置 | |
CN107104929B (zh) | 防御网络攻击的方法、装置和系统 | |
US20160036785A1 (en) | Secure network communication | |
US11418951B2 (en) | Method for identifying encrypted data stream, device, storage medium and system | |
US11870701B2 (en) | Data transmission method, switch, and site | |
CN104619040A (zh) | WiFi设备快速连接的方法和系统 | |
CN113852552B (zh) | 一种网络通讯方法、系统与存储介质 | |
CN111786868B (zh) | 服务器之间的数据传输方法及strongswan服务器 | |
CN103313308A (zh) | 一种数据传输方法和设备 | |
CN110417632B (zh) | 一种网络通信方法、系统及服务器 | |
CN111786870B (zh) | 数据传输方法及strongswan服务器 | |
US20180083777A1 (en) | Methods, systems, apparatuses, and devices for securing network communications using multiple security protocols | |
CN107135190B (zh) | 基于传输层安全连接的数据流量归属识别方法及装置 | |
CN103746768A (zh) | 一种数据包的识别方法及设备 | |
CN104796887A (zh) | 一种安全信息交互的方法和装置 | |
CN111835613B (zh) | 一种vpn服务器的数据传输方法及vpn服务器 | |
CN115225414B (zh) | 基于ipsec的加密策略匹配方法、装置及通信系统 | |
CN112217769B (zh) | 基于隧道的数据解密方法、加密方法、装置、设备和介质 | |
CN116633701A (zh) | 信息传输方法、装置、计算机设备和存储介质 | |
EP4287550A1 (en) | Packet processing method, client end device, server end device, and computer-readable medium | |
CN112153001B (zh) | 基于waf的网络通信方法、系统、电子装置和存储介质 |
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 |