CN101068212B - 一种网络地址转换转发的装置及方法 - Google Patents

一种网络地址转换转发的装置及方法 Download PDF

Info

Publication number
CN101068212B
CN101068212B CN2007101188111A CN200710118811A CN101068212B CN 101068212 B CN101068212 B CN 101068212B CN 2007101188111 A CN2007101188111 A CN 2007101188111A CN 200710118811 A CN200710118811 A CN 200710118811A CN 101068212 B CN101068212 B CN 101068212B
Authority
CN
China
Prior art keywords
forwarding
quick
packet
network address
forwarding entry
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN2007101188111A
Other languages
English (en)
Other versions
CN101068212A (zh
Inventor
陈晨
贾皓昕
于伟
曲原
潘建农
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ZTE Corp
Original Assignee
ZTE Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ZTE Corp filed Critical ZTE Corp
Priority to CN2007101188111A priority Critical patent/CN101068212B/zh
Publication of CN101068212A publication Critical patent/CN101068212A/zh
Application granted granted Critical
Publication of CN101068212B publication Critical patent/CN101068212B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明提供了一种网络地址转换转发的装置及方法,用于完成数据包在公网和私网之间的转发,该装置包括:一普通网络地址转换转发模块,用于按照正常方式进行网络地址转换和数据包的转发;其中,还包括:一快速网络地址转换转发模块,用于记录数据包转发所需要的转发关键信息,当收到数据包时,提取数据包的相关信息,查找与其相匹配的包含转发关键信息的快速转发条目,若没有找到,则转由普通网络地址转换模块进行普通网络地址转换转发,若找到,使用转发条目中的转发关键信息更新数据包中的相关信息,并直接从转发条目中获取路由信息,转发数据包。

Description

一种网络地址转换转发的装置及方法 
技术领域
本发明涉及网络通信地址转换方法与装置,具体的说,涉及一种用来提高网络中私网和公网之间网络地址转换效率的方法与装置。 
背景技术
随着因特网的发展速度越来越快,人们在日常工作和生活中已将IP网络视为必不可少的工具,网络规模也是不断的扩大,网络用户的数量不断增加,然而公网的地址资源十分有限,因此,NAT(Network Address Translation,网络地址转换)技术就成为了一种解决这个问题的主要方法。它主要作用是使私网中的网络设备使用较少的公网地址就能够访问公网,使得网络资源充分得到了应用。由此,可以使资源紧张的公网IP地址分配给更多的私网用户来用。 
目前用于实现NAT转发功能的方法有硬件和软件两种:硬件是通过直接使用FPGA,CPLD或ASIC等硬件基础上进行设计,这种方法最大的优点就是速度,因为硬件的速度优势很明显,所以这种实现方法的转换速率快,效率很高。但是随之而来的问题是,这种方法的成本较高,因此,只适宜于应用在配置较高的高端设备中,对于低端设备很不适合。而软件转发以其灵活性和低成本却非常适合在低端产品中使用。但是软件的实现也有着自己的局限性。因为软件实现多依赖于微处理器的运作,因此具有转换速度慢,***效率低的缺点。 
现有软件设计的NAT转换的过程主要是通过从包中获取到包括源IP地址,源端口号,目的IP地址,目的端口号等信息,查找由首包建立的转发条目表。查到后进行替换IP地址和端口信息,进行校验和的计算。更新校验和,然后通过查找相应的转发表完成数据转发。在这种情况下NAT业务会由于比正常业务多进行了NAT相关处理导致转发性能下降。并且在网络的使用中,常常会出现一种情况,即在某一段时间传输的报文的IP地址和端口号的信息相同或相近,例如:某个私网用户从公网的服务器上下载信息:电影,音乐等, 信息流量非常的大,这个时候通过NAT转换,需要进行NAT转发条目表的查找,通常使用的哈希算法,假如此时冲突链非常长,那么,就会出现在每个报文转换时候都要经过这条长冲突链的查找。那样的后果是效率将会非常低。 
现有技术中,公开了专利CN200510025134和专利“US6457061”两个方案。其中专利“CN200510025134”并不是专用于NAT转换领域的,且需要先处理“流”的第一个数据包,不能直接进行转换、转发,且其索引只能建立在高速缓冲中;专利“US6457061”是一种实现地址转换的大体方法,但其组织表结构仅限于Prtricia tree。 
发明内容
本发明的目的在于提出一种网络地址转换的装置及其方法,以解决普通NAT转换中,由于冲突链过长,所产生的在每个报文转换时都要经过长冲突链的查找,效率很低的问题。 
为实现上述目的,本发明提出了一种网络地址转换转发的装置,用于完成数据包在公网和私网之间的转发,包括:一普通网络地址转换转发模块,用于按照正常方式进行网络地址转换和数据包的转发;其中,进一步包括: 
一快速网络地址转换转发模块,用于记录所述数据包转发所需要的转发关键信息,当收到数据包时,提取所述数据包的相关信息,查找与其相匹配的包含所述转发关键信息的快速转发条目,若没有找到,则转由所述普通网络地址转换转发模块进行普通网络地址转换转发,若找到,使用所述快速转发条目中的转发关键信息更新所述数据包中的相关信息,并直接从所述快速转发条目中获取路由信息,转发所述数据包。 
上述的网络地址转换转发的装置,其中,所述快速网络地址转换转发模块进一步包括: 
一快速转发信息记录模块,用于对没有匹配的转发关键信息的数据包,在对所述数据包进行普通网络地址转换转发后,记录所述数据包的转发关键信息; 
一快速转发信息匹配模块,用于在收到所述数据包后,提取所述数据包中的相关信息,根据所述相关信息作为匹配条件,查找快速网络地址转换转发条目,若没有找到,则交由所述普通网络地址转换转发模块处理,若找到了,则 查找到的转发条目即被定位是快速网络地址转换转发需要更新的信息; 
一转发模块,用于从所述快速转发条目中获取所述数据包转发所需要的转发关键信息,将所述数据包内的相关信息替换,然后按照保存的路由索引,直接获取路由信息,转发所述数据包; 
一快速转发条目表,包含一个或多个快速转发条目,用于存储所述数据包的快速网络地址转换转发所需要的转发关键信息; 
其中,所述快速转发条目表进一步包括: 
一快速转发信息更新模块,用于将全部的快速转发条目按照未被使用时间的长短进行排序,并配置老化时间或采用默认值,定期检查所述快速转发条目的未被使用时间,删除超过老化时间的条目,或者用新数据包的转发关键信息更新超过老化时间的条目,并将更新后的条目或者新匹配到的条目放置于老化顺序的最后和条目查找冲突链的首部。 
上述的网络地址转换转发的装置,其中,所述转发关键信息进一步包括:源IP地址、源端口号、目的IP地址、目的端口号和报文协议类型; 
网络地址转换后的IP地址、端口号和路由信息; 
其它业务中需要变化的负荷分担索引、策略路由索引和/或VLAN_ID; 
网络地址转换产生的IP地址和端口号的改变; 
生存时间的变化而导致的校验和更新的增量信息。 
上述的网络地址转换转发的装置,其中,所述快速转发条目表进一步包括:一私网到公网的快速转发条目表、和/或一公网到私网的快速转发条目表。 
上述的网络地址转换转发的装置,其中,所述快速转发条目表存储在内存或高速缓冲存储器中。 
为实现上述目的,本发明还提供了一种网络地址转换转发的方法,用于完成数据包在公网和私网之间的转发,其中,该方法包括: 
步骤一,收到数据包,提取所述数据包中的网路地址转换信息,在快速转发条目表中查找与其相匹配的包含转发关键信息的快速转发条目; 
步骤二,若没有查找到,则进行普通网络地址转换的转发,并在快速转发条目表中记录所述数据包的转发关键信息,若找到了所述快速转发条目,则使用所述快速转发条目中的转发关键信息更新所述数据包中的相关信息,并直接从所述快速转发条目中获取路由信息,转发所述数据包; 
其中,所述步骤二进一步包括: 
步骤101,若查找到了相匹配的快速转发条目,则将所述快速转发条目放置在老化顺序的最后,并且将所述快速转发条目放在条目查找冲突链之首; 
步骤102,若没有查找到相匹配的快速转发条目,则判断当前在老化顺序第一位的快速转发条目的最后一次使用时间到现在是否超过老化时间,若没有超过老化时间,则将所述数据包进行普通网络地址转换转发,若超过了老化时间,采用新数据包的转发关键信息更新超过老化时间的快速转发条目,并将更新后的快速转发条目放置在老化顺序的最后和条目查找冲突链的首部。 
上述的网络地址转换转发的方法,其中,所述步骤一进一步包括: 
步骤81,收到数据包后,判断是否进行快速网络地址转换转发; 
步骤82,若不进行快速网络地址转换转发,则对所述数据包进行普通网络地址转换和路由转发,否则,提取所述数据包的源IP地址、源端口号、目的IP地址、目的端口号和报文协议类型,进行快速转发条目的匹配。 
上述的网络地址转换转发的方法,其中,所述步骤一进一步包括: 
判断所述数据包的流向,若是由私网到公网,则源IP地址和端口号为私网IP地址和端口号,目的IP地址和端口号为公网的IP地址和端口号,开始进行快速转发条目的匹配查找,若是由公网到私网时,则源IP地址和端口号为公网IP地址和端口号,目的IP地址和端口号为私网网络地址转换后公网可见的IP地址和端口号,进行快速转发条目的匹配查找。 
与现有技术相比较,本发明优点体现在以下三方面: 
1.避开了在查找NAT转发条目时产生的长冲突链,例如是在一段时期内大量源和目的相同的数据包需经过NAT转换并且在NAT转换条目查找时冲突链过长的时候,由于每个包都可能需要经过很长的冲突链才能查找到转换条目,所以转发速率很低。而本发明中,将数据包的相关信息及转换条目的相关信息记录在一个简小的表项中,待后续的相同的数据报文到达后,可以直接从这个简小的表中已很快的速度获取到转换信息,进行NAT转换,这样可以大大的提高转换速率。 
2.在上述的建立的简小表项中,可以储存大量的包括NAT转换,路由转发,还有其他业务的相关关键处理信息。在进行NAT转换时,可以将这些关键信息进行提取出以后,直接更新数据包的内容,包括路由查找得出的信息, 其它业务如负荷分担索引,策略路由索引等,还有由于NAT地址变换和TTL的变化导致的校验和变化的增量等,采取一步到位的方法,直接对数据包进行更新处理,减少了数据报处理的步骤。从而大大的提高了报文的转换转发速度,提高***的性能。 
3.即使在第一次命中失败之后,进行普通NAT处理,由于前面的过程中已经完成了关键信息的收集操作,对于没有命中的快速NAT条目的数据包的转发性能也不会有较大影响。 
附图说明
图1是本发明的装置结构示意图; 
图2是本发明的数据包流向示意图; 
图3是本发明的工作流程示意图; 
图4是本发明的快速NAT转发表的维护过程的示意图。 
具体实施方式
下面结合附图对本发明快速NAT转换的软件实现***处理方法进行说明。 
如图1所示,本发明NAT转发的装置100包括:普通转发模块110,一般的转发报文的流程模块,完成NAT的普通转换及其他业务的普通转发。这个模块中需要做的就是按照正常的方式进行NAT转换,数据包的转发。对业务的处理信息在配置时或者是对首包进行处理时统一维护在一张表项中,在进行转换转发时根据获取到的包的信息对这张表项进行查找条目,按照条目信息更新数据包后,接着再查找路由转发。每个包都是经过这个过程很耗时间,因此本发明的目的即是在下面的快速转发模块中提高转发速率。 
快速NAT转发模块120,即是本发明的重要模块,主要工作是快速NAT转换和数据报文的快速转发。主要包含快速转发信息记录模块121,快速转发条目匹配模块122,转发模块123、快速NAT转发表124和快速转发信息更新模块125。 
快速转发信息记录模块121,这个模块使用的前提是快速转发功能打开使用后,一个陌生的报文进入***的处理过程如下,首先,这个报文会按照普通 转发流程进行转发,在转发完成后,进行转发关键信息的记录。保存在一张临时表中,这些信息包括数据包的源IP地址,源端口号,目的IP地址,目的端口号,报文协议类型,NAT转换后的IP地址,端口号,路由信息,其它业务中的需变换的关键信息,如负荷分担索引,策略路由索引,VLAN_ID号等,还有因为NAT转换产生的IP地址和端口号改变,TTL的变化而导致的校验和更新的增量等信息。 
快速转发条目匹配模块122,此模块在本发明中起的是判断和定位的作用。所谓判断,就是在NAT快速转发功能开启的时候,在收到数据包后,即从数据包中提取匹配条件,包括源IP地址,源端口号,目的IP地址,目的端口号,报文协议类型,用这些条件来作为匹配查找NAT快速转发条目的凭证。一但查到条目,即可按照所查到的条目直接进行快速NAT转发,否则就进行普通NAT转发,但是在普通NAT转发完成后,要记录下来转发关键信息,并保存到NAT快速转发条目之中去。以备后面来的有相同的源IP地址,源端口号,目的IP地址,目的端口号,报文协议类型的报文可以匹配查找到条目进行快速转发。所谓定位,即是在收到数据包进行匹配快速转发条目时,查到的快速转发条目即被定位是快速NAT转发需要更新的信息。NAT包括其他业务,还有路由的转发时所需要的关键信息都保存在这一张NAT快速转发条目表124中,所以,在进行业务转发时,所需的要更新的转发关键信息直接从快速转发条目表124中获取,不需要重新计算或者查找业务转发表,包括路由索引。也保存在其中,直接获取到,不用再进行繁琐的路由查找。 
转发模块123,这个模块的功能就是从快速转发条目表124中获取所在报文转发中可能会更改的关键信息,将在数据包内的信息替换。然后按照保存的路由索引,直接获取路由信息,进行转发。 
快速转发条目表124,这个表的建立是为了保存NAT快速转发时所需要的关键信息。一般是在首包进行普通转发时,收集并保存下来。可以保存在cache(高速缓冲存储器)或者是内存中。里面保存的信息是源IP地址,源端口号,目的IP地址,目的端口号,报文协议类型,NAT转换后的IP地址,端口号,路由信息,其它业务中的需变换的关键信息,如负荷分担索引,策略路由索引,VLAN_ID号等,还有因为NAT转换产生的IP地址和端口号改变,TTL(生存时间)的变化而导致的校验和更新的增量等信息。 
快速转发信息更新模块125,用于将全部的快速转发条目按照未被使用时间的长短进行排序,并配置老化时间或采用默认值,定期检查该快速转发条目的未被使用时间,删除超过老化时间的条目,或者用新数据包的转发关键信息更新超过老化时间的条目,并将更新后的条目或者新匹配到的条目放置于老化顺序的最后和条目查找冲突链的首部。 
由于快速转发条目表124要保存众多信息,所以这个表的每一表项要大,但是由于是需要快速转发,因此快速转发条目表124的表项个数不用建立的太多,以便保证在快速NAT转发时,能很快的就查到条目,继而提高转换速度。快速转发信息更新模块125采用老化机制,即在一段时间内保留最近转发过的报文的转发关键信息,并对该快速转发条目进行监视,当一段时间内条目仍然没有被使用,且没有相同属性的数据包的出现,可以删除条目,以便腾出空间供别的属性数据包保存关键信息进行快速转发。在查找快速转发条目表124的时候,由于表项的长度不是太长,且有老化机制的不断更新,可以实现对数据包信息哈希后,经过查找很短的甚至没有冲突的情况下即可获取所需条目,这条冲突链比在普通NAT转发查表时要查找的冲突链要短的多,而且碰到的几率也小的多。因此可以在查表的过程上节省更多时间,提高转换速率。 
另外,还可以在此基础上在进一步提高效率,因为只要是查找冲突链,即使是NAT快速转发条目冲突链很短,如果一段时期内很多属性的数据包不停的转发,每个包都要经过这些冲突链的查找,仍然是会占用一些时间。因此,为了进一步提高效率,可以在当前的数据包查到条目时,或者在建立条目时(默认下个接着来的包为相同属性),或者在进行一定数目的转发后(一定数目的转发后就可以有更多的可能后续的包都为相同属性),将其转发条目移至链首,从而可以使数据包在快速NAT转发时更快查到,提高转发效率。 
如图2所示,是数据包流向的示意图,包括: 
步骤S201,***收到数据包; 
步骤S202,判断是否开启快速NAT功能,若是,则进入步骤S205,若不是,则进入步骤S203; 
步骤S203,开始进行普通NAT转换; 
步骤S204,报文转发结束; 
步骤S205,提取NAT转换所需信息,并进行快速条目匹配,如果没有匹 配到,则进入步骤S208,若匹配到了,则进入步骤S206; 
步骤S206,匹配到快速NAT转发条目; 
步骤S207,在匹配到条目之后,快速进行NAT转换及路由转发,***从条目中获取关键信息,对数据包进行修改。使数据包完成NAT转换,及其他的业务操作,并直接获取路由索引的信息,进行路由转发,以达到快速转发处理; 
步骤S208,如果没有匹配到条目,***会把数据包认为是首包,即一段相同数据流到来时的第一个包,这个包往往会留下转发关键信息以供后续的数据包直接使用,因为这些数据包都有着相同的属性,接着,首包进入普通NAT; 
步骤S209,普通NAT完成后,记录快速转发条目,如果已经开启快速NAT功能,则每次操作处理所获得的关键信息都被记录了下来,保存到快速转发条目表项124之中; 
步骤S210,报文转发结束。 
由于首包转发时已经保存了快速NAT转发条目,当和首包具有相同属性的后续数据包进到了NAT流程中,提取数据包中NAT转换所需的信息进行快速条目匹配时,就可以匹配到条目。 
如图3所示,是快速NAT转发方法的具体流程示意图。主要步骤如下: 
步骤S301,接收数据包,经处理后进入IPV4报文处理流程,由入接口和出接口判断是否进入NAT流程;进入NAT处理流程; 
步骤S302,判断是否启用快速NAT功能,如果没启用,就进行步骤S303和步骤S304;如果启用了,就进行步骤S305; 
步骤S303,进行普通的NAT转换; 
步骤S304,进行其他业务普通转发,进行普通路由查找转发。这里要注意的是某些业务在操作的时候就会进行路由查找,路由索引会进行变化。数据流程结束; 
步骤S305,如果启用快速NAT转发功能,则对数据包进行信息提取,包括如下信息:源IP地址,源端口号,目的IP地址,目的端口号,报文协议类型; 
步骤S306,查看数据包的发送方向,是由公网到私网还是由私网到公网,若是由私网到公网,则进入步骤S307,若是由公网到私网,则进入步骤S316; 
这里要说明的是在无论是数据包从哪个方向流向那个方向,进行快速NAT转发的流程大体相同。不同之处在于,当快速转发条目表124是按照从私网到公网的方向建立的时候,若数据包由私网到公网转发时,源IP地址和端口号为私网IP地址和端口号,目的IP地址和端口号为公网的IP地址和端口号;而数据包由公网到私网转发时,源IP地址和端口号为公网的IP地址和端口号,而目的IP地址和端口号却是由私网转换后的公网可见的IP地址和端口号,因为在快速转发条目表124中要建立有关信息,即NAT转换后的IP地址,端口号信息,所以,在匹配查找时要注意在从公网到私网时的目的IP地址和端口号,要匹配的是转换后的IP地址和端口号,而不是私网的IP地址和端口号,这是不可见的。 
以上所说的是对一个条目表进行双向检索要注意的。若快速转发条目表124是按照由公网到私网的方向建立的,则与上述过程大体相同,不再重复。当然,如果资源空间允许的话可以在快速转发条目表124中分别建立一个公网到私网的表和一个私网到公网的表。 
另外,在NAT转发由公网到私网时,在经过NAT转换后,可能会进行路由的查找,在此,查找路有将会是很耗时间的行为,因此,使用快速NAT转发后,在快速条目表124中已经直接保存了路由信息,因此可以不必在这里查找路由耽误时间,直接一步到位,获取路由索引信息。 
下面的步骤将不再区分数据包的转发方向了; 
步骤S307,用步骤S305获取到的数据包信息源IP地址、源端口号、目的IP地址、目的端口号和报文协议类型,根据此信息查找快速转发条目,如果没有匹配到条目,则进入步骤S313;否则,就是匹配到转发条目,由此可以提取里面的有关NAT、路由、业务的关键信息。准备后面的快速NAT转发,进行步骤S308; 
步骤S308,开始进行NAT快速转发; 
步骤S309,获取快速NAT转发条目中的转换后的公网IP地址和端口号; 
步骤S310,进行IP地址和端口替换,进行校验和更新,由于变化所产生的校验和增量,这个校验和增量包括TTL减1等每次IP头变换后的统一增量,此后,获取其它业务转发关键信息,直接对数据包的信息进行替换更改,不用再重新计算所需的信息或是查找快速转发条目表124,以达到节省***操作时 间,转发速度增快的目的; 
步骤S311,获取快速转发条目中记录的路由信息,进行NAT转换,校验和更新等,快速转发所述数据包,流程处理结束; 
步骤S312,进行普通的NAT转换; 
步骤S313,进行其它业务转发,进行路由转发; 
步骤S314,记录下该数据包的转发关键信息,并生成快速转发条目; 
步骤S315,查找快速转发条目,如果没有匹配到条目,则进入步骤S316;否则,就是匹配到转发条目,由此可以提取里面的有关NAT转换信息、路由信息的快速转发条目,进入步骤S319; 
步骤S316,对所述数据包进行普通NAT转换; 
步骤S317,进行其它业务转发,进行路由转发; 
步骤S318,记录下该数据包的转发关键信息,并生成快速转发条目,构建快速转发表124; 
步骤S319,进行NAT快速转换; 
步骤S320,获取快速NAT转发条目中的转换后的私网IP地址和端口号; 
步骤S321,进行IP地址和端口的替换更新,由于变化所产生的校验和增量,这个校验和增量包括TTL减1等每次IP头变换后的统一增量,此后,获取其它业务转发关键信息,直接对数据包的信息进行替换更改,不用再重新计算所需的信息或是查找快速转发条目表124,以达到节省***操作时间,转发速度增快的目的; 
步骤S322,获取快速转发条目中记录的路由信息,进行NAT转换,校验和更新等,快速转发所述数据包,流程处理结束。 
如图4所示,快速NAT转发表的维护流程,步骤如下: 
步骤S401,配置快速转发条目老化时间,如果没有配置则采用默认值; 
步骤S401,收到数据包; 
步骤S402,提取包信息:源地址、目的地址、源端口号、目的端口号和报文协议号等; 
准备快速NAT转发; 
步骤S403,进行快NAT转发条目匹配,如果命中,进行步骤S404,否则,进行步骤S405; 
步骤S404,增加相应计数,将转发条目放置在老化顺序最后,另外可以将此条目放在条目查找冲突链之首,这样可以使后续的相同属性的数据包能以最快的速度查找到转发条目,流程结束; 
步骤S405,判断当前在老化顺序第一位的条目,其最后一次使用时间到现在是否超过老化时间,如果没有超过老化时间,说明当前条目空间无法释放,因此不能建立NAT快速转发条目,因此进行步骤S406,否则,将要老化的条目按照新数据包的属性进行更新,进行步骤S404; 
步骤S406,数据包进行普通NAT转发,更新相应的临时结构,结束流程; 
步骤S407,将超过老化时间的条目按照新数据包的转发关键信息进行更新,并将新更新的条目或新使用的条目放置于老化顺序的最后,或者放置于条目查找冲突链的首部。 
当然,本发明还可有其它多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的普通技术人员当可根据本发明做出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。 

Claims (7)

1.一种网络地址转换转发的装置,用于完成数据包在公网和私网之间的转发,包括:一普通网络地址转换转发模块,用于按照正常方式进行网络地址转换和数据包的转发;其特征在于,进一步包括:
一快速网络地址转换转发模块,用于记录所述数据包转发所需要的转发关键信息,当收到数据包时,提取所述数据包的相关信息,查找与其相匹配的包含所述转发关键信息的快速转发条目,若没有找到,则转由所述普通网络地址转换转发模块进行普通网络地址转换转发,若找到,使用所述快速转发条目中的转发关键信息更新所述数据包中的相关信息,并直接从所述快速转发条目中获取路由信息,转发所述数据包;
所述快速网络地址转换转发模块进一步包括:
一快速转发信息记录模块,用于对没有匹配的转发关键信息的数据包,在对所述数据包进行普通网络地址转换转发后,记录所述数据包的转发关键信息;
一快速转发信息匹配模块,用于在收到所述数据包后,提取所述数据包中的相关信息,根据所述相关信息作为匹配条件,查找快速网络地址转换转发条目,若没有找到,则交由所述普通网络地址转换转发模块处理,若找到了,则查找到的转发条目即被定位是快速网络地址转换转发需要更新的信息;
一转发模块,用于从所述快速转发条目中获取所述数据包转发所需要的转发关键信息,将所述数据包内的相关信息替换,然后按照保存的路由索引,直接获取路由信息,转发所述数据包;
一快速转发条目表,包含一个或多个快速转发条目,用于存储所述数据包的快速网络地址转换转发所需要的转发关键信息;
所述快速转发条目表进一步包括:
一快速转发信息更新模块,用于将全部的快速转发条目按照未被使用时间的长短进行排序,并配置老化时间或采用默认值,定期检查所述快速转发条目的未被使用时间,删除超过老化时间的条目,或者用新数据包的转发关键信息更新超过老化时间的条目,并将更新后的条目或者新匹配到的条目放置于老化顺序的最后和条目查找冲突链的首部。 
2.根据权利要求1所述的网络地址转换转发的装置,其特征在于,所述转发关键信息进一步包括:
源IP地址、源端口号、目的IP地址、目的端口号和报文协议类型;
网络地址转换后的IP地址、端口号和路由信息;
其它业务中需要变化的负荷分担索引、策略路由索引和/或VLAN_ID;
网络地址转换产生的IP地址和端口号的改变;
生存时间的变化而导致的校验和更新的增量信息。
3.根据权利要求2所述的网络地址转换转发的装置,其特征在于,所述快速转发条目表进一步包括:一私网到公网的快速转发条目表、和/或一公网到私网的快速转发条目表。
4.根据权利要求1所述的网络地址转换转发的装置,其特征在于,所述快速转发条目表存储在内存或高速缓冲存储器中。
5.一种网络地址转换转发的方法,用于完成数据包在公网和私网之间的转发,其特征在于,该方法包括:
步骤一,收到数据包,提取所述数据包中的网路地址转换信息,在快速转发条目表中查找与其相匹配的包含转发关键信息的快速转发条目;
步骤二,若没有查找到,则进行普通网络地址转换的转发,并在快速转发条目表中记录所述数据包的转发关键信息,若找到了所述快速转发条目,则使用所述快速转发条目中的转发关键信息更新所述数据包中的相关信息,并直接从所述快速转发条目中获取路由信息,转发所述数据包;
所述步骤二进一步包括:
步骤101,若查找到了相匹配的快速转发条目,则将所述快速转发条目放置在老化顺序的最后,并且将所述快速转发条目放在条目查找冲突链之首;
步骤102,若没有查找到相匹配的快速转发条目,则判断当前在老化顺序第一位的快速转发条目的最后一次使用时间到现在是否超过老化时间,若没有超过老化时间,则将所述数据包进行普通网络地址转换转发,若超过了老化时间,采用新数据包的转发关键信息更新超过老化时间的快速转发条目,并将更新后的快速转发条目放置在老化顺序的最后和条目查找冲突链的首部。
6.根据权利要求5所述的网络地址转换转发的方法,其特征在于,所述步骤一进一步包括: 
步骤81,收到数据包后,判断是否进行快速网络地址转换转发;
步骤82,若不进行快速网络地址转换转发,则对所述数据包进行普通网络地址转换和路由转发,否则,提取所述数据包的源IP地址、源端口号、目的IP地址、目的端口号和报文协议类型,进行快速转发条目的匹配。
7.根据权利要求5或6所述的网络地址转换转发的方法,其特征在于,所述步骤一进一步包括:
判断所述数据包的流向,若是由私网到公网,则源IP地址和端口号为私网IP地址和端口号,目的IP地址和端口号为公网的IP地址和端口号,开始进行快速转发条目的匹配查找,若是由公网到私网时,则源IP地址和端口号为公网IP地址和端口号,目的IP地址和端口号为私网网络地址转换后公网可见的IP地址和端口号,进行快速转发条目的匹配查找。 
CN2007101188111A 2007-06-11 2007-06-11 一种网络地址转换转发的装置及方法 Expired - Fee Related CN101068212B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2007101188111A CN101068212B (zh) 2007-06-11 2007-06-11 一种网络地址转换转发的装置及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2007101188111A CN101068212B (zh) 2007-06-11 2007-06-11 一种网络地址转换转发的装置及方法

Publications (2)

Publication Number Publication Date
CN101068212A CN101068212A (zh) 2007-11-07
CN101068212B true CN101068212B (zh) 2010-12-29

Family

ID=38880649

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2007101188111A Expired - Fee Related CN101068212B (zh) 2007-06-11 2007-06-11 一种网络地址转换转发的装置及方法

Country Status (1)

Country Link
CN (1) CN101068212B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102571613A (zh) * 2012-03-09 2012-07-11 华为技术有限公司 一种转发报文的方法及网络设备

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101299772B (zh) * 2008-06-04 2011-05-11 中兴通讯股份有限公司 网络地址转换优选规则转换处理的***和方法
CN101877728B (zh) * 2010-06-25 2014-12-31 中兴通讯股份有限公司 网络地址转换转发方法及装置
CN102316012B (zh) * 2010-06-30 2014-05-14 杭州华三通信技术有限公司 一种实现ip快转的方法和三层转发设备
CN101938415B (zh) * 2010-08-30 2012-07-18 北京傲天动联技术有限公司 网络转发设备的快速转发方法
CN102469006B (zh) * 2010-11-01 2015-03-18 杭州华三通信技术有限公司 数据报文快速转发方法及装置
CN102801603B (zh) * 2011-05-27 2017-04-05 中兴通讯股份有限公司 一种网络地址翻译加速的分流控制方法及装置
CN102821032B (zh) * 2011-06-10 2016-12-28 中兴通讯股份有限公司 一种快速转发数据包的方法及三层设备
GB2496454B (en) * 2011-11-14 2013-10-09 Renesas Mobile Corp Wireless communication network
CN102819513A (zh) * 2012-06-29 2012-12-12 安科智慧城市技术(中国)有限公司 基于串口通信的交互方法及装置
CN103067281B (zh) * 2012-12-28 2016-07-13 深圳市磊科实业有限公司 一种路由器快速转发方法及实施该方法的***
CN103227752A (zh) * 2013-05-14 2013-07-31 盛科网络(苏州)有限公司 以太网交换芯片中策略路由的实现方法和装置
CN103281246A (zh) * 2013-05-20 2013-09-04 华为技术有限公司 报文处理方法及网络设备
CN104283923A (zh) * 2013-07-08 2015-01-14 中兴通讯股份有限公司 一种网络设备数据转发方法及装置
CN103391335A (zh) * 2013-08-01 2013-11-13 北京市翌晨通信技术研究所 一种直接访问ip私网的网络通信方法
CN104135548B (zh) * 2014-08-12 2018-12-11 邦彦技术股份有限公司 基于fpga的静态nat实现方法及装置
CN104994178B (zh) * 2015-05-12 2019-05-03 广东睿江云计算股份有限公司 一种网络地址转换方法及装置
CN106331196A (zh) * 2015-06-26 2017-01-11 中兴通讯股份有限公司 一种实现nat的方法和装置
CN105162901B (zh) * 2015-09-30 2019-05-14 北京特立信电子技术股份有限公司 一种基于sopc的nat的实现方法及装置
JP6609199B2 (ja) * 2016-03-01 2019-11-20 ルネサスエレクトロニクス株式会社 組込み機器
CN106656818B (zh) * 2016-11-18 2019-11-08 杭州迪普科技股份有限公司 一种清除快速转发表项的方法和装置
CN106656615B (zh) * 2016-12-29 2020-03-06 杭州迪普科技股份有限公司 一种基于tracert命令的报文处理方法及装置
CN108259645A (zh) * 2018-02-05 2018-07-06 深圳市三旺通信技术有限公司 基于轨交车载运用的网络地址转换方法
CN108881519A (zh) * 2018-08-08 2018-11-23 成都俊云科技有限公司 一种nat穿透方法及装置
CN110191109B (zh) * 2019-05-17 2021-11-02 杭州迪普信息技术有限公司 一种报文采样方法及装置
CN112565091A (zh) * 2020-11-18 2021-03-26 普联国际有限公司 一种报文转发方法、装置、存储介质及终端设备
CN113132242B (zh) * 2021-03-19 2022-11-15 翱捷科技股份有限公司 一种网络设备及其共享发送和接收缓存的方法
CN113645188B (zh) * 2021-07-07 2023-05-09 中国电子科技集团公司第三十研究所 一种基于安全关联的数据包快速转发方法
CN114006763A (zh) * 2021-11-01 2022-02-01 许昌许继软件技术有限公司 一种基于快速表的快速检索匹配方法及***
CN115225483A (zh) * 2022-06-29 2022-10-21 北京天融信网络安全技术有限公司 数据包转发方法及电子设备、存储介质
CN116248590B (zh) * 2022-12-16 2024-05-10 中国联合网络通信集团有限公司 数据转发方法、装置、设备及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1474570A (zh) * 2002-08-10 2004-02-11 华为技术有限公司 在数据传输过程中对地址转换用户的访问进行记录的方法
CN1487704A (zh) * 2003-08-26 2004-04-07 北京朗通环球科技有限公司 网络地址转换数据输出方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1474570A (zh) * 2002-08-10 2004-02-11 华为技术有限公司 在数据传输过程中对地址转换用户的访问进行记录的方法
CN1487704A (zh) * 2003-08-26 2004-04-07 北京朗通环球科技有限公司 网络地址转换数据输出方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
李庆海 等.高速网络环境下NAT快速转换算法.计算机工程与设计第24卷 第9期.2003,第24卷(第9期),1-3.
李庆海等.高速网络环境下NAT快速转换算法.计算机工程与设计第24卷 第9期.2003,第24卷(第9期),1-3. *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102571613A (zh) * 2012-03-09 2012-07-11 华为技术有限公司 一种转发报文的方法及网络设备
CN102571613B (zh) * 2012-03-09 2015-04-29 华为技术有限公司 一种转发报文的方法及网络设备

Also Published As

Publication number Publication date
CN101068212A (zh) 2007-11-07

Similar Documents

Publication Publication Date Title
CN101068212B (zh) 一种网络地址转换转发的装置及方法
CN1655533B (zh) 基于最长前缀匹配算法的过滤器
US6594704B1 (en) Method of managing and using multiple virtual private networks in a router with a single routing table
EP2562978B1 (en) Content router of a content centric network
CN101827073B (zh) 跟踪片段数据流
CN101631086B (zh) 并行ip路由查找的路由表分区和放置方法
CN101350771B (zh) 三态内容可寻址存储器条目免排序存储方法及其***
US6449256B1 (en) Fast level four switching using crossproducting
US20070171911A1 (en) Routing system and method for managing rule entry thereof
CN102487374B (zh) 一种访问控制列表实现方法及装置
CN101741855B (zh) 地址解析协议缓存表维护方法和网络设备
CN102970150A (zh) 用于数据中心的可扩展组播转发方法和设备
JP2000196670A (ja) 高速検索方法及び高速検索装置
CN102035735A (zh) 用于提供转发信息和服务质量信息的设备和方法
GB2368228A (en) Network unit with address cache
JP2001168910A (ja) データ検索システム及びパケット処理装置並びに制御方法
CN102571613A (zh) 一种转发报文的方法及网络设备
CN102223289A (zh) 一种存储IPv4地址和IPv6地址的方法和装置
CN107135266A (zh) Http代理框架安全数据传输方法
CN100426791C (zh) 一种路由转发表地址查找引擎装置
CN109618020A (zh) 一种分片报文的网络地址转换方法及装置
EP2429132B1 (en) Table creating and searching method used by network processor
CN103179161B (zh) 一种内容获取方法、装置及网络***
CN100397816C (zh) 在网络设备中对接收数据包进行分类的方法
EP1526699B1 (en) Method and system for accelerated packet processing

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20101229

Termination date: 20160611

CF01 Termination of patent right due to non-payment of annual fee