一种CGN板间负载分担方法及装置与流程

文档序号:18329162发布日期:2019-08-03 11:51阅读:187来源:国知局
一种CGN板间负载分担方法及装置与流程

本公开涉及数据处理技术领域,具体而言,涉及一种cgn板间负载分担方法及装置。



背景技术:

针对于内网部署的网络设备,比如服务器,其地址是内网地址,但是希望公网设备可以通过一个公网地址来访问该服务器,这时可以在进行nat(networkaddresstranslation,网络地址转换)处理的网络设备上配置natserver,进而通过该网络设备对由公网发送至内网的报文进行公网地址和内网地址的转换。

相关技术中,在上述的网络设备包括多个cgn板的情况下,一般是通过指定其中一个cgn板对由公网发往内网的报文进行nat转换,该过程中只有指定的cgn板参与工作,而其他cgn板不参与,无法做到cgn板间负载均衡。



技术实现要素:

有鉴于此,本公开提供一种cgn板间负载分担方法及装置,以实现cgn板间负载分担均衡。

具体地,本公开是通过如下技术方案实现的:

第一方面,本公开实施例中提供了一种cgn板间负载分担方法,该方法应用于网络设备中参与负载分担的cgn板,所述网络设备包括网络侧业务板、用户侧业务板和至少两个cgn板;所述方法包括:

接收所述网络侧业务板复制并发送的第一报文,其中,所述第一报文是在所述网络侧业务板检查出网络侧接口接收的第一报文的第一ip地址与本地已配置的网络地址转换服务natserver的公网ip地址相同时复制并发送的,所述第一ip地址为第一报文的目的ip地址;

若本地不存在与第一报文匹配的会话表项,则对第一报文的第一ip地址进行nat转换得到第二ip地址,所述第二ip地址为用户侧设备的ip地址;

根据第二ip地址确定第一报文的目标cgn板,并判断本板是否为所述目标cgn板,如果否,丢弃第一报文;如果是,将第一报文转发至用户侧业务板。

第二方面,本公开实施例提供了一种cgn板间负载分担装置,应用于网络设备中参与负载分担的cgn板,所述网络设备包括网络侧业务板、用户侧业务板和至少两个cgn板;所述装置包括:

第一接收模块,用于接收所述网络侧业务板复制并发送的第一报文,其中,所述第一报文是在所述网络侧业务板检查出网络侧接口接收的第一报文的第一ip地址与本地已配置的网络地址转换服务natserver的公网ip地址相同时复制并发送的,所述第一ip地址为第一报文的目的ip地址;

第一转换模块,用于若本地不存在与第一报文匹配的会话表项,则对第一报文的第一ip地址进行nat转换得到第二ip地址,所述第二ip地址为用户侧设备的ip地址;

判断模块,用于根据第二ip地址确定第一报文的目标cgn板,并判断本板是否为所述目标cgn板,如果否,丢弃第一报文;如果是,将第一报文转发至用户侧业务板。

第三方面,本公开实施例提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现如第一方面所述方法的步骤。

第四方面,本本公开实施例还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如第一方面所述方法的步骤

本公开实施例中提供的一种cgn板间负载分担方法及装置,通过网络侧业务板将命中本地已配置的natsever的外网ip地址的第一报文进行分别复制到每个参与负载分担的cgn板,cgn板若在本地不存在与第一报文匹配的会话表项时,对第一报文的第一ip地址进行nat转换得到第二ip地址,该第二ip地址为用户侧设备的ip地址,根据第二ip地址判断本板是否为第一报文的目标cgn板,如果否,丢弃第一报文;如果是,将第一报文转发至用户侧业务板;进而本公开中,将第一报文分别复制到每个参与负载分担的cgn板,由该cgn板进行nat转换,并通过根据第一报文进行nat转换后的第二ip地址确定出的目标cgn成员板将第一报文转发,由于发送至不同用户侧设备的第一报文在nat转换后得到的第二ip地址不同,因此根据该第二ip地址确定出的目标cgn成员板不同,进而相对于现有技术中通过指定一个cgn成员板进行对反向报文进行nat转换和转发的方式相比,一定程度上实现了cgn板间负载分担更加均衡。

附图说明

图1是本公开一示例性实施例示出的一种cgn板间负载分担方法的流程示意图;

图2是本公开一示例性实施例示出的一种cgn板间负载分担方法的场景示意图;

图3是本公开一示例性实施例示出的一种反向报文的处理方法的流程示意图;

图4是本公开一示例性实施例示出的一种cgn板间负载分担的装置的结构示意图;

图5是本公开一示例性实施例示出的一种计算机设备的结构示意图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。

在本公开使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本公开。在本公开和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本公开可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本公开范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

现有技术中,通过natserver公网地址访问内网中的设备时,由于该公网地址只有一个,在进行nat处理的网络设备包括多个cgn板的情况下,一般是通过指定一个cgn成员板进行对报文作nat转换和发送,进而无法做到cgn板间负载均衡;基于此,本公开实施例提供了一种cgn板间负载分担方法及装置。

参照图1所示,本公开一实施例中提供的一种cgn板间负载分担方法,该方法应用于网络设备,该网络设备包括网络侧业务板、用户侧业务板和至少两个cgn板,该方法中包括如下步骤:

s101、接收所述网络侧业务板复制并发送的第一报文,其中,所述第一报文是在所述网络侧业务板检查出网络侧接口接收的第一报文的第一ip地址与本地已配置的网络地址转换服务natserver的公网ip地址相同时复制并发送的,所述第一ip地址为第一报文的目的ip地址。

本实施例中,网络侧业务板将第一ip地址与本地已配置的natsever的公网ip地址相同的第一报文进行复制,将复制的第一报文分别发送至当前参与负载分担的cgn板。上述的第一ip地址为第一报文进行nat转换前的目的ip地址。

s102、若本地不存在与第一报文匹配的会话表项,则对第一报文的第一ip地址进行nat转换得到第二ip地址,所述第二ip地址为用户侧设备的ip地址。

cgn板在接收到第一报文以后,查找本地是否存在于该第一报文匹配的会话表项,如果不存在,则对第一报文的第一ip地址进行nat转换得到第二ip地址。

s103、根据第二ip地址确定第一报文的目标cgn板,并判断本板是否为所述目标cgn板,如果否,丢弃第一报文;如果是,将第一报文转发至用户侧业务板。

上述在对第一报文的第一ip地址进行nat转换得到第二ip地址后,根据第二ip地址确定出该第一报文的目标cgn板。

示例性的,上述根据第二ip地址确定出该第一报文的目标cgn板,可以是根据第二ip地址和当前参与负载分担的cgn板的数量进行哈希运算,计算得到哈希值;根据所述哈希值从多个当前参与负载分担的cgn板中选取目标cgn板。

示例性的,上述计算得到哈希值以及根据哈希值选取目标cgn板的方法,可以是参照现有技术进行,本公开对此不作限定。

本公开实施例中提供的一种cgn板间负载分担方法,通过将第一报文分别复制到参与负载分担的cgn板,由每个cgn板进行对第一报文的第一ip地址进行nat转换得到第二ip地址,然后根据第二ip地址确定第一报文的目标cgn板,并判断本板是否为第一报文的目标cgn板,如果是将该第一报文进行转发至用户侧业务板;本实施例中,所有参与负载分担的cgn板都进行nat转换,由根据第二ip地址确定的目标cgn将该报文进行转发,相对于现有技术实现了cgn板间的负载均衡。

参照图2所示的实施例,本公开实施例中给出了一个具体的实现场景,上述的网络设备可以是nat网关或者路由器等设备。

该实施例的网络设备包括网络侧业务板和用户侧业务板,并且该实施例中,以网络设备中包括三个cgn板:cgn板a、cgn板b、cgn板c,并且该三个cgn板都参与负载分担为例;该网络侧业务板上包括网络侧接口,在网络侧业务板上,将网络侧接口接收的第一ip地址与本地已配置的natsever的公网ip地址相同的第一报文进行复制,得到三份第一报文,并分别发送至cgn板a、cgn板b和cgn板c,cgn板a、cgn板b和cgn板c分别查找本地是否存在该第一报文匹配的会话表项,如果不存在,则对接收到的第一报文进行nat转换,并根据转换后得到的第二ip地址确定目标cgn板,以确定出的该目标cgn板为cgn板a为例,cgn板a判断本板为确定的目标cgn板cgn板a后将该第一报文进行发送至用户侧业务板,由该用户侧业务板按照现有技术继续进行发送。cgn板b、cgn板c分别判断本板不为确定的目标cgn板后,cgn板b、cgn板c将该第一报文丢弃。

本公开一可选的实施例中,上述方法还包括如下步骤:

步骤a10、cgn板为接收的第一报文生成一个对应的会话表项,所述会话表项至少包括:生成该会话表项时参与负载分担的cgn板总数量m2、第一ip地址、第二ip地址和属性信息;所述属性信息用于指示本cgn板是否为第一报文的目标cgn板。

本实施例中,每一cgn板在在判断本cgn板是否为第一报文的目标cgn板后,在本cgn板上生成该第一报文对应的会话表项。其中,第一ip地址为第一报文进行nat转换前的ip地址,第二ip地址为报文经过nat转换后的ip地址。

本公开一可选的实施例中,上述方法还包括如下步骤b10:

步骤b10、cgn板在本地存在有与第一报文匹配的会话表项时,依据所述会话表项中的属性信息和当前参与负载分担的cgn板总数量m2处理所述第一报文;所述属性信息用于指示本cgn板是否为第一报文的目标cgn板。

进而本公开实施例中,如果每一cgn板在本地存储有与第一报文匹配的会话表项时,则依据该会话表项中的属性信息和当前参与负载分担的cgn板总数量处理该第一报文。

可选的,上述依据所述会话表项中的属性信息和当前参与负载分担的cgn板总数量处理所述第一报文,包括如下步骤c10-c20:

步骤c10、在所述属性信息指示本板为第一报文的目标cgn板时,若当前参与负载分担的cgn板总数量m1与会话表项中的cgn板总数量m2相同,或者,若m1与m2不同且依据m1和会话表项中的第二ip地址确定本板为目标cgn板时,则对第一报文进行nat处理以使第一报文的第一ip地址转换为会话表项中的第二ip地址,并转发处理后的第一报文至用户侧业务板;若m1与m2不同且依据m1和会话表项中的第二ip地址确定本板不为目标cgn板时,丢弃第一报文。

当查找到与第一报文匹配的会话记录以后,获取该会话记录中的属性信息和cgn板总数量m2,如果该属性信息指示本cgn板为第一报文的目标cgn板,且当前参与负载分担的cgn板总数量m1与会话表项中记录的cgn板总数量m2相同,则对第一报文进行nat处理,使第一报文的第一ip地址转换为会话表项中的第二ip地址,并转发处理后的第一报文至用户侧业务板。

如果当前参与负载分担的cgn板总数量m1与会话表项中记录的cgn板总数量m2不相同,说明有增加cgn板或者删除cgn板的操作发生,此时会依据当前参与负载分担的cgn板总数量m1和会话表项中的第二ip地址重新确定目标cgn板,并确定本板是不是该目标cgn板,如果是,对第一报文进行nat处理以使第一报文的第一ip地址转换为会话表项中的第二ip地址,并转发处理后的第一报文至用户侧业务板;如果不是,则丢弃第一报文。

上述当前参与负载分担的cgn板总数量m1可以是由cgn板通过读取网络设备的配置信息得到。

步骤c20、在所述属性信息指示本板不为第一报文的目标cgn板时,若m1与m2相同,或者,若m1与m2不同且依据m1和会话表项中的第二ip地址确定本板不为目标cgn板时,则丢弃第一报文;若m1与m2不同且依据m1和会话表项中的第二ip地址确定本板为目标cgn板时,则第一报文进行nat处理以使第一报文的第一ip地址转换为会话表项中的第二ip地址,并转发处理后的第一报文至用户侧业务板,更新所述属性信息用于指示本板为目标cgn板。

本实施例中,在获取该会话记录中的属性信息和cgn板总数量m2后,如果属性信息指示本板不为第一报文的目标cgn板,且当前参与负载分担的cgn板的总数量m1与m2相同,说明参与负载分担的cgn板的数量没有发生变化,此时丢弃该第一报文;如果,当前参与负载分担的cgn板的总数量m1与m2不同,说明有增加cgn板或者删除cgn板的操作发生,此时会根据当前参与负载分担的cgn板的总数量m1和会话表项中的第二ip地址重新确定该第一报文的目标cgn板,并确定本板是否为第一报文的目标cgn板,如果是,则对第一报文进行nat处理,使第一报文的第一ip地址转换为会话表项中的第二ip地址,如果不是,丢弃第一报文。

上述实施例中,在重新确定第一报文的目标cgn板,并确定本板是否为第一报文的目标cgn板后,如果确定的结果与原会话表项中的属性信息不一致时,会更新会话表项中的属性信息。

图3是本公开一实施例示出的一种反向报文的处理步骤的示意图。参照图3所示,本公开,另一实施例中,上述方法还包括如下步骤s301-302:

s301、所述cgn板接收所述用户侧业务板发送的第二报文,其中,所述第二报文是用户侧业务板在接收到第二报文时,所述第二报文的源ip地址为第二ip地址,依据第二ip地址确定对第二报文进行nat处理的目标cgn板为所述cgn板时发送的。

本实施例中,上述用户侧业务板也可以是通过对第二ip地址进行哈希运算,根据计算得到的哈希值选择对第二报文进行nat处理的目标cgn板。

s302、依据第二报文的第二ip地址查找到会话表项,根据会话表项对第二报文进行nat处理以使第二报文的目的ip地址转换为会话表项中的第一ip地址,将转换后的第二报文发送至所述网络侧业务板。

上述的第一报文为由网络侧发往用户侧的报文,可以称为反向报文;本实施例中,针对正向报文可以直接参照上述反向报文所生成的会话表项进行nat处理。

图4是本公开实施例提供的一种cgn板间负载分担装置的结构示意图。该装置应用于网络设备中参与负载分担的cgn板,所述网络设备包括网络侧业务板、用户侧业务板和至少两个cgn板;参照图4所示,所述装置包括:

第一接收模块401,用于接收所述网络侧业务板复制并发送的第一报文,其中,所述第一报文是在所述网络侧业务板检查出网络侧接口接收的第一报文的第一ip地址与本地已配置的网络地址转换服务natserver的公网ip地址相同时复制并发送的,所述第一ip地址为第一报文的目的ip地址;

第一转换模块402,用于若本地不存在与第一报文匹配的会话表项,则对第一报文的第一ip地址进行nat转换得到第二ip地址,所述第二ip地址为用户侧设备的ip地址;

判断模块403,用于根据第二ip地址确定第一报文的目标cgn板,并判断本板是否为所述目标cgn板,如果否,丢弃第一报文;如果是,将第一报文转发至用户侧业务板。

可选的,上述装置还包括:

生成模块,用于为接收的第一报文生成一个对应的会话表项,所述会话表项至少包括:生成该会话表项时参与负载分担的cgn板总数量m2、第一ip地址、第二ip地址和属性信息;所述属性信息用于指示本cgn板是否为第一报文的目标cgn板。

可选的,上述装置还包括:

处理模块,用于在本地存在有与第一报文匹配的会话表项时,依据所述会话表项中的属性信息和当前参与负载分担的cgn板总数量m2处理所述第一报文;所述属性信息用于指示本cgn板是否为第一报文的目标cgn板。

可选的,上述处理模块,具体用于:

在所述属性信息指示本板为第一报文的目标cgn板时,若当前参与负载分担的cgn板总数量m1与会话表项中的cgn板总数量m2相同,或者,若m1与m2不同且依据m1和会话表项中的第二ip地址确定本板为目标cgn板时,则对第一报文进行nat处理以使第一报文的第一ip地址转换为会话表项中的第二ip地址,并转发处理后的第一报文至用户侧业务板;若m1与m2不同且依据m1和会话表项中的第二ip地址确定本板不为目标cgn板时,丢弃第一报文;

在所述属性信息指示本板不为第一报文的目标cgn板时,若m1与m2相同,或者,若m1与m2不同且依据m1和会话表项中的第二ip地址确定本板不为目标cgn板时,则丢弃第一报文;若m1与m2不同且依据m1和会话表项中的第二ip地址确定本板为目标cgn板时,则第一报文进行nat处理以使第一报文的第一ip地址转换为会话表项中的第二ip地址,并转发处理后的第一报文至用户侧业务板。

可选的,上述装置还包括:

第二接收模块,用于接收所述用户侧业务板发送的第二报文,其中,所述第二报文是用户侧业务板在接收到第二报文时,所述第二报文的源ip地址为第二ip地址,依据第二ip地址确定对第二报文进行nat处理的目标cgn板为所述cgn板时发送的;

第二转换模块,用于依据第二报文的第二ip地址查找到会话表项,根据会话表项对第二报文进行nat处理以使第二报文的目的ip地址转换为会话表项中的第一ip地址,将转换后的第二报文发送至所述网络侧业务板。

本公开一实施例中还提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现上述任一实施例所述的cgn板间负载分担的方法的步骤。

图5是本申请本公开实施例示出的一种计算机设备的结构示意图。参照图5所示,该计算机设备500,至少包括存储器502和处理器501;所述存储器502通过通信总线503和所述处理器501连接,用于存储所述处理器501可执行的计算机指令;所述处理器501用于从所述存储器502读取计算机指令以实现上述任一实施例所述的cgn板间负载分担方法的步骤。

上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。

对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本公开方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

适合于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、媒介和存储器设备,例如包括半导体存储器设备(例如eprom、eeprom和闪存设备)、磁盘(例如内部磁盘或可移动盘)、磁光盘以及cdrom和dvd-rom盘。处理器和存储器可由专用逻辑电路补充或并入专用逻辑电路中。

虽然本说明书包含许多具体实施细节,但是这些不应被解释为限制任何发明的范围或所要求保护的范围,而是主要用于描述特定发明的具体实施例的特征。本说明书内在多个实施例中描述的某些特征也可以在单个实施例中被组合实施。另一方面,在单个实施例中描述的各种特征也可以在多个实施例中分开实施或以任何合适的子组合来实施。此外,虽然特征可以如上所述在某些组合中起作用并且甚至最初如此要求保护,但是来自所要求保护的组合中的一个或多个特征在一些情况下可以从该组合中去除,并且所要求保护的组合可以指向子组合或子组合的变型。

类似地,虽然在附图中以特定顺序描绘了操作,但是这不应被理解为要求这些操作以所示的特定顺序执行或顺次执行、或者要求所有例示的操作被执行,以实现期望的结果。在某些情况下,多任务和并行处理可能是有利的。此外,上述实施例中的各种系统模块和组件的分离不应被理解为在所有实施例中均需要这样的分离,并且应当理解,所描述的程序组件和系统通常可以一起集成在单个软件产品中,或者封装成多个软件产品。

由此,主题的特定实施例已被描述。其他实施例在所附权利要求书的范围以内。在某些情况下,权利要求书中记载的动作可以以不同的顺序执行并且仍实现期望的结果。此外,附图中描绘的处理并非必需所示的特定顺序或顺次顺序,以实现期望的结果。在某些实现中,多任务和并行处理可能是有利的。

以上所述仅为本公开的较佳实施例而已,并不用以限制本公开,凡在本公开的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本公开保护的范围之内。

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