一种对分片报文进行网络地址转换的方法及设备的制作方法

文档序号:7710562阅读:153来源:国知局
专利名称:一种对分片报文进行网络地址转换的方法及设备的制作方法
技术领域
本发明涉及数据通信领域,尤其涉及一种对分片报文进行网络地址转换 的方法及设备。
背景技术
目前,随着网络业务的快速发展,客户对业务的质量提出了越来越高的
要求。NAT (Network Address Translation,网络地址转换)业务是目前解决 IPV4地址缺乏的一种基本业务,通过改善它的质量可以有效地提高用户上 网的质量。
分片报文在实际的网络中大量存在,出接口 MTU (Maximum Transfer Unit,最大传输单元)过小会导致对过长报文进行分片,比如,MTU为1476 的GRE (Generic Routing Encapsulation,通用路由封装)隧道就要对包长为 1500的报文进行分片。而非首片先于首片到达出接口的情况也常常出现。 比如,在网络设备中使用虚接口时, 一个虛接口可绑定多个实接口,非首片 就有可能通过不同于首片的实接口先到达出接口。
对先于首片到达的分片进行公网地址分配时,被分配的公网地址只能用 于该私网地址且该公网地址没有生成过PAT条目。分配后,该公网地址就 从PAT地址转为非PAT地址,不能用于其它PAT转换,这能有效解决 RFC3022 (传统IP (Internet Protocol,网际互连协议)网络地址转换)中6.3 节——在NAPT (Network Address Port Translation,网络地址端口转换)设 置中夕卜发TCP/UDP ( Transmission Control Protocol / User Datagram Protocol, 传输控制协议/用户数据包协议)数据报的转换中提到的问题。
但是,公网地址一般很有限,且每一个公网地址在给非首片的分片做转 换前一般都已有PAT条目,因此大量先于首片到达的分片仍会被丢弃。采用緩存分片或首片信息的方式,如在申请号为03153685的专利中, 对先于首片到达的分片,先緩存起来,直至首片到达后才进行NAT转换, 同时保存下来的首片信息可供后续分片继续转发。但当分片大量到达时,内 存很快耗尽,后续分片仍会被丢弃。
现有技术中采用的緩存先于首片到达的分片的方法,不仅占用了内存、 延迟了报文转发,而且在超过存储分片报文内存大小时,报文大部分会被丢 弃。同样,緩存首片信息也有存储数量限制,存储与查找首片信息也占用相 当多处理器时间。

发明内容
本发明要解决的技术问题是提供一种对分片报文进行NAT的方法及设 备,以避免现有技术中存在的内网到外网NAT转换需要緩存首片信息或后 续分片,或先于首片到达的分片被丢弃的缺陷。
为解决上述问题,本发明提供了 一种对分片报文进行网络地址转换 (NAT)的方法,包括
NAT设备上配置有端口地址转换(PAT)表,该表中保存有私网地址、 源端口及公网地址、目的端口的对应关系;
当有分片报文到来时,所述NAT设备使用所述分片报文的源地址及源 端口信息到所述PAT表中进行匹配查找,如有匹配的PAT表项,则根据该 表项对该分片报文进行PAT处理;否则,创建PAT表项,并根据该创建的 表项对该分片才艮文进行PAT处理,其中,具有相同私网地址的分片报文经 PAT处理后的公网地址相同。
进一步地,上述方法还可具有以下特征
所述NAT设备上还配置有地址表,所述地址表中保存有/^网地址和私 网;也址的3于应关系;
则当没有匹配的PAT表项时,创建PAT表项,并根据该创建的表项对 该分片报文进行PAT处理是指
当没有匹配的PAT表项时,4吏用所述分片报文的源地址到所述地址表中进行匹配查找,如有匹配的地址表项,则利用该地址表项创建PAT条目, 并对该分片报文进行PAT处理;如没有匹配的地址表项,则创建地址表项 和PAT条目,并根据该创建的PAT条目对该分片报文进行PAT处理。
进一步地,上述方法还可具有以下特征
如所述NAT设备判断出所述分片报文为非首片,则采用 一 固定端口信 息作为所述源端口信息到所述PAT表中进行匹配查找。
进一步地,上述方法还可具有以下特征
如所述NAT设备判断出所述分片报文为非首片,则对该分片报文进行 PAT处理是指仅将该分片报文中的源地址信息替换为相应PAT表项中的 公网地址信息。
进一步地,上述方法还可具有以下特征
如果使用所述分片4艮文的源地址在所述地址表中查找到的匹配的公网 地址的所有端口已分配完,则选取其它有空闲端口的公网地址,并在所述地 址表中将该源地址对应的公网地址更新为该重新选取的公网地址。
进一步地,上述方法还可包括
将所述经过PAT处理的分片报文转发出去。
为解决上述问题,本发明还提供了 一种对分片报文进行网络地址转换 (NAT)的设备,包括存储单元、接收单元、匹配单元、表项生成单元及 PAT处理单元;
所述存储单元中保存有端口地址转换(PAT)表,该表中保存有私网地 址、源端口及公网地址、目的端口的对应关系;
所述接收单元用于将接收到的分片报文发送给所述匹配单元;
所述匹配单元用于^f吏用接收到的所述分片报文的源地址及源端口信息 到所述存储单元保存的所述PAT表中进行匹配查找,如查找到匹配的PAT 表项,则还用于将该表项及所述分片报文发送给所述PAT处理模块;如没 有查找到匹配的PAT表项,还用于发送PAT表项创建命令给表项生成单元, 并将所述分片报文发送给所述PAT处理模块;所述表项生成单元用于在接收到所述PAT表项创建命令后,创建PAT 表项,并将该表项发送给所述PAT处理模块;
所述PAT处理模块用于根据所述表项对所述分片报文进行PAT处理; 其中,具有相同私网地址的分片报文经PAT处理后的公网地址相同。
进一步地,上述设备还可具有以下特征
所述存储单元中还保存有地址表,所述地址表中保存有公网地址和私网 地址的对应关系;
所述匹配单元如在所述PAT表中没有查找到与所述分片报文匹配的 PAT表项,则还用于使用所述分片报文的源地址到所述地址表中进行匹配查 找,如查找到匹配的地址表项,则还用于向所述表项生成单元发送PAT表 项创建命令,该命令中携带该地址表项;如没有查找到到匹配的地址表项, 则还用于向所述表项生成单元发送PAT表项创建命令和地址表项创建命令;
所述表项创建单元还用于在接收到所述地址表项创建命令后,创建地址 表项。
进一步地,上述设备还可具有以下特征
如所述分片报文为非首片,则所述匹配单元用于采用 一 固定端口信息作 为所述源端口信息到所述PAT表中进行匹配查找。
进一步地,上述设备还可具有以下特征
如所述分片报文为非首片,则所述PAT处理单元用于仅将该分片报文 中的源地址信息替换为相应PAT表项中的公网地址信息。
与现有技术相比,由于本发明采用了不緩存先于首片到的分片、不緩存 首片信息的方式,因此达到了较好的分片报文NAT转换效果,且本发明配 置简单、高效。


图1为本发明实施例中首片报文进行NAT转换的示意图;图2为本发明实施例中非首片报文进行NAT转换的示意图;
具体实施例方式
下面将结合附图及实施例对本发明的技术方案进行更详细的说明。
本发明的基本构思是NAT设备上配置有PAT表,该表中保存有私网 地址、源端口及公网地址、目的端口的对应关系;
当有分片报文到来时,NAT设备使用该分片报文的源地址及源端口信 息到上述PAT表中进行匹配查找,如有匹配的PAT表项,则根据该表项对 该分片报文进行PAT处理;否则,创建PAT表项,并根据该创建的表项对 该分片报文进行PAT处理,其中,具有相同私网地址的分片报文经PAT处 理后的/>网地址相同。
为保证具有相同私网地址的分片报文经PAT处理后的公网地址相同, 还可以在NAT i殳备上配置一地址表,该地址表中保存有7>网地址和私网地 址的对应关系;
则上述当没有匹配的PAT表项时,创建PAT表项,并根据该创建的表 项对该分片报文进行PAT处理是指当没有匹配的PAT表项时,使用该分 片报文的源地址到该地址表中进行匹配查找,如有匹配的地址表项,则利用 该地址表项创建PAT条目,并对该分片报文进行PAT处理;如没有匹配的 地址表项,则创建地址表项和PAT条目,并根据该创建的PAT条目对该分 片报文进行PAT处理。
由于非首片的分片报文中不携带源端口信息,所以为了进行PAT表的 匹配查找,可将非首片的分片报文的源端口信息默认为一固定端口,并利用 该固定端口作为所述源端口信息,连同源地址信息一起到PAT表中进行匹 配查找。同样地,由于非首片的分片报文中不携带源端口信息,因此在经过 PAT处理后的非首片也不需要携带目的端口,所以,对非首片进行PAT时, 只需将该分片报文中的源地址信息替换为相应PAT表项中的公网地址信息 即可。
此外,在使用分片报文的源地址在地址表中查找到的匹配的公网地址的所有端口已分配完时,可选取其它有空闲端口的公网地址,并在地址表中将 该源地址对应的公网地址更新为该重新选取的公网地址。
下面分别以对首片和非首片分片报文进行PAT处理的流程为例,对本 发明进行进一步^t明。
如图l所示,对首片进行PAT处理的流程,包括以下步骤
101、 当首片到达NAT设备时,利用该首片的源IP地址和源端口到PAT 表中进行匹配查询,如查找到匹配的PAT表项,则执行步骤106;否则,执 行下一步骤;
102、 利用该首片的源IP地址到地址表中进行匹配查找,如查找到匹配 的地址表项,则执行下一步骤;否则,执行步骤105;
103、 利用该首片的源IP地址、源端口及上述匹配的地址表项中的/>网 地址创建PAT条目;
104、 判断该公网地址下是否还有空闲端口 ,如果没有,则重新选取一 具有空闲端口的公网地址,然后将地址表中上述源IP地址对应的公网地址 更新为该重新选取的7>网地址,再执行步骤106;否则,直接执行步骤106;
105、 任意选取一/>网地址,并利用该首片的源IP地址、源端口及选取 出的公网地址创建PAT条目,且将该源IP地址及选取的公网地址的对应关 系更新到地址表中;
106、 利用相应的PAT条目对该首片进行PAT处理,即将该首片中的 源IP地址和源端口替换为相应地的公网地址和目的端口。
如图2所示,对非首片进行PAT处理的流程,包括以下步骤
201、 当非首片到达NAT设备时,利用该非首片的源IP地址和默认的 固定端口到PAT表中进行匹配查询,如查找到匹配的PAT表项,则执行步 骤206;否则,执行下一步骤;
202、 利用该非首片的源IP地址到地址表中进行匹配查找,如查找到匹 配的地址表项,则执行下一步骤;否则,执4亍步骤205;
203、 利用该非首片的源IP地址、默认的固定端口及上述匹配的地址表
1项中的公网地址创建PAT条目;
204、 判断该/>网地址下是否还有空闲端口 ,如果没有,则重新选耳又一 具有空闲端口的公网地址,然后将地址表中上述源IP地址对应的^^网地址 更新为该重新选取的公网地址,再执行步骤206;否则,直接执行步骤206;
205、 任意选取一公网地址,并利用该非首片的源IP地址、默认的固定 端口及选取出的公网地址创建PAT条目,且将该源IP地址及选取的公网地 址的对应关系更新到地址表中;
206、 利用相应的PAT条目对该首片进行PAT处理,即将该非首片中 的源IP地址替换为相应的PAT条目的公网地址。
如图3所示,本发明所述对分片报文进行NAT的设备,包括:存储单 元、接收单元、匹配单元、表项生成单元及PAT处理单元;
存储单元中保存有PAT表,该表中保存有私网地址、源端口及公网地 址、目的端口的对应关系;
接收单元用于将接收到的分片报文发送给匹配单元;
匹配单元用于使用接收到的分片报文的源地址及源端口信息到存储单 元保存的PAT表中进行匹配查找,如查找到匹配的PAT表项,则还用于将 该表项及分片报文发送给PAT处理模块;如没有查找到匹配的PAT表项, 还用于发送PAT表项创建命令给表项生成单元,并将分片报文发送给PAT 处理模块;
表项生成单元用于在接收到PAT表项创建命令后,创建PAT表项,并 将该表项发送给PAT处理模块;
PAT处理模块用于根据表项对分片报文进行PAT处理;其中,具有相 同私网地址的分片报文经PAT处理后的公网地址相同。
进一步地,存储单元中还可保存有地址表,该地址表中保存有公网地址 和私网;也址的对应关系;
匹配单元如在PAT表中没有查找到与分片报文匹配的PAT表项,则还 用于使用分片报文的源地址到地址表中进行匹配查找,如查找到匹配的地址 表项,则还用于向表项生成单元发送PAT表项创建命令,该命令中携带该地址表项;如没有查找到到匹配的地址表项,则还用于向表项生成单元发送
PAT表项创建命令和地址表项创建命令;
表项创建单元还用于在接收到地址表项创建命令后,创建地址表项。
如所述分片报文为非首片,则匹配单元用于采用 一固定端口信息作为源 端口信息到PAT表中进行匹配查找;PAT处理单元用于仅将该分片报文中 的源地址信息替换为相应PAT表项中的公网地址信息。
以下为两个在NAT设备上采用本发明后实现分片报文PAT转换的例子。
硬件部分由一台NAT设备(上面具有接口,比如fei一l/1、 fei—1/2)、 两台具有网络通信功能的终端组成。终端l在内网,终端2在外网。
实例l:首片先于后续分片到达NAT设备。
软件部分的处理步骤如下
第一步在NAT设备上进行NAT的相关配置
(1) 配置规则,比如
ip nat pool zte 11.40.64.2 11.40.64.5 prefix 24〃指明地址緩沖池的名称为 pool, IP地址范围为11.40.64.2 11.40.64.5,掩码为24;
ip nat inside source list 1 pool zte overload〃以PAT方式,将访问列表1中 的私网IP地址转换为zte地址池中定义的合法IP地址。
(2) 配置NAT入接口,出接口,比如 Interface fei—1/1
ip nat inside
ip address 10.1.1.1 255.255.255.0 Interface fei—1/2 ip nat outside
ip address 11.40.64.1 255.255.255.0 (3 )配置终端1的IP地址10.1.1.2/24、终端2的IP地址11.40.64.2/24。 终端1连接到NAT设备的fei—1/1 口 。终端2连接到NAT设备的fei—1/2。将终端1的接口 MTU设为800bytes。
第二步在终端1上ping超过其MTU ( 800bytes )的报文。通过抓包 工具在终端l上抓包,保证分片首片先发出、非首片后发出。
第三步在NAT设备上show ip nat translations (显示IP地址转换), 有首片和非首片的两个条目。在NAT设备上打开DEBUG功能,显示首片 先做NAT转换;非首片后做NAT转换。
第四步在终端2上抓包,显示首片先到;非首片后到。收到所有分片 后正确回复Echo Reply 4艮文,表明收到的分片才艮文组合成功,NAT PAT分 片转换成功。
第五步在终端l, ping通。抓包看到回应报文正确。
实例2:非首片先于首片到达NAT设备。
软件部分的处理步骤如下
第一步在NAT设备上进行NAT的相关配置
(1 )配置规则,比如 ip nat pool zte 11.40.64.2 11.40.64.5 prefiex 24 ip nat inside source list 1 pool zte overload
(2)配置NAT入接口,出接口,比如 Interface fei_l/l ip nat inside
ip address 10.1.1.1 255.255.255.0 Interface fei—1/2 ip nat outside
ip address 11.40.64.1 255.255.255.0
(3 )配置终端1的IP地址10.1.1.2/24、终端2的IP地址11.40.64.2/24。 终端1连接到NAT设备的fei—1/1 口 。终端2连接到NAT设备的fei—1/2。 将终端1的接口 MTU设为800bytes。第二步在终端i上ping超过其MTU ( 800bytes )的报文。通过发包 工具在终端l上发包,非首片先发出、首片后发出。通过抓包工具在终端1 上抓包,看到非首片先发出、首片后发出。
第三步在NAT设备上show ip nat translations,有首片和非首片的两 个条目。在NAT设备上打开DEBUG功能,显示非首片先做NAT转换;首 片后做NAT转换。
第四步在终端2上4爪包,显示非首片先到;首片后到。收到所有分片 后正确回复Echo Reply报文,表明收到的分片报文组合成功,NAT PAT分 片转换成功。
第五步在终端l, ping通。纟爪包看到回应l艮文正确。
通过上述两个实例可以看出,如果在其它NAT设备中(如采用緩存首 片信息、缓存非首片的NAT设备)
第1个实施例,大量只发首片时(变IP地址和端口 ),则首片信息表 (首片信息表是用来存储首片id,源IP、目的IP等信息的,用于非首片的 转发)满,后续首片在NAT设备被丢弃,采用本方案时,NAT设备则不会 丢弃后续首片(因为本方案没有首片信息表大小限制)。
第2个实施例,在其它NAT设备中,大量只发非首片时,会导致非首 片緩存不够,后续非首片在NAT设备中被丢弃,采用本方案时,因为不需 要緩存非首片,所以NAT设备就不会丢弃非首片。
当然,本发明还可有其他多种实施例,在不背离本发明精神及其实质的 形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。
权利要求
1、一种对分片报文进行网络地址转换(NAT)的方法,其特征在于,NAT设备上配置有端口地址转换(PAT)表,该表中保存有私网地址、源端口及公网地址、目的端口的对应关系;当有分片报文到来时,所述NAT设备使用所述分片报文的源地址及源端口信息到所述PAT表中进行匹配查找,如有匹配的PAT表项,则根据该表项对该分片报文进行PAT处理;否则,创建PAT表项,并根据该创建的表项对该分片报文进行PAT处理,其中,具有相同私网地址的分片报文经PAT处理后的公网地址相同。
2、 如权利要求l所述的方法,其特征在于,所述NAT设备上还配置有地址表,所述地址表中保存有公网地址和私 网;也址的对应关系;则当没有匹配的PAT表项时,创建PAT表项,并根据该创建的表项对 该分片报文进行PAT处理是指当没有匹配的PAT表项时,使用所述分片才艮文的源地址到所述地址表 中进行匹配查找,如有匹配的地址表项,则利用该地址表项创建PAT条目, 并对该分片净艮文进行PAT处理;如没有匹配的地址表项,则创建地址表项 和PAT条目,并根据该创建的PAT条目对该分片报文进行PAT处理。
3、 如权利要求l所述的方法,其特征在于,如所述NAT设备判断出所述分片报文为非首片,则采用 一 固定端口信 息作为所述源端口信息到所述PAT表中进行匹配查找。
4、 如权利要求1 3中任意一项所述的方法,其特征在于,如所述NAT设备判新出所述分片报文为非首片,则对该分片报文进行 PAT处理是指仅将该分片报文中的源地址信息替换为相应PAT表项中的 公网地址信息。
5、 如权利要求2所述的方法,其特征在于,如果使用所述分片才艮文的源地址在所述地址表中查找到的匹配的公网 地址的所有端口已分配完,则选取其它有空闲端口的/>网地址,并在所述地 址表中将该源地址对应的公网地址更新为该重新选取的公网地址。
6、 如权利要求l所述的方法,其特征在于,还包括 将所述经过PAT处理的分片报文转发出去。
7、 一种对分片4良文进行网络地址转换(NAT)的设备,其特征在于, 包括存储单元、接收单元、匹配单元、表项生成单元及PAT处理单元;所述存储单元中保存有端口地址转换(PAT)表,该表中保存有私网地 址、源端口及/>网地址、目的端口的对应关系;所述接收单元用于将接收到的分片报文发送给所述匹配单元;所述匹配单元用于使用接收到的所述分片报文的源地址及源端口信息 到所述存储单元保存的所述PAT表中进行匹配查找,如查找到匹配的PAT 表项,则还用于将该表项及所述分片报文发送给所述PAT处理模块;如没 有查找到匹配的PAT表项,还用于发送PAT表项创建命令给表项生成单元, 并将所述分片报文发送给所述PAT处理模块;所述表项生成单元用于在接收到所述PAT表项创建命令后,创建PAT 表项,并将该表项发送给所述PAT处理模块;所述PAT处理模块用于根据所述表项对所述分片报文进行PAT处理; 其中,具有相同私网地址的分片报文经PAT处理后的公网地址相同。
8、 如权利要求7所述的设备,其特征在于,所述存储单元中还保存有地址表,所述地址表中保存有公网地址和私网 i也址的对应关系;所述匹配单元如在所述PAT表中没有查找到与所述分片报文匹配的 PAT表项,则还用于使用所述分片报文的源地址到所述地址表中进行匹配查 找,如查找到匹配的地址表项,则还用于向所述表项生成单元发送PAT表 项创建命令,该命令中携带该地址表项;如没有查找到到匹配的地址表项, 则还用于向所述表项生成单元发送PAT表项创建命令和地址表项创建命令;所述表项创建单元还用于在接收到所述地址表项创建命令后,创建地址 表项。
9、 如权利要求7所述的设备,其特征在于,如所述分片报文为非首片,则所述匹配单元用于采用 一 固定端口信息作为所述源端口信息到所述PAT表中进行匹配查找。
10、 如权利要求7 9中任意一项所述的设备,其特征在于,如所述分片报文为非首片,则所述PAT处理单元用于仅将该分片报文 中的源地址信息替换为相应PAT表项中的公网地址信息。
全文摘要
本发明公开了一种对分片报文进行网络地址转换的方法及设备,所述设备包括存储单元、接收单元、匹配单元、表项生成单元及端口地址转换(PAT)处理单元;所述方法包括网络地址转换(NAT)设备上配置有PAT表,该表中保存有私网地址、源端口及公网地址、目的端口的对应关系;当有分片报文到来时,NAT设备使用分片报文的源地址及源端口信息到PAT表中进行匹配查找,如有匹配表项,则根据该表项对该分片报文进行PAT处理;否则,创建PAT表项,并根据该创建的表项对该分片报文进行PAT处理,其中,具有相同私网地址的分片报文经PAT处理后的公网地址相同。本发明达到了较好的分片报文NAT转换效果,且配置简单、高效。
文档编号H04L12/56GK101605105SQ20091015914
公开日2009年12月16日 申请日期2009年7月14日 优先权日2009年7月14日
发明者辉 何, 磊 张, 胡亿芬, 鲍俊涛 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1