一种实现地址转换的方法及装置与流程

文档序号:17148156发布日期:2019-03-19 23:10阅读:195来源:国知局
一种实现地址转换的方法及装置与流程

本申请涉及计算机技术,尤指一种实现地址转换的方法及装置。



背景技术:

网络地址转换(nat,networkaddresstranslation)是将私有地址转化为合法ip地址的转换技术,应用于各种类型internet接入方式和各种类型的网络中。以主备模式阿里nat(anat,alibabanat)为例,anat是基于dpdk(inteldataplanedevelopmentkit)开发的高性能的nat主机,运行于通用的x86平台上,具备高性能、可定制性强等的特点。主备模式anat集群虽然在性能上能够满足现有的业务需求,但是存在一些缺点,比如冗余性相对较差、堆叠造成的成本较高等。

nat转换基本原理大致包括:out方向(即内网到公网的方向)的请求报文主动访问公网,流量经过nat主机(也称网络地址转换器)时,nat主机将报文的源ip地址转换为地址池中配置的ip地址,即对数据包中的源地址进行转化(snat:sourcenetworkaddresstranslation),完成nat转换后建立会话(session),并将报文发送到公网;in方向(即公网到内网的方向)的响应报文经过nat主机时,根据之前建立的session将报文的目的ip还原为先前请求报文的源ip,即对数据包中的目的地址进行转化(dnat,destinationnetworkaddresstranslation),并送至内网主机。



技术实现要素:

本申请提供一种实现地址转换的方法及装置,能够处理固定出口ip业务的地址转换问题。

本申请提供一种实现地址转换的方法,包括:

针对集群中的每个网络地址转换器,设置固定出口ip业务的ip地址信息;

网络地址转换器检测出报文为访问公网的固定出口ip业务的ip隧道报文,且该ip隧道报文找到网络地址转换器设置的固定出口ip业务的ip地址信息;

利用找到的固定出口ip业务的ip地址信息对该ip隧道报文进行源地址转换并建立会话,发送经过网络地址转换器转换的报文给网络交换机;

其中,固定出口ip业务为在访问多个目的ip地址时,采用一个固定的源ip地址的业务。

可选地,所述方法之前还包括:

对各所述网络地址转换器配置各不相同的路由优先级,并将路由优先级通告给所述网络交换机。

可选地,如果检测出所述报文为访问公网的非ip隧道报文,但找到所述网络地址转换器绑定的固定出口ip业务的ip地址信息,所述方法还包括:

利用所述网络地址转换器中设置的固定出口ip业务的ip地址信息作为新构造的ip隧道报文的目的地址,并将原始的所述非ip隧道报文封装到新构造的ip隧道报文的数据部分后发送给所述网络交换机。

可选地,所述对该ip隧道报文进行源地址转换包括:

将所述ip隧道报文中的源ip地址替换为所述找到的固定出口ip业务对应的ip地址。

可选地,所述方法还包括:

所述网络地址转换器收到所述ip隧道报文的响应报文时,根据所述建立的会话,将响应报文中的目的ip地址还原为ip隧道报文的源ip地址。

本申请又提供了一种实现地址转换的方法,包括:

针对集群中的至少一个网络地址转换器,设置固定出口ip业务的ip地址信息;

网络地址转换器检测出报文为访问公网的固定出口ip业务的ip隧道报文,且该ip隧道报文找到网络地址转换器设置的固定出口ip业务的ip地址信息;

利用找到的固定出口ip业务的ip地址信息对该ip隧道报文进行源地址转换并建立会话,发送经过网络地址转换器转换的报文给网络交换机;

其中,固定出口ip业务为在访问多个目的ip地址时,采用一个固定的源ip地址的业务。

本申请再提供了一种实现地址转换的装置,包括设置模块、第一处理模块、第二处理模块;其中,

设置模块,用于设置固定出口ip业务的ip地址信息;

第一处理模块,用于检测出报文为访问公网的固定出口ip业务的ip隧道报文,且该ip隧道报文找到设置的固定出口ip业务的ip地址信息;

第二处理模块,用于利用找到的固定出口ip业务的ip地址信息对该ip隧道报文进行源地址转换并建立会话,发送经过网络地址转换器转换的报文给网络交换机;

其中,固定出口ip业务为在访问多个目的ip地址时,采用一个固定的源ip地址的业务。

可选地,所述设置模块还用于:配置路由优先级;

所述装置还包括通告模块,用于将设置的路由优先级通告给所述nsw。

可选地,所述第一处理模块还用于:检测出报文为访问公网的非ip隧道报文,但找到设置的固定出口ip业务的ip地址信息;

所述第二处理模块还用于:利用所述设置的固定出口ip业务的ip地址信息作为新构造的ip隧道报文的目的地址,并将原始的所述非ip隧道报文封装到该新构造的ip隧道报文的数据部分后发送给所述网络交换机。

本申请还提供了一种实现地址转换的装置,包括一个或多个处理器;以及一个或多个存储有多个指令的机器可读介质,当多个指令被一个或多个处理器执行时,使得装置用于:设置固定出口ip业务的ip地址信息;检测出报文为访问公网的固定出口ip业务的ip隧道报文,且该ip隧道报文找到网络地址转换器设置的固定出口ip业务的ip地址信息;利用找到的固定出口ip业务的ip地址信息对该ip隧道报文进行源地址转换并建立会话,发送经过网络地址转换器转换的报文给网络交换机;其中,固定出口ip业务为在访问多个目的ip地址时,采用一个固定的源ip地址的业务。

本申请通过nat主机上运行的nat进程来处理固定出口ip业务的地址转换问题,一方面,不需要动态配置交换机,避免了交换机上其他业务无法正常运行的可能性;另一方面,由于nat主机是个普通的服务器,在运维上完全可以实现自动化运维,也大大降低了运维难度。

附图说明

附图用来提供对本申请技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本申请的技术方案,并不构成对本申请技术方案的限制。

图1为本申请根据本申请的一个方面的基于bgp的nat集群的组网实施例的示意图;

图2为根据本申请的一个方面的实现地址转换的方法的流程示意图;

图3为根据本申请的一个方面的实现地址转换的方法的实施例的流程示意图;

图4为根据本申请的一个方面的实现地址转换的装置的组成结构示意图;

图5为根据本申请的另一个方面的实现地址转换的装置的组成结构示意图。

具体实施方式

为使本申请的目的、技术方案和优点更加清楚明白,下文中将结合附图对本申请的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。

在本申请一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。

内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram)。内存是计算机可读介质的示例。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。

在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

为了满足生产环境高性能、高可靠性、负载均衡等苛刻的需求,本申请发明人提出了以边界网关协议(bgp)为集群方案的高性能、高可靠性、负载均衡等主要特点的nat解决方案。这种基于bgp实现的nat集群,一方面,由于集群中存在多台nat,在其中一台nat发生故障时,可以有多台备用nat,相比于主备模式增加了nat转换的可靠性;另一方面,集群中的多台nat可以同时工作,相比于只能一台nat工作的主备模式,基于bgp实现的nat集群提高了效率;再一方面,基于bgp实现的nat集群还实现了负载均衡,很好地解决了主备模式nat集群的问题。

图1为本申请根据本申请的一个方面的基于bgp的nat集群的组网实施例的示意图,如图1所示,在基于bgp的nat集群中包括nat1、nat2、nat3和nat4四台地址转换设备,以out方向为例来说明基于bgp的nat集群的工作过程:

首先,各网络交换机(nsw)向其上游交换机通告各自默认路由的优先级,本实施例中,假设nsw1通告的路由优先级高,nsw2通告的路由优先级低,这样,在nsw的上游交换机至nsw路径上,nsw的上游交换机会将所有流量(sip和dip相同)引流到同一台nsw即优先级高的nsw1;其中,sip为源(source)ip地址,dip为目的(destination)ip地址。接着,在nsw1内部,基于二元组(sip+dip)进行哈希(hash)计算,将同一条流hash到同一台nat主机上,这样处理,既达到了负载均衡的目的,也保证了同源同宿;这里,集群内的四台nat主机会通告相同优先级的vip路由给nsw。然后,nat进行源地址转换,由于一个地址池中的地址是均分到每一台nat主机上的,因此,nat总可以使用本地配置的地址池中的地址实现对源地址的nat转换;在完成对源ip地址的地址转换后,按默认路由将报文转发给nsw。最后,nsw通过策略路由将流量转发到下游交换机。

在对源地址进行nat转换时,存在一种特殊的业务需求,即在访问多个目的ip地址时,只允许采用一个固定的源ip地址,也就是说,对于某特定业务(也称为固定出口ip业务),本申请发明人发现,如果通过在交换机上添加针对固定出口ip的流量的策略,可以保证固定出口ip的流量实现同源同宿即引流始终在同一台设备上。一方面,对交换机的反复操作可能会造成交换机上其他业务无法正常运行;另一方面,交换机的自动化运维在当前仍然是个难题,因此,会大大加大运维的难度。因此,本申请针对bgpnat集群下固定出口ip的流量带来的问题提出了一种实现地址转换的技术方案。

图2为根据本申请的一个方面的实现地址转换的方法的流程示意图,如图2所示,基于图1所示的nat集群的组网架构,其中,nat可以是运行在服务器上的一组进程,至少包括:

如方框200所示,针对集群中的每个nat,设置固定出口ip业务的ip地址信息。

可选地,可以以地址池为单位,将固定出口ip业务的ip地址设置(也称为绑定)到集群中的每台nat主机中。也就是说,每台nat主机上都配置有固定出口ip业务对应的ip地址。

如方框201所示,nat检测出报文为访问公网的固定出口ip业务的ip隧道(iptunnel)报文,且该iptunnel报文命中nat绑定的固定出口ip业务的ip地址信息。

在out方向,nat主机上的nat进程可以通过业务标识区分出流经nat的报文是否为固定出口ip业务报文。

如方框202所示,利用找到(也称为命中)的固定出口ip业务的ip地址信息对该iptunnel报文进行源地址转换并建立session,发送经过nat转换的报文给nsw。

其中,nsw均指挂载anat的交换机。

可选地,对该iptunnel报文进行源地址转换可以包括:将iptunnel报文中的源ip地址替换为命中的固定出口ip业务对应的ip地址。

可选地,建立session可以包括:建立该iptunnel报文的源ip地址与命中的ip地址之间的对应关系。

本申请通过nat主机上运行的nat进程来处理固定出口ip业务的地址转换问题,一方面,不需要动态配置交换机,避免了交换机上其他业务无法正常运行的可能性;另一方面,由于nat主机是个普通的服务器,在运维上完全可以实现自动化运维,也大大降低了运维难度。

本申请在nat上基于iptunnel处理固定出口ip业务的地址转换问题,不会对原有nat的性能和稳定性产生影响。

本申请方法之前还包括:对各nat配置各不相同的路由优先级,并将路由优先级通告给nsw。

nsw根据集群中各nat主机通告的路由优先级,将iptunnel报文转发给优先级最高的nat主机。

表1显示了一个固定出口ip地址和路由优先级的配置实例。

表1

表1中显示了以地址池为单位将固定出口ip业务的ip地址(即表1中的192.168.1.1)绑定到所有nat主机上,固定出口ip业务的地址池设置有相应的匹配策略,这里,只有命中匹配策略的地址才会选择固定出口ip对应的地址池;匹配策略与固定出口ip地址的地址池之间存在多对1的关系,匹配策略如基于目的地址匹配等;

每台nat需以不同的优先级把ip地址的优先级通告给nsw,即每个ip地址需向nsw通告不同优先级的路由,如表1所示,集群中的nat总共分为4个优先级,优先级由as_path的取值进行区分;

可选地,

如果检测出报文为访问公网的非iptunnel报文,但命中nat绑定的固定出口ip业务的ip地址信息,所述方法还包括:

利用nat中绑定的固定出口ip业务的ip地址信息作为新构造的iptunnel报文的目的地址,并将原始的非iptunnel报文封装到该新构造的iptunnel报文的数据部分后发送给nsw(即与nat连接的交换机)。

可选地,本申请提供的实现地址转换的方法还可以包括:

在in方向,nat收到iptunnel报文的响应报文时,根据之前建立的session,将响应报文中的目的ip地址还原为iptunnel报文的源ip地址。

图3为根据本申请的一个方面的实现地址转换的方法的实施例的流程示意图,结合图1所示的集群架构图,假设out方向的数据包中有一个访问固定出口ip业务的报文经过nsw的hash运算后转发到nat1,如图3所示,包括:

如方框300、方框304~方框307所示,nat1上的nat进程收到该报文,发现该数据包是一个普通的ip包即非iptunnel包,且经过处理后发现该报文匹配到了固定出口ip业务对应的地址池,也就是说,命中固定出口ip业务对应的地址池,那么,nat1从地址池中取出ip地址,并将该ip地址作为新构造的iptunnel报文的目的ip地址,并将原始报文封装到该新构造的iptunnel报文的数据部分后发送给nsw;nsw根据4台nat主机通告的路由优先级,将该iptunnel报文转发给优先级最高的那台nat主机,比如:假设优先级最高的是nat2,则将该iptunnel报文转发给nat2;

如方框300~方框303所示,nat2在收到报文后,确定该报文是一个iptunnel报文,那么,nat2对收到的iptunnel报文解封装得到原始报文;对原始报文进行处理,使用命中的地址池中的ip地址进行源nat转换,以使命中的地址池中的ip地址替换原始报文的的源ip地址,并建立session的后将原始报文发送给nsw,以便nsw根据路由策略将报文转发至下游交换机。

图4为根据本申请的一个方面的实现地址转换的装置的组成结构示意图,如图4所示,至少包括设置模块、第一处理模块、第二处理模块;其中,

设置模块,用于绑定固定出口ip业务的ip地址信息;

第一处理模块,用于检测出报文为访问公网的固定出口ip业务的ip隧道(iptunnel)报文,且该iptunnel报文命中绑定的固定出口ip业务的ip地址信息;

第二处理模块,用于利用命中的固定出口ip业务的ip地址信息对该iptunnel报文进行源地址转换并建立session,发送经过nat转换的报文给nsw。

可选地,设置模块还用于:配置路由优先级;相应地,本申请装置还包括通告模块,用于将设置的路由优先级通告给nsw。

可选地,

第一处理模块还用于:检测出报文为访问公网的非iptunnel报文,但命中绑定的固定出口ip业务的ip地址信息;

第二处理模块还用于:利用绑定的固定出口ip业务的ip地址信息作为新构造的iptunnel报文的目的地址,并将原始的非iptunnel报文封装到该新构造的iptunnel报文的数据部分后发送给nsw。

可选地,

第二处理模块还用于:收到iptunnel报文的响应报文时,根据之前建立的session,将响应报文中的目的ip地址还原为iptunnel报文的源ip地址。

图5为根据不同实施例的一装置的示例图。装置可包含一个或多个处理器500、耦接于至少一处理器500的系统控制逻辑501、耦接于系统控制逻辑501的系统存储器503、耦接于系统控制逻辑501的非易失存储器(nvm,non-volatilememory)/存储器504、以及耦接于系统控制逻辑501的网络接口505。

处理器500可以包括一或多个单核心或多核心的处理器。处理器500可包括通用处理器、图形处理器以及专用处理器(例如,图形处理器、应用处理器、基频处理器等)的任意组合。在图5所示的装置作为虚拟机的宿主机或者虚拟机时,处理器500可被配置为根据不同的实施例来执行如图2或图3所示的实施例。

在一实施例中,系统控制逻辑501可以包括一或多个存储器控制器以提供一接口给系统存储器503。系统存储器503可以被用来加载及存储给图5所示装置的系统的数据和/或指令。在一实施例中,系统存储器503可以包括任意合适的易失存储器,举例来说,如动态随机存取存储器(dram)。

非易失存储器/存储器504可以包括一或多个有形、非瞬时计算机可读的媒体,举例来说,用来储存数据和/或指令。非易失存储器/存储器504可以包括任意合适的非易失存储器,比如闪存,和/或可包括任意合适的非易失存储装置,比如一个或多个硬式磁盘驱动器(hdds)、一个或多个光盘(cd)机,和/或一个或多个数字光盘(dvd)机。

非易失存储器/存储器504可包括一存储资源,其实体上为图5所示的装置的一部份,或者其可被图5所示的装置存取但不必定为图5所示的装置的一部份。举例来说,非易失存储器/存储器504可通过网络接口505被一网络存取。

系统存储器503以及非易失存储器/存储器504可以各自包括:时间性以及持续性的指令507的副本。指令507包括的指令被至少一处理器500执行时,可导致图5所示的装置实施如图2或图3所述的方法。在不同实施例中,指令507,或其硬件、固体、和/或软件部份,可额外地/可替代性地被置于系统控制逻辑501、网络接口505、和/或处理器500中。

网络接口505可以具有一收发器来提供一无线电接口给图5所示的装置以经由一或多个网络通信和/或与任意其他适当的装置通信。网络接口505可包括任意合适的硬件和/或固体。网络接口505可包括多个天线以提供一多输入多输出的无线电接口。在一实施例中,网络接口505可以包括:网络连接器、无线网络连接器、电话调制解调器、和/或无线调制解调器。

在一实施例中,处理器500的至少一个可被与逻辑一并封装给系统控制逻辑501的一个或多个控制器。在一实施例中,处理器500的至少一个可被与逻辑一并封装给系统控制逻辑501的一或多个控制器,以形成一系统级封装(sip)。在一实施例中,处理器500的至少一个可被与逻辑一并整合在一相同的芯片上给系统控制逻辑501的一或多个控制器。在一实施例中,处理器500的至少一个可被与逻辑一并整合在一相同的芯片上给系统控制逻辑501的一或多个控制器,以形成一系统单芯片(soc)。

图5所示的装置可进一步包括输入/输出(i/o)装置732。输入/输出装置506可包括:被设计成让用户能与图5所示的装置互动的用户接口、被设计成使周边部件能与图5所示的装置互动的周边部件接口、和/或被设计成来判定环境状况和/或与图5所示的装置有关的位置信息的传感器。

在不同实施例中,用户接口可以包括但不限于:显示器(例如,液晶显示器、触摸屏显示器等)、扬声器、麦克风、一个或多个摄影机(例如,相机和/或录像机)、闪光灯(例如,发光二极管闪灯)、以及键盘。

在不同实施例中,周边部件接口可以包括但不限于:非易失存储器端口、音频插孔、以及电源供应接口。

在不同实施例中,传感器可以包括但不限于:陀螺仪传感器、加速度计、邻近传感器、环境光传感器、以及定位单元。定位单元也可为网络接口505的一部份或者与网络接口505互动以与定位网络(例如全球定位系统(gps)卫星)进行通信。

在不同实施例中,图5所示的装置可具有较多或较少的部件,和/或不同的结构。

本申请还提供一种用于实现地址转换的装置,一个或多个处理器;以及一个或多个存储有多个指令的机器可读介质,当多个指令被一个或多个处理器执行时,使得装置用于:绑定固定出口ip业务的ip地址信息;检测出报文为访问公网的固定出口ip业务的iptunnel报文,且该iptunnel报文命中nat绑定的固定出口ip业务的ip地址信息;利用命中的固定出口ip业务的ip地址信息对该iptunnel报文进行源地址转换并建立session,发送经过nat转换的报文给nsw。

虽然本申请所揭露的实施方式如上,但所述的内容仅为便于理解本申请而采用的实施方式,并非用以限定本申请。任何本申请所属领域内的技术人员,在不脱离本申请所揭露的精神和范围的前提下,可以在实施的形式及细节上进行任何的修改与变化,但本申请的专利保护范围,仍须以所附的权利要求书所界定的范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1