CN115695369A - 云租户报文隔离方法、装置、系统、设备、介质和程序产品 - Google Patents
云租户报文隔离方法、装置、系统、设备、介质和程序产品 Download PDFInfo
- Publication number
- CN115695369A CN115695369A CN202210859903.XA CN202210859903A CN115695369A CN 115695369 A CN115695369 A CN 115695369A CN 202210859903 A CN202210859903 A CN 202210859903A CN 115695369 A CN115695369 A CN 115695369A
- Authority
- CN
- China
- Prior art keywords
- message
- vgre
- packet
- inner layer
- outer layer
- 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.)
- Pending
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本公开提供了一种云租户报文隔离方法,可以应用于云计算技术领域。该云租户报文隔离方法包括:接收接入网关发送的第一报文,其中,所述第一报文携带VNI;解封装所述第一报文,获取第一内层报文,所述第一内层报文包括第一访问信息,所述第一访问信息为出方向;通过预设的VGRE外层报文对所述第一内层报文执行VGRE加封装,得到第二报文,其中,所述VGRE外层报文的格式是基于GRE报文格式扩展VNI字段得来的,所述VGRE加封装至少包括将所述VNI写入所述VGRE外层报文的VNI字段;以及将所述第二报文发送至NAT网关。本公开还提供了一种云租户报文隔离装置、系统、设备、存储介质和程序产品。
Description
技术领域
本公开涉及云计算技术领域,具体涉及网络通信领域,更具体的涉及一种云租户报文隔离方法、装置、系统、设备、介质和程序产品。
背景技术
云场景下的数据中心计算资源虚拟化后,设备内部的虚拟机(VM)的数量相比原有的物理机发生了不同数量级的变化,与之对应的虚拟机虚拟网卡的物理地址数量也随之增加,这对原有的交换机的地址容量能力产生了很大冲击。
在此背景下,通过对数据中心内部使用虚拟扩展局域网(Virtual eXtensibleLocal Area Network,简称为VXLAN)隧道封装可以解决上述云场景下云租户在数据中心内部东西向流量的互通和大规模云租户间的有效隔离,当云租户与数据中心外部网络互通时,需要将云租户在数据中心内部的数据报文进行网络地址转化(Network AddressTranslator,简称为NAT)的转化,以实现与公网的通信。
但实际情况是,数据中心网络中普遍使用高端防火墙或高端路由器作为网络地址转化网关(NAT网关)的设备,进而实现云租户南北向流量的网络地址转化。但由于大部分高端防火墙和高端路由器使用的网络处理器芯片通常不支持虚拟扩展局域网(VXLAN)的加封装和解封装,导致如需实现上述方案,需要对网络地址转化网关(NAT网关)的设备做硬件升级,但进行硬件升级时硬件成本更换较高。
因此,如何基于现有网络硬件设备实现隔离区分海量云租户,是亟待解决的技术问题。
发明内容
鉴于上述问题,本公开提供了提高云租户规模的云租户报文隔离方法、装置、设备、介质和程序产品。
根据本公开的第一个方面,提供了一种云租户报文隔离方法,所述方法应用于SDN网关,包括:接收接入网关发送的第一报文,其中,所述第一报文携带VNI;解封装所述第一报文,获取第一内层报文,所述第一内层报文包括第一访问信息,所述第一访问信息为出方向;通过预设的VGRE外层报文对所述第一内层报文执行VGRE加封装,得到第二报文,其中,所述VGRE外层报文的格式是基于GRE报文格式扩展VNI字段得来的,所述VGRE加封装至少包括将所述VNI写入所述VGRE外层报文的VNI字段;以及将所述第二报文发送至NAT网关。
根据本公开的实施例,所述方法还包括:接收NAT网关发送的第三报文,其中,所述第三报文是基于所述VGRE外层报文对第二内层报文执行加封装得到的;解封装所述第三报文,获取所述第二内层报文,所述第二内层报文包括第二访问信息,所述第二访问信息为入方向;基于VXLAN外层报文对所述第二内层报文执行VXLAN加封装,得到第四报文,其中,所述VXLAN加封装至少包括将所述VNI写入所述VXLAN外层报文的VNI字段;以及将所述第四报文发送至接入网关。
根据本公开的实施例,其中,所述VGRE外层报文包括VGRE报文头和VGRE外层地址信息,所述通过预设的VGRE外层报文对所述第一内层报文执行VGRE加封装,得到第二报文,包括:配置所述VGRE外层报文的VGRE外层地址信息,其中,所述VGRE外层地址信息包括VGRE外层源地址字段和VGRE外层目的地址字段,所述VGRE外层源地址字段被配置为所述SDN网关的地址,所述VGRE外层目的地址字段被配置为所述NAT网关的地址。
根据本公开的第二个方面,提供了另一种云租户报文隔离方法,所述方法应用于NAT网关,包括:接收SDN网关发送的第二报文,其中,所述第二报文是基于VGRE外层报文对第一内层报文执行VGRE加封装得到的,所述VGRE外层报文的格式是基于GRE报文格式扩展VNI字段得来的,所述VGRE加封装至少包括将VNI写入所述VGRE外层报文的VNI字段;解封装所述第二报文,获取第一内层报文,所述第一内层报文包括第一访问信息,所述第一访问信息为出方向;基于所述第一访问信息匹配会话;以及当所述第一访问信息匹配所述会话失败时,基于NAT转发策略,完成所述第一内层报文的转发。
根据本公开的实施例,所述方法还包括:获取公网发送的第二内层报文,所述第二内层报文包括第二访问信息,所述第二访问信息为入方向;当所述第二访问信息和所述VGRE外层报文匹配所述会话的报文成功时,基于所述会话,修改所述第二内层报文;基于所述VGRE外层报文对修改后的所述第二内层报文执行VGRE加封装,得到第三报文;以及发送所述第三报文至SDN网关。
根据本公开的实施例,其中,所述会话包括:VNI、VGRE外层源地址、VGRE外层目的地址、转化前的内层源地址、转化后的内层源地址、转化前的内层目的地址以及转化后的内层目的地址。
根据本公开的实施例,所述方法还包括:当所述第一访问信息匹配所述会话成功时,基于所述转化后的内层源地址进行转发。
根据本公开的实施例,所述当所述第一访问信息匹配所述会话失败时,基于NAT转发策略,完成所述第一内层报文的转发,包括:选取预设公网地址池中未被占用的公网地址;基于所述公网地址转化所述第一内层报文中内层源地址;以及基于转化后的内层源地址完成所述第一内层报文的转发。
根据本公开的实施例,所述当所述第二访问信息和所述VGRE外层报文匹配所述会话的报文成功时,基于所述会话,修改所述第二内层报文,包括:将所述会话中的所述转化前的内层源地址替换所述第二内层报文中的内层目的地址。
根据本公开的实施例,所述基于所述VGRE外层报文对修改后的所述第二内层报文执行VGRE加封装,得到第三报文,包括:将所述会话中的所述VNI写入所述VGRE外层报文中的VNI字段中;将所述会话中的所述VGRE外层源地址写入所述VGRE外层报文中的VGRE外层源地址字段;以及将所述会话中的所述VGRE外层目的地址写入所述VGRE外层报文中的VGRE外层目的地址字段。
本公开的第三个方面,提供一种云租户报文隔离装置,所述装置应用于SDN网关,所述装置包括:第一报文接收模块,用于接收接入网关发送的第一报文,其中,所述第一报文携带VNI;第一解封装模块,用于解封装所述第一报文,获取第一内层报文,所述第一内层报文包括第一访问信息,所述第一访问信息为出方向;VGRE加封装模块,用于通过预设的VGRE外层报文对所述第一内层报文执行VGRE加封装,得到第二报文,其中,所述VGRE外层报文的格式是基于GRE报文格式扩展VNI字段得来的,所述VGRE加封装至少包括将所述VNI写入所述VGRE外层报文的VNI字段;以及第一发送模块,用于将所述第二报文发送至NAT网关。
根据本公开的实施例,所述装置还包括第三接收模块、第三解封装模块、VGRE加封装模块以及第四发送模块:所述第三接收模块,用于接收NAT网关发送的第三报文,其中,所述第三报文是基于所述VGRE外层报文对第二内层报文执行加封装得到的;所述第三解封装模块,用于解封装所述第三报文,获取所述第二内层报文,所述第二内层报文包括第二访问信息,所述第二访问信息为入方向;所述VGRE加封装模块,用于基于VXLAN外层报文对所述第二内层报文执行VXLAN加封装,得到第四报文,其中,所述VXLAN加封装至少包括将所述VNI写入所述VXLAN外层报文的VNI字段;以及所述第四发送模块,用于将所述第四报文发送至接入网关。
根据本公开的实施例,其中,所述VGRE外层报文包括VGRE报文头和VGRE外层地址信息,所述VGRE加封装模块,还用于配置所述VGRE外层报文的VGRE外层地址信息,其中,所述VGRE外层地址信息包括VGRE外层源地址字段和VGRE外层目的地址字段,所述VGRE外层源地址字段被配置为所述SDN网关的地址,所述VGRE外层目的地址字段被配置为所述NAT网关的地址。
本公开的第四个方面,提供另一种云租户报文隔离装置,所述装置应用于NAT网关,所述装置包括:第二报文接收模块,用于接收SDN网关发送的第二报文,其中,所述第二报文是基于VGRE外层报文对第一内层报文执行VGRE加封装得到的,所述VGRE外层报文的格式是基于GRE报文格式扩展VNI字段得来的,所述VGRE加封装至少包括将VNI写入所述VGRE外层报文的VNI字段;第二解封装模块,用于解封装所述第二报文,获取第一内层报文,所述第一内层报文包括第一访问信息,所述第一访问信息为出方向;会话匹配模块,用于基于所述第一访问信息匹配会话;以及公网转发模块,用于当所述第一访问信息匹配所述会话失败时,基于NAT转发策略,完成所述第一内层报文的转发。
根据本公开的实施例,所述装置还包括第二内层报文接收模块、第二内层报文修改模块、VGRE加封装模块以及第三报文发送模块,所述第二内层报文接收模块,用于获取公网发送的第二内层报文,所述第二内层报文包括第二访问信息,所述第二访问信息为入方向;所述第二内层报文修改模块,用于当所述第二访问信息和所述VGRE外层报文匹配所述会话的报文成功时,基于所述会话,修改所述第二内层报文;所述VGRE加封装模块,用于基于所述VGRE外层报文对修改后的所述第二内层报文执行VGRE加封装,得到第三报文;以及所述第三发送模块,用于所述第三报文至SDN网关。
根据本公开的实施例,其中,所述会话包括:VNI、VGRE外层源地址、VGRE外层目的地址、转化前的内层源地址、转化后的内层源地址、转化前的内层目的地址以及转化后的内层目的地址。
根据本公开的实施例,所述公网转发模块,还用于当所述第一访问信息匹配所述会话成功时,基于所述转化后的内层源地址进行转发。
根据本公开的实施例,所述公网转发模块,还用于选取预设公网地址池中未被占用的公网地址;基于所述公网地址转化所述第一内层报文中内层源地址;以及基于转化后的内层源地址完成所述第一内层报文的转发。
根据本公开的实施例,第二内层报文修改模块,还用于将所述会话中的所述转化前的内层源地址替换所述第二内层报文中的内层目的地址。
根据本公开的实施例,所述VGRE加封装模块,还用于将所述会话中的所述VNI写入所述VGRE外层报文中的VNI字段中;将所述会话中的所述VGRE外层源地址写入所述VGRE外层报文中的VGRE外层源地址字段;以及将所述会话中的所述VGRE外层目的地址写入所述VGRE外层报文中的VGRE外层目的地址字段。
本公开的第五个方面,提供一种云租户报文隔离系统,所述系统包括:接入网关、SDN网关以及NAT网关,其中,所述接入网关,被配置为接收来自云租户的第一内层报文,其中,所述第一内层报文包括第一访问信息,所述第一访问信息为出方向;识别所述第一内层报文以获取VNI;基于VXLAN外层报文和VNI对所述第一内层报文执行VXLAN加封装,得到第一报文;所述SDN网关,被配置为解封装来自于所述接入网关的所述第一报文,以获取第一内层报文;通过预设的VGRE外层报文对所述第一内层报文执行VGRE加封装,得到第二报文,其中,所述VGRE外层报文的格式是基于GRE报文格式扩展VNI字段得来的,所述VGRE加封装至少包括将所述VNI写入所述VGRE外层报文的VNI字段;以及所述NAT网关,被配置为解封装来自所述SDN网关的所述第二报文,获取第一内层报文;基于所述第一访问信息匹配会话;以及当所述第一访问信息匹配所述会话失败时,基于NAT转发策略,完成所述第一内层报文的转发。
本公开的第六个方面,提供了一种电子设备,包括:一个或多个处理器;存储器,用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得一个或多个处理器执行上述云租户报文隔离方法。
本公开的第七个方面,还提供了一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器执行上述云租户报文隔离方法。
本公开的第八个方面,还提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述云租户报文隔离方法。
附图说明
通过以下参照附图对本公开实施例的描述,本公开的上述内容以及其他目的、特征和优点将更为清楚,在附图中:
图1A示意性示出了根据本公开实施例的VXLAN的报文格式。
图1B示意性示出了根据本公开实施例的GRE的报文格式。
图1C示意性示出了根据本公开实施例的VGRE的报文格式。
图1D示意性示出了根据本公开实施例的云租户报文隔离方法的应用场景图。
图2A示意性示出了根据本公开实施例的一种云租户报文隔离方法的流程图。
图2B示意性示出了根据本公开实施例的另一种云租户报文隔离方法的流程图。
图3A示意性示出了根据本公开实施例的一种云租户报文隔离方法的流程图。
图3B示意性示出了根据本公开实施例的另一种云租户报文隔离方法的流程图。
图4示意性示出了本公开实施例的一种云租户报文隔离系统图。
图5示意性示出了根据本公开实施例的一种云租户报文隔离装置的结构框图。
图6示意性示出了根据本公开实施例的另一种云租户报文隔离装置的结构框图。
图7示意性示出了根据本公开实施例的适于实现云租户报文隔离方法的电子设备的方框图。
具体实施方式
以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
在使用类似于“A、B和C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B和C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。
在对本公开的实施例进行详细揭示之前,对本公开实施例中用到的关键技术术语进行一一说明,如下所示:
虚拟机:(Virtual Machine,简称为VM),又称虚拟服务器,VM主机利用虚拟机技术,可以将一台服务器分割成为多个虚拟机主机,这些虚拟机主机以最大化的效率共享硬件、软件许可证以及管理资源。
通用路由封装:(General Routing Encapsulation,简称为GRE),是对某些网络层协议的数据报文进行封装,使得这些被封装的报文能够在另一网络层协议中传输。GRE隧道可以规定如何将一种网络协议封装在另一网络协议中。
虚拟扩展局域网:(Virtual eXtensible Local Area Network,简称为VXLAN),一种标注的技术,是对传统VLAN协议的一种扩展,VXLAN的特点是采用VXLAN技术将虚拟网络的数据帧添加VXLAN首部后,封装在物理网络中的用户数据报协议(user datagramprotocol,简称为UDP)报文中,生成的一个包括外层VXLAN封装与内层报文的报文。VXLAN技术本质上属于一种隧道技术。
VXLAN隧道端点:(VXLAN Tunnel Endpoint,缩写为VTEP),负责VXLAN报文的加封装与解封装。
网络标识符:(VXLAN Network Identifier,简称为VNI),VXLAN报文携带网络标识符,在公有云中区分或隔离云租户。
虚拟通用路由封装:(Virtual General Routing Encapsulation,简称为VGRE),本公开中自定义的一种隧道协议,由通用路由封装(GRE)协议扩展VNI字段得来。
网络地址转化:(Network Address Translator,简称为NAT),用于在本地网络中使用私有地址。
软件定义网络:(Software Defined Network,简称为SDN),一种通过软件管理网络的方法,本质上是网络软件,可以提升网络的可编程能力。
南北向流量:数据中心外部用户和内部服务器之间的交互。
东西向流量:数据中心内部服务器之间的交互。
底层网络:即underlay,现实的物理基础层网络设备,数据中心基础转发架构的网络。
叠加网络:即overlay,是一种网络架构上叠加的虚拟化技术模式,overlay网络大体框架是对基础网络不进行大规模修改的条件下,实现应用在网络上的承载,并能与其它网络业务分离。overlay网络是建立在已有网络上的虚拟网,并且由逻辑节点和逻辑链路构成。overlay网络具有独立的控制和转发平面,对于连接在overlay网络边缘设备之外的终端系统来说,物理网络是透明的。通过部署overlay网络,可以实现物理网络向云和虚拟化的深度延伸,使云资源池化能力可以摆脱物理网络的重重限制,是实现云网融合的关键。overlay网络也是一个网络,不过是建立在underlay网络之上的网络。overlay网络的节点通过虚拟的或逻辑的链接进行通信,每一个虚拟的或逻辑的链接对应于underlay网络的一条路径,由多个前后衔接的链接组成。
虚拟局域网:(Virtual Local Area Network,简称为VLAN),是对连接到的第二层交换机端口的网络用户的逻辑分段,不受网络用户的物理位置限制而根据用户需求进行网络分段。
虚拟路由转发:(Virtual Routing and Forwarding,简称为VRF),通过在一台三层转发设备上创建多张路由表实现数据或业务的隔离,常用于MPLS VPN、防火墙等一些需要实现隔离的应用场景。
请求评议:(Request For Documents,RFC),一种技术标准的官方文档。
现有技术中,当NAT网关对应设备不支持VXLAN封装与解封装时,云租户的南北向流量需要通过SDN南北向网关Border设备到NAT网关对应设备之间的流量无法使用VXLAN隧道这类Overlay的方式进行传输,仍需使用Underlay的方式进行封装,并通过Vlan技术或者VRF技术进行云租户的区分隔离。但是这样会使得整个云化数据中心中的租户受到租户数量为4K的限制,无法满足海量云租户的应用场景。
本公开的实施例提供了一种云租户报文隔离方法,接收接入网关发送的第一报文,其中,所述第一报文携带VNI;解封装所述第一报文,获取第一内层报文,所述第一内层报文包括第一访问信息,所述第一访问信息为出方向;通过预设的VGRE外层报文对所述第一内层报文执行VGRE加封装,得到第二报文,其中,所述VGRE外层报文的格式是基于GRE报文格式扩展VNI字段得来的,所述VGRE加封装至少包括将所述VNI写入所述VGRE外层报文的VNI字段;以及将所述第二报文发送至NAT网关。
在本公开的实施例中,接收来自云租户的出方向的报文,并将该报文转化成为VGRE报文,并发送至NAT网关,在通过VNI实现扩展云租户的同时,又通过VGRE保证NAT网关设备能够接收该VNI字段,在现有NAT网关设备不支持VXLAN的硬件基础上,在出方向实现了云租户的扩容,突破了云租户规模4K的限制。
图1A示意性示出了根据本公开实施例的VXLAN的报文格式。
如图1A所示,该VXLAN的报文格式主要由VXLAN封装和原始IP报文组成。
对于原始IP报文,也即原始报文(或称内层报文),其中,“内层IP头部”包括内层报文源IP、内层报文目的IP、内层报文源端口、内层报文目的端口以及协议信息的信息,例如,云租户产生内层报文,在需要将内层报文从云租户发送至互联网中某个用户(或端点)的情况下,云租户则是内层报文的源端,互联网中的用户则是内层报文的目的端。
对于“外层IP头部”,至少包括外层源IP地址和外层目的IP地址,外层源IP地址是指VXLAN隧道源端VTEP的IP地址,该源端VTEP负责对接收到的原始报文进行加封装得到VXLAN报文,目的IP地址是指VXLAN隧道目的端VTEP的IP地址,该目的VTEP负责对接收到的VXLAN报文进行解封装得到原始报文。例如,云租户产生原始报文,在需要将原始报文从云租户发送至互联网中某个用户的情况下,在途中经过某个网关时,该网关对接收到的原始报文加封装得到VXLAN报文,则该网关的IP地址则是源IP地址,同样的,接收VXLAN报文并进行解封装的网关的IP地址则是目的IP地址。也就是说,“外层IP头部”的作用在于在两个网关间建立了一条隧道,该隧道为在两端间专有的隧道,可以使得数据的发送方和数据的接收方进行数据传输和通信。
对于“VXLAN头”,至少包括VNI字段,所述VNI字段则是该用于区分不同的云租户,由于VNI字段保留32位,因此,可以标识区分海量的云租户。
图1B示意性示出了根据本公开实施例的GRE的报文格式。
如图1B所示,对于原始IP报文与上述原始IP报文一致,在此不再赘述。
对于“外层IP头部”,包括外层源IP地址和外层目的IP地址,外层源IP地址是指GRE隧道源端的IP地址,该源端负责对接收到的原始报文进行加封装得到GRE报文,目的IP地址是指VXLAN隧道目的端的IP地址,该目的端负责对接收到的GRE报文进行解封装得到原始报文。例如,云租户产生内层报文,在需要将内层报文从云租户发送至互联网中某个用户的情况下,在途中经过某个网关时,该网关对接收到的原始报文加封装得到GRE报文,则该网关的IP地址则是源IP地址,同样的,接收GRE报文并进行解封装的网关的IP地址则是目的IP地址。也就是说,“外层IP头部”的作用在于在两个网关间建立了一条隧道,该隧道为在两端间专有的隧道,可以使得数据的发送方和数据的接收方进行数据传输和通信。
对于“GRE头”,并不包括VNI字段。也就是说,采用原始的GRE报文进行数据传输时,并不包含VNI字段,因而并不具备区分海量云租户的能力。
图1C示意性示出了根据本公开实施例的VGRE的报文格式。
如图1C所示,该VGRE报文,在图1B的GRE报文的基础上,在“GRE头”中添加了VNI字段形成了“VGRE头”。新的VGRE报文兼具了VXLAN报文和GRE报文的优势,能够在不支持VXLAN报文但支持GRE报文的设备上传输VNI字段。
在本公开的实施例中,以GRE的标准RFC 2784为例,在RFC2784的基础上进行拓展得到VGRE报文,VGRE报文的“VGRE头”中的各字段解释如下表1所示:
表1
图1D示意性示出了根据本公开实施例的云租户报文隔离方法的系统图。
如图1D所示,根据该实施例的系统100可以包括数据中心云租户101、SDN网关102、NAT网关103以及互联网104。
数据中心云租户101可以经由SDN网关102以及NAT网关103访问互联网104。
数据中心云租户101可以是传统的物理机,也可以是基于原有的数据中心虚拟化后得到的虚拟机,其中,虚拟机相较于原有的物理机,虚拟化后得到的数据中心云租户101中虚拟网卡的MAC地址数量有了数量级的增加。
SDN网关102以及NAT网关103可以设置于相应的交换机设备、路由器设备以及防火墙设备等之上,以实现云租户101与互联网106之间的报文转发。
数据中心云租户101、SDN网关102以及NAT网关103为数据中心的内部的私有网络,一般情况下,数据中心云租户101、SDN网关102以及NAT网关103所使用的IP地址同样是数据中心的内部的私有地址。相应的,互联网104中的站点的IP地址为公网地址。
需要说明的是,数据中心云租户101在与外部网络互联网104的通信时,需要通过NAT网关103通过相应策略,进行公网IP地址与私网IP地址的转化,进而实现数据中心云租户101在与外部网络互联网104的通信。
需要说明的是,本公开实施例所提供的云租户报文隔离方法可以根据具体情况由SDN网关102和/或NAT网关103执行。相应地,本公开实施例所提供的云租户报文隔离装置一般可以根据具体情况设置于SDN网关102和/或NAT网关103中。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
以下将基于图1D描述的场景,通过图2A~图4对公开实施例的云租户报文隔离方法进行详细描述。
图2A示意性示出了根据本公开实施例的一种云租户报文隔离方法的流程图。
如图2A所示,该实施例的云租户报文隔离方法包括操作S210~操作S240,该云租户报文隔离方法可以由SDN网关执行。
在操作S210中,接收接入网关发送的第一报文,其中,所述第一报文携带VNI。
具体的,所述SDN网关接收来自于所述接入网关的第一报文,所述接入网关可以实现与云租户的Underlay连接,所述第一报文可以是任意能够携带VNI字段的协议生成的。例如,所述第一报文是由VXLAN协议封装所述第一内层报文得到的。其中,所述VNI的作用在于标识所述云租户,使得一个云租户对应一个VNI。
在操作S220中,解封装所述第一报文,获取第一内层报文,所述第一内层报文包括第一访问信息,所述第一访问信息为出方向。
具体的,所述第一访问信息包括内层报文源IP、内层报文目的IP、内层报文源端口、内层报文目的端口以及协议信息的信息,可以通过获取所述第一访问信息中的内层报文源IP、内层报文目的IP、内层报文源端口、内层报文目的端口以及协议信息的信息通过路由查询的方式,获取该第一内层报文的传输方向为出方向。
可以理解的是,出方向是指由私网中的云租户端至公网互联网端某站点的方向,而入方向是指由公网互联网端某站点至私网中云租户端的方向。而所述第一报文是在接入网关与SDN网关之间传输的报文,且该报文的传输方向为出方向。
在操作S230中,通过预设的VGRE外层报文对所述第一内层报文执行VGRE加封装,得到第二报文,其中,所述VGRE外层报文的格式是基于GRE报文格式扩展VNI字段得来的,所述VGRE加封装至少包括将所述VNI写入所述VGRE外层报文的VNI字段。
结合图1C所示,将从接入网关接收到的所述VNI写入该“VGRE头”中的VNI字段,并按照预设的VGRE头配置规则,对其他字段进行配置。例如,可以是将Flag字段第一bit置为1,VNI填入报文所述的VNI字段。
需要说明的是,在上述操作S230中,需要在SDN网关上提前配置路由策略,该路由策略规定所有去往公网的报文的下一跳为VGRE隧道接口。也就是说,当SDN收到某个报文后,通过查询路由发现该报文是去向公网的报文,则预设的路由策略规定该报文需要通过VGRE隧道进行传播。进而,在此次第一报文传输的过程中,该SDN网关作为VGRE隧道的源端,相应的,下一跳的所述NAT网关则是作为VGRE隧道的目的端。
结合图1C所示,还需要对外层IP头部进行配置,以明确VGRE隧道的两端。
根据本公开的实施例,其中,所述VGRE外层报文包括VGRE报文头和VGRE外层地址信息,所述基于VGRE外层报文对所述内层报文执行加封装,得到第二报文,还包括:配置所述VGRE外层报文的VGRE外层地址信息,其中,所述VGRE外层地址信息包括VGRE外层源地址字段和VGRE外层目的地址字段,所述VGRE外层源地址字段被配置为所述SDN网关的地址,所述VGRE外层目的地址字段被配置为所述NAT网关的地址。
在本公开的实施例中,对于VGRE的配置还包括对报文头以及外层地址信息的配置,其中,VGRE外层地址信息,规定了VGRE隧道传输的源端和目标端。
在操作S240中,将所述第二报文发送至NAT网关。
可以理解的是,所述第二报文是在SDN网关与NAT网关之间传输的报文,且该报文的传输方向为出方向。
在本公开的实施例中,接收来自云租户的出方向的报文,并将该报文转化成为VGRE报文,并发送至NAT网关,在通过VNI实现扩展云租户的同时,又通过VGRE保证NAT网关设备能够接收该VNI字段,在现有NAT网关设备不支持VXLAN的硬件基础上,在出方向实现了云租户的扩容,突破了云租户规模4K的限制。
可以理解的是,上述操作S210~操作S240是SDN网关针对云租户端的内层报文在出方向时进行的。相应的,该SDN网关在针对云租户端的内层报文在入方向时,也应执行相应的转发操作。
图2B示意性示出了根据本公开实施例的另一种云租户报文隔离方法的流程图。
如图2B所示,该实施例的云租户报文隔离方法除了上述操作S210~操作S240,还包括操作S250~操作S280,该云租户报文隔离方法可以由SDN网关执行。
在操作S250中,接收NAT网关发送的第三报文,其中,所述第三报文是基于所述VGRE外层报文对第二内层报文执行加封装得到的。
在操作S260中,解封装所述第三报文,获取所述第二内层报文,所述第二内层报文包括第二访问信息,所述第二访问信息为入方向。
具体的,所述SDN网关接收来自于所述NAT网关的第三报文,所述第三报文可以VGRE协议生成的,该VGRE协议携带VNI,其中,与上述出方向的第二报文不同,第三报文是入方向,所述SDN网关在接收同样基于VGRE协议传输的第三报文时,需要对其做解封装的操作,以获取第二内层报文。
同样的,所述第二访问信息包括内层报文源IP、内层报文目的IP、内层报文源端口、内层报文目的端口以及协议信息的信息,可以通过获取所述第二访问信息中的内层报文源IP、内层报文目的IP、内层报文源端口、内层报文目的端口以及协议信息的信息通过路由查询的方式,获取该第二内层报文的传输方向为入方向。上述第二内层报文实际上是在公网中产生,并发送至云租户端的报文。
在操作S270中,基于VXLAN外层报文对所述第二内层报文执行VXLAN加封装,得到第四报文,其中,所述VXLAN加封装至少包括将所述VNI写入所述VXLAN外层报文的VNI字段。
在操作S280中,将所述第四报文发送至接入网关。
结合图1A所示,对所述第二内层报文进行VXLAN加封装的步骤,与上述VGRE加封装的步骤类似,包括配置外层IP头部与VXLAN头。
其中,对于VXLAN头,至少包括将从第三报文中获取到的VNI写入VXLAN的VNI字段中。对于外层IP头部,同样是通过配置VXLAN外层源地址字段和VXLAN外层目的地址字段,将所述VXLAN外层源地址字段被配置为所述SDN网关的地址,将所述VXLAN外层目的地址字段被配置为所述接入网关的地址。
在本公开的实施例中,接受来自于NAT网关的入方向的报文,并将该报文转化成为VXLAN的形式,在现有NAT网关设备不支持VXLAN的硬件基础上,在入方向实现了云租户的扩容,突破了云租户4K的限制。
图3A示意性示出了根据本公开实施例的一种云租户报文隔离方法的流程图。
如图3A所示,该实施例的云租户报文隔离方法包括操作S310~操作S340,该云租户报文隔离方法可以由NAT网关执行。
在操作S310中,接收SDN网关发送的第二报文,其中,所述第二报文是基于VGRE外层报文对第一内层报文执行VGRE加封装得到的,所述VGRE外层报文的格式是基于GRE报文格式扩展VNI字段得来的,所述VGRE加封装至少包括将VNI写入所述VGRE外层报文的VNI字段。
具体的,所述NAT网关接收来自于所述SDN网关的第一报文,所述第一报文可以是由任意能够携带VNI字段的协议生成的。例如,所述第一报文是由VXLAN协议封装所述第一内层报文得到的。其中,所述VNI的作用在于标识所述云租户,一个云租户对应一个VNI。
在操作S320中,解封装所述第二报文,获取第一内层报文,所述第一内层报文包括第一访问信息,所述第一访问信息为出方向。
在操作S330中,基于所述第一访问信息匹配会话。
根据本公开的实施例,其中,所述会话包括:VNI、VGRE外层源地址、VGRE外层目的地址、转化前的内层源地址、转化后的内层源地址、转化前的内层目的地址以及转化后的内层目的地址。
可以理解的是,会话的匹配是根据上述第一访问信息中的内层报文源IP、内层报文目的IP、内层报文源端口、内层报文目的端口以及协议信息进行的。其中,上述访问信息也可称为五元组。需要说明的是,上述五元组信息匹配的是会话中的转化前的内层报文源IP、转化前的内层报文目的IP、转化前的内层报文源端口、转化前的内层报文目的端口以及协议信息。
在操作S340中,当所述第一访问信息匹配所述会话失败时,基于NAT转发策略,完成所述第一内层报文的转发。
具体的,未经NAT策略配置前的会话如下表2所示:
序号 | 1 | 2 |
内层报文源IP | 1.1.1.1 | |
转化后的内层报文源IP | -- | |
内层报文目的IP | 39.156.69.79 | |
转化后的内层报文目的IP | 39.156.69.79 | |
内层报文源端口 | 1234 | |
转化后的内层报文源端口 | -- | |
内层报文目的端口 | 80 | |
转化后的内层报文目的端口 | 80 | |
内层报文协议 | TCP | |
外层报文源IP(vGRE隧道源IP) | 2.2.2.2 | |
外层报文目的IP(vGRE隧道目的IP) | 3.3.3.3 | |
VNI(填入vGRE的VNI字段) | 10 |
表2
上述表2展示了未匹配NAT策略的会话,实际上,“内层报文源IP”即是云租户的私网IP,在公网与私网之间的访问时并不能直接使用该“内层报文源IP”,需要通过NAT策略将其转化成为公网IP,进而实现公私网之间的访问。
也就是说,在所述第一访问信息和所述VGRE外层报文未能匹配到现有会话时,该云租户与互联网中某站点则可以看做是第一次进行访问,因此,先创建上述表2中的会话信息,以此记录与本次访问路径相关的信息。
根据本公开的实施例,所述当所述第一访问信息匹配所述会话失败时,基于NAT转发策略,完成所述第一内层报文的转发,包括:选取预设公网地址池中未被占用的公网地址;基于所述公网地址转化所述第一内层报文中内层源地址;以及基于转化后的内层源地址完成所述第一内层报文的转发。
具体的,经过NAT策略配置后的会话如下表3所示:
序号 | 1 | 2 |
内层报文源IP | 1.1.1.1 | |
转化后的内层报文源IP | 30.1.1.1 | |
内层报文目的IP | 39.156.69.79 | |
转化后的内层报文目的IP | 39.156.69.79 | |
内层报文源端口 | 1234 | |
转化后的内层报文源端口 | -- | |
内层报文目的端口 | 80 | |
转化后的内层报文目的端口 | 80 | |
内层报文协议 | TCP | |
外层报文源IP(vGRE隧道源IP) | 2.2.2.2 | |
外层报文目的IP(vGRE隧道目的IP) | 3.3.3.3 | |
VNI(填入vGRE的VNI字段) | 10 |
表3
结合上述表3所示,其中,NAT网关从配置的公网地址池中选择一个未被占用的公网地址,对该报文的内层报文源IP进行NAT转化,替换成转化后的内层报文源IP,并以该转化后的内层报文源IP访问公网。例如,上述表2与表3唯一不同的是,表3还包括经过NAT配置后,填充了转化后的内层报文源IP。也就是说,云租户将以该公网IP地址为30.1.1.1,建立与互联网中某站点的网络通信关系。
根据本公开的实施例,还包括:当所述第一访问信息匹配所述会话成功时,基于所述转化后的内层源地址进行转发。
结合上述表3所示,如果第一访问信息中的五元组成功匹配到会话时,则可表明在一定时间内,存在云租户与互联网中某站点进行过访问,因此,无需执行NAT策略中选取未被占用的公网地址,直接基于该会话寻找到转化后的内层报文源IP,然后通过该内层报文源IP直接与互联网中的某站点进行访问即可。
在本公开的实施例中,接收来自SDN的出方向的报文,并将该VGRE报文解封装,并发送至公网,在通过VNI实现扩展云租户的同时,又通过VGRE保证NAT网关设备能够接收该VNI字段,在现有NAT网关设备不支持VXLAN的硬件基础上,实现了云租户的扩容,突破了云租户4K的限制。
可以理解的是,上述操作S310~操作S340是NAT网关针对云租户端的内层报文在出方向时进行的。相应的,该NAT网关在针对云租户端的内层报文在入方向时,也应执行相应的转发操作。
图3B示意性示出了根据本公开实施例的另一种云租户报文隔离方法的流程图。
如图3B所示,该实施例的云租户报文隔离方法除了上述操作S310~操作S340,还包括操作S350~操作S380,该云租户报文隔离方法可以由NAT网关执行。
在操作S350中,获取公网发送的第二内层报文,所述第二内层报文包括第二访问信息,所述第二访问信息为入方向。
在操作S360中,当所述第二访问信息和所述VGRE外层报文匹配所述会话的报文成功时,基于所述会话,修改所述第二内层报文。
根据本公开的实施例,其中,所述当所述第二访问信息和所述VGRE外层报文匹配所述会话的报文成功时,基于所述会话,修改所述第二内层报文,包括:将所述会话中的所述转化前的内层源地址替换所述第二内层报文中的内层目的地址。
结合上述表3所示,NAT网关对公网中的发送来的第二内层报文中第二访问信息进行会话匹配,在匹配成功的情况下,通过该会话中的对应的转化前与转化后的对应信息进行转化,使得该报文能够在私网中进行传输。需要说明的是,第二内层报文中的内层报文源IP、内层报文目的IP、内层报文源端口、内层报文目的端口以及协议信息,是用以匹配表3中转化后的转化后的内层报文源IP、转化后的内层报文目的IP、转化后的内层报文源端口、转化后的内层报文目的端口以及协议信息。
在操作S370中,基于所述VGRE外层报文对修改后的所述第二内层报文执行VGRE加封装,得到第三报文。
根据本公开的实施例,其中,所述基于所述VGRE外层报文对修改后的所述第二内层报文执行VGRE加封装,得到第三报文,包括:将所述会话中的所述VNI写入所述VGRE外层报文中的VNI字段中;将所述会话中的所述VGRE外层源地址写入所述VGRE外层报文中的VGRE外层源地址字段;以及将所述会话中的所述VGRE外层目的地址写入所述VGRE外层报文中的VGRE外层目的地址字段。
结合表3所示,通过会话中的记载的VGRE隧道的两端端点以及VNI,来配置VGRE报文,并将该VGRE报文发送至云租户。
在操作S380中,发送所述第三报文至SDN网关。
因此,由于会话的存在,在频繁的内外网交流过程中,能通过会话记录已有的网络传输路径,进而通过匹配会话,加速了报文的转发效率。
在本公开的实施例中,接收来自公网的入方向的报文,将该报文匹配会话进行VGRE封装并传输至SDN网关,在现有NAT网关设备不支持VXLAN的硬件基础上,实现了云租户的扩容,突破了云租户4K的限制。
图4示意性示出了本公开实施例的一种云租户报文隔离系统图。
如图4所示,该实施例的云租户报文隔离系统包括:云租户(例如某VM)401、接入网关402、SDN网关403、NAT网关404、出口路由器405以及互联网(例如某站点)406。假设,云租户401的私网地址为1.1.1.1,SDN网关403的私网地址为2.2.2.2,NAT网关404的私网地址为3.3.3.3,互联网中某站点406的公网地址为39.156.69.79。其中,接入网关402可以配置在例如LeafIOR的交换机上,SDN网关403可以配置在例如Border的交换机上,NAT网关404可以配置在任意不支持VXLAN协议的交换机、路由器以及防火墙设备等之上。
在实际的云租户401与外界的互联网406通信过程中,包含两个报文转发的模型:第一个通信模型为:由云租户产生报文并发送至互联网,再由互联网响应上述报文,返回回访报文至云租户;第二个通信模型为:由互联网产生报文并发送至云租户,再由云租户响应上述报文,并发送回访报文至互联网。
对于第一个通信模型,当云租户401主动发起对互联网406的访问时,即为主动出方向时:
接入网关402接收来自于云租户401产生的外送的内层报文,其中,内层源IP为1.1.1.1,内层目的IP为39.156.69.79;接入网关402在查询到云租户401对应的VNI为10时,基于该VNI进行VXLAN加封装,将该VXLAN报文发送至SDN网关403。需要说明的是,一般情况下,接入网关402与SDN网关403对应的硬件设备支持VXLAN协议。
SDN网关403通过VXLAN隧道接收到VXLAN报文,发现该报文的VXLAN目的IP地址是2.2.2.2;实际上2.2.2.2即是SDN网关403自身的地址,在此情况下,对该VXLAN报文进行解封装操作;解封装后得到内层报文,通过查找路由,识别到该原始报文是去往公网中地址为39.156.69.79的报文,需要进入VGRE隧道进行传播;于是将所述内层报文进行VGRE加封装并传输至NAT网关404。其中,VGRE加封装中外层报文源IP地址为2.2.2.2(即SDN网关403的IP地址),外层报文目的IP地址为3.3.3.3(即NAT网关404的IP地址),报文头中的VNI字段填写为10。
NAT网关404接收到经由VGRE隧道传输的VGRE报文;对该VGRE报文进行解封装,得到内层报文;通过查找路由表发现该报文是去往公网地址为39.156.69.79的报文;基于路由策略,以公网中的内层源地址30.1.1.1取代原有私网中内层源地址1.1.1.1;将转化后的内层报文转发至公网出口通过通过出口路由器405进行转发;同时,对于该内层报文并在创建会话。其中,记载的会话的形式如上述表3所示。
对于第一个通信模型,当互联网406发起对云租户401的回访时,即为回访方向时:
NAT网关404通过出口路由器405接收来自于公网中互联网406的回访报文,该回访报文的内层源IP为公网地址39.156.69.79,内层目的IP为公网地址30.1.1.1;通过匹配会话,得知该回访报文实际上是私网内层目的地址1.1.1.1的云租户401时,基于会话中的地址对应关系进行相应转化;基于地址转化后的内层报文、VNI以及VGRE隧道中两端点的地址(即NAT网关404和SDN网关403的地址),形成VGRE报文,并发送至SDN网关403。
SDN网关403接收来自于NAT网关404的VGRE报文;解封装该VGRE报文,得到内层报文和VNI;基于内层报文和VNI进行VXLAN加封装,得到VXLAN报文;将VXLAN报文发送至接入网关402.
接入网关402基于VXLAN隧道接收到来自于SDN网关403的VXLAN报文;对VXLAN进行解封装得到VNI和回访报文,并基于内层目的地址与VNI,将回访报文转发至云租户401。
对于第二个通信模型,当互联网406主动发起对云租户401的访问时,即为主动入方向时:
若云租户401对外使用31.1.1.1的地址,对外提供主动访问,则在NAT网关404出配置NAT server,,指定公网地址31.1.1.1、私网地址1.1.1.1、协议TCP、VNI 10的对应关系。相关代码如下所示:
interfac0/0/1
nat server protocol tcp global 31.1.1.18080inside 1.1.1.180vni 10//该配置表示,当来自公网的报文目的IP为31.1.1.1,协议为TCP,目的端口号为8080时,该报文实际访问的是内网VXLAN 10(即VNI10),IP为1.1.1.1的VM1,协议为TCP,目的端口号为80。
NAT网关405根据配置对报文进行相应的地址端口转换,和VGRE封装,VGRE封装时,使用配置中的VNI填写VGRE的报文头部VNI字段。后续转发流程与上述相同
对于第二个通信模型,当云租户401发起对互联网406的回访时,即为回访方向时,其流程与上述“当云租户401主动发起对互联网406的访问时,即为主动出方向时”的流程类似,在此不再赘述。
基于上述云租户报文隔离方法,本公开还提供了一种云租户报文隔离装置。以下将结合图5和图6对该装置进行详细描述。
图5示意性示出了根据本公开实施例的一种云租户报文隔离装置的结构框图。
如图5所示,该实施例的云租户报文隔离装置500包括第一报文接收模块510、第一解封装模块520、VGRE加封装模块530以及第一发送模块540。
所述第一报文接收模块510,用于接收接入网关发送的第一报文,其中,所述第一报文携带VNI。在一实施例中,所述第一报文接收模块510可以用于执行前文描述的操作S210,在此不再赘述。
所述第一解封装模块520,用于解封装所述第一报文,获取第一内层报文,所述第一内层报文包括第一访问信息,所述第一访问信息为出方向。在一实施例中,所述第一解封装模块520可以用于执行前文描述的操作S220,在此不再赘述。
所述VGRE加封装模块530,用于通过预设的VGRE外层报文对所述第一内层报文执行VGRE加封装,得到第二报文,其中,所述VGRE外层报文的格式是基于GRE报文格式扩展VNI字段得来的,所述VGRE加封装至少包括将所述VNI写入所述VGRE外层报文的VNI字段。在一实施例中VGRE加封装模块530可以用于执行前文描述的操作S230,在此不再赘述。
所述第一发送模块540,用于将所述第二报文发送至NAT网关。在一实施例中,所述第一发送模块540可以用于执行前文描述的操作S240,在此不再赘述。
在本公开的实施例中,接收来自云租户的出方向的报文,并将该报文转化成为VGRE报文,并发送至NAT网关,在通过VNI实现扩展云租户的同时,又通过VGRE保证NAT网关设备能够接收该VNI字段,在现有NAT网关设备不支持VXLAN的硬件基础上,在出方向实现了云租户的扩容,突破了云租户规模4K的限制。
根据本公开的实施例,所述装置还包括第三接收模块、第三解封装模块、VGRE加封装模块以及第四发送模块:所述第三接收模块,用于接收NAT网关发送的第三报文,其中,所述第三报文是基于所述VGRE外层报文对第二内层报文执行加封装得到的;所述第三解封装模块,用于解封装所述第三报文,获取所述第二内层报文,所述第二内层报文包括第二访问信息,所述第二访问信息为入方向;所述VGRE加封装模块,用于基于VXLAN外层报文对所述第二内层报文执行VXLAN加封装,得到第四报文,其中,所述VXLAN加封装至少包括将所述VNI写入所述VXLAN外层报文的VNI字段;以及所述第四发送模块,用于将所述第四报文发送至接入网关。
根据本公开的实施例,其中,所述VGRE外层报文包括VGRE报文头和VGRE外层地址信息,所述VGRE加封装模块,还用于配置所述VGRE外层报文的VGRE外层地址信息,其中,所述VGRE外层地址信息包括VGRE外层源地址字段和VGRE外层目的地址字段,所述VGRE外层源地址字段被配置为所述SDN网关的地址,所述VGRE外层目的地址字段被配置为所述NAT网关的地址。
根据本公开的实施例,所述第一报文接收模块510、所述第一解封装模块520、所述VGRE加封装模块530以及所述第一发送模块540中的任意多个模块可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本公开的实施例,所述第一报文接收模块510、所述第一解封装模块520、所述VGRE加封装模块530以及所述第一发送模块540中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,所述第一报文接收模块510、所述第一解封装模块520、所述VGRE加封装模块530以及所述第一发送模块540中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
图6示意性示出了根据本公开实施例的另一种云租户报文隔离装置的结构框图。
如图6所示,该实施例的云租户报文隔离装置600包括第二报文接收模块610、第二解封装模块620、会话匹配模块630以及公网转发模块640。
所述第二报文接收模块610,用于接收SDN网关发送的第二报文,其中,所述第二报文是基于VGRE外层报文对第一内层报文执行VGRE加封装得到的,所述VGRE外层报文的格式是基于GRE报文格式扩展VNI字段得来的,所述VGRE加封装至少包括将VNI写入所述VGRE外层报文的VNI字段。在一实施例中,所述第二报文接收模块610可以用于执行前文描述的操作S310,在此不再赘述。
所述第二解封装模块620,用于解封装所述第二报文,获取第一内层报文,所述第一内层报文包括第一访问信息,所述第一访问信息为出方向。在一实施例中,所述第二解封装模块620可以用于执行前文描述的操作S320,在此不再赘述。
所述会话匹配模块630,用于基于所述第一访问信息匹配会话。在一实施例中所述会话匹配模块630可以用于执行前文描述的操作S330,在此不再赘述。
所述公网转发模块640,用于将所述第二报文发送至NAT网关。
在一实施例中,所述公网转发模块640可以用于执行前文描述的操作S340,在此不再赘述。
在本公开的实施例中,接收来自SDN的出方向的报文,并将该VGRE报文解封装,并发送至公网,在通过VNI实现扩展云租户的同时,又通过VGRE保证NAT网关设备能够接收该VNI字段,在现有NAT网关设备不支持VXLAN的硬件基础上,实现了云租户的扩容,突破了云租户4K的限制。
根据本公开的实施例,所述装置还包括第二内层报文接收模块、第二内层报文修改模块、VGRE加封装模块以及第三报文发送模块,所述第二内层报文接收模块,用于获取公网发送的第二内层报文,所述第二内层报文包括第二访问信息,所述第二访问信息为入方向;所述第二内层报文修改模块,用于当所述第二访问信息和所述VGRE外层报文匹配所述会话的报文成功时,基于所述会话,修改所述第二内层报文;所述VGRE加封装模块,用于基于所述VGRE外层报文对修改后的所述第二内层报文执行VGRE加封装,得到第三报文;以及所述第三发送模块,用于所述第三报文至SDN网关。
根据本公开的实施例,其中,所述会话包括:VNI、VGRE外层源地址、VGRE外层目的地址、转化前的内层源地址、转化后的内层源地址、转化前的内层目的地址以及转化后的内层目的地址。
根据本公开的实施例,所述公网转发模块,还用于当所述第一访问信息匹配所述会话成功时,基于所述转化后的内层源地址进行转发。
根据本公开的实施例,所述公网转发模块,还用于选取预设公网地址池中未被占用的公网地址;基于所述公网地址转化所述第一内层报文中内层源地址;以及基于转化后的内层源地址完成所述第一内层报文的转发。
根据本公开的实施例,第二内层报文修改模块,还用于将所述会话中的所述转化前的内层源地址替换所述第二内层报文中的内层目的地址。
根据本公开的实施例,所述VGRE加封装模块,还用于将所述会话中的所述VNI写入所述VGRE外层报文中的VNI字段中;将所述会话中的所述VGRE外层源地址写入所述VGRE外层报文中的VGRE外层源地址字段;以及将所述会话中的所述VGRE外层目的地址写入所述VGRE外层报文中的VGRE外层目的地址字段。
根据本公开的实施例,所述第二报文接收模块610、所述第二解封装模块620、所述会话匹配模块630和所述公网转发模块640中的任意多个模块可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本公开的实施例,所述第二报文接收模块610、所述第二解封装模块620、所述会话匹配模块630和所述公网转发模块640中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,所述第二报文接收模块610、所述第二解封装模块620、所述会话匹配模块630和所述公网转发模块640中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
图7示意性示出了根据本公开实施例的适于实现云租户报文隔离方法的电子设备的方框图。
如图7所示,根据本公开实施例的电子设备700包括处理器701,其可以根据存储在只读存储器(ROM)702中的程序或者从存储部分708加载到随机访问存储器(RAM)703中的程序而执行各种适当的动作和处理。处理器701例如可以包括通用微处理器(例如CPU)、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC))等等。处理器701还可以包括用于缓存用途的板载存储器。处理器701可以包括用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
在RAM 703中,存储有电子设备700操作所需的各种程序和数据。处理器701、ROM702以及RAM 703通过总线704彼此相连。处理器701通过执行ROM 702和/或RAM 703中的程序来执行根据本公开实施例的方法流程的各种操作。需要注意,所述程序也可以存储在除ROM 702和RAM 703以外的一个或多个存储器中。处理器701也可以通过执行存储在所述一个或多个存储器中的程序来执行根据本公开实施例的方法流程的各种操作。
根据本公开的实施例,电子设备700还可以包括输入/输出(I/O)接口705,输入/输出(I/O)接口705也连接至总线704。电子设备700还可以包括连接至I/O接口705的以下部件中的一项或多项:包括键盘、鼠标等的输入部分706;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分707;包括硬盘等的存储部分708;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分709。通信部分709经由诸如因特网的网络执行通信处理。驱动器710也根据需要连接至I/O接口705。可拆卸介质711,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器710上,以便于从其上读出的计算机程序根据需要被安装入存储部分708。
本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/系统中所包含的;也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的方法。
根据本公开的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质,例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。例如,根据本公开的实施例,计算机可读存储介质可以包括上文描述的ROM 702和/或RAM 703和/或ROM 702和RAM 703以外的一个或多个存储器。
本公开的实施例还包括一种计算机程序产品,其包括计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。当计算机程序产品在计算机系统中运行时,该程序代码用于使计算机系统实现本公开实施例所提供的方法。
在该计算机程序被处理器701执行时执行本公开实施例的系统/装置中限定的上述功能。根据本公开的实施例,上文描述的系统、装置、模块、单元等可以通过计算机程序模块来实现。
在一种实施例中,该计算机程序可以依托于光存储器件、磁存储器件等有形存储介质。在另一种实施例中,该计算机程序也可以在网络介质上以信号的形式进行传输、分发,并通过通信部分709被下载和安装,和/或从可拆卸介质711被安装。该计算机程序包含的程序代码可以用任何适当的网络介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
在这样的实施例中,该计算机程序可以通过通信部分709从网络上被下载和安装,和/或从可拆卸介质711被安装。在该计算机程序被处理器701执行时,执行本公开实施例的系统中限定的上述功能。根据本公开的实施例,上文描述的系统、设备、装置、模块、单元等可以通过计算机程序模块来实现。
根据本公开的实施例,可以以一种或多种程序设计语言的任意组合来编写用于执行本公开实施例提供的计算机程序的程序代码,具体的,可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。程序设计语言包括但不限于诸如Java,C++,python,“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合或/或结合,即使这样的组合或结合没有明确记载于本公开中。特别地,在不脱离本公开精神和教导的情况下,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本公开的范围。
以上对本公开的实施例进行了描述。但是,这些实施例仅仅是为了说明的目的,而并非为了限制本公开的范围。尽管在以上分别描述了各实施例,但是这并不意味着各个实施例中的措施不能有利地结合使用。本公开的范围由所附权利要求及其等同物限定。不脱离本公开的范围,本领域技术人员可以做出多种替代和修改,这些替代和修改都应落在本公开的范围之内。
Claims (16)
1.一种云租户报文隔离方法,其特征在于,所述方法应用于SDN网关,包括:
接收接入网关发送的第一报文,其中,所述第一报文携带VNI;
解封装所述第一报文,获取第一内层报文,所述第一内层报文包括第一访问信息,所述第一访问信息为出方向;
通过预设的VGRE外层报文对所述第一内层报文执行VGRE加封装,得到第二报文,其中,所述VGRE外层报文的格式是基于GRE报文格式扩展VNI字段得来的,所述VGRE加封装至少包括将所述VNI写入所述VGRE外层报文的VNI字段;以及
将所述第二报文发送至NAT网关。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收NAT网关发送的第三报文,其中,所述第三报文是基于所述VGRE外层报文对第二内层报文执行加封装得到的;
解封装所述第三报文,获取所述第二内层报文,所述第二内层报文包括第二访问信息,所述第二访问信息为入方向;
基于VXLAN外层报文对所述第二内层报文执行VXLAN加封装,得到第四报文,其中,所述VXLAN加封装至少包括将所述VNI写入所述VXLAN外层报文的VNI字段;以及
将所述第四报文发送至接入网关。
3.根据权利要求1所述的方法,其特征在于,其中,所述VGRE外层报文包括VGRE报文头和VGRE外层地址信息,
所述通过预设的VGRE外层报文对所述第一内层报文执行VGRE加封装,得到第二报文,包括:
配置所述VGRE外层报文的VGRE外层地址信息,其中,所述VGRE外层地址信息包括VGRE外层源地址字段和VGRE外层目的地址字段,所述VGRE外层源地址字段被配置为所述SDN网关的地址,所述VGRE外层目的地址字段被配置为所述NAT网关的地址。
4.一种云租户报文隔离方法,其特征在于,所述方法应用于NAT网关,包括:
接收SDN网关发送的第二报文,其中,所述第二报文是基于VGRE外层报文对第一内层报文执行VGRE加封装得到的,所述VGRE外层报文的格式是基于GRE报文格式扩展VNI字段得来的,所述VGRE加封装至少包括将VNI写入所述VGRE外层报文的VNI字段;
解封装所述第二报文,获取第一内层报文,所述第一内层报文包括第一访问信息,所述第一访问信息为出方向;
基于所述第一访问信息匹配会话;以及
当所述第一访问信息匹配所述会话失败时,基于NAT转发策略,完成所述第一内层报文的转发。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
获取公网发送的第二内层报文,所述第二内层报文包括第二访问信息,所述第二访问信息为入方向;
当所述第二访问信息和所述VGRE外层报文匹配所述会话的报文成功时,基于所述会话,修改所述第二内层报文;
基于所述VGRE外层报文对修改后的所述第二内层报文执行VGRE加封装,得到第三报文;以及
发送所述第三报文至SDN网关。
6.根据权利要求5所述的方法,其特征在于,其中,所述会话包括:VNI、VGRE外层源地址、VGRE外层目的地址、转化前的内层源地址、转化后的内层源地址、转化前的内层目的地址以及转化后的内层目的地址。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
当所述第一访问信息匹配所述会话成功时,基于所述转化后的内层源地址进行转发。
8.根据权利要求4所述的方法,其特征在于,所述当所述第一访问信息匹配所述会话失败时,基于NAT转发策略,完成所述第一内层报文的转发,包括:
选取预设公网地址池中未被占用的公网地址;
基于所述公网地址转化所述第一内层报文中内层源地址;以及
基于转化后的内层源地址完成所述第一内层报文的转发。
9.根据权利要求6所述的方法,其特征在于,所述当所述第二访问信息和所述VGRE外层报文匹配所述会话的报文成功时,基于所述会话,修改所述第二内层报文,包括:
将所述会话中的所述转化前的内层源地址替换所述第二内层报文中的内层目的地址。
10.根据权利要求6所述的方法,其特征在于,所述基于所述VGRE外层报文对修改后的所述第二内层报文执行VGRE加封装,得到第三报文,包括:
将所述会话中的所述VNI写入所述VGRE外层报文中的VNI字段中;
将所述会话中的所述VGRE外层源地址写入所述VGRE外层报文中的VGRE外层源地址字段;以及
将所述会话中的所述VGRE外层目的地址写入所述VGRE外层报文中的VGRE外层目的地址字段。
11.一种云租户报文隔离装置,所述装置应用于SDN网关,所述装置包括:
第一报文接收模块,用于接收接入网关发送的第一报文,其中,所述第一报文携带VNI;
第一解封装模块,用于解封装所述第一报文,获取第一内层报文,所述第一内层报文包括第一访问信息,所述第一访问信息为出方向;
VGRE加封装模块,用于通过预设的VGRE外层报文对所述第一内层报文执行VGRE加封装,得到第二报文,其中,所述VGRE外层报文的格式是基于GRE报文格式扩展VNI字段得来的,所述VGRE加封装至少包括将所述VNI写入所述VGRE外层报文的VNI字段;以及
第一发送模块,用于将所述第二报文发送至NAT网关。
12.一种云租户报文隔离装置,所述装置应用于NAT网关,所述装置包括:
第二报文接收模块,用于接收SDN网关发送的第二报文,其中,所述第二报文是基于VGRE外层报文对第一内层报文执行VGRE加封装得到的,所述VGRE外层报文的格式是基于GRE报文格式扩展VNI字段得来的,所述VGRE加封装至少包括将VNI写入所述VGRE外层报文的VNI字段;
第二解封装模块,用于解封装所述第二报文,获取第一内层报文,所述第一内层报文包括第一访问信息,所述第一访问信息为出方向;
会话匹配模块,用于基于所述第一访问信息匹配会话;以及
公网转发模块,用于当所述第一访问信息匹配所述会话失败时,基于NAT转发策略,完成所述第一内层报文的转发。
13.一种云租户报文隔离系统,所述系统包括:接入网关、SDN网关以及NAT网关,
其中,
所述接入网关,被配置为接收来自云租户的第一内层报文,其中,所述第一内层报文包括第一访问信息,所述第一访问信息为出方向;识别所述第一内层报文以获取VNI;基于VXLAN外层报文和VNI对所述第一内层报文执行VXLAN加封装,得到第一报文;
所述SDN网关,被配置为解封装来自于所述接入网关的所述第一报文,以获取第一内层报文;通过预设的VGRE外层报文对所述第一内层报文执行VGRE加封装,得到第二报文,其中,所述VGRE外层报文的格式是基于GRE报文格式扩展VNI字段得来的,所述VGRE加封装至少包括将所述VNI写入所述VGRE外层报文的VNI字段;以及
所述NAT网关,被配置为解封装来自所述SDN网关的所述第二报文,获取第一内层报文;基于所述第一访问信息匹配会话;以及当所述第一访问信息匹配所述会话失败时,基于NAT转发策略,完成所述第一内层报文的转发。
14.一种电子设备,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器执行根据权利要求1~10中任一项所述的方法。
15.一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器执行根据权利要求1~10中任一项所述的方法。
16.一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现根据权利要求1~10中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210859903.XA CN115695369A (zh) | 2022-07-20 | 2022-07-20 | 云租户报文隔离方法、装置、系统、设备、介质和程序产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210859903.XA CN115695369A (zh) | 2022-07-20 | 2022-07-20 | 云租户报文隔离方法、装置、系统、设备、介质和程序产品 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115695369A true CN115695369A (zh) | 2023-02-03 |
Family
ID=85061586
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210859903.XA Pending CN115695369A (zh) | 2022-07-20 | 2022-07-20 | 云租户报文隔离方法、装置、系统、设备、介质和程序产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115695369A (zh) |
-
2022
- 2022-07-20 CN CN202210859903.XA patent/CN115695369A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111742525B (zh) | 多云vpc路由和注册 | |
US11765000B2 (en) | Method and system for virtual and physical network integration | |
CN111885075B (zh) | 容器通信方法、装置、网络设备及存储介质 | |
US10541836B2 (en) | Virtual gateways and implicit routing in distributed overlay virtual environments | |
US10476796B2 (en) | Packet processing method, and device and system | |
US10320664B2 (en) | Cloud overlay for operations administration and management | |
TWI744359B (zh) | 一種資料傳輸的方法及網路設備 | |
KR102054338B1 (ko) | 개별 관리들을 이용하는 vlan 태깅된 패킷들의 가상 포워딩 인스턴스들의 원단 주소들로의 라우팅 | |
CN111937358B (zh) | 用于结构边缘设备的多vrf通用设备互联网协议地址 | |
US20160261428A1 (en) | Packet Forwarding | |
WO2015113410A1 (zh) | 数据包的处理方法与装置 | |
WO2022001835A1 (zh) | 发送报文的方法、装置、网络设备、系统及存储介质 | |
JP2020529762A (ja) | アドレス空間統合を通じた仮想化されたネットワーク機能 | |
WO2019033964A1 (zh) | 一种传输报文的方法、转发设备、控制器及系统 | |
US20190007368A1 (en) | DHCP in Layer-3 Overlay with Anycast Address Support and Network Address Transparency | |
CN109246016B (zh) | 跨vxlan的报文处理方法和装置 | |
CN110752989A (zh) | 一种东西向流量转发方法与装置 | |
CN111130978B (zh) | 网络流量转发方法、装置、电子设备及机器可读存储介质 | |
CN116418632A (zh) | 一种报文处理方法、装置、设备及机器可读存储介质 | |
CN108471374B (zh) | 数据报文的转发方法及装置 | |
CN113596192B (zh) | 一种基于网闸组网的通信方法、装置、设备及介质 | |
CN111010344B (zh) | 报文转发方法、装置、电子设备及机器可读存储介质 | |
CN115695369A (zh) | 云租户报文隔离方法、装置、系统、设备、介质和程序产品 | |
CN111147520B (zh) | 由防火墙执行的信息处理方法和装置 | |
US20230018873A1 (en) | Method and system for processing encapsulated wireless traffic |
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 |