发明内容
有鉴于此,本发明提供一种NAT属性自适应方法及装置,以解决现有方案在NAT属性改变时,会话表冗余或无法进行NAT的问题。
为此,本发明采用如下技术方案:
一种NAT属性自适应方法,包括以下步骤:以数据包IP五元组或部分IP五元组为索引查找会话表,匹配包含NAT_ID的会话表项;并且,以数据包关键字为索引查找规则表,匹配包含NAT_ID的规则表项;判断所述会话表项中的NAT_ID和所述规则表项中的NAT_ID是否相同,若是,按照会话表项进行NAT;否则,删除所述会话表项,按照所述规则表项重新建立会话表项,并按照重新建立的会话表项进行NAT。
优选地,所述NAT属性是指地址池;所述数据包关键字是指数据包IP五元组和NAT设备出接口,或者,数据包部分IP五元组和NAT设备出接口,或者,数据包IP五元组和路由下一跳,或者,数据包部分IP五元组和路由下一跳;所述NAT_ID是规则表和会话表新增加的字段,不同地址池对应的NAT_ID不同。
或者,所述NAT属性是指地址池;所述数据包关键字是指数据包IP五元组和NAT设备出接口,或者,数据包部分IP五元组和NAT设备出接口,或者,数据包IP五元组和路由下一跳,或者,数据包部分IP五元组和路由下一跳;所述NAT_ID为地址池ID。
其中,各地址池的NAT_ID不变,或者,各地址池的NAT_ID随着地址池的地址范围的改变而改变。
优选地,所述NAT属性是指地址池中的地址范围;所述数据包关键字是指数据包IP五元组、部分IP五元组、IP五元组和NAT设备出接口、IP五元组和路由下一跳、部分IP五元组和NAT设备出接口,或者,部分IP五元组和路由下一跳;所述NAT_ID是规则表和会话表新增加的字段,地址池中地址范围改变时,NAT_ID随之改变。
或者,所述NAT属性是指地址池中的地址范围;所述数据包关键字是指数据包IP五元组、部分IP五元组、IP五元组和NAT设备出接口、IP五元组和路由下一跳、部分IP五元组和NAT设备出接口,或者,部分IP五元组和路由下一跳;所述NAT_ID为地址池ID,地址池中地址范围改变时,NAT_ID随之改变。
优选地,所述NAT属性是指NAT类型、带宽或事件日志;所述数据包关键字是指数据包IP五元组、部分IP五元组、IP五元组和NAT设备出接口、IP五元组和路由下一跳、部分IP五元组和NAT设备出接口,或者,部分IP五元组和路由下一跳;所述NAT_ID是规则表和会话表新增加的字段,不同NAT类型、带宽或事件日志对应的NAT_ID不同。
其中,在查找所述会话表时,除了以数据包IP五元组或部分IP五元组为索引,还以NAT设备出接口为索引。
所述方法还包括:当匹配到会话表项但没有匹配到规则表项时,删除匹配的会话表项。
一种NAT属性自适应装置,包括用于接收数据包的接口单元、存储有NAT转换关系的会话表、用于查找会话表的会话索引单元、存储有NAT转换规则的规则表、用于查找规则表的规则索引单元,以及用于执行NAT转换的转换单元,所述会话表和规则表的各表项结果中都包括NAT_ID;所述装置还包括NAT_ID配置单元、判断单元和会话表整理单元;所述NAT_ID配置单元,用于配置和更新会话表和规则表中的NAT_ID;所述判断单元,用于判断匹配的会话表项中的NAT_ID和匹配的会话表项中的NAT_ID是否相同,若相同,发出相同指示,否则,发出不相同指示;所述会话表整理单元,用于在所述判断单元发出不相同指示时,删除匹配的会话表项,按照匹配的规则表项重新建立会话表项;所述转换单元,在所述判断单元发出相同指示时,直接按照匹配的会话表项进行NAT,在所述判断单元发出不相同指示时,在所述会话表整理单元对会话表进行整理后,利用重新建立的会话表项进行NAT。
优选地,所述NAT_ID配置单元,在会话表和规则表中新增字段配置NAT_ID,配置的NAT_ID与地址池、地址池的地址范围、NAT类型、带宽或事件日志相对应;所述会话索引单元:在NAT_ID与地址池对应时,以数据包全部/部分IP五元组为关键字索引会话表;在NAT_ID与地址池的地址范围、NAT类型、带宽或事件日志相对应时,以数据包全部/部分IP五元组为关键字索引会话表,或者以全部/部分IP五元组和NAT设备出接口为关键字索引会话表;所述规则索引单元:在NAT_ID与地址池对应时,采用数据包全部/部分IP五元组和NAT设备出接口/路由下一跳为关键字索引规则表;在NAT_ID与地址池的地址范围、NAT类型、带宽或事件日志相对应时,以数据包全部/部分IP五元组为关键字索引规则表,或者以全部/部分IP五元组和NAT设备出接口/路由下一跳为关键字索引规则表。
或者,所述NAT_ID配置单元,配置系统原有的地址池ID为NAT_ID,该NAT_ID与地址池或地址池的地址范围相对应;所述会话索引单元:在NAT_ID与地址池对应时,以数据包全部/部分IP五元组为关键字索引会话表;在NAT_ID与地址池的地址范围相对应时,以数据包全部/部分IP五元组为关键字索引会话表,或者以全部/部分IP五元组和NAT设备出接口为关键字索引会话表;所述规则索引单元:在NAT_ID与地址池对应时,采用数据包全部/部分IP五元组和NAT设备出接口/路由下一跳为关键字索引规则表;在NAT_ID与地址池的地址范围相对应时,以数据包全部/部分IP五元组为关键字索引规则表,或者以全部/部分IP五元组和NAT设备出接口/路由下一跳为关键字索引规则表。
其中,所述NAT_ID配置单元,在配置地址池ID为NAT_ID时,配置NAT_ID随着地址池中地址范围的改变而改变。
所述判断单元,进一步用于在所述会话索引单元匹配到会话表项、但所述规则索引单元表项没有匹配到规则表项时,发出删除指示;所述会话表整理单元,在所述判断单元发出删除指示时,负责删除匹配的会话表项。
其中,所述装置为独立存在的NAT设备、集成在路由器或防火墙设备中的NAT功能实体,或者是具有NAT功能的路由器或防火墙设备。
对于上述技术方案的技术效果分析如下:
(1)由于在规则表和会话表的匹配结果中新增加了表示NAT属性的NAT_ID,并且通过比较会话表和规则表中NAT_ID是否一致,当不一致时,确定发生了NAT属性变化,此时,立即删除旧会话表项,并按照规则表新建会话表项。本发明在新建会话表项时,就已删除原会话表项,不会造成大量无用会话表项充斥会话表,有效解决了会话表冗余的问题。本发明可以随着NAT规则的变化,及时更新会话表,实现NATS属性自适应,保证NAT的正常运行。
(2)对于一个ISP/NIC有多个链路的情况,当一个ISP下的某个出接口故障时,可以切换到另外的出接口转发数据包,由于出接口都属于一个ISP,因此不会出现数据包丢失的问题,这样实现简单,不需要新建会话流表。
(3)可以通过使用系统原有的地址池ID作为NAT_ID的方法实现链路切换和地址切换,这种方式不需要在会话表和规则表中新增字段,实现简单。
具体实施方式
如前所述,现有对于NAT的处理流程,是首先查找会话表,如果查找到就直接进行NAT,如果没有查找到,再查找规则表,进行NAT后,建立会话表项。这就存在一个问题,当NAT属性改变时,即规则表中记录的NAT属性改变时,原会话表并没有更新,所匹配上的会话表项实际上是NAT属性未改变之前的,这就导致现有方案没有及时根据NAT属性的变化而更新会话表,即使在某些情况下以出接口索引会话表,也会存在诸如会话表冗余等问题。
本发明对现有NAT方案进行改进,其中关键在于两点,一是对会话表和规则表进行了改进:在会话表和规则表中增加一个NAT属性的标识,以下统称为NAT_ID;二是对NAT处理流程上的改进:在匹配会话表之后,还要对规则表进行查找,判断会话表和规则表中的NAT_ID是否一致,以此决定是否对会话表进行更新。
概括而言,本发明提供的方法包括以下步骤:
[1]NAT设备从私网接收数据包;
[2]以数据包IP五元组或部分IP五元组为索引查找会话表,匹配包含NAT ID的会话表项;
[3]以数据包关键字为索引查找规则表,匹配包含NAT_ID的规则表项;
[4]判断所述会话表项中的NAT_ID和所述规则表项中的NAT_ID是否相同,若是,执行步骤[5];否则,执行步骤[6];
[5]按照会话表项进行NAT,最后执行步骤[7];
[6]删除所述会话表项,按照所述规则表项重新建立会话表项,并按照重新建立的会话表项进行NAT,最后执行步骤[7];
[7]NAT设备将数据包发送至公网。
实际上,之所以对会话表和规则表都进行查找,目的之一是要比较二者中的NAT_ID是否相同,因此,对查找会话表和规则表的顺序不作限定,即可以如上所述先查找会话表,然后查找规则表,也可以先查找规则表,然后再查找会话表。
其中,对于NAT_ID有多种设置方式,例如可以在原有会话表和规则表中新增加字段用于配置,或者,对于链路切换和地址切换,可以直接采用现有地址池ID作为NAT_ID。
下面结合附图,分别对各种NAT属性变化时本发明的不同处理方式予以介绍,重点以链路切换和地址切换为例进行说明,对于NAT类型、带宽和事件日志等NAT属性改变的处理方式,基本上与地址切换类似。
首先介绍方法实施例一:
在现有方案中,为了避免在链路切换时匹配原错误会话表项,增加了NAT出接口索引限制,虽然可以正确进行NAT,却导致原有会话表项和新会话表项的同时存在,造成会话表冗余的问题,究其原因,就在于利用没有根据规则表最新规则对会话表进行更新。
在本实施例中,在会话表和规则表的查询结果中,增加了一个字段,该字段用于存储表示不同地址池的NAT_ID,不同的地址池对应的NAT_ID不同,当地址池改变时,对应的NAT_ID随之变化。
在查找会话表时,仅以数据包IP五元组或部分IP五元组进行索引。不论是否匹配到会话表项,都要进一步查找规则表。而在查找规则表时,是以“数据包IP五元组+NAT设备出接口或路由下一跳”或者“数据包部分IP五元组+NAT设备出接口或路由下一跳”为关键字对规则表进行索引。参见表1和表2,分别为会话表和规则表示例。
表1
索引字段 |
匹配结果 |
IP五元组或部分IP五元组 |
匹配的全局地址、NAT_ID等 |
.... |
.... |
表2
索引字段 |
匹配结果 |
全部/部分IP五元组及NAT出接口 |
匹配的地址池、NAT_ID、NAT类型等 |
.... |
.... |
这样,当链路切换时,查找会话表会匹配到原会话表项,当查找规则表时,由于在关键字中增加了出接口,必定会匹配到最新的规则表项,同时,由于在会话表项和规则表项的结果中都增加了NAT_ID,而不同地址池的NAT_D又不同,那么匹配的原会话表项和匹配的新规则表项中的NAT_ID必定不同,此时,将匹配的会话表项删除,根据匹配的规则表项建立一条新的会话表项,并按照新建的会话表项进行NAT。
由此,在新建会话表项时,就已删除原会话表项,不会造成大量无用会话表项充斥会话表,有效解决了会话表冗余的问题。
参见图2,为实施例一流程图,包括:
步骤201:NAT设备从私网接收数据包;
步骤202:以数据包IP五元组或部分IP五元组查找会话表,判断是否匹配上会话表项,如果是,执行步骤203分支,否则,执行步骤211分支;
步骤203:获取匹配的会话表项中的NAT_ID;
步骤204:以“数据包IP五元组+NAT设备出接口或路由下一跳”或“数据包部分IP五元组+NAT设备出接口或路由下一跳”为关键字索引规则表,判断是否匹配上规则表项,如果是,执行步骤205,否则,执行步骤210;
步骤205:获取匹配的规则表项中的NAT_ID;
步骤206:比较步骤203获取的NAT_ID和步骤205获取的NAT_ID是否相同,如果相同,执行步骤207,否则,执行步骤208;
步骤207:根据会话表项中的转换关系进行NAT,最后执行步骤212;
步骤208:删除匹配的会话表项,然后执行步骤209;
步骤209:根据匹配的规则表项,重新建立会话表项;并根据重新建立的会话表项进行NAT;
步骤210:删除匹配的会话表项,然后结束流程;
步骤211:以“数据包IP五元组+NAT设备出接口或路由下一跳”或“数据包部分IP五元组+NAT设备出接口或路由下一跳”为关键字索引规则表,判断是否匹配上规则表项,如果是,执行步骤209,否则,认为没有符合该数据包的NAT规则,结束流程;
步骤212:将数据包转发到公网。
其中,对于步骤211分支,是表示数据包是某类的第一个数据包,之前没有建立的会话表项,因此,直接按照规则表转换后,建立会话表项,这种情况下处理流程与现有方案的处理方式相同。
下面以一个具体实例进行说明。
参见图3,某NAT设备上具有两个出接口,分别为出接口A和出接口B,现假设初始配置如下:
地址池1:ISP1为其分配地址为16.0.0.1~16.0.0.32,配置NAT_ID1=1;
地址池2:ISP2为其分配地址为63.0.0.1~63.0.0.32,配置NAT_ID2=2;
出接口A对应的链路连接ISP1;
出接口B对应的链路连接ISP2;
内部计算机IP地址为10.0.0.1;
公网服务器IP地址为5.0.0.1;
配置的两条规则表项为:
规则表项1:出接口为A且源地址为10.0.0.0/24的用户使用地址池1进行基于地址的NAT,同时保存NAT_ID1;
规则表项2:出接口为B且源地址为10.0.0.0/24的用户使用地址池2进行基于地址的NAT,同时保存NAT_ID2;
正常情况下,假设访问服务器5.0.0.1的主路由是从出接口A的ISP1来访问的。
当内部计算机首个数据包到达时,以数据包IP五元组查询会话表,由于是第一个数据包,无法匹配成功;然后以“IP五元组+出接口A””查找规则表,匹配上规则表项1,得到地址池1和NAT_ID1,从地址池1中选择一个地址16.0.0.1进行NAT,同时按照规则表项1建立包括NAT_ID的会话表项1:10.0.0.1->16.0.0.1+NAT_ID1,最后转发数据包。
当内部计算机后续数据包到达时,以数据包IP五元组查询会话表,匹配会话表项1;然后以“IP五元组+出接口A”查找规则表,匹配规则表项1,由于会话表项1和规则表项1中的NAT_ID都为NAT_ID1,则直接按照会话表项1的转换关系进行NAT,最后转发数据包。
这时,如果ISP1发生链路故障,则路由切换到出接口B的ISP2的备用链路上。
此时,当内部计算机后续数据包到达时,以数据包IP五元组查询会话表,匹配会话表项1;然后以“IP五元组+出接口B”查找规则表,会匹配上规则表项2;由于会话表项1中NAT_ID为NAT_ID1,而规则表项2中NAT_ID为NAT_ID2,二者不一致,所以执行删除会话表项1的操作,然后,从匹配的规则表项2中的地址池2中选择一个地址63.0.0.1建立新的会话表项2:10.0.0.1->63.0.0.1+NAT_ID2,然后按照新建的会话表项2进行NAT,最后转发数据包。
上述例子是针对不同NAT出接口对应不同地址池的情况,对于多个出接口共享一个地址池的情况,本实施例比现有方案更简单。
仍请参见图3,假设出接口C和出接口D对应的链路都连接ISP3,并共享一个地址池3,地址池3对应的NAT_ID3=3;
配置规则表项3:出接口为C和出接口D且源地址为10.0.0.0/24的用户使用地址池3进行基于地址的NAT,同时保存NAT_ID3;
正常情况下,假设访问服务器5.0.0.1的主路由是从出接口C的ISP3来访问的。
当出接口C故障时,切换到出接口D,由于出接口C和D都共享一个NAT_ID,而且在查找会话表项时仅按照数据包IP五元组进行索引,因此,匹配的会话表项和规则表项中的NAT_ID是一致的,直接进行NAT,然后转发数据包。
这样,在一个ISP下的某个出接口故障时,可以切换到另外的出接口转发数据包,由于出接口都属于一个ISP,因此不会出现数据包丢失的问题,这样实现简单,不需要新建会话流表。
下面介绍方法实施例二:
在实施例一中,由于是涉及到出接口变化的链路切换,因此,在索引规则表的关键字中包括NAT设备出接口,同时为了避免会话表冗余,在索引会话表的关键字中不包括NAT设备出接口。而在其余NAT属性变化时,不涉及出接口的变化,对上述两个关键字不作严格限制,此时,索引规则表的关键字可以仅是IP五元组、部分IP五元组,也可以是“IP五元组/部分IP五元组+NAT设备出接口”;同理,索引会话表的关键字,可以仅是IP五元组、部分IP五元组,也可以是“IP五元组/部分IP五元组+NAT设备出接口”。
在实施例一中,NAT_ID随着地址池的变化而变化,具体地址池中地址范围的变化是否导致NAT_ID的变化则不关心,只要满足各地址池的NAT_ID不同即可,也就是说,如果某地址池中地址池范围发生了变化,可以对NAT_ID进行改变,也可以不作改变。在本实施例中,对于NAT属性为地址池中地址范围的情形,NAT_ID是随着地址池中地址范围的变化而变化的;对于NAT属性为NAT类型,NAT_ID是随着NAT类型的变化而变化的,其余NAT属性与NAT_ID变化对应关系类似。
下面仍以NAT属性为地址池中地址范围的实例进行说明。
参见图4,某NAT设备上具有多个出接口,其中包括出接口n,现假设初始配置如下:
地址池n:ISP_n为其分配地址为160.0.0.1~160.0.0.32,配置NAT_IDn=n;
出接口n对应的链路连接ISP_n;
内部计算机IP地址为100.0.0.1;
公网服务器IP地址为50.0.0.1;
配置的规则表中包括以下一条规则表项:
规则表项n:出接口为n且源地址为100.0.0.0/24的用户使用地址池n进行基于地址的NAT,同时保存NAT_IDn;
正常情况下,假设访问服务器50.0.0.1的主路由是从出接口n的ISP_n来访问的。
当内部计算机首个数据包到达时,以数据包IP五元组查询会话表,由于是第一个数据包,无法匹配成功;然后以“IP五元组+出接口n””查找规则表,匹配上规则表项n,得到地址池n和NAT_IDn,从地址池n中选择一个地址160.0.0.1进行NAT,同时按照规则表项n建立包括NAT_IDn的会话表项n:100.0.0.1->160.0.0.1+NAT_IDn,最后转发数据包。
当内部计算机后续数据包到达时,以数据包IP五元组查询会话表,匹配会话表项1;然后以“IP五元组+出接口n”查找规则表,匹配规则表项n,由于会话表项n和规则表项n中的NAT_ID都为NAT_IDn,则直接按照会话表项n的转换关系进行NAT,最后转发数据包。
这时,修改地址池n中的地址范围,将其修改为:
地址池n:ISP_n为其分配地址为180.0.0.1~180.0.0.32,配置NAT_IDm=m;同时规则表项n更新为:出接口为n且源地址为100.0.0.0/24的用户使用地址池n进行基于地址的NAT,同时保存NAT_IDm;
当内部计算机后续数据包到达时,以数据包IP五元组查询会话表,匹配会话表项n;然后以“IP五元组+出接口n”查找规则表,匹配规则表项n,由于会话表项n的NAT_ID为NAT IDn,而规则表项n的NAT_ID为NAT_IDm,二者不一致,所以执行删除会话表项n的操作,然后,从匹配的规则表项n中的地址池n中选择一个地址180.0.0.1建立新的会话表项m:10.0.0.1->180.0.0.1+NAT_IDm,然后按照新建的会话表项m进行NAT,最后转发数据包。
由此,对于一个ISP/NIC的多条链路进行切换时,如果使用同一个地址池,可以不建新的会话表项,直接切换到新链路上,连接不中断,不影响正常业务。
下面介绍实施例三:
在实施例一和实施例二中,是在会话表和规则表中新增字段表示NAT_ID,而在本实施例中,是以NAT设备中原有的地址池ID作为NAT_ID,也就是在会话表和规则表的结果中加入地址池ID,地址池ID用以区别各地址池,显然各地址池的地址池ID不同。本实施例适应于与地址变化有关的NAT属性自适应。
对于链路切换,只要保证各地址池ID不同即可,对于当地址池中地址范围发生改变时,地址池ID是否也变化则都适用,只要保证变化后的地址池ID也是唯一的即可。采用本实施例对链路切换的处理过程,与实施例一类似,在查找会话表时,也是仅以数据包IP五元组或部分IP五元组为索引;在查找规则表时,则是以“数据包IP五元组+NAT设备出接口”或“数据包部分IP五元组+NAT设备出接口”为索引。然后比较会话表项和规则表项中NAT_ID(地址池ID)是否相同,以判断是否需要新建会话表项,具体实现与实施例一相同。
对于地址切换,则要满足当地址池中地址范围变化时,地址池ID也相应变化,并且唯一。采用本实施例对地址切换的处理过程,与实施例二类似,在查找会话表时,可以数据包IP五元组、部分IP五元组、“IP五元组+出接口”或“部分IP五元组+出接口”为索引;在查找规则表时,可以以IP五元组、部分IP五元组,也可以是“IP五元组/部分IP五元组+NAT设备出接口”为索引。然后比较会话表项和规则表项中NAT_ID(地址池ID)是否相同,以判断是否需要新建会话表项,具体实现与实施例二相同。
实施例三实现链路切换和地址切换的方式比较简单,直接利用地址池ID即可,不需要在会话表和规则表中新增字段,节省系统资源。
与上述方法相对应,本发明还提供一种NAT属性自适应装置。该装置可以是专用的NAT设备,也可以是集成在具有NAT功能的路由器或防火墙中的功能实体,或者也可以是具有NAT功能的路由器或防火墙设备。
参见图5,为本发明提供装置的结构示意图。
除了包括用于接收数据包的接口单元501、存储有NAT转换关系的会话表502、用于查找会话表的会话索引单元503、存储有NAT转换规则的规则表504、用于查找规则表的规则索引单元505,以及用于执行NAT转换的转换单元506之外,该装置还包括NAT_ID配置单元507、判断单元508和会话表整理单元509。
其中,会话表502和规则表504的各表项结果中都包括NAT_ID;NAT_ID配置单元507主要用于配置和更新会话表502和规则表504中的NAT_ID;判断单元508主要用于判断匹配的会话表项中的NAT_ID和匹配的会话表项中的NAT_ID是否相同,若相同,发出相同指示,否则,发出不相同指示;会话表整理单元509主要用于在判断单元508发出不相同指示时,删除匹配的会话表项,按照匹配的规则表项重新建立会话表项;转换单元506,在判断单元508发出相同指示时,直接按照匹配的会话表项进行NAT,在判断单元508发出不相同指示时,在会话表整理单元509对会话表进行整理后,利用重新建立的会话表项进行NAT。
对于匹配到会话表项但没有匹配到规则表项的情况,认为此时NAT规则已经变化,而会话表没有及时更新,因此需要删除匹配的会话表项。此时,判断单元508进一步用于在会话索引单元503匹配到会话表项、但规则索引单元505没有匹配到规则表项时,发出删除指示;会话表整理单元509在判断单元508发出删除指示时,负责删除匹配的会话表项。
其中,NAT_ID配置单元507对NAT_ID的具体配置方式可以有多种。优选地,采用在会话表502和规则表504中新增字段配置NAT_ID的方式,这种方式配置的NAT_ID与地址池、地址池的地址范围、NAT类型、带宽或事件日志相对应。在NAT_ID与地址池对应时,会话索引单元503以数据包全部/部分IP五元组为关键字索引会话表502;在NAT_ID与地址池的地址范围、NAT类型、带宽或事件日志相对应时,会话索引单元503以数据包全部/部分IP五元组为关键字索引会话表502,或者以全部/部分IP五元组和NAT设备出接口为关键字索引会话表502。在NAT_ID与地址池对应时,规则索引单元505采用数据包全部/部分IP五元组和NAT设备出接口为关键字索引规则表504;在NAT_ID与地址池的地址范围、NAT类型、带宽或事件日志相对应时,规则索引单元505以数据包全部/部分IP五元组为关键字索引规则表504,或者以全部/部分IP五元组和NAT设备出接口为关键字索引规则表504。
另外,NAT_ID配置单元507还可以选择配置系统原有的地址池ID为NAT_ID的方式。这种方式下配置的NAT_ID与地址池或地址池的地址范围相对应。在NAT_ID与地址池对应时,会话索引单元503以数据包全部/部分IP五元组为关键字索引会话表502;在NAT_ID与地址池的地址范围相对应时,会话索引单元503以数据包全部/部分IP五元组为关键字索引会话表502,或者以全部/部分IP五元组和NAT设备出接口为关键字索引会话表502。在NAT_ID与地址池对应时,规则索引单元505采用数据包全部/部分IP五元组和NAT设备出接口或路由下一跳为关键字索引规则表504;在NAT_ID与地址池的地址范围相对应时,规则索引单元505以数据包全部/部分IP五元组为关键字索引规则表504,或者以全部/部分IP五元组和NAT设备出接口或路由下一跳为关键字索引规则表504。这种配置方式下,NAT_ID配置单元507可以配置NAT_ID随着地址池中地址范围的改变而改变,此时,既可以实现链路切换,也可以实现地址切换。
对于NAT属性自适应装置的具体实现细节可参见方法实施例,在此不再赘述。
需要说明的是,上述实施例仅是以NAT为例进行介绍,本发明可以适用于进行IPV4和IPV6地址转换的NAT-PT(网络地址协议转换)。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。