保证网络地址转换负载均衡内部本地地址可达的方法转让专利

申请号 : CN200710151877.0

文献号 : CN101127720B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 华庆邵军

申请人 : 中兴通讯股份有限公司

摘要 :

本发明公开了一种保证网络地址转换负载均衡内部本地地址可达的方法,包括:步骤S302,NAT模块读取rotary地址池中的内部本地地址,并向ping模块申请检测内部本地地址的可达性;步骤S304,ping模块对内部本地地址的可达性进行检测,并根据检测得到的内部本地地址的可达性将检测结果消息返回给NAT模块;以及步骤S306,NAT模块根据检测结果消息进行相关处理,并在需要进行NAT负载均衡转换时根据相关处理的结果进行后续处理。通过使用本发明,使得NAT设备生成负载均衡条目的内部本地地址有效并且可达,解决了NAT负载均衡转换无效内部本地地址的情况;同时,通过对NAT负载均衡rotary地址池中地址的标识,可以很轻易的找出无效地址进行快速处理。

权利要求 :

1.一种保证网络地址转换负载均衡内部本地地址可达的方法,其特征在于,包括:

步骤S302,在配置网络地址转换负载均衡的动态规则时,网络地址转换模块读取循环地址池中的内部本地地址,并向分组因特网搜索模块申请检测所述内部本地地址的可达性;

步骤S304,所述分组因特网搜索模块对所述内部本地地址的可达性进行检测,并根据检测得到的所述内部本地地址的可达性将检测结果消息返回给所述网络地址转换模块;以及步骤S306,所述网络地址转换模块根据所述检测结果消息进行相关处理,并在需要进行网络地址转换负载均衡转换时根据所述相关处理的结果进行后续处理。

2.根据权利要求1所述的方法,其特征在于,在所述步骤S304中,如果所述内部本地地址可达,则所述分组因特网搜索模块向所述网络地址转换模块返回的所述检测结果消息为成功消息。

3.根据权利要求2所述的方法,其特征在于,当所述检测结果消息为所述成功消息时,在所述步骤S306中,所述相关处理包括:所述网络地址转换模块将所述内部本地地址打上有效标识。

4.根据权利要求3所述的方法,其特征在于,当所述内部本地地址被打上所述有效标识时,在所述步骤S306中,所述后续处理包括:利用打上有效标识的所述内部本地地址生成映射条目。

5.根据权利要求1所述的方法,其特征在于,在所述步骤S304中,如果所述内部本地地址不可达,则所述分组因特网搜索模块向所述网络地址转换模块返回的所述检测结果消息为失败消息。

6.根据权利要求5所述的方法,其特征在于,当所述检测结果消息为所述失败消息时,在所述步骤S306中,所述相关处理包括:所述网络地址转换模块将所述内部本地地址打上无效标识。

7.根据权利要求6所述的方法,其特征在于,当所述内部本地地址被打上所述无效标识时,在所述步骤S306中,所述后续处理包括:不利用打上无效标识的所述内部本地地址生成映射条目。

8.根据权利要求3或6所述的方法,其特征在于,进一步包括:在所述相关处理完成之后,如果所述内部本地地址被打上有效标识,则启动正常检测定时器;如果所述内部本地地址被打上无效标识,则启动异常检测定时器,并在所述正常检测定时器和所述异常检测定时器的有效时间到达时重复执行所述步骤S304和所述步骤S306,其中,所述正常检测定时器的有效时间大于所述异常检测定时器的有效时间。

9.根据权利要求8所述的方法,其特征在于,在所述网络地址转换模块删除所述网络地址转换负载均衡的动态规则时,包括以下处理:步骤A,所述网络地址转换模块根据所述有效标识或所述无效标识判断所述循环地址池中的所述内部本地地址是否有效;

步骤B,如果所述内部本地地址有效,则清除网络地址转换映射表中与所述有效的内部本地地址相关的映射条目,以及与所述网络地址转换负载均衡的动态规则绑定的所述循环地址池中所述有效的内部本地地址的所述有效标识,并停止所述正常检测定时器;如果所述内部本地地址无效,则清除所述网络地址转换负载均衡的动态规则绑定的所述循环地址池中所述无效的内部本地地址的所述无效标识,并停止所述异常检测定时器。

说明书 :

技术领域

本发明涉及计算机网络通信领域,并且特别地,涉及一种保证网络地址转换负载均衡内部本地地址可达的方法。

背景技术

随着互联网(Internet)的不断发展,用户对于Internet的WEB服务器的信息获取是非常普遍的。
同时,在企业网中,外部用户和内部用户对企业的WEB服务的高速性和有效性的要求越来越高。而在路由器中通过使用负载平衡策略和网络地址转换(Network Address Translation,NAT)技术的组合,,会将对于WEB服务的访问和请示的进入均衡地分发到多个物理服务器,其中,由于WEB服务是基于传输控制协议(Transmission Control Program,TCP)实现的,所以这就是所谓的NAT负载均衡(TCP Load Distribution)。
目前,由于实际运用中以TCP运用为主,所以大多数厂商只实现TCP的负载均衡,对于非TCP类型的报文,不进行NAT负载均衡转换。本文中所提到的NAT负载均衡就是指TCP的NAT负载均衡。
NAT负载均衡的原理为:路由器或其它NAT设备把需要负载均衡的多个IP(Internet Protocol)地址翻译成一个公用的IP地址,这个IP地址为外部可见的虚拟地址。当外部网络对该虚拟地址发起TCP连接时,每个TCP连接被NAT送到循环(rotary)类型的地址池(即NAT负载均衡地址池)中的一个IP地址,而后续的TCP连接则被NAT送到下一个IP地址。从而在真正意义上实现了负载均衡。应当理解,基于NAT的负载均衡只能在NAT上实现而不能在NPAT(Network Address Port Translation网络地址端口转换)上实现,也就是说,用NAT来实现负载均衡,是不对端口进行转换的。
图1示出了利用NAT来进行TCP报文负载均衡的一种应用场景。当因特网上的外部用户向内部服务器发起基于TCP的连接或访问时,如果目的地址为NAT负载均衡ACL(Access Control List,访问控制列表)中定义的虚拟地址时,就使用轮循(Round Robin)的方式从NAT地址池中取出相应IP地址来转换该报文的目的地址,即,外部用户发起的连接和访问会分别发送到服务器1-3。
但是,如图2所示,在服务器1出现down机的情况下,由于NAT负载均衡的机制位于IP层,无法获知应用层的情况,则NAT负载均衡还会继续转换down机服务器的地址。也就是说,如果NAT负载均衡rotary类型的地址池中某个地址实际不生效,进行NAT负载均衡转换的时候,还是会按照轮循的方式把该地址进行分配转换为NAT映射条目中的内部本地地址(Inside Local Address)。这样会导致外部用户发起的连接和访问会因为找不到实际存在的服务器而被丢弃。
虽然用户重新发起连接和访问可能恢复正常,因为新的连接和访问会被轮循到一个没有down机的服务器上。但是,如果下次再轮循到这个down机的服务器上还是会是现无法访问的情况,而在实际Internet运用中,往往是成千上万的用户对内部服务器进行访问,如果出现服务器down机的情况后果还是很严重的。因为对于  Internet终端用户来说频繁的访问失败是无法接受的,同时当NAT负载均衡的服务器地址很多时也不便于NAT设备的管理员快速定位出现故障的服务器。这项缺陷也是NAT负载均衡技术先天弊病,到目前为止还没有有效的解决方案。
要保证NAT负载均衡的映射条目中没有无效内部本地地址,相关技术中还存在以下问题:(1)无法对NAT负载均衡的内部本地地址是否可达进行检测;(2)影响因特网用户对内部服务器的访问质量,即,频繁的访问失败是任何用户都无法接受的;(3)对NAT设备的管理不够完善,无法快速定位出现故障的内部服务器地址。
在专利CN200510025135中,提出了NAT转换时查找多归路由最优路径和负载均衡的方法,然而,这种方法在无法保证NAT负载均衡内部本地地址可达,也就是说,当NAT负载均衡转换的内部本地地址无效时,数据包还是会被发送到这些无效的地址。
因此,能够保证网络地址转换负载均衡内部本地地址可达的方案是非常必要的。

发明内容

考虑到上述问题而做出本发明,为此,本发明的主要目的在于提供一种保证网络地址转换负载均衡内部本地地址可达的方案。
根据本发明的实施例,提出了一种保证网络地址转换负载均衡内部本地地址可达的方法。
该方法包括:步骤S302,在配置网络地址转换负载均衡的动态规则时,网络地址转换模块读取循环地址池中的内部本地地址,并向分组因特网搜索模块申请检测内部本地地址的可达性;
步骤S304,分组因特网搜索模块对内部本地地址的可达性进行检测,并根据检测得到的内部本地地址的可达性将检测结果消息返回给网络地址转换模块;以及
步骤S306,网络地址转换模块根据检测结果消息进行相关处理,并在需要进行网络地址转换负载均衡转换时根据相关处理的结果进行后续处理。
其中,在步骤S304中,如果内部本地地址可达,则分组因特网搜索模块向网络地址转换模块返回的检测结果消息为成功消息。
当检测结果消息为成功消息时,在步骤S306中,相关处理包括:网络地址转换模块将内部本地地址打上有效标识。并且,当内部本地地址被打上有效标识时,在步骤S306中,后续处理包括:利用打上有效标识的内部本地地址生成映射条目。
另一方面,如果内部本地地址不可达,则分组因特网搜索模块向网络地址转换模块返回的检测结果消息为失败消息。并且,当检测结果消息为失败消息时,在步骤S306中,相关处理包括:网络地址转换模块将内部本地地址打上无效标识。此时,后续处理包括:不利用打上无效标识的内部本地地址生成映射条目。
此外,在相关处理完成之后,如果内部本地地址被打上有效标识,则启动正常检测定时器;如果内部本地地址被打上无效标识,则启动异常检测定时器,并在正常检测定时器和异常检测定时器的有效时间到达时重复执行步骤S304和步骤S306,其中,正常检测定时器的有效时间大于异常检测定时器的有效时间。
另外,在网络地址转换模块删除网络地址转换负载均衡的动态规则时,包括以下处理:
步骤A,网络地址转换模块根据有效标识或无效标识判断循环地址池中的内部本地地址是否有效;
步骤B,如果内部本地地址有效,则清除与网络地址转换映射表中与有效的内部本地地址相关的映射条目,以及与网络地址转换负载均衡的动态规则绑定的循环地址池中有效的内部本地地址的有效标识,并停止正常检测定时器;如果内部本地地址无效,则清除网络地址转换负载均衡的动态规则绑定的循环地址池中无效的内部本地地址的无效标识,并停止异常检测定时器。
通过本发明的上述技术方案,使得NAT设备生成负载均衡条目的内部本地地址有效并且可达,解决了NAT负载均衡转换无效内部本地地址的情况;同时,通过对NAT负载均衡循环地址池中地址的标识,可以很轻易的找出无效地址进行快速处理。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据相关技术的NAT负载均衡示意图;
图2是相关技术中在服务器down机情况下的NAT负载均衡示意图;
图3是根据本发明实施例的保证网络地址转换负载均衡内部本地地址可达的方法的流程图;
图4是根据本发明实施例的保证网络地址转换负载均衡内部本地地址可达的方法中配置NAT负载均衡动态规则时的详细处理流程图;
图5是根据本发明实施例的保证网络地址转换负载均衡内部本地地址可达的方法中删除NAT负载均衡动态规则时的详细处理流程图;以及
图6是根据本发明实施例的方法中outside到inside进行NAT负载均衡转换的流程图。

具体实施方式

在本实施例中,提供了一种保证网络地址转换负载均衡内部本地地址可达的方法。该方法在原有NAT负载均衡技术的基础上,进一步结合了分组因特网搜索(packet intelnet groper,简称为ping)程序。
在下面的描述中,将NAT设备中进行配置或删除NAT负载均衡动态规则和NAT负载均衡地址转换的部分称为NAT模块,将检测地址可达状态的模块称为ping模块。
如图3所示,在配置网络地址转换负载均衡的动态规则时,根据本实施例的方法包括:步骤S302,NAT模块读取循环(rotary)地址池中的内部本地地址,并向ping模块申请检测内部本地地址的可达性;步骤S304,ping模块对内部本地地址的可达性进行检测,并根据检测得到的内部本地地址的可达性将检测结果消息返回给NAT模块;以及步骤S306,NAT模块根据检测结果消息进行相关处理,并在需要进行NAT负载均衡转换时根据相关处理的结果进行后续处理。
其中,在步骤S304中,如果内部本地地址可达,则ping模块向NAT模块返回的检测结果消息为成功消息。
当检测结果消息为成功消息时,在步骤S306中,相关处理包括:NAT模块将内部本地地址打上有效标识。并且,当内部本地地址被打上有效标识时,在步骤S306中,后续处理包括:利用打上有效标识的内部本地地址生成映射条目。
另一方面,如果内部本地地址不可达,则ping模块向NAT模块返回的检测结果消息为失败消息。并且,当检测结果消息为失败消息时,在步骤S306中,相关处理包括:NAT模块将内部本地地址打上无效标识。此时,后续处理包括:不利用打上无效标识的内部本地地址生成映射条目。
此外,在相关处理完成之后,如果内部本地地址被打上有效标识,则启动正常检测定时器;如果内部本地地址被打上无效标识,则启动异常检测定时器,并在正常检测定时器和异常检测定时器的有效时间到达时重复执行步骤S304和步骤S306,其中,正常检测定时器的有效时间大于异常检测定时器的有效时间。
图4示出了配置NAT负载均衡动态规则时的处理实例。如图4所示,当系统判定配置的规则为NAT负载均衡动态规则时,NAT模块进行以下处理:
步骤401,当配置NAT负载均衡动态规则时,NAT模块将rotary地址池中的内部本地地址取出,向ping模块申请进行地址可达性检测;
步骤402,当ping模块收到检测申请的消息后,检测NAT负载均衡rotary地址池中的内部本地地址是否可达,如果是,回复成功消息,执行步骤403;否则回复失败消息,并执行步骤404;
步骤403,当NAT模块收到成功消息后,将NAT负载均衡地址池中的有效地址加上可用标记(即,上述的地址有效标识),并触发正常检测定时器(其中,定时器的有效时间是根据具体的性能情况来决定的,并且定时器的时间越短检测结果越准确,相应对性能的影响也最大);
步骤404,当NAT模块收到失败消息后,查询NAT映射条目表是否是有该地址作内部本地地址的条目,如果是,回复查询成功消息,并执行步骤405;否则回复查询失败消息,并执行步骤406;
步骤405,当NAT模块收到查询成功消息后,清除用到该地址的NAT映射条目,并执行步骤406;
步骤406,当NAT模块收到查询失败消息后,对该NAT负载均衡的地址加上无效地址标识,并触发异常检测定时器,其中,异常检测定时器应该小于正常检测定时器,之所以分两个定时器来检测,一是因为缩短异常检测的时间可以提高结果的准确性,二是因为分两类定时器可以减少在同一时段进行检测的负荷,避免拥塞的产生;
步骤407,当NAT模块收到NAT负载均衡的异常检测或正常检测定时器到期的消息后,重复执行步骤402。
另外,在NAT模块删除NAT负载均衡的动态规则时,包括以下处理:步骤A,NAT模块根据有效标识或无效标识判断rotary地址池中的内部本地地址是否有效;步骤B,如果内部本地地址有效,则清除与NAT映射表中与有效的内部本地地址相关的映射条目,以及与NAT负载均衡的动态规则绑定的rotary地址池中有效的内部本地地址的有效标识,并停止正常检测定时器;如果内部本地地址无效,则清除NAT负载均衡的动态规则绑定的rotary地址池中无效的内部本地地址的无效标识,并停止异常检测定时器。
具体的,在图5中示出了根据本发明实施例的方法中NAT模块删除NAT负载均衡动态规则时的处理实例。如图5所示,当NAT模块准备删除一条NAT负载均衡动态规则时执行以下处理:
步骤501,当删除NAT负载均衡动态规则时,NAT模块将判断NAT负载均衡rotary地址池中的地址是否有效,如果地址无效,执行步骤502;否则执行步骤503;
步骤502,清除与NAT负载均衡动态规则绑定的rotary地址池中的无效地址标识,关闭异常检测定时器,处理结束;
步骤503,查询NAT映射条目表是否有该地址作内部本地地址的条目,如果是,回复查询成功消息,执行步骤504,否则,回复查询失败消息,执行步骤505;
步骤504,当NAT模块收到查询成功消息后,删除NAT映射表中用到该地址的映射条目,执行步骤505;
步骤505,当NAT模块收到查询失败消息后,将该NAT负载均衡的地址置上有效地址标识清除,并关闭异常检测定时器,处理结束。
因为NAT负载均衡只在outside到inside生成映射条目,inside到outside的转换不涉及对NAT负载均衡地址池的处理,所以inside到outside进行NAT负载均衡转换的基本流程不需要改动。
图6示出了本发明实施例中NAT模块outside到inside进行NAT负载均衡转换的基本流程,如图6所示,具体包括如下步骤:
步骤601,判断接收到的报文是否需要NAT负载均衡转换,NAT负载均衡转换的条件(入接口为outside接口、报文类型为TCP、目的地址与NAT负载均衡ACL匹配),如果满足上述所有条件,执行步骤602;任何一项条件不符合条件,就采用报文原有处理流程进行转发,处理结束。
步骤602,将报文发往NAT模块根据源IP、源端口、目的IP、目的端口查找映射条目,并执行步骤603;
步骤603,判断是否找到映射条目,如果查找不到映射条目,则执行步骤604;否则查找映射条目,进行目的地址转换然后转发报文,处理结束;
步骤604,判断收到的TCP报文是不是建链包,如果是建链包,则执行步骤605;否则采用报文原有处理流程进行转发,处理结束;
步骤605,判断收到报文的目的地址与NAT负载均衡ACL是否匹配,如果匹配,则执行步骤606;否则采用报文原有处理流程进行转发,处理结束;
步骤606,判断NAT负载均衡地址池是不是存在有效地址,如果存在有效地址,则执行步骤607;否则采用报文原有处理流程进行转发,处理结束;
步骤607,用NAT负载均衡rotary地址池中的有效地址生成的NAT负载均衡映射条目,进行目的地址转换然后转发报文,处理结束。
综上所述,本发明在相关技术的基础上增加了NAT模块与ping模块的交互,使得NAT设备生成负载均衡条目的内部本地地址有效并且可达,解决了NAT负载均衡转换无效内部本地地址的情况;同时,通过对NAT负载均衡rotary地址池中地址的标识,可以很轻易的找出无效地址进行快速处理;此外,本发明采用两个定时器分别检测有效内部本地地址和无效内部本地地址,提高了检测结果的准确性和安全性。因此,本发明的宗旨是对NAT负载均衡的rotary地址池地址进行检测,然后进行NAT负载均衡转换时增加对该检测结果的处理流程,至于采用什么方式进行检测,可以依据具体情况而定。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。