网络地址转换方法及装置与流程

文档序号:12730173阅读:339来源:国知局
网络地址转换方法及装置与流程
本申请涉及网络通信
技术领域
,特别涉及一种网络地址转换方法及装置。
背景技术
:OpenStack云平台是一个开源的云计算管理平台,其可以让任何人自行建立和提供云端运算服务,还可以用作建立防火墙内的PC(PrivateCloud,私有云),并提供机构或企业内各部门共享资源。目前,FloatingIP(浮动IP)是一种OpenStack云平台用来实现外网主机访问内网VM(VirtualMachine,虚拟机)的一种方案。在这种方案下,FloatingIP地址作为一个外网的IP地址,唯一和内网的VMIP地址进行一一绑定,即一个FloatingIP地址只能绑定一个VMIP地址。但是,若外网主机仅需要访问内网VM的某几个服务(端口),此时仍然沿用一个FloatingIP地址只能绑定一个VMIP地址,将造成外网IP的资源浪费。技术实现要素:本申请提供一种网络地址转换方法及装置,以解决现有技术中一个FloatingIP地址只能绑定一个VMIP地址,将造成外网IP的资源浪费的问题。根据本申请实施例的第一方面,提供了一种网络地址转换方法,所述方法应用于云平台服务器,包括:为内网中VM绑定浮动IP地址和外网端口,其中,当所述VM绑定的浮动IP地址与其它VM相同时,所述VM绑定的外网端口与所述其它VM不同;根据所述VM的内网IP地址、内网端口、为所述VM绑定的浮动IP地址和外网端口生成浮动IP绑定表项;针对所述VM的访问报文,根据所述浮动IP绑定表项对所述访问报文进行网络地址转换。根据本申请实施例的第二方面,提供了一种网络地址转换装置,所述装置应用于云平台服务器,包括:绑定单元,用于为内网中VM绑定浮动IP地址和外网端口,其中,当所述VM绑定的浮动IP地址与其它VM相同时,所述VM绑定的外网端口与所述其它VM不同;生成单元,用于根据所述VM的内网IP地址、内网端口、为所述VM绑定的浮动IP地址和外网端口生成浮动IP绑定表项;网络地址转换单元,用于针对所述VM的访问报文,根据所述浮动IP绑定表项对所述访问报文进行网络地址转换。应用本申请实施例,通过将浮动IP和外网端口均与VM进行绑定,使得不同的VM能够绑定相同的浮动IP地址和不同的外网端口,从而实现了对同一浮动IP的共享,节省了外网IP的资源。附图说明图1是应用本申请实施例的OpenStack云平台的网络拓扑图;图2是本申请网络地址转换方法的一个实施例流程图;图3是本申请网络地址转换方法的另一个实施例流程图;图4是本申请网络地址转换方法的另一个实施例流程图;图5是本申请网络地址转换装置所在设备的一种硬件结构示意图;图6是本申请网络地址转换装置的一个实施例框图。具体实施方式这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。参见图1,为应用本申请实施例的OpenStack云平台的网络拓扑图。该网络拓扑图中包括虚拟机VM1、虚拟机VM2、云平台服务器,外部网络(简称外网)、内部网络(简称内网)1和内部网络2。针对内部网络1:分配的IP段为:192.168.1.0/24,网关为:192.168.1.1。针对内部网络2:分配的IP段为:192.168.2.0/24,网关为:192.168.2.1。针对外部网络:分配的IP段为:10.86.10.0/23,网关为:10.86.10.1。本申请实施例中,云平台服务器可以获取外部网络分配的一个IP地址作为浮动IP地址,比如:浮动IP地址为10.86.10.3,以及该浮动IP地址对应的两个端口,比如:外网端口100和101。为VM1绑定浮动IP地址10.86.10.3和外网端口100;为VM2绑定浮动IP地址10.86.10.3和以及外网端口为101,并建立对应的浮动IP绑定表项,该浮动IP绑定表项还包括VM的内网IP地址和内网端口,如表1所示。表1内网IP浮动IP外网端口协议类型内网端口VM1192.168.1.310.86.10.3100VM2192.168.2.310.86.10.3101上述表1中,包括为VM绑定的协议类型,该协议类型可以根据VM的业务需求而确定的。比如:协议类型可以为UDP(UserDatagramProtocol,用户数据报协议)、ICMP(InternetControlMessageProtocol,Internet控制报文协议)等。因此,通过将浮动IP和外网端口均与虚拟机进行绑定,使得不同的虚拟主机地址能够分配相同浮动IP地址和不同的外网端口,从而实现了对同一浮动IP的共享,节省了外网IP的资源。下面结合附图对本申请网络地址转换实施例进行详细描述。参见图2,为本申请网络地址转换方法的一个实施例流程图,该方法可以应用于云平台服务器,比如:OpenStack云平台服务器,可以包括以下步骤:步骤210,为内网中VM绑定浮动IP地址和外网端口,其中,当VM绑定的浮动IP地址与其它VM相同时,VM绑定的外网端口与其它VM不同。本申请实施例中,为不同的VM可以绑定相同的浮动IP地址,也可以绑定不同的浮动IP地址。若为不同的VM绑定了相同的浮动IP地址,此时需要为这些VM绑定不同的外网端口。在一实施例中,在为内网中各个VM绑定浮动IP地址和外网端口时,可以包括:根据VM的业务需求确定对应的协议类型;以确定的协议类型为关键字在预先设置的浮动IP绑定规则表项中查找包含该关键字的浮动IP绑定规则表项;将查询到的浮动IP绑定规则表项中的浮动IP地址和外网端口绑定给VM。本申请实施例中,对应的协议类型可以为UDP、ICMP等。步骤220,根据VM的内网IP地址、内网端口、为VM绑定的浮动IP地址和外网端口生成浮动IP绑定表项。本申请实施例中,浮动IP绑定表项中可以包括VM的内网IP地址、VM的内网端口、为VM绑定的浮动IP地址、为VM绑定的外网端口。步骤230,针对VM的访问报文,根据浮动IP绑定表项对访问报文进行网络地址转换。本申请实施例中,网络地址转换可以指的是针对VM的内网IP地址和内网端口、以及浮动IP地址和外网端口之间的转换。由上述实施例可见,通过将浮动IP和外网端口均与VM进行绑定,使得不同的VM能够绑定相同的浮动IP地址和不同的外网端口,从而实现了对同一浮动IP的共享,节省了外网IP的资源。参见图3,为本申请网络地址转换方法的另一个实施例流程图,该方法可以应用于云平台服务器,比如:OpenStack云平台服务器,并建立在图2的基础上,在一个实施例中,在执行步骤230中针对VM的访问报文,根据浮动IP绑定表项对访问报文进行网络地址转换时,可以包括以下步骤:步骤310,接收第一外网主机访问内网的第一访问报文。步骤320,在本地找到第一访问报文匹配的第一浮动IP绑定表项,第一浮动IP绑定表项中的第一浮动IP地址为第一访问报文的目的IP地址,第一浮动IP绑定表项中的第一外网端口为第一访问报文的目的端口。步骤330,将第一访问报文的目的IP地址修改为第一浮动IP绑定表项中的第一内网IP地址,并将第一访问报文的目的端口修改为第一浮动IP绑定表项中的第一内网端口。步骤340,接收内网访问第二外网主机的第二访问报文。步骤350,在本地找到第二访问报文匹配的第二浮动IP绑定表项,第二浮动IP绑定表项中的第二内网IP地址为第二访问报文的源IP地址,第二浮动IP绑定表项中的第二内网端口为第二访问报文的源端口。步骤360,将第二访问报文的源IP地址修改为第二浮动IP绑定表项中的第二浮动IP地址,并将第二访问报文的源端口修改为第二浮动IP绑定表项中的第二外网端口。由上述实施例可见,通过浮动IP地址和外网端口、与内网IP地址和和内网端口之间的转换,使得同一浮动IP地址可以绑定不同的VM,从而节省了外网IP的资源。参见图4,为本申请网络地址转换方法的另一个实施例流程图,该方法可以应用于云平台服务器,比如:OpenStack云平台服务器,并建立在图2的基础上,还可以对浮动IP地址和外网端口进行流量限速时,可以包括以下步骤:步骤410,接收针对浮动IP地址的流量限速指令。步骤420,根据流量限速指令在浮动IP绑定表项中查询到浮动IP地址对应的内网IP地址和内网端口,并对使用查找到的内网IP地址和内网端口的报文进行限速。在一实施例中,流量限速指令具体为针对浮动IP地址和外网端口的流量限速指令,在根据流量限速指令在浮动IP绑定表项中查询到浮动IP地址对应的内网IP地址和内网端口,并对使用查找到的内网IP地址和内网端口的报文进行限速时,可包括:根据流量限速指令在浮动IP绑定表项中查询到浮动IP地址和外网端口对应的内网IP地址和内网端口,并对使用查找到的内网IP地址和内网端口的报文进行限速。由上述实施例可见,通过根据流量限速指令进行流量限速,从而实现了虚拟机访问公网的流量限速,提高了云平台的整体性能。与前述网络地址转换方法实施例相对应,本申请还提供了网络地址转换装置的实施例。本申请网络地址转换装置的实施例可以应用在云平台服务器,比如:OpenStack云平台服务器。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图5所示,为本申请网络地址转换装置所在设备的一种硬件结构示意图,除了图5所示的处理器、网络接口、内存以及非易失性存储器之外,实施例中装置所在的设备通常还可以包括其他硬件,如负责处理报文的转发芯片等等;从硬件结构上来讲该设备还可能是分布式的设备,可能包括多个接口卡,以便在硬件层面进行网络地址转换的扩展。参见图6,为本申请路由通告装置的一个实施例框图,该装置应用于云平台服务器,比如:OpenStack云平台服务器,该装置可以包括:绑定单元61、生成单元62和网络地址转换单元63。绑定单元61,用于为内网中VM绑定浮动IP地址和外网端口,其中,当所述VM绑定的浮动IP地址与其它VM相同时,所述VM绑定的外网端口与所述其它VM不同;生成单元62,用于根据所述VM的内网IP地址、内网端口、为所述VM绑定的浮动IP地址和外网端口生成浮动IP绑定表项;网络地址转换单元63,用于针对所述VM的访问报文,根据所述浮动IP绑定表项对所述访问报文进行网络地址转换。在一个可选的实现方式中,所述绑定单元61可以包括:确定子单元、查找子单元和绑定子单元(图6中未示出)。确定子单元,用于根据VM的业务需求确定对应的协议类型;查找子单元,用于以所述协议类型为关键字在预先设置的浮动IP绑定规则表项中查找包含该关键字的浮动IP绑定规则表项;绑定子单元,用于将查询到的浮动IP绑定规则表项中的浮动IP地址和外网端口绑定给VM。在另一个可选的实现方式中,所述网络地址转换单元63可以包括:第一接收子单元、第一匹配子单元、第一修改子单元、第二接收子单元、第二匹配子单元和第二修改子单元(图6中未示出)。第一接收子单元,用于第一外网主机访问内网的第一访问报文;第一匹配子单元,用于在本地找到所述第一访问报文匹配的第一浮动IP绑定表项,所述第一浮动IP绑定表项中的第一浮动IP地址为第一访问报文的目的IP地址,所述第一浮动IP绑定表项中的第一外网端口为第一访问报文的目的端口;第一修改子单元,用于将第一访问报文的目的IP地址修改为所述第一浮动IP绑定表项中的第一内网IP地址,并将第一访问报文的目的端口修改为所述第一浮动IP绑定表项中的第一内网端口;第二接收子单元,用于接收内网访问第二外网主机的第二访问报文;第二匹配子单元,用于在本地找到所述第二访问报文匹配的第二浮动IP绑定表项,所述第二浮动IP绑定表项中的第二内网IP地址为第二访问报文的源IP地址,所述第二浮动IP绑定表项中的第二内网端口为第二访问报文的源端口;第二修改子单元,用于将第二访问报文的源IP地址修改为所述第二浮动IP绑定表项中的第二浮动IP地址,并将所述第二访问报文的源端口修改为所述第二浮动IP绑定表项中的第二外网端口。在另一个可选的实现方式中,所述装置还可以包括:接收单元和限速单元(图6中未示出)。接收单元,用于接收针对所述浮动IP地址的流量限速指令;限速单元,用于根据所述流量限速指令在所述浮动IP绑定表项中查询到所述浮动IP地址对应的内网IP地址和内网端口,并对使用查找到的内网IP地址和内网端口的报文进行限速。在另一个可选的实现方式中,所述流量限速指令具体为针对所述浮动IP地址和所述外网端口的流量限速指令;所述限速单元可以包括:限速子单元(图6中未示出)。限速子单元,用于根据所述流量限速指令在所述浮动IP绑定表项中查询到所述浮动IP地址和所述外网端口对应的内网IP地址和内网端口,并对使用查找到的内网IP地址和内网端口的报文进行限速。上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1