一种负载均衡方法、装置、网络设备及存储介质与流程

文档序号:16630586发布日期:2019-01-16 06:32阅读:111来源:国知局
一种负载均衡方法、装置、网络设备及存储介质与流程

本发明属于数据通信技术领域,具体涉及一种负载均衡方法、装置、网络设备及存储介质。



背景技术:

随着ipv6(internetprotocolversion6)网络的兴起,在ipv6过渡初期,局域网已经变更为ipv6网络,但运营商线路仍然是ipv4线路,此时就需要用到nat64(networkaddresstranslation64)过渡技术,将ipv6报文转换为ipv4报文,来解决ipv6网络到ipv4网络互通的问题。如果局域网用户访问互联网业务需求量大,单条运营商线路带宽无法满足需求,或者需要采用多条运营商线路负载均衡、保障业务不中断的情况下,现有的nat64技术不具备多条出口自动负载的功能,无法解决上述场景应用。



技术实现要素:

鉴于此,本发明的目的在于提供一种负载均衡方法、装置、网络设备及存储介质,以有效地改善上述问题。

本发明的实施例是这样实现的:

第一方面,本发明实施例提供了一种负载均衡方法,包括:接收来自用户终端的ipv6报文;将所述ipv6报文转换为ipv4报文,并从预设聚合地址池中选取一公网地址作为所述ipv4报文的源地址;其中,所述预设聚合地址池中聚合有多个不同运营商提供的不同网段的多个公网地址;发送包含有所述源地址的ipv4报文。本申请实施例中,通过事先将多个不同运营商提供的不同网段的多个公网地址聚合到一起,成为一个聚合地址池;当nat64转换规则引用此聚合地址池后,设备在处理用户ipv6报文转换为ipv4报文时,从聚合地址池中选取一公网地址作为转换后的源地址,无需人工干涉,能将业务尽可能的负载均衡,且配置逻辑简单,后期维护工作量小。

结合第一方面的一种可选实施方式,在所述将所述ipv6报文转换为ipv4报文,并从预设聚合地址池中选取一公网地址作为所述ipv4报文的源地址步骤之前,所述方法还包括:查询历史转换记录中是否存在对应所述ipv6报文的转换记录;在为否时,执行步骤:将所述ipv6报文转换为ipv4报文,并从预设聚合地址池中选取一公网地址作为所述ipv4报文的源地址。本申请实施例中,在从预设聚合地址池中选取一公网地址作为所述ipv4报文的源地址之前,优先查询历史转换记录中是否存在对应所述ipv6报文的转换记录,如果查询结果为有,则将该转换记录中的源地址作为转换后的源地址,如果查询结果为无,则从预设聚合地址池中选取转换后的源地址,以保证同一用户访问同一网络资源时业务的连续性。

结合第一方面的又一种可选实施方式,所述方法还包括:当监测到所述多个不同运营商中某一运营商的线路为故障状态时,自动将在所述预设聚合地址池中的故障运营商线路对应的转换地址置为失效状态,并删除基于所述转换地址获得的转换记录。本申请实施中,当设备监测到聚合地址池中某一运营商线路故障时,自动将该故障运营商线路地址在聚合地址池中置为失效状态,不再选取该地址作为转换后的源地址使用;同时还要删除所有基于该地址的已有转换记录,避免通过匹配到失效线路对应的已有转换记录,以保证用户业务的可用性,将用户业务受影响程度降到最低。

结合第一方面的又一种可选实施方式,所述从预设聚合地址池中选取一公网地址作为所述ipv4报文的源地址,包括:按照顺次或随机的选取方式从预设聚合地址池中选取一公网地址作为所述ipv4报文的源地址。本申请实施例中,设备在处理用户ipv6报文转换为ipv4报文时,从聚合地址池中顺次或随机的选取作为转换后的源地址,以最大程度的保证负载均衡的效果。

第二方面,本发明实施例还提供了一种负载均衡装置,包括:接收模块、转换模块以及发送模块;接收模块,用于接收来自用户终端的ipv6报文;转换模块,用于将所述ipv6报文转换为ipv4报文,并从预设聚合地址池中选取一公网地址作为所述ipv4报文的源地址;其中,所述预设聚合地址池中聚合有多个不同运营商提供的不同网段的多个公网地址;发送模块,用于发送包含有所述源地址的ipv4报文。

结合第二方面的一种可选实施方式,还包括:查询模块,用于查询历史转换记录中是否存在对应所述ipv6报文的转换记录。

结合第二方面的又一种可选实施方式,还包括:失效模块,用于当监测到所述多个不同运营商中某一运营商的线路为故障状态时,自动将在所述预设聚合地址池中的故障运营商线路对应的转换地址置为失效状态,并删除基于所述转换地址获得的转换记录。

结合第二方面的又一种可选实施方式,所述转换模块,还用于按照顺次或随机的选取方式从预设聚合地址池中选取一公网地址作为所述ipv4报文的源地址。

第三方面,本发明实施例还提供了一种网络设备,包括:存储器和处理器,所述存储器和所述处理器连接;所述存储器用于存储程序;所述处理器用于调用存储于所述存储器中的程序,以执行上述第一方面和/或结合第一方面的任一种可选实施方式提供的方法。

第四方面,本发明实施例还提供了一种存储介质,其上存储有计算机程序,所述计算机程序被处理器运行时执行上述第一方面和/或结合第一方面的任一种可选实施方式提供的方法。

本发明的其他特征和优点将在随后的说明书阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明实施例而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书以及附图中所特别指出的结构来实现和获得。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。通过附图所示,本发明的上述及其它目的、特征和优势将更加清晰。在全部附图中相同的附图标记指示相同的部分。并未刻意按实际尺寸等比例缩放绘制附图,重点在于示出本发明的主旨。

图1示出了本发明实施例提供的一种负载均衡方法的流程图。

图2示出了本发明实施例提供的又一种负载均衡方法的流程图。

图3示出了本发明实施例提供的一种负载均衡装置的模块示意图。

图4示出了本发明实施例提供的一种网络设备的结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。

因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。

在本发明的描述中,需要说明的是,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。再者,本申请中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。

由于现有的nat64技术不具备多条出口自动负载的功能,目前针对该问题主要有以下两种解决方案:

第一种为手动配置acl规则进行负载分担方案。该方案通过在部署nat64的设备上,创建两条或多条acl规则,不同目的地址的数据流命中不同的acl规则以匹配不同的nat64条目,转换为不同的ipv4互联网出口,以实现负载分担效果。由于ipv6用户访问互联网时,目的地址多种多样,无法做到通过数据流的目的地址将用户数据流进行负载划分;而现有办公网大多遵循不同部门划分为不同网段的组网模式,通过人为的将数据流源地址作为匹配acl的条件,很难做到平等的均分,并且每一源地址的网络用量也不相同。源地址网段多(部门数量多)的情况下,acl条目配置非常多,配置复杂,并且一旦发生部门人员变动导致人数不均时,还需相应的调整acl规则。

第二种为匹配报文目的地址前缀的nat64方案。该方案根据rfc(requestforcomments)标准协议规定,nat64的知名前缀为64:ff9b::/96,完整的目的地址构成为64:ff9b::ipv4地址,nat64设备匹配到用户目的地址前缀为64:ff9b::时,就对该报文进行nat64转换。虽然转换的目的地址池可以有多个地址,但是这些地址必须属于同一子网,在这种情况下,所有的报文都符合此前缀条件,全部都会命中同一条nat64规则,无法做到多出口的负载均衡。同时,一条nat64规则只能对应一个地址池,同一个地址池要求属于同一网段,而不同运营商是无法提供同一网段的公网地址的(由于,在多运营商线路出口的场景中,为保证不受运营商单点故障影响,基本不会采用同一运营商的出口)。

需要说明的是,针对以上方案所存在的缺陷,均是发明人在经过实践并仔细研究后得出的结果,因此,上述问题的发现过程以及下文中本发明实施例针对上述问题所提出的解决方案,都应该是发明人在本发明过程中对本发明做出的贡献。

第一实施例

鉴于此,如图1所示,本申请实施例提供了一种负载均衡方法,下面将结合图1对其所包含的步骤进行说明。

步骤s101:接收来自用户终端的ipv6报文。

用户通过用户终端访问互联网时,网络设备便可接收到来自用户终端发起的ipv6报文。其中,该网络设备为具备三层网络协议转换的设备,如路由器、防火墙。

其中,需要说明的是,网络设备每时每刻都会接收到大量不同用户发起的访问报文,且同一个用户也对发起大量的访问报文。

步骤s102:将所述ipv6报文转换为ipv4报文,并从预设聚合地址池中选取一公网地址作为所述ipv4报文的源地址。

设备在接收到ipv6报文后,通过nat64转换规则将所述ipv6报文转换为ipv4报文,并从预设聚合地址池中选取一公网地址作为所述ipv4报文的源地址,例如,从预设聚合地址池中顺次或随机的选取一公网地址作为转换后的源地址,以最大程度的保证负载均衡的效果。其中,所述预设聚合地址池中聚合有多个不同运营商(如电信、移动、联通、铁通等)提供的不同网段的多个公网地址。其中,需要说明的是,不同的运行商提供的公网地址不同,通常不属于同一网段。

其中,需要说明的是,预设聚合地址池为事先设置,即事先将多个不同运营商提供的不同网段的多个公网地址聚合到一起,成为一个聚合地址池。当nat64转换规则引用此聚合地址池后,设备在处理用户ipv6报文转换为ipv4报文时,从聚合地址池中随机或顺次选取一公网地址作为转换后的源地址,无需人工干涉,能将业务尽可能的负载均衡,且配置逻辑简单,后期维护工作量小。

此外,需要说明的是,在将ipv6报文转换为ipv4报文的同时,还会生成转换记录,其中,该转换记录的生存周期可以配置,例如,当配置为三个月时,则设备自动删除超过三个月的转换记录,保留三个月以内的转换记录。

其中,转换记录中包含有转换前的源地址、源端口、目的地址、目的端口和协议类型,以及转换后的源地址、源端口、目的地址、目的端口和协议类型,即包含有ipv6报文的源地址、源端口、目的地址、目的端口和协议类型和ipv4报文的源地址、源端口、目的地址、目的端口和协议类型。

其中,需要说明的是,nat64(networkaddresstranslation64)是一种有状态的网络地址与协议转换技术,可实现tcp、udp、icmp协议下的ipv6与ipv4网络地址和协议转换。与nat的区别在于nat64是将ipv6网络通过ipv6与ipv4的网络地址与协议转换,实现了ipv6网络与ipv4网络的双向互访。

步骤s103:发送包含有所述源地址的ipv4报文。

转换完成后,发送包含有所述源地址的ipv4报文,如向网络服务器发送包含有所述源地址的ipv4报文,以实现用户访问互联网的业务需求。

此外,该网络设备在接收到网络服务器响应转换后的ipv4报文返回的答复报文(也为ipv4报文)时,该网络设备通过查看对应的转换记录,将该答复报文转换为ipv6报文,并基于转换前的源地址,将其发送给用户终端。

第二实施例

如图2所示,本申请实施例提供了一种负载均衡方法,下面将结合图2对其所包含的步骤进行说明。

步骤s201:接收来自用户终端的ipv6报文。

步骤s202:查询历史转换记录中是否存在对应所述ipv6报文的转换记录。

本实施例中,在执行步骤s203之前,即在选择转换后的源地址之前,优先查询历史转换记录中是否存在对应所述ipv6报文的转换记录。如果存在(在为是时),则执行步骤s204,如果不存在(在为否时),则执行步骤s203。

其中,在查询是否存在对应ipv6报文的转换记录时,可以基于ipv6报文中的源地址、源端口、目的地址、目的端口和协议类型进行查询,若历史转换记录中存在相同的源地址、源端口、目的地址、目的端口和协议类型记录,则表示该历史转换记录中存在对应ipv6报文的转换记录,若历史转换记录中不存在相同的源地址、源端口、目的地址、目的端口和协议类型记录都相同的转换记录,则表示不存在。

步骤s203:将所述ipv6报文转换为ipv4报文,并从预设聚合地址池中选取一公网地址作为所述ipv4报文的源地址。

步骤s204:将所述ipv6报文转换为ipv4报文,并将所述转换记录中的源地址作为所述ipv4报文的源地址。

在为是时,即历史转换记录中存在对应所述ipv6报文的转换记录时,则将该转换记录中的源地址作为转换后的源地址,以保证同一用户访问同一网络资源时业务的连续性。例如,tcp建立连接的三次握手报文,若第一个报文转换命中出口一,第三个报文转换命中出口二,则会导致业务中断。

步骤s205:发送包含有所述源地址的ipv4报文。

作为一种可选的实施方式,该方法还包括:当监测到所述多个不同运营商中某一运营商的线路为故障状态时,自动将在所述预设聚合地址池中的故障运营商线路对应的转换地址置为失效状态,并删除基于所述转换地址获得的转换记录。也就是说,当设备监测到聚合地址池中某一运营商线路故障时,自动将该故障运营商线路对应的地址在聚合地址池中置为失效状态,不再顺序或随机的选取该地址作为转换后的源地址使用;同时,考虑到某一运营商线路失效时,避免通过匹配到失效线路对应的已有转换记录的情况,因此,还要删除所有基于该地址的已有转换记录,以保证用户业务的可用性,将用户业务受影响程度降到最低。

需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。

第三实施例

本申请实施例还提供了一种负载均衡装置,如图3所示。该负载均衡装置100包括:接收模块110、转换模块120以及发送模块130。

接收模块110,用于接收来自用户终端的ipv6报文。

转换模块120,用于将所述ipv6报文转换为ipv4报文,并从预设聚合地址池中选取一公网地址作为所述ipv4报文的源地址;其中,所述预设聚合地址池中聚合有多个不同运营商提供的不同网段的多个公网地址。在选取转换后的源地址时,所述转换模块120,还用于按照顺次或随机的选取方式从预设聚合地址池中选取一公网地址作为所述ipv4报文的源地址。

发送模块130,用于发送包含有所述源地址的ipv4报文。

可选地,该负载均衡装置100还包括:查询模块,用于查询历史转换记录中是否存在对应所述ipv6报文的转换记录。可选地,所述转换模块120还用于,将所述ipv6报文转换为ipv4报文,并将所述转换记录中的源地址作为所述ipv4报文的源地址。

可选地,该负载均衡装置100还包括:失效模块,用于当监测到所述多个不同运营商中某一运营商的线路为故障状态时,自动将在所述预设聚合地址池中的故障运营商线路对应的转换地址置为失效状态,并删除基于所述转换地址获得的转换记录。

本发明实施例所提供的负载均衡装置100,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。

第四实施例

本申请实施例还提供了一种网络设备200,如图4所示。该网络设备200可以包括:至少一个收发器210,至少一个处理器220,例如cpu,至少一个存储器230和至少一个通信总线240。其中,通信总线240用于实现这些组件直接的连接通信。收发器210用于接收和发送数据。存储器230可以是高速ram存储器,也可以是非不稳定的存储器(non-volatilememory),例如至少一个磁盘存储器。其中,存储器230中存储有计算机可读取指令,如存储有图3中所示的软件功能模块,即负载均衡装置100。其中,负载均衡装置100包括至少一个可以软件或固件(firmware)的形式存储于所述存储器230中或固化在所述网络设备200的操作系统(operatingsystem,os)中的软件功能模块。所述处理器220用于执行存储器230中存储的可执行模块,例如所述负载均衡装置100包括的软件功能模块或计算机程序。例如,收发器210,用于接收来自用户终端的ipv6报文;以及,处理器220,用于将所述ipv6报文转换为ipv4报文,并从预设聚合地址池中选取一公网地址作为所述ipv4报文的源地址;所述收发器210,还用于发送包含有所述源地址的ipv4报文。

需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。

第五实施例

本申请实施例还提供一种可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时运行如第一实施例或第二实施例所示的步骤。

在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

另外,在本发明各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。

所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,笔记本电脑,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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