一种多租户网络隔离的方法、数据中心和通信系统与流程

文档序号:26897134发布日期:2021-10-09 12:45阅读:215来源:国知局
1.本发明涉及通信领域,具体为一种多租户网络隔离的方法、数据中心和通信系统。
背景技术
::2.目前使用openvpn/wireguard多实例来解决数据传输性能瓶颈问题。图1为单个虚拟网络分组的具体网络拓扑(注:一个数据中心中会存在多个虚拟网络分组,每个虚拟网络分组为不同租户提供网络服务):3.数据中心由多台linux虚拟机组成,属于多租户共享资源。vpn实例部署在虚拟机上,通过虚拟ip,配合虚拟机路由表和iptable规则实现虚拟网络分组隔离。4.由于路由表属于虚拟机中共享资源,当子设备往web服务发送数据(ip包)时。子设备的ip包必须在离开网关时,自动nat,将子设备ip包中的源地址转换成网关的wanip地址。否则在整个数据中心就存在冲突,导致web服务回包时无法正确路由。5.但当web服务主动访问子设备时(例如访问192.168.x.x地址,与上图数据主动流向相反),由于192.168.x.x不同于虚拟ip地址(虚拟ip地址在整个数据中心唯一,而192.168.x.x地址属于网关下的局域网地址,租户之间都可以共用),无法在数据中心路由表中配置,导致无法正确路由。业务界一般做法,会将子设备上的某个服务映射到网关上某个端口,这样web服务通过访问网关端口来访问子设备服务。6.但这种方案不太好在于两个地方:7.当网关下连接多台相同类型的子设备时,映射端口就不能与子设备一一匹配,而一些子设备配套软件又不允许更改端口。这样会限制网关连接子设备的数量,无法直接使用ip层协议。技术实现要素:8.本发明的目的在于提供一种多租户网络隔离的方法,该方法能够实现多租户网络隔离,解决了同一网关无法连接相同类型的子设备的问题,实现了快速的ip层协议进行通讯的目的。9.同时,本发明还提供基于该方法的数据中心和通信系统。10.本方案提出了多路融合来解决上面提到的问题。主要用到的技术有多网卡,进程内路由技术。多网卡技术使网关设备和web服务器同时连接多vpn实例,进程内路由可以解决多租户使用192.168.x.x隔离问题。11.为实现上述目的,本发明提供如下技术方案:一种多租户网络隔离的方法,所述方法涉及多个设备端、web服务端、数据中心,所述数据中心内设有多个vpn分组,所述设备端包括至少一个网关,每个网关连接有至少一个子设备,每个web服务端对应一个设备端,每个设备端中的子设备ip地址禁止冲突,所述方法具体为:12.每个设备端和web服务端通过一个vpn分组进行通信;13.每个vpn分组包括第一通讯通道和第二通讯通道,所述第一通讯通道包括与网关通信连接的第一vpn实例和与web服务端通信的第二vpn实例;所述第二通讯通道包括一个第三vpn实例;14.第一通讯通道的通信根据路由表进行数据转发;当设备端主动发起数据交互时,数据交互过程采用第一通信通道进行通信;所述路由表记录有网关、第一vpn实例、第二vpn实例、web服务端的路由数据;15.所述第三vpn实例通过路由信息进行数据转发;当web服务端主动发起数据交互时,数据交互过程采用第二通讯通道进行通信,所述路由信息为设备端的子设备的ip地址和网关的对应关系。16.在上述的多租户网络隔离的方法中,所述第一通讯通道的通信过程为:17.步骤11:子设备生成第一数据包并发送给与之通信连接的网关,所述第一数据包中的源地址为子设备的ip,目标地址为web服务端的地址;18.步骤12:网关在第一数据包中添加网关的地址,并根据路由表通过第一通讯通道将第一数据包转发给web服务端;19.步骤13:web服务端若要针对第一数据包回复,则生成第二数据包并根据路由表通过第一通讯通道转发给网关,所述第二数据包中的源地址为web服务端的地址,目标地址为网关的地址,所述第二数据包中还包含子设备的ip地址;20.步骤14:网关根据第二数据包中的ip地址将第二数据包转发给子设备。21.在上述的多租户网络隔离的方法中,所述第二通讯通道的通信过程为:22.步骤21:web服务端生成第三数据包并发送给第三vpn实例;所述第三数据包中的源地址为web服务端,目标地址为子设备的ip地址;23.步骤22:第三vpn实例根据路由信息将数据转发给ip地址对应的网关;24.步骤23:网关根据第三数据包中的ip地址将第三数据包转发给子设备;25.步骤24:子设备若要针对第三数据包回复,则生成第四数据包,并通过网关、第三vpn实例将第四数据包转发给web服务端;所述第四数据包中的源地址为子设备的ip,目标地址为web服务端的地址。26.在上述的多租户网络隔离的方法中,所述网关和web服务端均具有多个网卡,所述网关通过多个网卡连接对应的第一vpn实例和第三vpn实例;所述web服务端通过多个网卡连接对应的第二vpn实例和第三vpn实例。27.在上述的多租户网络隔离的方法中,所述网关为多个,所述第一vpn实例连接一个或多个网关。28.同时,本发明还公开了一种数据中心,所述数据中心根据设备端的需求设置多个vpn分组,每个vpn分组有第一通讯通道和第二通讯通道,所述第一通讯通道包括与外设的网关通信连接的第一vpn实例和与外设的web服务端通信的第二vpn实例;所述第二通讯通道包括一个第三vpn实例;29.所述数据中心存储有路由表,所述路由表记录有网关、第一vpn实例、第二vpn实例、web服务端的路由数据;第一通讯通道采用路由表实现数据转发;30.所述第三vpn实例存储有路由信息,所述路由信息为设备端的子设备的ip地址和网关的对应关系;第二通讯通道采用路由信息实现数据转发。31.在上述的数据中心中,所述数据中心的第一vpn实例、第二vpn实例、第三vpn实例布置在一台或多台宿主机上。32.最后,本发明还公开了一种多租户网络隔离的通信系统,包括多个设备端、web服务端、如上所述的数据中心,所述数据中心内设有多个vpn分组,所述设备端包括至少一个网关,每个网关连接有至少一个子设备,每个web服务端对应一个设备端,每个设备端中的子设备ip地址禁止冲突;33.当设备端主动发起数据交互时,数据交互过程采用第一通信通道进行通信;当web服务端主动发起数据交互时,数据交互过程采用第二通讯通道进行通信。34.在上述的多租户网络隔离的通信系统中,所述网关和web服务端均具有多个网卡,所述网关通过多个网卡连接对应的第一vpn实例和第三vpn实例;所述web服务端通过多个网卡连接对应的第二vpn实例和第三vpn实例;每个设备端中的网关为一个或多个,所述第一vpn实例连接一个或多个网关。35.在上述的多租户网络隔离的通信系统中,所述web服务端部署在本地或云端。36.与现有技术相比,本发明的有益效果是:37.本发明的改进主要集中在web服务端发起的至子设备的数据的优化,通过设置第三vpn实例,web服务端主动发起的数据通信过程无需按照路由表的规定进行路由,子设备拥有完整的ip协议栈,可以使用ip层协议进行通讯;租户无需再针对子设备服务暴露,在网关上配置nat转换规则;基于上述的改进,同一台网关下可以同时连接相同类型的子设备。38.通过上述优化,可实现多租户网络隔离,解决了同一网关无法连接相同类型的子设备的问题,实现了快速的ip层协议进行通讯的目的。附图说明39.图1为本发明的
背景技术
:的拓扑图;40.图2为本发明的实施例1的拓扑图;41.图3为本发明的实施例1的流程图;42.图4为本发明的实施例1的流程图;43.图5为本发明的实施例2的结构图。具体实施方式44.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。45.实施例146.如图2‑4,一种多租户网络隔离的方法,所述方法涉及多个设备端、web服务端、数据中心,所述数据中心内设有多个vpn分组,所述设备端包括至少一个网关,每个网关连接有至少一个子设备,每个web服务端对应一个设备端,每个设备端中的子设备ip地址禁止冲突,所述方法具体为:47.每个设备端和web服务端通过一个vpn分组进行通信;如果存在多个服务端,则设备端需要在数据中心设在多个vpn分组与对应的服务端进行通信。48.需要说明的是:每个web服务端对应一个设备端,一个设备端可对应多个服务端。数据中心可自动分析用户的参数进行vpn分组的划分,也可以人工在数据中心中设置vpn分组。49.每个vpn分组包括第一通讯通道和第二通讯通道,所述第一通讯通道包括与网关通信连接的第一vpn实例和与web服务端通信的第二vpn实例;所述第二通讯通道包括一个第三vpn实例;50.第一通讯通道的通信根据路由表进行数据转发;当设备端主动发起数据交互时,数据交互过程采用第一通信通道进行通信;所述路由表记录有网关、第一vpn实例、第二vpn实例、web服务端的路由数据;51.比如如图2所示,路由表不仅会记载网关1和web服务端之间的路径,也会记载网关2和web服务端之间的路径;正常情况下,由设备端发起的数据交互过程采用第一通讯通道进行数据转发;其具体过程如下:52.步骤11:子设备生成第一数据包并发送给与之通信连接的网关,所述第一数据包中的源地址为子设备的ip,目标地址为web服务端的地址;53.步骤12:网关在第一数据包中添加网关的地址,并根据路由表通过第一通讯通道将第一数据包转发给web服务端;54.网关在第一数据包中添加网关的地址的具体方法为:网关在收到第一数据包时,会自动nat,将子设备ip包中的源地址转换成网关的wanip地址,此时数据包中包含了子设备的ip地址和网关的wanip地址;55.网关通过查询路由表,查询到网关和web服务端之间的路由路径后,将经网关处理过的第一数据包发送至该路由路径上的第一vpn实例;56.第一vpn实例根据路由表将第一数据包转发至第二vpn实例,第二vpn实例将第一数据包转发给web服务端;57.web服务端收到第一数据包后,进行相应的记录,或在收到第一数据包后作出回应,具体参考步骤13;58.步骤13:web服务端若要针对第一数据包回复,则生成第二数据包并根据路由表通过第一通讯通道转发给网关,所述第二数据包中的源地址为web服务端的地址,目标地址为网关的地址,所述第二数据包中还包含子设备的ip地址;59.其具体过程为步骤12的通信过程的逆向流程;60.步骤14:网关根据第二数据包中的ip地址将第二数据包转发给子设备。61.需要说明的是:第一通讯通道可参考本技术人在先申请cn201911276596.7,一种openvpn集群及其构建方法、通信方法、系统。62.所述第三vpn实例通过路由信息进行数据转发,所述路由信息为设备端的子设备的ip地址和网关的对应关系;当web服务端主动发起数据交互时,数据交互过程采用第二通讯通道进行通信。其具体过程为:63.步骤21:web服务端生成第三数据包并发送给第三vpn实例;所述第三数据包中的源地址为web服务端,目标地址为子设备的ip地址;64.步骤22:第三vpn实例根据路由信息将数据转发给ip地址对应的网关;65.步骤23:网关根据第三数据包中的ip地址将第三数据包转发给子设备;66.步骤24:子设备若要针对第三数据包回复,则生成第四数据包,并通过网关、第三vpn实例将第四数据包转发给web服务端;所述第四数据包中的源地址为子设备的ip,目标地址为web服务端的地址。67.由于由web服务端发起的数据通信中,web服务端只知道子设备的ip地址,设备端内的子设备ip虽然不会冲突,但是不同设备端之间的子设备的ip大概率会冲突,如果采用第一通讯通道进行数据转发,必然不会成功,另外路由表中并不会记载子设备的ip;68.但是采用了上述的第二通讯通道后,由于web服务端只对应一个设备端,且设备端内的子设备ip地址并不冲突,所以就可以采用路由信息,基于快速的ip层协议进行通讯。69.上述步骤21‑步骤24在一个进程内完成,子设备、网关、第三vpn实例、web服务端均在该进程内,属于进程内路由,在进程内仅有一个第三vpn实例,所以数据包在往返的发送过程中,只能发送至第三vpn实例,所以数据包中只需要包含最终的目标地址和源地址即可,不会造成数据丢失。70.需要说明的是,所述网关和web服务端均具有多个网卡,所述网关通过多个网卡连接对应的第一vpn实例和第三vpn实例;所述web服务端通过多个网卡连接对应的第二vpn实例和第三vpn实例,每个设备端中的网关为多个,所述第一vpn实例连接一个或多个网关。71.本发明的实施例在web服务端发起的至子设备的数据的优化,通过设置第三vpn实例,web服务端主动发起的数据通信过程无需按照路由表的规定进行路由,子设备拥有完整的ip协议栈,可以使用ip层协议进行通讯;租户无需再针对子设备服务暴露,在网关上配置nat转换规则;基于上述的改进,同一台网关下可以同时连接相同类型的子设备。72.通过上述优化,可实现多租户网络隔离,解决了同一网关无法连接相同类型的子设备的问题,实现了快速的ip层协议进行通讯的目的。73.实施例274.参考图5,一种用于实施实施例1所述的方法的多租户网络隔离的通信系统,包括多个设备端1、web服务端2、数据中心3,所述数据中心3内设有多个vpn分组31,所述设备端1包括至少一个网关11,每个网关11连接有至少一个子设备12,每个web服务端2对应一个设备端1,每个设备端1内的子设备ip地址禁止冲突;75.所述数据中心3根据设备端1的需求自动设置或维护人员手动设置多个vpn分组31,每个vpn分组31有第一通讯通道和第二通讯通道,所述第一通讯通道包括与网关11通信连接的第一vpn实例32和与web服务端2通信的第二vpn实例33;所述第二通讯通道包括一个第三vpn实例34;76.所述数据中心3存储有路由表,所述路由表记录有网关11、第一vpn实例32、第二vpn实例33、web服务端2的路由数据;第一通讯通道采用路由表实现数据转发;77.所述第三vpn实例34存储有路由信息,所述路由信息为设备端1的子设备12的ip地址和网关11的对应关系;第二通讯通道采用路由信息实现数据转发。78.所述数据中心3的第一vpn实例32、第二vpn实例33、第三vpn实例34布置在一台或多台宿主机上。79.当设备端1主动发起数据交互时,数据交互过程采用第一通信通道进行通信;当web服务端2主动发起数据交互时,数据交互过程采用第二通讯通道进行通信。80.在本实施例中,所述网关11和web服务端2均具有多个网卡,所述网关11通过多个网卡连接对应的第一vpn实例32和第三vpn实例34;所述web服务端2通过多个网卡连接对应的第二vpn实例33和第三vpn实例34;每个设备端1中的网关11为一个或多个,所述第一vpn实例32连接一个或多个网关11,所述web服务端2部署在本地或云端。81.上述的通讯过程可参考实施例1。82.对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1