一种NAT业务快速处理方法及装置与流程

文档序号:16007921发布日期:2018-11-20 20:18阅读:229来源:国知局

本申请涉及通信技术领域,特别是涉及一种NAT(Network Address Translation,网络地址转换)业务快速处理方法及装置。



背景技术:

目前,网络设备可以支持多种类型的NAT业务,每一种NAT业务可以对应配置至少一个NAT匹配规则。在这些NAT匹配规则中还可以指定ACL(Access Control List,访问控制列表)过滤规则,当报文匹配上某一NAT匹配规则指定的ACL(此ACL就是NAT匹配规则)之后,就对此报文进行NAT转换,如果匹配不上此ACL,则报文不作NAT转换,而进行其它业务处理。

网络设备在接收到报文后,会对报文进行NAT业务的匹配处理,在报文匹配到NAT业务的某一NAT匹配规则后,即确定了该报文对应的NAT业务。若网络设备配置多个NAT业务,网络设备则会按照NAT业务的配置顺序一个一个地依次匹配每个NAT业务对应的NAT匹配规则,同时按照NAT业务中NAT匹配规则的配置顺序依次匹配各条NAT匹配规则。故网络设备会对所有本地NAT匹配规则进行查询。

由上可以看出,网络设备接收到的每个报文(哪怕有连接接收到同一业务报文)都需要进行上述的匹配过程,但每个报文有可能只匹配其中几个NAT匹配规则,故匹配每个报文时都匹配了大量未命中的NAT匹配规则,且网络设备在进行多次查找NAT匹配规则时耗费的时间较长。这就造成NAT业务的匹配效率非常低,进而造成报文转发效率也非常低。



技术实现要素:

本申请实施例的目的在于提供一种NAT业务快速处理方法及装置,以提高NAT业务的匹配效率,进而提高报文转发效率。具体技术方案如下:

第一方面,本申请实施例提供了一种NAT业务快速处理方法,所述方法包括:

获取待处理报文的报文信息;

确定所述报文信息对应的第一报文匹配项,在预设的报文匹配项中匹配所述第一报文匹配项;所述报文匹配项根据本地NAT匹配规则中ACL设定的匹配元素生成;

若匹配到所述第一报文匹配项,则根据预设匹配对应关系获取所述第一报文匹配项对应的第一NAT业务匹配信息,并根据所述第一NAT业务匹配信息对所述待处理报文进行NAT转换处理;其中,所述预设匹配对应关系包括报文匹配项和NAT业务匹配信息的对应关系,与所述报文匹配项对应的NAT业务匹配信息包括生成所述报文匹配项根据的本地NAT匹配规则所属NAT业务的业务配置信息。

第二方面,本申请实施例提供了一种NAT业务快速处理装置,所述装置包括:

第一获取模块,用于获取待处理报文的报文信息;

确定模块,用于确定所述报文信息对应的第一报文匹配项,在预设的报文匹配项中匹配所述第一报文匹配项;所述报文匹配项根据本地NAT匹配规则中访问控制列表ACL设定的匹配元素生成;

第二获取模块,用于若匹配到所述第一报文匹配项,则根据预设匹配对应关系获取所述第一报文匹配项对应的第一NAT业务匹配信息,并根据所述第一NAT业务匹配信息对所述待处理报文进行NAT转换处理;其中,所述预设匹配对应关系包括报文匹配项和NAT业务匹配信息的对应关系,与所述报文匹配项对应的NAT业务匹配信息包括生成所述报文匹配项根据的本地NAT匹配规则所属NAT业务的业务配置信息。

第三方面,本申请实施例提供了一种网络设备,包括处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令,所述处理器被所述机器可执行指令促使:实现上述任一所述的NAT业务快速处理方法步骤。

第四方面,本申请实施例提供了一种机器可读存储介质,存储有机器可执行指令,在被处理器调用和执行时,所述机器可执行指令促使所述处理器:实现上述任一所述的NAT业务快速处理方法步骤。

本申请实施例提供的技术方案中,根据待处理报文的报文信息,确定该报文信息对应的第一报文匹配项,并在预设的报文匹配项中匹配第一报文匹配项;在匹配到第一报文匹配项时,则根据预设匹配对应关系获取该第一报文匹配项对应的第一NAT业务匹配信息,并根据第一NAT业务匹配信息对待处理报文进行NAT转换处理。通过本技术方案,可以在预设的报文匹配项中通过一次查找,匹配到第一报文匹配项,并快速地获取对应的NAT业务匹配信息,从而通过获取NAT业务匹配信息对待处理报文进行NAT处理。这样,减少了查找的次数,提高了NAT业务的匹配效率,提高了报文转发效率。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本申请实施例提供的NAT业务快速处理方法的一种流程图;

图2为本申请实施例提供的用于存储NAT业务的配置的一种链路存储方式;

图3为本申请实施例提供的一种NAT业务的配置的存储过程;

图4-1为本申请实施例提供的NAT业务快速处理方法的另一种流程图;

图4-2为本申请实施例提供的存储关系示意图;

图4-3为本申请实施例提供的查询匹配过程示意图;

图5为本申请实施例提供的NAT业务快速处理装置的一种结构示意图;

图6为本申请实施例提供的网络设备的一种结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

NAT业务是指进行网络地址的转换的业务。具体地,可以将局域网内部的IP地址转换成合法的外部的IP地址,这样,内部节点才能与外网通信连接。

支持NAT业务的网络设备可以实现网络地址的转换,例如,局域网中的终端设备请求与外网连接,支持NAT业务的路由器将该终端设备所使用的内部地址转换成为外网的公网地址,这样,该终端设备可以与外网连接。

传统的NAT业务匹配方式是根据NAT配置顺序,将报文循环依次匹配NAT配置,每一次匹配向TCAM发起一次ACL规则的查询。如果命中ACL规则则根据配置做NAT业务。经过研究,发明人认为,多次匹配NAT配置导致发起大量的TCAM访问,TCAM接口处等待延迟呈线性增长,转发设备处理性能下降,且多次匹配占用TCAM芯片的访问带宽。发明人进一步分析认为,对于已知的报文确定其对应NAT配置需要对比ACL,这种操作比较耗费时间。

为了提高NAT配置匹配的效率,发明人提出了一种思想,预先存储报文匹配项和NAT业务匹配信息、以及两者间的对应关系,预先存储的上述信息均是基于已配置的本地NAT业务,然后针对接收的待处理报文(可以认为是已知报文),根据该待处理报文的报文信息对应的第一报文匹配项,直接确定第一报文匹配项对应的第一NAT业务匹配信息,使用一次查找就可以确定待处理报文对应的NAT业务。由此,本申请实施例提供了一种NAT业务快速处理方法及装置,其中,该NAT业务快速处理方法包括:

获取待处理报文的报文信息;

确定报文信息对应的第一报文匹配项,在预设的报文匹配项中匹配第一报文匹配项;报文匹配项根据本地NAT匹配规则中ACL设定的匹配元素生成;

若匹配到第一报文匹配项,则根据预设匹配对应关系获取第一报文匹配项对应的第一NAT业务匹配信息,并根据第一NAT业务匹配信息对待处理报文进行NAT转换处理;其中,预设匹配对应关系包括报文匹配项和NAT业务匹配信息的对应关系,与报文匹配项对应的NAT业务匹配信息包括生成报文匹配项根据的本地NAT匹配规则所属NAT业务的业务配置信息。

本申请实施例提供的技术方案中,根据待处理报文的报文信息,确定该报文信息对应的第一报文匹配项,并在预设的报文匹配项中匹配第一报文匹配项;在匹配到第一报文匹配项时,则根据预设匹配对应关系获取该第一报文匹配项对应的第一NAT业务匹配信息,并根据第一NAT业务匹配信息对待处理报文进行NAT转换处理。通过本技术方案,可以在预设的报文匹配项中通过一次查找,匹配到第一报文匹配项,并快速地获取对应的NAT业务匹配信息,从而通过获取NAT业务匹配信息对待处理报文进行NAT处理。这样,减少了查找的次数,提高了NAT业务的匹配效率,提高了报文转发效率。

本申请实施例解决了同一接口下大量NAT业务配置下匹配TCAM花费时间较多,造成设备新建转发性能下降的问题。按照同一接口下NAT业务配置的ACL不能重复的特点,使用一次查找就可以得到该业务报文所属NAT业务的NAT地址范围和相应的NAT业务类型,实现设备新建转发性能加速。

下面首先对本申请实施例提供的一种NAT业务快速处理方法进行介绍,该NAT业务快速处理方法可以应用于支持NAT业务的网络设备,网络设备可以是路由器、NAT设备、防火墙等设备。

如图1所示的本申请实施例提供的NAT业务快速处理方法的一种流程图,包括如下步骤。

S101,获取待处理报文的报文信息。

报文信息可以是报文的接口信息、四元组信息、五元组信息、七元组信息等信息中的至少一种。其中,接口信息可以包括源端口、目的端口等。四元组信息包括IP(Internet Protocol,网络之间互连的协议)地址、源端口、目的IP地址和目的端口。五元组信息包括源IP地址、源端口、目的IP地址、目的端口和传输层协议。七元组信息包括源IP地址、源端口、目的IP地址、目的端口、传输层协议、服务类型和接口索引。

当然,除了上述四种信息以外,报文信息还可以是针对报文的其他信息,在此不做限定。

网络设备在接收到待处理报文之后,从该待处理报文提取报文信息。网络设备根据所提取的报文信息进行NAT业务的匹配。

S102,确定报文信息对应的第一报文匹配项,在预设的报文匹配项中匹配第一报文匹配项。

其中,预设匹配对应关系包括预设的报文匹配项和NAT业务匹配信息的对应关系,预设的报文匹配项根据本地NAT匹配规则中ACL设定的匹配元素生成,与报文匹配项对应的NAT业务匹配信息包括生成报文匹配项根据的本地NAT匹配规则所属NAT业务的业务配置信息。

网络设备中所存储的NAT业务的数量和类型是自定义配置的,每一种NAT业务的业务配置信息也可以是自定义设定的。每一NAT业务的业务配置信息配置对应有一个匹配规则,匹配规则可以以ACL的形式表示。也就是说,每一个NAT业务的业务配置信息包括至少一个ACL。

实际使用中,在网络设备的接口上是按照顺序配置NAT业务的。NAT业务的配置包括业务配置信息以及设有ACL的NAT匹配规则。如图2所示,具体可以使用链表存储不同NAT业务的配置。

图2中,“业务类型及优先级”用于设置NAT业务的类型及优先级,一般来说,排序靠前的NAT业务的优先级较高,例如先配置NAT业务2,待NAT业务2的配置完成并存储后再配置NAT业务1,由于NAT业务1的优先级较高,则在存储NAT业务2的配置的地址之前存储NAT业务1的配置,此时NAT业务的配置的存储过程如图3所示。

NAT匹配规则设定的ACL可以在“业务引用ACL”中存储,同时将NAT匹配规则设定的ACL尽可能的使用掩码展开的方法进行展开。

NAT地址池资源则是为NAT业务配置的NAT地址池。

预设的报文匹配项根据本地NAT匹配规则中ACL设定的匹配元素生成,ACL中设定NAT匹配规则的匹配元素。例如,某条ACL为:access-list 150permit tcp source 192.168.0.2 255.255.255.255 destination 192.168.2.0 255.255.255.0,表示表号为150的访问控制列表允许tcp协议、源地址为192.168.0.2、目的地址为192.168.2.0/255.255.255.0这个网段的数据包通过,则若待处理报文的报文信息中的源IP地址、目的IP地址、协议号与ACL中所设定的源IP地址、目的IP地址、协议号的一致,则可以认为该待处理报文的报文信息匹配该ACL。

可选的,一个报文匹配项对应一个ACL。例如:假设NAT匹配规则中设定两条ACL,则每条ACL均可生成对应的报文匹配项。举例来说:NAT匹配规则中设定的ACL为:

(1)access-list 150permit tcp source 192.168.0.2 255.255.255.255 destination 192.168.2.0 255.255.255.0;

(2)access-list 150permit tcp source 192.168.0.3 255.255.255.255 destination 192.168.2.0 255.255.255.0。

则第(1)条ACL生成对应的报文匹配项为:tcp协议、源地址为192.168.0.2、目的地址为192.168.2.0/255.255.255.0,第(2)条ACL生成的对应的报文匹配项为:tcp协议、源地址为192.168.0.3、目的地址为192.168.2.0/255.255.255.0。

在某些实施例,若在同一NAT业务的配置中,某条ACL被另一条ACL冗余,则一个报文匹配项则可能对应这两条ACL。举例来说:NAT匹配规则中设定的ACL为:

(3)access-list 150permit tcp source 192.168.0.0 255.255.255.0 destination 192.168.2.0 255.255.255.0;

(4)access-list 150permit tcp source 192.168.0.3 255.255.255.255 destination 192.168.2.0 255.255.255.0。

由于第(4)条被第(3)条ACL冗余,则最终生成对应的报文匹配项可以为:tcp协议、源地址为192.168.0.0/255.255.255.0、目的地址为192.168.2.0/255.255.255.0。

在TCAM中可以预先划分至少两个存储区域,在该至少两个存储区域中,其中一个存储区域(以下以第一存储区域进行说明)用于存储报文匹配项,其中另一个存储区域(以下以第二存储区域进行说明)用于存储NAT业务匹配信息,该两个存储区域之间存在对应关系,该对应关系即为TCAM所存储的报文匹配项与NAT业务匹配信息的对应关系。

报文匹配项存储于第一存储区域中,在获取待处理报文的报文信息之后,从该第一存储区域中确定该报文信息对应的第一报文匹配项。若在第一存储区域中未查找到该报文信息对应的报文匹配项,则对该待处理报文不进行NAT转换的处理。第一存储区域存储的报文匹配项与第二存储区别存储的业务匹配信息具有预设对应关系。

在网络设备中设置有数量较大的多个NAT业务,且每个NAT业务包括业务配置信息和NAT匹配规则时,每一个报文在经过该网络设备时,现有技术需要通过遍历所有NAT业务的报文匹配项来确认该报文需要进行哪种NAT业务。遍历的过程中需要多次查找该报文是否命中ACL,示例性的,如果该网络设备配置有10条NAT配置,且每一条NAT配置均引用一条ACL,则该报文最差情况需要进行10次匹配动作,才能确认所需进行的NAT转换过程。通过本申请实施例提供的技术方案,确定报文信息对应的第一报文匹配项后,可以通过一次查找动作,确定第一报文匹配项最终对应的第一NAT业务匹配信息,避免了对所有ACL中设定的匹配元素进行查找,这样减少了查找的耗时,提高了NAT业务的匹配效率,提高了报文转发效率。

报文匹配项可以通过KEY值或KEY值和掩码的组合表示,一个KEY值和一个掩码组合可以表示一条ACL中的一个或多个地址匹配元素,一个KEY值可以表示除地址之外的其他匹配元素。具体地,KEY值和掩码可以以二进制表示,其中,掩码中的bit值为1的位置表示关心的位置,bit值为0的位置表示不关心的位置。将掩码所表示出的关心位置和不关心位置映射至KEY值上,二进制的KEY值中,关心位置所对应的数字才是与报文信息需要匹配的部分,而不关心位置所对应的数字在进行报文信息匹配时可以忽略。也就是说,第一报文匹配项中KEY值的关心位置上对应的数字与报文信息是相匹配的。当然,上述KEY值\掩码也可以以十进制、十六进制表示,本文并不作特别限定。

NAT匹配规则的匹配元素可以包括源IP地址、目的IP地址、源端口号和目的端口号等。每一匹配元素可以分别用对应的KEY值表示,例如,源IP地址可以用KEY1值表示,目的IP地址用KEY2值表示,源端口号用KEY3值表示,目的端口号用KEY4值表示。

下面以源IP地址用KEY1值和掩码1表示为例进行介绍。

例如,报文匹配项中用于表示源IP地址的KEY1值是192.168.1.10,掩码1是255.255.255.255,则二进制表示的KEY1值为11000000.10101000.00000001.00001010,二进制表示的掩码1是11111111.11111111.11111111.11111111,可知,该掩码1上的bit值均为1,则该掩码1的32位均是关心位置。那么,只有192.168.1.10才能与该匹配元素匹配。

又例如,报文匹配项中用于表示源IP地址的KEY1值是192.168.1.0,掩码1是255.255.255.0,则二进制表示的KEY1值为11000000.10101000.00000001.00000000,二进制表示的掩码1是11111111.11111111.11111111.00000000,可知,该掩码1的前24位均为关心位置,而后8位为不关心位置。那么,与该报文匹配项匹配的报文信息中的IP地址的前24位一定是11000000.10101000.00000001,而后8位可以为任意数值。因此,192.168.1.0至192.168.1.255中的任意一个都可以与该匹配元素相匹配。

下面以目的端口号用KEY4值表示。

例如,报文匹配项中目的端口号为80,则用二进制表示的KEY4值为1010000。

将ACL用掩码展开得到报文匹配项,报文匹配项中的一个KEY值和一个掩码的组合可以表示一个或多个匹配元素,一个报文匹配项中所包括的用于表示匹配元素的KEY值和掩码的组合的数量少于匹配元素的数量,故在进行匹配时查找KEY值和掩码的组合的数量远少于查找匹配元素的数量,提高了匹配的效率。

例如,ACL中设定的源IP地址为192.168.1.1至192.168.1.10范围内的10个地址,也就是说,只有这10个地址才可以匹配成功。在这10个地址中,每个地址的前三个元素均相同,即为192.168.1,所以,对应的掩码的前24个bit值均为1,即为:11111111.11111111.11111111。

变化的是最后一个元素,从1至10,1至10对应的二进制分别为:00000001、00000010、00000011、00000100、00000101、00000110、00000111、00001000、00001001、00001010。

对于上述1至10的二进制数,以KEY1值和掩码1方式进行表示,可以表示为:KEY1值:00000001、掩码1:11111111;KEY1值:00000010、掩码1:11111110;KEY1值:00000100、掩码1:11111100;KEY1值:00001000、掩码1:11111110;KEY1值:00001010、掩码1:11111111。

其中,KEY1值:00000001、掩码1:11111111共同表示数值1,KEY1值:00000010、掩码1:11111110共同表示数值2和3,KEY1值:00000100、掩码1:11111100共同表示数值4、5、6和7,KEY1值:00001000、掩码1:11111110共同表示8和9,KEY1值:00001010、掩码1:11111111共同表示10。

这样,用5个报文匹配项,即5个KEY1值和掩码1的组合,就可以表示出10个数值。由此可以看出,KEY值和掩码的组合的数量远少于匹配元素的数量。

一个报文匹配项中所包括的KEY值所包括的信息可以如下表1所示:

表1

其中,0-31分别表示32个比特。

C占用一个比特,表示硬件通道编号;

Dir占用一个比特,可以用于表示NAT业务的NAT转换方向,即显示是在入接口还是出接口上进行NAT业务;

Reserve为预留字段;

If Index为NAT业务所对应的接口的软件索引;

Src IP为源IP地址;

Dst IP为目的IP地址;

Src Port为源端口;

Dst Port为目的端口;

Protocal为协议号,比如采用TCP或者UCP协议;

Context ID为虚拟设备标识,即表示进行NAT业务的虚拟机的标识。例如:当网络设备上安装的虚拟机1在进行NAT业务时,Context ID=1;

Vpn ID为虚拟专用网络的标识。

预设匹配对应关系中可以包括多个报文匹配项和NAT业务匹配信息的对应关系,每一个报文匹配项和NAT业务匹配信息的对应关系则是根据本地NAT业务的配置得到的,其中,NAT业务的配置包括业务配置信息以及设有ACL的NAT匹配规则。对于预设匹配对应关系中的任一第二报文匹配项及与该第二报文匹配项对应的第二NAT业务匹配信息,该第二报文匹配项根据第二NAT业务的第二本地NAT匹配规则中设定的ACL生成,第二NAT业务匹配信息包括第二NAT业务的业务配置信息。

预设匹配对应关系存储于TCAM(ternary content addressable memory,三态内容寻址存储器)中,在确定报文信息对应的第一报文匹配项后,根据TCAM所存储的预设匹配对应关系中,确定该第一报文匹配项对应的第一NAT业务匹配信息。

其中,在TCAM中所存储的预设匹配对应关系可以根据业务类型及优先级顺序进行存储,一般来说,优先级较高的NAT业务的报文匹配项和NAT业务匹配信息的对应关系排序靠前,优先级较低的NAT业务的报文匹配项和NAT业务匹配信息的对应关系排序靠后。

对于TCAM中存储的预设匹配对应关系,可以通过一次查找,完成TCAM中第一存储区域所包括的报文匹配项的全部匹配,从而根据预设匹配对应关系确定对应的第一NAT业务匹配信息,从而确定对应的所属NAT业务,大大地减少了查找的次数,进而减少了查找NAT配置所耗费的时间,提高了NAT配置匹配的效率。

示例地,对于一NAT业务1,其配置包括业务配置信息1以及设有ACL1的NAT匹配规则1。其中,该NAT业务1的业务配置信息1包括:NAT属性1、业务编号为1、业务配置序号为1以及NAT地址池IP信息1,NAT匹配规则1设定的ACL1为:access-list 1permit source 192.168.0.1~192.168.1.10。当业务报文匹配ACL1(即业务报文的源IP地址为192.168.0.1~192.168.1.10)时,该NAT业务1对该业务报文进行NAT转换处理。

将ACL1以掩码展开的方式展开,得到包括KEY值和掩码的报文匹配项,所得到的报文匹配项为:报文匹配项1中KEY值1:00000001、掩码1:11111111;报文匹配项2中KEY值2:00000010、掩码2:11111110;报文匹配项3中KEY值3:00000100、掩码3:11111100;报文匹配项4中KEY值4:00001000、掩码4:11111110;报文匹配项5中KEY值5:00001010、掩码5:11111111。

当待处理报文的报文信息所包括的地址为192.168.1.1,与报文匹配项1是匹配的,则获取该报文匹配项1对应的业务配置信息1所包括的信息:NAT属性1、业务编号为1、业务配置序号为1以及NAT地址池IP信息1。

S103,若匹配到第一报文匹配项,则根据预设匹配对应关系获取第一报文匹配项对应的第一NAT业务匹配信息,并根据第一NAT业务匹配信息对待处理报文进行NAT转换处理。

所获取的第一NAT业务匹配信息可以包括NAT属性、业务编号、业务配置序号以及NAT地址池IP信息等。其中,NAT属性表示NAT业务的属性,例如,表示NAT业务为静态NAT(Static NAT),或者为动态地址NAT(Pooled NAT);业务编号可以是自定义的,每一种类型的NAT业务对应一个业务编号;业务配置序号可以是自定义的,也可以为设备自动分配的,每一业务配置信息对应一个业务配置序号;每一业务配置信息中包括有NAT地址池IP信息,在进行NAT业务的IP地址转换时,所转换的IP地址从地址池IP信息中获取。

在获取第一NAT业务匹配信息之后,第一NAT业务匹配信息所包括的信息可以如下表2所示:

表2

其中,表2中各字段的含义如下。

Src/Dst:表示该第一NAT业务匹配信息所对应的NAT业务是转源还是转目的。

PAT:表示该第一NAT业务匹配信息所对应的NAT业务的一种模式。

Port Pre Served:为可选项,用于表示该第一NAT业务匹配信息所对应的NAT业务在进行IP转换时是否保留原始端口号。

其中,NAT属性可以包括上述Src/Dst、PAT、Port Pre Served字段中的至少一个字段。

Reserve:为预留字段。

Nat cfg:为业务编号,表示配置种类,即该第一NAT业务匹配信息所对应的NAT业务的类型。

Cfg Seq Num:为业务配置序号。

NAT IP Pool Info:为NAT地址池IP信息。

预设匹配对应关系中的NAT业务匹配信息均存储于同一个存储区域中,在预设匹配对应关系中匹配到第一报文匹配项后,从存储NAT业务匹配信息的存储区域中获取第一报文匹配项对应的第一NAT业务匹配信息。

在获取第一NAT业务匹配信息之后,便可以根据第一NAT业务配置信息中的NAT属性、业务编号、业务配置序号以及NAT地址池IP信息等,对待处理报文进行NAT转换处理。

一种实施方式中,在获取待处理报文的报文信息(S101)的步骤之前,还包括如下步骤。

当监测到第二NAT业务的配置时,获取配置中包括的第二NAT匹配规则和第二NAT业务的业务配置信息,其中,第二NAT匹配规则中设定第二ACL。第二ACL与第二NAT业务的业务配置信息是相对应的,即通过第二ACL,即可获得该第二NAT业务的业务配置信息。

根据第二ACL生成第二报文匹配项,所生成的第二报文匹配项包括一个KEY值和掩码,并将所生成的第二报文匹配项存储至用于存储报文匹配项的存储区域1(即第一存储区域)中。另外,根据第二NAT业务的业务配置信息确定第二NAT业务匹配信息,并将所确定的第二NAT业务匹配信息存储至用于存储业务匹配信息的存储区域2(即第二存储区域)中。

所生成的第二报文匹配项与所确定的第二NAT业务匹配信息形成对应关系,将所形成的对应关系存储至预设匹配对应关系中。即,预设匹配对应关系中存储有第二报文匹配项和第二NAT业务匹配信息的对应关系。另外,预设匹配对应关系存储于TCAM中,其中,预设匹配对应关系在TCAM中的存储方式可以是表格、条目、目录等中的任一种,在此不做限定。

其中,存储区域1中存储的信息与存储区域2存储的信息存在对应关系,该对应关系即为TCAM中所存储的第二报文匹配项与第二NAT业务匹配信息的对应关系。具体地,TCAM所存储的对应关系中的第二报文匹配项即为存储区域1中所存储的第二报文匹配项,在TCAM的对应关系中确定出第二报文匹配项后,则可以从存储区域1中获取第二报文匹配项。TCAM所存储的对应关系中的第二NAT业务匹配信息即为存储区域2所存储的第二NAT业务匹配信息,在TCAM的对应关系中匹配到第一报文匹配项时,可以从对应的存储区域2中获取到第二NAT业务匹配信息。

在NAT业务的配置中存储有业务类型及优先级时,存储区域1中存储的报文匹配项是按照NAT业务的优先级由高到低的顺序进行存储的,在监测到第二NAT业务的配置时,将第二报文匹配项存储至存储区域1时,根据该第二NAT业务的优先级,将第二报文匹配项插入至存储区域1中所存储的报文匹配项中。

存储区域2中存储的NAT业务匹配信息是按照NAT业务的优先级由高到低的顺序进行存储的,在监测到第二NAT业务匹配信息时,将第二NAT业务匹配信息存储至存储区域2时,根据该第二NAT业务的优先级,将第二NAT业务匹配信息插入至存储区域2中所存储的NAT业务匹配信息中。

此时,在TCAM的对应关系中也按照NAT业务的优先级由高到低的顺序进行存储,根据该第二NAT业务的优先级,将第二报文匹配项与第二NAT业务匹配信息的对应关系插入至TCAM的对应关系中。

例如,存储区域1中所存储的报文匹配项中按照优先级从高到低的顺序存储为:报文匹配项1、报文匹配项3、报文匹配项4,NAT业务2(即第二NAT业务)的优先级高于NAT业务3、低于NAT业务1,则将报文匹配项2(即第二报文匹配项)插入至报文匹配项1和报文匹配项3之间,插入后存储区域1中所存储的报文匹配项的顺序为:报文匹配项1、报文匹配项2、报文匹配项3、报文匹配项4。

存储区域2中所存储的NAT业务匹配信息中按照优先级从高到低的顺序存储为:NAT业务匹配信息1、NAT业务匹配信息3、NAT业务匹配信息4,第二NAT业务匹配信息(即NAT业务匹配信息2)的优先级高于NAT业务匹配信息3、低于NAT业务匹配信息1,则将第二NAT业务匹配信息插入至NAT业务匹配信息1和NAT业务匹配信息3之间,插入后存储区域2中所存储的NAT业务匹配信息的顺序为:NAT业务匹配信息1、NAT业务匹配信息2、NAT业务匹配信息3、NAT业务匹配信息4。

在TCAM的对应关系中,将NAT业务2中各报文匹配项2和NAT业务匹配信息2的对应关系插入到NAT业务1中报文匹配项1和NAT业务匹配信息1的对应关系之后、NAT业务3中报文匹配项3和NAT业务匹配信息3的对应关系之前。

TCAM中存储的对应关系可以如下表3所示。

表3

其中,越低地址存储的报文匹配项的优先级越高。

通过为每一个NAT业务设定优先级,在对待处理报文的报文信息进行匹配时若匹配出多个NAT业务的配置,则可以根据NAT业务的优先级,将所匹配出的多个NAT业务中优先级最高的NAT业务的业务配置信息作为该待处理报文对应的最终的业务配置信息,进而保证了NAT配置在TCAM中的匹配顺序正确。

一种实施方式中,在上述实施方式的基础上,第二NAT业务的业务配置信息包括该第二NAT业务的业务优先级,业务优先级是预设的,每一个NAT业务均可以设置对应的业务优先级。

本申请实施例提供的NAT业务快速处理方法还可以包括如下步骤。

按照业务优先级由高到低的存储顺序,根据第二NAT业务的业务优先级,在TCAM中存储或插入第二NAT业务中各第二报文匹配项和第二NAT业务匹配信息的对应关系。

其中,在TCAM中所存储的匹配对应关系是按照业务优先级的高低顺序排列的,当获取到第二NAT业务中各第二报文匹配项和第二NAT业务匹配信息的对应关系之后,将获取第二NAT业务的业务优先级,并根据第二NAT业务的业务优先级,将第二NAT业务中各第二报文匹配项和第二NAT业务匹配信息的对应关系存储至TCAM中。

当TCAM中已存储有不同业务优先级的对应关系时,第二NAT业务的业务优先级高于其中已存储的一个或多个对应关系的业务优先级,则在TCAM中插入第二NAT业务中各第二报文匹配项和第二NAT业务匹配信息的对应关系,具体地,将第二NAT业务中各第二报文匹配项和第二NAT业务匹配信息的对应关系插入到其他业务优先级较低的对应关系的前面。这样,当在TCAM中进行查询时,由于TCAM返回的机制是返回最低地址的命中条目,则业务优先级较高的NAT业务对应的NAT业务匹配信息会被返回,对应的NAT业务也会优先被选取。

一种实施方式中,第二ACL包括第二ACL的ACL优先级,ACL优先级是预设的,每一个ACL均设置对应的ACL优先级。

对于在预设匹配对应关系中存储第二报文匹配项和第二NAT业务匹配信息的对应关系的步骤,具体可以包括如下步骤。

按照ACL优先级由高到低的存储顺序,根据第二ACL的ACL优先级,在TCAM中用于存储第二NAT业务的报文匹配项和业务匹配信息的对应关系中,存储或插入第二报文匹配项和第二NAT业务匹配信息的对应关系。

其中,在TCAM中所存储的匹配对应关系可以是按照ACL优先级的高低顺序排列的,当获取到第二报文匹配项和第二NAT业务匹配信息的对应关系之后,将根据第二ACL的ACL优先级,将第二报文匹配项和第二NAT业务匹配信息的对应关系存储至TCAM中。

当TCAM中已存储有不同ACL优先级的对应关系时,第二ACL的ACL优先级高于其中已存储的一个或多个对应关系的ACL优先级,则在TCAM中插入第二报文匹配项和第二NAT业务匹配信息的对应关系。具体地,将第二报文匹配项和第二NAT业务匹配信息的对应关系插入到其他ACL优先级较低的对应关系的前面。

另外,当检测到用于存储业务配置信息的存储区域中有NAT业务的配置被删除,或者有配置中的规则被删除,即所对应的ACL被删除,则向TCAM发送删除指令,以在TCAM中所存储的报文匹配项和业务匹配信息的对应关系中将所删除配置的对应关系、或者所删除规则的对应关系进行删除。

一种实施方式中,第一NAT业务匹配信息包括:NAT属性、业务编号、业务配置序号以及NAT地址池IP信息。则在获取第一报文匹配项对应的第一NAT业务匹配信息之后,所述根据第一NAT业务匹配信息对待处理报文进行NAT转换处理的步骤,可以包括如下步骤。

根据业务编号,确定第一NAT业务的NAT类型为第一类型;其中,业务编号与NAT业务的类型是一一对应的,业务编号与NAT业务之间的对应关系是预设的。

根据业务配置序号,确定第一NAT业务的配置中NAT转换方向为第一方向;业务配置序号与业务配置信息是一一对应的,由业务配置序号可以获得出业务配置信息,业务配置信息中包括用于表示NAT业务的NAT转换方向,NAT转换方向即表示在入接口还是出接口进行NAT业务。

根据NAT属性,确定报文信息中用于做NAT转换的第一IP地址;其中,NAT属性中包括可以表示出NAT业务是转源还是转目的的信息。

根据NAT地址池IP信息,对第一IP地址进行转换方向为第一方向、类型为第一类型的NAT转换处理。

本申请实施例提供的技术方案中,根据待处理报文的报文信息,确定该报文信息对应的第一报文匹配项,并在预设的报文匹配项中匹配第一报文匹配项;在匹配到第一报文匹配项时,则根据预设匹配对应关系获取该第一报文匹配项对应的第一NAT业务匹配信息,并根据第一NAT业务匹配信息对待处理报文进行NAT转换处理。通过本技术方案,可以在预设的报文匹配项中通过一次查找匹配第一报文匹配项,快速地获取对应的NAT业务匹配信息,从而通过获取NAT业务匹配信息对待处理报文进行NAT处理。这样,减少了查找的次数,提高了NAT业务的匹配效率,提高了报文转发效率。

本方案通过一次查找指令即可得到该业务报文所属的NAT地址范围和相应的NAT业务类型,在大量NAT业务配置且NAT业务配置下引用的ACL比较复杂的情况也适用。本方案能够极大地降低了查找次数、提高了NAT业务的匹配效率,且极大地提高了报文转发效率,实现设备新建转发性能加速。

本申请实施例还提供一种NAT业务快速处理方法的实施例,如图4-1所示,包括如下步骤。

S401,当监测到第二NAT业务的配置时,获取配置中包括的第二NAT匹配规则和第二NAT业务的业务配置信息。

第二NAT匹配规则中设定第二ACL,第二NAT业务的业务配置信息包括NAT属性2、NAT业务编号2、业务配置序号2以及NAT地址池IP信息2。

S402,根据第二ACL生成第二报文匹配项,并根据第二NAT业务的业务配置信息确定第二NAT业务匹配信息。

第二ACL展开生成的第二报文匹配项中包括第二KEY1值和第二掩码1值、第二KEY2值和第二掩码2值、第二KEY3值、第二KEY4值。其中,第二KEY1值和第二掩码1值表示第二NAT业务的配置中的源IP地址,第二KEY2值和第二掩码2值表示第二NAT业务的配置中的目的IP地址,第二KEY3值表示第二NAT业务的配置中的源端口号,第二KEY4值表示第二NAT业务的配置中的目的端口号。

所确定出的第二NAT业务匹配信息包括NAT属性2、NAT业务编号2、业务配置序号2以及NAT地址池IP信息2。

S403,按照业务优先级由高到低的存储顺序,根据第二NAT业务的业务优先级,在TCAM中存储或插入第二NAT业务中各第二报文匹配项和第二NAT业务匹配信息的对应关系。

在TCAM中已存储的对应关系包括:NAT业务1中报文匹配项1和NAT业务匹配信息1的对应关系、NAT业务3中报文匹配项3和NAT业务匹配信息3的对应关系、NAT业务4中报文匹配项4和NAT业务匹配信息4的对应关系。NAT业务按照优先级从高到低的顺序为:NAT业务1、NAT业务3、NAT业务4。

在存储区域1中所存储的报文匹配项中按照优先级从高到低的顺序存储为:报文匹配项1、报文匹配项3、报文匹配项4。存储区域2中所存储的NAT业务匹配信息中按照优先级从高到低的顺序存储为:报文匹配项1、报文匹配项3、报文匹配项4。

其中,第二NAT业务的优先级高于NAT业务3、低于NAT业务1。则对于TCAM中已存储的对应关系,将第二NAT业务(即NAT业务2)中各第二报文匹配项(即报文匹配项2)和第二NAT业务匹配信息(即NAT业务匹配信息2)的对应关系插入到NAT业务1中报文匹配项1和NAT业务匹配信息1的对应关系之后、NAT业务3中报文匹配项3和NAT业务匹配信息3的对应关系之前。

对于存储区域1中所存储的报文匹配项,将第二报文匹配项(即报文匹配项2)插入至报文匹配项1和报文匹配项3之间,插入后存储区域1中所存储的报文匹配项的顺序为:报文匹配项1、报文匹配项2、报文匹配项3、报文匹配项4。

对于存储区域2中存储的NAT业务匹配信息,将第二NAT业务匹配信息(即NAT业务匹配信息2)插入至NAT业务匹配信息1和NAT业务匹配信息3之间,插入后存储区域2中所存储的NAT业务匹配信息的顺序为:NAT业务匹配信息1、NAT业务匹配信息2、NAT业务匹配信息3、NAT业务匹配信息4。

具体的,存储区域1、存储区域2和TCAM的关系可以如图4-2所示。

除了按照业务的优先级进行存储以外,还可以按照ACL优先级由高到低的存储顺序,根据第二ACL的ACL优先级,在TCAM中用于存储第二NAT业务的报文匹配项和业务匹配信息的对应关系中,存储或插入第二报文匹配项和第二NAT业务匹配信息的对应关系。

S404,获取待处理报文的报文信息。

获取的报文信息包括源IP地址1、目的IP地址1、源端口号1和目的端口号1。

S405,确定报文信息对应的第一报文匹配项,在预设的报文匹配项中匹配第一报文匹配项。

其中,第一报文匹配项中包括第一KEY1值和第一掩码1值、第一KEY2值和第一掩码2值、第一KEY3值和第一掩码3值、第一KEY4值和第一掩码4值。其中,第一KEY1值和第一掩码1值表示报文信息中的源IP地址1,第一KEY2值和第一掩码2值表示报文信息中的的目的IP地址1,第一KEY3值表示报文信息中的源端口号1,第一KEY4值表示报文信息中的目的端口号1。

在TCAM的存储区域1中经过一次匹配查找,匹配第一报文匹配项。假设匹配到报文匹配项2,即报文匹配项2中第一KEY1值和第一掩码1值的组合表示的源IP地址与报文信息中的源IP地址1相同,报文匹配项2中第一KEY2值和第一掩码2值的组合表示的目的IP地址与报文信息中的目的IP地址1相同,报文匹配项2中第一KEY3值表示的源端口号与报文信息的源端口号1相同,报文匹配项2中第一KEY4值表示的目的端口号与报文信息的目的端口号1相同。

S406,若匹配到第一报文匹配项,则根据预设匹配对应关系获取第一报文匹配项对应的第一NAT业务匹配信息。

具体的,存储区域1中存储预设的报文匹配项,存储区域2中存储NAT业务匹配信息,TCAM中存储预设的报文匹配项和NAT业务匹配信息的预设匹配对应关系。当在TCAM中匹配到第一报文匹配项时,可以根据对应关系2获取所述存储区域2中存储的NAT业务匹配信息。具体的匹配过程可以如图4-3所示。

所获取的第一NAT业务匹配信息包括NAT属性1、NAT业务编号1、业务配置序号1以及NAT地址池IP信息1。其中,NAT属性1包括Src/Dst1、PAT1、Port Pre Served1字段。

第一NAT业务匹配信息所包括的信息如下表4所示:

表4

S407,根据业务编号,确定第一NAT业务的NAT类型为第一类型。

上述表4中,第一NAT业务匹配信息中的NAT业务编号1为Nat cfg1,Nat cfg1即为第一NAT业务的编号。

S408,根据业务配置序号,确定第一NAT业务的配置中NAT转换方向为第一方向。

上述表4中,第一NAT业务匹配信息中的业务配置序号1为Cfg Seq Num1。Cfg Seq Num 1表示NAT业务的NAT转换方向为入接口进行NAT业务,即第一方向为入接口进行NAT业务的方向。

S409,根据NAT属性,确定报文信息中用于做NAT转换的第一IP地址。

上述表4中,第一NAT业务匹配信息中的NAT属性1包括Src/Dst1、PAT1、Port Pre Served1字段。根据Src/Dst1、PAT1、Port Pre Served1字段中所包括的数据,可以确定第一IP地址为目的IP地址192.168.1.1。

S410,根据NAT地址池IP信息,对第一IP地址进行转换方向为第一方向、类型为第一类型的NAT转换处理。

上述表4中,第一NAT业务匹配信息中的NAT地址池IP信息1为NAT IP Pool Info1。在入接口处进行NAT业务,对192.168.1.1进行第一类型的NAT转换,转换成为NAT地址池IP信息中的地址192.168.2.10。

本申请实施例解决了同一接口下大量NAT业务配置下匹配TCAM花费时间较多,造成设备新建转发性能下降的问题。按照同一接口下NAT业务配置的ACL不能重复的特点,使用一次查找就可以得到该业务报文所属的NAT地址范围和相应的NAT业务类型,实现设备新建转发性能加速。

相应于上述NAT业务快速处理方法实施例,本申请实施例还提供一种NAT业务快速处理装置,如图5所示,该NAT业务快速处理装置包括:

第一获取模块510,用于获取待处理报文的报文信息;

确定模块520,用于确定报文信息对应的第一报文匹配项,在预设的报文匹配项中匹配第一报文匹配项;报文匹配项根据本地NAT匹配规则中ACL设定的匹配元素生成;

第二获取模块530,用于若匹配到第一报文匹配项,则根据预设匹配对应关系获取第一报文匹配项对应的第一NAT业务匹配信息,并根据第一NAT业务匹配信息对待处理报文进行NAT转换处理;其中,预设匹配对应关系包括报文匹配项和NAT业务匹配信息的对应关系,与报文匹配项对应的NAT业务匹配信息包括生成报文匹配项根据的本地NAT匹配规则所属NAT业务的业务配置信息。

可选地,装置还可以包括:

第三获取模块,用于当监测到第二NAT业务的配置时,获取配置中包括的第二NAT匹配规则和第二NAT业务的业务配置信息,第二NAT匹配规则中设定第二ACL;

生成模块,用于根据第二ACL生成第二报文匹配项,并根据第二NAT业务的业务配置信息确定第二NAT业务匹配信息;

存储模块,用于在预设匹配对应关系中存储第二报文匹配项和第二NAT业务匹配信息的对应关系。

可选地,第二NAT业务的业务配置信息包括第二NAT业务的业务优先级,则存储模块还用于:

按照业务优先级由高到低的存储顺序,根据第二NAT业务的业务优先级,在TCAM中存储或插入第二NAT业务中各第二报文匹配项和第二NAT业务匹配信息的对应关系。

可选地,第二ACL包括第二ACL的ACL优先级,则存储模块还用于:

按照ACL优先级由高到低的存储顺序,根据第二ACL的ACL优先级,在TCAM中用于存储第二NAT业务的报文匹配项和业务匹配信息的对应关系中,存储或插入第二报文匹配项和第二NAT业务匹配信息的对应关系。

可选地,第一NAT业务匹配信息包括:NAT属性、业务编号、业务配置序号以及NAT地址池IP信息,则第二获取模块230具体用于:

根据业务编号,确定第一NAT业务的NAT类型为第一类型;

根据业务配置序号,确定第一NAT业务的配置中NAT转换方向为第一方向;

根据NAT属性,确定报文信息中用于做NAT转换的第一IP地址;

根据NAT地址池IP信息,对第一IP地址进行转换方向为第一方向、类型为第一类型的NAT转换处理。

本申请实施例提供的技术方案中,根据待处理报文的报文信息,确定该报文信息对应的第一报文匹配项,并在预设的报文匹配项中匹配第一报文匹配项;在匹配到第一报文匹配项时,则根据预设匹配对应关系获取该第一报文匹配项对应的第一NAT业务匹配信息,并根据第一NAT业务匹配信息对待处理报文进行NAT转换处理。通过本技术方案,可以在预设的报文匹配项中通过一次查找,匹配到第一报文匹配项,并快速地获取对应的NAT业务匹配信息,从而通过获取NAT业务匹配信息对待处理报文进行NAT处理。这样,减少了查找的次数,提高了NAT业务的匹配效率,提高了报文转发效率。

相应于上述NAT业务快速处理方法实施例,本申请实施例还提供了一种网络设备,如图6所示,包括处理器610和机器可读存储介质620,机器可读存储介质620存储有能够被处理器610执行的机器可执行指令。

另外,如图6所示,网络设备还可以包括:通信接口630和通信总线640;其中,处理器610、机器可读存储介质620、通信接口630通过通信总线640完成相互间的通信,通信接口630用于上述网络设备与其他设备之间的通信。

处理器610促使执行上述任一种NAT业务快速处理方法的实施例,其中,NAT业务快速处理方法包括:

获取待处理报文的报文信息;

确定报文信息对应的第一报文匹配项,在预设的报文匹配项中匹配第一报文匹配项;报文匹配项根据本地NAT匹配规则中ACL设定的匹配元素生成;

若匹配到第一报文匹配项,则根据预设匹配对应关系获取第一报文匹配项对应的第一NAT业务匹配信息,并根据第一NAT业务匹配信息对待处理报文进行NAT转换处理;其中,预设匹配对应关系包括报文匹配项和NAT业务匹配信息的对应关系,与报文匹配项对应的NAT业务匹配信息包括生成报文匹配项根据的本地NAT匹配规则所属NAT业务的业务配置信息。

本申请实施例提供的技术方案中,根据待处理报文的报文信息,确定该报文信息对应的第一报文匹配项,并在预设的报文匹配项中匹配第一报文匹配项;在匹配到第一报文匹配项时,则根据预设匹配对应关系获取该第一报文匹配项对应的第一NAT业务匹配信息,并根据第一NAT业务匹配信息对待处理报文进行NAT转换处理。通过本技术方案,可以在预设的报文匹配项中通过一次查找,匹配到第一报文匹配项,并快速地获取对应的NAT业务匹配信息,从而通过获取NAT业务匹配信息对待处理报文进行NAT处理。这样,减少了查找的次数,提高了NAT业务的匹配效率,提高了报文转发效率。

上述通信总线640可以是PCI(Peripheral Component Interconnect,外设部件互连标准)总线或EISA(Extended Industry Standard Architecture,扩展工业标准结构)总线等。该通信总线640可以分为地址总线、数据总线、控制总线等。为便于表示,图6中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

机器可读存储介质620可以包括RAM(Random Access Memory,随机存取存储器),也可以包括NVM(Non-Volatile Memory,非易失性存储器),例如至少一个磁盘存储器。另外,机器可读存储介质620还可以是至少一个位于远离前述处理器的存储装置。

上述处理器610可以是通用处理器,包括CPU(Central Processing Unit,中央处理器)、NP(Network Processor,网络处理器)等;还可以是DSP(Digital Signal Processing,数字信号处理器)、ASIC(Application Specific Integrated Circuit,专用集成电路)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)或其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。

相应于上述网络设备测试方法的实施例,本申请实施例还提供了一种机器可读存储介质,存储有机器可执行指令,在被处理器调用和执行时,机器可执行指令促使处理器实现上述NAT业务快速处理方法。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于NAT业务快速处理装置、网络设备和机器可读存储介质的实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

以上所述仅为本申请的较佳实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本申请的保护范围内。

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