一种适于云数据中心多租户的公网ip共享方法及装置的制造方法

文档序号:10616052阅读:316来源:国知局
一种适于云数据中心多租户的公网ip共享方法及装置的制造方法
【专利摘要】本发明涉及一种适于云数据中心多租户的公网IP地址共享方法及装置。所述方法包括:获取来自云数据中心多个租户或者公网的数据报文并获取报文类型;当数据报文采用预设封装类型的封装头时,剥离采用预设封装类型的数据报文的封装头;对剥离封装头之后的数据报文进行源地址转换SNAT后发送到公网并将源IP地址、源端口与封装头信息添加到封装关系表中;当数据报文未采用预设封装类型的封装头时,查表得到封装头信息并对数据报文进行SNAT反向处理;根据所获取的预设封装类型对数据报文进行封装并发送到相应的租户。所述装置用于实现本发明实施例提供的公网IP地址共享方法。本发明可以解决不同租户之间IP重叠引起的访问错误的问题,提高IP地址的资源利用率。
【专利说明】
一种适于云数据中心多租户的公网IP共享方法及装置
技术领域
[0001]本发明涉及计算机网络技术领域,具体涉及一种适于云数据中心多租户的公网IP共享方法及装置。
【背景技术】
[0002]随着云计算技术的发展,云数据中心的租户越来越庞大,导致不同租户网络间存在重叠的IP地址。例如:在某一云数据中心内部有三个租户A、B和C分别属于三个公司L、M和N,且该三个公司的租户全部为员工办公使用,不对外提供服务。这种情况下所产生的南北向流量都是上述三个租户访问互联网服务的流量。为节省成本,公司L、M和N通过共用相同的公网IP地址即可实现互联网访问,从而无需购买专属的公网IP地址。由于上述三个公司L、M和N的租户相互独立,不同租户网络间存在重叠的IP地址,从而导致访问错误。

【发明内容】

[0003]针对现有技术中的缺陷,本发明提供了一种适于云数据中心多租户的公网IP地址共享方法,可以解决现有云数据中心多租户由于内部IP重叠而引起的访问冲突的问题。
[0004]第一方面,本发明提供了一种适于云数据中心多租户的公网IP地址共享方法,包括:
[0005]获取来自云数据中心多个租户或者公网的数据报文;所述多个租户共享一个公网IP地址;
[0006]获取所述数据报文的报文类型,以识别出采用预设封装类型的数据报文;
[0007]当所述数据报文采用预设封装类型的封装头时,剥离采用预设封装类型的数据报文的封装头;对剥离封装头之后的数据报文进行源地址转换SNAT之后发送到公网并将源IP地址、源端口与封装头信息添加到封装关系表中;所述源地址转换SNAT是指,将所述租户的源IP地址转换到公网IP地址;
[0008]当所述数据报文未采用预设封装类型的封装头时,根据目的IP地址和目的端口查询所述封装关系表中获取对应租户的预设封装类型的封装头信息,然后进行SNAT反向处理;根据所获取的封装头信息对所述数据报文进行封装并发送到租户;所述SNAT反向处理是指,根据所述公网IP地址转换到相应租户的目的IP地址和目的端口
[0009]可选地,所述预设封装类型为vxlan、mpls或者nvgre。
[0010]可选地,所述方法还包括:
[0011 ]当从所述封装关系表中获取对应租户的目的IP地址和目的端口之后,删除该条封装头信息。
[0012]可选地,所述根据所获取的预设封装类型对所述数据报文进行封装并发送到租户的步骤中包括:
[0013]将封装后的数据报文发送到云数据中心的隧道设备;
[0014]所述隧道设备剥离所述数据报文的隧道头部之后将数据报文发送给对应目的IP地址的虚拟机。
[0015]第二方面,本发明实施例还提供了一种适于云数据中心多租户的公网IP地址共享装置,所述装置包括:
[0016]数据报文获取模块,用于获取来自云数据中心多个租户或者公网的数据报文;所述多个租户共享一个公网IP地址;
[0017]报文类型获取模块,用于获取所述数据报文的报文类型,以识别出采用预设封装类型的数据报文;
[0018]第一数据报文发送模块,用于当所述数据报文采用预设封装类型的封装头时,剥离采用预设封装类型的数据报文的封装头;对剥离封装头之后的数据报文进行源地址转换SNAT之后发送到公网并将封装头信息添加到封装关系表中;所述源地址转换SNAT是指,将所述租户的源IP地址转换到公网IP地址;
[0019]第二数据报文发送模块,用于当所述数据报文未采用预设封装类型的封装头时,根据目的IP地址和目的端口查询所述封装关系表中获取对应租户的预设封装类型的封装头信息,然后进行SNAT反向处理;根据所获取的封装头信息对所述数据报文进行封装并发送到租户;所述SNAT反向处理是指,根据所述公网IP地址转换到相应租户的目的IP地址和目的端口。
[°02°]可选地,所述报文类型获取模块中预设封装类型为vxlan、mpls或者nvgre。
[0021]可选地,第二数据报文发送模块还用于当从所述封装关系表中获取对应租户的目的IP地址和目的端口之后,删除该条封装头信息。
[0022]可选地,第二数据报文发送模块还用于执行以下步骤将所述数据报文发送到租户包括:
[0023]将封装后的数据报文发送到云数据中心的隧道设备;
[0024]所述隧道设备剥离所述数据报文的隧道头部之后将数据报文发送给对应目的IP地址的虚拟机。
[0025]第三方面,本发明实施例又提供了一种云数据中心,包括如上文所述的公网IP地址共享装置。
[0026]由上述技术方案可知,本发明通过获取对来自多个共享一个公网IP地址的租户中任意一个虚拟机的数据报文及其预设封装类型的封装头;剥离上述数据报文的封装头,然后对数据报文进行源地址转换SNAT,然后源地址转换SNAT后的数据报文发送到公网。对于未采用预设封装类型的数据报文,对所述数据报文进行SNAT反向处理,以获取其预设封装类型;根据所获取的预设封装类型对所述数据报文进行封装并发送到租户。本发明可以实现多个租户共享公网IP地址,提高公网IP地址的资源利用率。
【附图说明】
[0027]通过参考附图会更加清楚的理解本发明的特征和优点,附图是示意性的而不应理解为对本发明进行任何限制,在附图中:
[0028]图1是本发明实施例提供的一种适于云数据中心多租户的公网IP地址共享方法框图;
[0029]图2是本发明实施例提供的一种适于云数据中心多租户的公网IP地址共享方法流程图;
[0030]图3是本发明实施例提供的一种适于云数据中心多租户的公网IP地址共享装置框图。
【具体实施方式】
[0031]为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0032]第一方面,本发明实施例提供了一种适于云数据中心多租户的公网IP地址共享方法,如图1所示,所述方法包括:
[0033]S101、获取来自云数据中心多个租户或者公网的数据报文;所述多个租户共享一个公网IP地址;
[0034]S102、获取所述数据报文的报文类型,以识别出采用预设封装类型的数据报文;
[0035]S103、当所述数据报文采用预设封装类型的封装头时,剥离采用预设封装类型的数据报文的封装头;对剥离封装头之后的数据报文进行源地址转换SNAT之后发送到公网并将源IP地址、源端口与封装头信息添加到封装关系表中;所述源地址转换SNAT是指,将所述租户的源IP地址转换到公网IP地址;
[0036]S104、当所述数据报文未采用预设封装类型的封装头时,根据目的IP地址和目的端口查询所述封装关系表中获取对应租户的预设封装类型的封装头信息,然后进行SNAT反向处理;根据所获取的封装头信息对所述数据报文进行封装并发送到租户;所述SNAT反向处理是指,根据所述公网IP地址转换到相应租户的目的IP地址和目的端口。
[0037]需要说明的是,本发明实施例提供的方法可以应用到路由器、服务器或者防火墙等硬件之上,也可以将本方法应用到虚拟机等上面。本领域技术人员在具有数据收发功能的中间设备(位于两个设备之间的、为这两个设备进行数据转发的设备)上实施本发明实施例中提供的方法,本发明不作限定。
[0038]为体现本发明实施例提供的公网IP地址共享方法的优越性,下面以防火墙实例与附图对上述方法作进一步说明。
[0039]首先,介绍S101、获取来自云数据中心多个租户或者公网的数据报文;所述多个租户共享一个公网IP地址的步骤。
[0040]本发明中云数据中心包括多个租户,上述每个租户实际上都是一个内部网络,每个内部网络内设有多台虚拟机,每台虚拟机对应一个源IP地址。由于本发明实施例中并不是每个租户都对外提供服务,只是为员工工作使用,因此没有必要每个租户都申请一个公网IP地址。也就是说,多个租户可以共同使用一下公网IP地址,不但可以降低每个租户的网络使用成本,还可以提高公网IP地址的资源使用率。
[0041]如图2所示,本发明实施例中,防火墙设置在云数据中心的多个租户与公网之间,该防火墙可以接收来自多个租户的数据报文。该数据报文主要是租户虚拟机所发送的访问公网的请求数据。同时,该防火墙也可以接收来自公网的数据报文,该数据报文主要是公网响应虚拟机的请求数据而返回的数据。对于防火墙而言,除了接收数据报文以外还要把相应的数据报文发送到正确的一方(虚拟机或者公网),为此还要为不同的数据报文添加不同的封装头(添加封装头过程由发送数据报文的网络实现)以方便防火墙识别数据报文。
[0042]实际应用中,由于公网向租户所发送的数据报文需要符合TCP/IP协议(亦或其他标准协议),此时为该数据报文添加该TCP/IP封装头即可,该TCP/IP封装头中需要包括公网IP地址。对于由租户向公网发送的数据报文采用预设封装类型的封装头。本发明一实施例中采用叠加网络技术overlay添加封装头。其中封装头的预设封装类型包括vxlan、mpl s或者nvgre中的一种或者多种。当然,本领域技术人员也可以根据具体场景选择合适的封装方式实现,本发明不作限定。
[0043]其次,介绍S102、获取所述数据报文的报文类型,以识别出采用预设封装类型的数据报文的步骤。
[0044]当防火墙接收到数据报文时,该数据报文可能来自公网也可能来自租户,为此需要先获取所接收数据报文的报文类型,以识别出采用预设封装类型的数据报文。需要说明的是,由于租户所发出的数据报文的封装方式(即报文类型)可以由技术人员进行设定,即预设封装类型是清楚的,只要判断所获取的数据报文的报文类型是否属于预设封装类型即可得知该数据报文是来自租户还是来自公网。
[0045]再次,介绍S103、当所述数据报文采用预设封装类型的封装头时,剥离采用预设封装类型的数据报文的封装头;对剥离封装头之后的数据报文进行源地址转换SNAT之后发送到公网并将源IP地址、源端口与封装头信息添加到封装关系表中的步骤。
[0046]当防火墙所接收的数据报文采用预设封装类型的封装头时,表示该数据报文来自租户,需要该防火墙发送到公网。根据识别出的预设封装类型(VXlan、mplS、vngre或者其他预设封装类型),防火墙剥离数据报文的预设封装类型的封装头,然后对数据报文进行源地址转换SNAT。其中,源地址转换SNAT是指,将数据报文对应的虚拟机的源IP地址转换到公网IP地址。最后,该防火墙将源地址转换后的数据报文发送到公网。
[0047]在源地址转换SNAT过程之后,该防火墙将数据报文的源IP地址、源端口与预设封装头信息的对应关系添加到封装关系表中。
[0048]最后,介绍S104、当所述数据报文未采用预设封装类型的封装头时,根据目的IP地址和目的端口查询所述封装关系表中获取对应租户的预设封装类型的封装头信息,然后进行SNAT反向处理;根据所获取的封装头信息对所述数据报文进行封装并发送到租户的步骤。
[0049]当防火墙接收的数据报文未采用预设封装类型时,表示该数据报文来自公网需要由该防火墙发送到相应的租户。此时防火墙需要根据数据报文中的目的IP地址和目的端口查询封装关系表以获取该数据报文对应的预设封装类型的封装头信息。然后该防火墙根据对上述数据报文进行SNAT处理。所述SNAT反向处理是指,根据所述公网IP地址转换到相应租户的目的IP地址。然后根据所获取的封装头信息对SNAT反向处理后的数据报文进行封装并将封装后的数据报文发送到云数据中心内部的隧道设备。该隧道设备会将在剥离隧道头部之后将数据报文发送给对应目的IP地址的目的虚拟机即内部网络中的相应租户。
[0050]需要说明的是,上文中源IP地址是指发送数据报文的虚拟机的IP地址,而目的IP地址是指需要接收该数据报文的虚拟机的IP地址。实际上,对于一个数据报文的请求与应答过程,源IP地址与目的IP地址是对应同一台虚拟机。
[0051]需要说明的是,本发明实施例中,步骤S103与步骤S104的顺序是不确定的。防火墙可以在同一时刻处理来自多个租户的数据报文以及来自公网的多个数据报文,因此两者可以同时发生也可以调换顺序。但是对于同一个数据的请求与应答过程则是按照先步骤S103再步骤S104进行的。
[0052]本发明实施例提供的公网IP共享方法可以使防火墙实现多个租户与公网之间的数据通信,即便多个租户之间的源IP地址是重叠的,也不影响防火墙与多个租户之间的数据通信。随着租户数量的增加,本发明提供的公网IP共享方法的效率也会越来越高,能够极大提高公网IP地址的资源利用率。
[0053]第二方面,本发明实施例还提供了一种适于云数据中心多租户的公网IP地址共享装置,如图3所示,所述装置包括:
[0054]数据报文获取模块MlOl,用于获取来自云数据中心多个租户或者公网的数据报文;所述多个租户共享一个公网IP地址;
[0055]报文类型获取模块M102,用于获取所述数据报文的报文类型,以识别出采用预设封装类型的数据报文;
[0056]第一数据报文发送模块M103,用于当所述数据报文采用预设封装类型的封装头时,剥离采用预设封装类型的数据报文的封装头;对剥离封装头之后的数据报文进行源地址转换SNAT之后发送到公网并将封装头信息添加到封装关系表中;所述源地址转换SNAT是指,将所述租户的源IP地址转换到公网IP地址;
[0057]第二数据报文发送模块M104,用于当所述数据报文未采用预设封装类型的封装头时,根据目的IP地址和目的端口查询所述封装关系表中获取对应租户的预设封装类型的封装头信息,根据目的IP地址和目的端口对所述数据报文进行SNAT反向处理;根据所获取的封装头信息对所述数据报文进行封装并发送到租户;所述SNAT反向处理是指,根据所述公网IP地址转换到相应租户的目的IP地址和目的端口。
[°°58] 可选地,所述报文类型获取模块M102中预设封装类型为vxlan、mpls或者nvgre。
[0059]可选地,第二数据报文发送模块M104还用于当从所述封装关系表中获取对应租户的目的IP地址和目的端口之后,删除该条封装头信息。
[0060]可选地,第二数据报文发送模块M104还用于执行以下步骤将所述数据报文发送到租户包括:
[0061]将封装后的数据报文发送到云数据中心的隧道设备;
[0062]所述隧道设备剥离所述数据报文的隧道头部之后将数据报文发送给对应目的IP地址的虚拟机。
[0063]第三方面,本发明实施例又提供了一种云数据中心,包括如上文所述的公网IP地址共享装置。
[0064]由上可以看出,本发明上述两个实施例提供的适于云数据中心多租户的公网IP地址共享装置以及云数据中心都是基于上文所述的公网IP地址共享方法实现,因而可以解决同样的技术问题,并取得相同的技术效果,在此不再一一赘述。
[0065]应当注意的是,在本实施例公开的装置的各个部件中,根据其要实现的功能而对其中的部件进行了逻辑划分,但是,本公开不受限于此,可以根据需要对各个部件进行重新划分或者组合,例如,可以将一些部件组合为单个部件,或者可以将一些部件进一步分解为更多的子部件。
[0066]本公开的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本公开实施例的系统中的一些或者全部部件的一些或者全部功能。本公开还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本公开的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
[0067]应该注意的是,上述实施例对本公开进行说明而不是对本公开进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本公开可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
[0068]以上实施方式仅适于说明本公开,而并非对本公开的限制,有关技术领域的普通技术人员,在不脱离本公开的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本公开的范畴,本公开的专利保护范围应由权利要求限定。
【主权项】
1.一种适于云数据中心多租户的公网IP地址共享方法,其特征在于,所述方法包括: 获取来自云数据中心多个租户或者公网的数据报文;所述多个租户共享一个公网IP地址; 获取所述数据报文的报文类型,以识别出采用预设封装类型的数据报文; 当所述数据报文采用预设封装类型的封装头时,剥离采用预设封装类型的数据报文的封装头;对剥离封装头之后的数据报文进行源地址转换SNAT之后发送到公网并将源IP地址、源端口与封装头信息添加到封装关系表中;所述源地址转换SNAT是指,将所述租户的源IP地址转换到公网IP地址; 当所述数据报文未采用预设封装类型的封装头时,根据目的IP地址和目的端口查询所述封装关系表中获取对应租户的预设封装类型的封装头信息,然后进行SNAT反向处理;根据所获取的封装头信息对所述数据报文进行封装并发送到租户;所述SNAT反向处理是指,根据所述公网IP地址转换到相应租户的目的IP地址和目的端口。2.根据权利要求1所述的公网IP地址共享方法,其特征在于,所述预设封装类型为¥叉1&11、11^)18或者1^代。3.根据权利要求1或者2所述的公网IP地址共享方法,其特征在于,所述方法还包括: 当从所述封装关系表中获取对应租户的目的IP地址和目的端口之后,删除该条封装头?目息O4.根据权利要求3所述的的公网IP地址共享方法,其特征在于,所述根据所获取的预设封装类型对所述数据报文进行封装并发送到租户的步骤中包括: 将封装后的数据报文发送到云数据中心的隧道设备; 所述隧道设备剥离所述数据报文的隧道头部之后将数据报文发送给对应目的IP地址的虚拟机。5.—种适于云数据中心多租户的公网IP地址共享装置,其特征在于,所述装置包括: 数据报文获取模块,用于获取来自云数据中心多个租户或者公网的数据报文;所述多个租户共享一个公网IP地址; 报文类型获取模块,用于获取所述数据报文的报文类型,以识别出采用预设封装类型的数据报文; 第一数据报文发送模块,用于当所述数据报文采用预设封装类型的封装头时,剥离采用预设封装类型的数据报文的封装头;对剥离封装头之后的数据报文进行源地址转换SNAT之后发送到公网并将封装头信息添加到封装关系表中;所述源地址转换SNAT是指,将所述租户的源IP地址转换到公网IP地址; 第二数据报文发送模块,用于当所述数据报文未采用预设封装类型的封装头时,根据目的IP地址和目的端口查询所述封装关系表中获取对应租户的预设封装类型的封装头信息,然后进行SNAT反向处理;根据所获取的封装头信息对所述数据报文进行封装并发送到租户;所述SNAT反向处理是指,根据所述公网IP地址转换到相应租户的目的IP地址和目的端口。6.根据权利要求5所述的公网IP地址共享装置,其特征在于,所述报文类型获取模块中预设封装类型为vxlan、mpls或者nvgre。7.根据权利要求5或者6所述的公网IP地址共享装置,其特征在于,第二数据报文发送模块还用于当从所述封装关系表中获取对应租户的目的IP地址和目的端口之后,删除该条封装头信息。8.根据权利要求7所述的的公网IP地址共享装置,其特征在于,第二数据报文发送模块还用于执行以下步骤将所述数据报文发送到租户包括: 将封装后的数据报文发送到云数据中心的隧道设备; 所述隧道设备剥离所述数据报文的隧道头部之后将数据报文发送给对应目的IP地址的虚拟机。9.一种云数据中心,其特征在于,包括如权利要求5?8任意一项所述的公网IP地址共享装置。
【文档编号】H04L29/12GK105978957SQ201610280603
【公开日】2016年9月28日
【申请日】2016年4月28日
【发明人】刘建兴
【申请人】汉柏科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1