一种网络地址转换方法及装置的制作方法

文档序号:7846499阅读:171来源:国知局
专利名称:一种网络地址转换方法及装置的制作方法
技术领域
本发明涉及网络技术领域,具体来说是关于一种网络地址转换方法及装置。
背景技术
在现有技术中,由于地址规划等原因,IPv4(互联网协议第四版,hternet Protocol version 4)地址面临迅速耗尽的境地,为此IETF (互联网工程任务组,Internet Engineering Task Force)在 IPv4 地址中定义了私有 IP 地址段,包括10. χ. χ. x,172. 16. χ. χ-172. 31. χ. χ, 192. 168. χ. χ。这些私有IP地址可以被用于构建私有网络(内部网络), 例如公司、企业内部网络,从而大大减少了对公网地址的需求,一定程度上解决了公网IP 地址耗尽问题,但是这些私有IP地址无法在公网(Internet)上路由。为了使私网主机能够访问公网上的主机/服务器,在私网出口处要部署NAT(网络地址转换,Network Address Translation)设备,在私有IP地址和公网IP地址间进行转换。NAT的实现方式有三种,即静态转换(Static Nat)、动态转换(Dynamic Nat)和端口复用(Port Address Translation,PAT),目前网络中应用最多的就是端口复用方式。端口复用将“私有IP地址+端口号”转换为“公网IP地址+新的端口号”的形式,在将内部网络的私有IP地址转换为公网IP地址时,可以将多个内部私有IP地址替换为同一个公网 IP地址,但是采用不同端口。采用端口复用方式,内部网络的所有主机均可共享一个合法公网IP地址实现对hternet的访问,从而可以最大限度地节约公网IP地址资源,同时又可隐藏网络内部的所有主机,有效避免来自internet的攻击。目前网络上的大部分流量是基于TCP (Transmission Control Protocol,传输控制协议)或UDP^ser Datagram Protocol,用户数据包协议)协议的,通过五元组,即源 IP地址+源端口号(TCP或UDP端口号)+目的IP地址+目的端口号+IP协议号可唯一确定一条流量。在网络数据传输中,即当报文的长度超过线路的MTU(Maximum Transmission Unit,最大传输单元)时,报文会被分片,使得每一个分片报文的长度不超过线路的MTU。 TCP或UDP报文在分片以后,只有第一片报文具有TCP或UDP头,后续分片报文只有IP头, 没有TCP或UDP头,即只有第一片报文具有源端口号和目的端口号,后续分片不具有源端口号和目的端口。目的设备,例如服务器,一般根据三元组源IP地址+目的IP地址+IP数据包的标识(IPID)来进行报文重组。由于源主机发出的IP数据包的标识一般是依次加一的,不同的源主机发出的IP 数据包的标识完全有可能相同。在进行NAT地址替换以后,多个不同的流(通过五元组确定的)可能具有相同的源IP地址和目的IP地址,同时这些数据包也具有相同的IPID,在这种情况下,目的设备在进行数据包重组时就会发生错误。

发明内容
为克服现有技术中存在的问题,本发明的实施例提供一种网络地址转换方法及装置,以便保证目的设备进行数据包重组时不发生错误。
本发明实施例提供一种网络地址转换方法,所述的方法包括网络地址转换NAT 设备接收内网主机发送的数据包;解析所述的数据包,获取数据包中包含的第一源互联网协议IP地址、第一源端口、第一目的IP地址和第一 IP数据包的标识IPID ;对数据包中的第一源IP地址和第一源端口进行处理,包括将第一源IP地址转换为第二源IP地址,将第一源端口转换为第二源端口 ;对数据包中的第一 IPID进行处理;根据第一目的IP地址,发送处理后的数据包。本发明实施例还提供一种网络地址转换装置,所述的装置包括接收单元(501),用于接收内网主机发送的数据包;解析单元(502),用于解析所述的数据包,获取数据包中包含的第一源互联网协议 IP地址、第一源端口、第一目的IP地址和第一 IP数据包的标识IPID ;地址转换单元(503),用于将数据包中的第一源IP地址转换为第二源IP地址,将第一源端口转换为第二源端口;IPID处理单元(504),用于对数据包中的第一 IPID进行处理;发送单元(505),用于将处理后的数据包发送至目的IP地址。本发明提出的网络地址转换方法及装置,在NAT设备上进行地址替换时,同时处理数据包的IPID,可保证目的设备进行数据包重组时不发生错误。


此处所说明的附图用来提供对本发明实施例的进一步理解,构成本申请的一部分,并不构成对本发明的限定。在附图中图1是本发明实施例提供的应用场景示意图;图2是本发明一个实施例提供的一种网络地址转换方法流程图;图3是本发明又一实施例提供的一种网络地址转换方法流程图;图4是本发明另一实施例提供的一种网络地址转换方法流程图;图5是本发明一个实施例提供的一种网络地址转换装置框图;图6a、6b是本发明又一实施例提供的一种网络地址转换装置框图;图7a、7b是本发明另一实施例提供的一种网络地址转换装置框图。
具体实施例方式为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合实施方式和附图,对本发明的实施例做进一步详细说明。在此,本发明的示意性实施方式及其说明用于解释本发明,但并不作为对本发明的限定。图1是本发明实施例的一个应用场景示意图,如图1所示,现有技术中,内网主机 101和102通过NAT设备103访问公网服务器104,其中内网主机101的地址是10. 1. 1. 100, 内网主机102的地址是10. 1. 1. 200,公网服务器104的公网地址是211. 100. 7. ;34。NAT设备103为内网主机101和102分配了同样的公网IP地址162. 105. 178. 65,并分别为内网主机101和102分配了不同的端口号16384和16400,所以公网服务器104可以区分这两台主机的流量。当内网主机101和102发送至公网服务器104的报文的长度超过线路的MTU时,报文会被分成多个不超过MTU的分片报文。在现有技术中,内网主机101或102发送的报文在分片以后,只有第一片报文具有源端口号16384或16400,后续分片不包括源端口号。 公网服务器104只能根据三元组源IP地址162. 105. 178. 65、目的IP地址211. 100. 7. 34 和IPID来进行报文重组。当内网主机101和102发出的IP报文的ID相同时,公网服务器104接收到的内网主机101和102的后续分片报文均具有相同的源IP地址162. 105. 178. 65、相同的目的 IP地址211. 100. 7. 34和相同的IPID,因此公网服务器104在进行报文重组时就会发生错误,无法区分主机101和102的分片报文。图2是本发明实施例提供的一种网络地址转换方法流程图,如图2所示,网络地址转换方法包括S201, NAT设备接收内网主机发送的数据包。S202,解析所述的数据包,获取数据包中包含的第一源IP地址、第一源端口、第一目的IP地址和第一 IPID。S203,对数据包中的第一源IP地址和第一源端口进行处理,包括将数据包中的第一源IP地址转换为第二源IP地址,将第一源端口转换为第二源端口。在本发明实施例中,NAT设备为内网主机发送的数据包分配公网IP地址和新的端口,将内网主机发送的数据包中的私网IP地址和源端口转换为公网IP地址和新的端口。S204,对数据包中的第一 IPID进行处理。在本发明实施例中,NAT设备对数据包中的第一 IPID进行处理;,以使得当NAT设备发往目的设备的数据包具有相同的源IP地址和目的IP地址时,IPID不会出现重复,从而保证目的设备对接收到的数据包进行重组时,不会因为IPID重复而产生重组错误。S205,根据第一目的IP地址,发送处理后的数据包。本发明实施例提出的网络地址转换方法,在NAT设备上进行地址替换时,同时处理数据包的IPID,可保证目的设备进行数据包重组时不发生错误。图3是本发明另一实施例提供的一种网络地址转换方法流程图,如图3所示,网络地址转换方法包括S301, NAT设备接收内网主机发送的数据包。以图1所示的场景为例,NAT设备103可以接收内网主机101和102中的至少一个发往公网服务器104的数据包。为了简便,以下均以NAT设备103接收内网主机101和 102发往公网服务器104的数据包为例进行说明。S302,解析所述的数据包,获取数据包中包含的第一源IP地址、第一源端口、第一目的IP地址和第一 IPID。例如,NAT设备103解析接收到的内网主机101和102发送的发往公网服务器104 的数据包,获取数据包中包含的第一源IP地址、第一源端口、第一目的IP地址和第一 IPID, 其中内网主机101发送的数据包中,第一源IP地址为10. 1. 1. 100,第一源端口为1025,第一目的IP地址为211. 100. 7. 34,第一 IPID为9527。可选的,还可以获取数据包中包含的
第一目的端口 24。 S303,将数据包中的第一源IP地址转换为第二源IP地址,将第一源端口转换为第
二源端口。
例如,NAT设备103为内网主机101发送的数据包分配公网IP地址和新的端口, 将数据包中的第一源IP地址10. 1. 1. 100和第一源端口 1025分别转换为公网IP地址 162. 105. 178. 65 和新的端口 16384。S304,判断是否存在与第二源IP地址和第一目的IP地址对应的IPID存储表,如果不存在对应的IPID存储表,则执行S305 ;如果存在对应的IPID存储表,则执行S306。例如,NAT设备103判断是否存在与公网IP地址162. 105. 178. 65和第一目的IP 地址211. 100. 7. 34对应的IPID存储表。S305,建立与第二源IP地址和第一目的IP地址对应的IPID存储表。例如,NAT设备103经过判断,确定不存在与公网IP地址162. 105. 178. 65和第一目的IP地址211. 100. 7. 34对应的IPID存储表时,NAT设备103可以根据公网IP地址 162. 105. 178. 65和第一目的IP地址211. 100. 7. 34建立IPID存储表,该IPID存储表中包括第二源IP地址(即本例中的公网IP地址)、第一目的IP地址以及IPID (参见下表1)。可选的,在表1所示的IPID存储表中,IPID的初始值为0,后续NAT设备103每发送一个数据包,IPID的数值增加1 ;当然,也可以设定初始值后,每发送一个数据包,IPID的数据减1,本发明的实施例对此不做限定。进一步可选的,还可以设定IPID存储表中IPID 值的长度,例如,可以是16bit,溢出后重新回到初始值。
权利要求
1.一种网络地址转换方法,其特征在于,包括网络地址转换NAT设备接收内网主机发送的数据包;解析所述的数据包,获取数据包中包含的第一源互联网协议IP地址、第一源端口、第一目的IP地址和第一 IP数据包的标识IPID ;对数据包中的第一源IP地址和第一源端口进行处理,包括将第一源IP地址转换为第二源IP地址,将第一源端口转换为第二源端口 ;对数据包中的第一 IPID进行处理;根据第一目的IP地址,发送处理后的数据包。
2.如权利要求1所述的网络地址转换方法,其特征在于,在对数据包中的第一IPID进行处理之前,所述的方法还包括判断是否存在与第二源IP地址和第一目的IP地址对应的IPID存储表。
3.如权利要求2所述的网络地址转换方法,其特征在于,若存在与第二源IP地址和第一目的IP地址对应的IPID存储表,则对数据包中的第一 IPID进行处理,具体包括;根据与第二源IP地址和第一目的IP地址对应的IPID存储表,将数据包中的第一 IPID 转换为第二 IPID,所述第二 IPID为所述与第二源IP地址和第一目的IP地址对应的IPID 存储表中包含的IPID。
4.如权利要求2所述的网络地址转换方法,其特征在于,若不存在与第二源IP地址和第一目的IP地址对应的IPID存储表,则对数据包中的第一 IPID进行处理之前,所述方法还包括建立与第二源IP地址和第一目的IP地址对应的IPID存储表;所述对数据包中的第一 IPID进行处理,具体包括将数据包中的第一 IPID转换为第二 IPID,所述第二 IPID为所述与第二源IP地址和第一目的IP地址对应的IPID存储表中包含的IPID。
5.如权利要求2所述的网络地址转换方法,其特征在于,若存在与第二源IP地址和第一目的IP地址对应的IPID存储表,则对数据包中的第一 IPID进行处理之前,所述方法还包括获取与第二源IP地址和第一目的IP地址对应的IPID存储表中存储的IPID ;判断获取到的IPID中是否包含与所述第一 IPID相等的IPID。
6.如权利要求5所述的网络地址转换方法,其特征在于,如果获取到的IPID中包含与所述第一 IPID相等的IPID,则所述对数据包中的第一 IPID进行处理,具体包括根据与第二源IP地址和第一目的IP地址对应的IPID存储表,将数据包中的第一 IPID 转换为第二 IPID,其中,第二 IPID与所述与第二源IP地址和第一目的IP地址对应的IPID 存储表中包含的IPID均不相同。
7.如权利要求6所述的网络地址转换方法,其特征在于,将所述数据包中的第一IPID 转换为第二 IPID后,所述方法还包括将数据包中的第二 IPID存储到上述与第二源IP地址和第一目的IP地址对应的IPID 存储表中。
8.如权利要求5所述的网络地址转换方法,其特征在于,如果获取到的IPID中不包含与所述第一 IPID相等的IPID,则所述对数据包中的第一 IPID进行处理,具体包括将数据包中的第一 IPID存储到所述与第二源IP地址和第一目的IP地址对应的IPID存储表中。
9.如权利要求2所述的网络地址转换方法,其特征在于,若不存在与第二源IP地址和第一目的IP地址对应的IPID存储表,则对数据包中的第一 IPID进行处理之前,所述方法还包括建立与第二源IP地址和第一目的IP地址对应的IPID存储表; 所述对数据包中的第一 IPID进行处理,具体包括将数据包中的第一 IPID存储到所述与第二源IP地址和第一目的IP地址对应的IPID存储表中。
10.一种网络地址转换装置,其特征在于,所述的装置包括 接收单元(501),用于接收内网主机发送的数据包;解析单元(502),用于解析所述的数据包,获取数据包中包含的第一源互联网协议IP 地址、第一源端口、第一目的IP地址和第一 IP数据包的标识IPID ;地址转换单元(503),用于将数据包中的第一源IP地址转换为第二源IP地址,将第一源端口转换为第二源端口;IPID处理单元(504),用于对数据包中的第一 IPID进行处理; 发送单元(505),用于将处理后的数据包发送至目的IP地址。
11.如权利要求10所述的网络地址转换装置,其特征在于,所述的装置还包括第一 ID判断单元(604),用于判断是否存在与第二源IP地址和第一目的IP地址对应的IPID存储表,如果不存在与第二源IP地址和第一目的IP地址对应的IPID存储表,触发第一建立单元(605);如果存在与第二源IP地址和第一目的IP地址对应的IPID存储表, 触发IPID处理单元(504);所述第一建立单元(605),用于建立与第二源IP地址和第一目的IP地址对应的IPID 存储表。
12.如权利要求11所述的网络地址转换装置,其特征在于,所述IPID处理单元(504) 包括第一获取模块(5041),用于获取第二的IPID,其中,第二 IPID为与第二源IP地址和第一目的IP地址对应的IPID存储表中包含的IPID ;第一转换模块(5042),用于将数据包中的第一 IPID转换为第二 IPID。
13.如权利要求10所述的网络地址转换装置,其特征在于,所述的装置还包括第二 ID判断单元(704),用于判断是否存在与第二源IP地址和第一目的IP地址对应的IPID存储表,如果不存在与第二源IP地址和第一目的IP地址对应的IPID存储表,触发第二建立单元(705);如果存在与第二源IP地址和第一目的IP地址对应的IPID存储表, 触发IPID处理单元(504);所述第二建立单元(705),用于建立与第二源IP地址和第一目的IP地址对应的IPID 存储表;存储表更新单元(706),用于将数据包中的第一 IPID存储在与第二源IP地址和第一目的IP地址对应的IPID存储表中。
14.如权利要求13所述的网络地址转换装置,其特征在于,所述IPID处理单元(504)包括第二获取模块(5043),用于获取与第二源IP地址和第一目的IP地址对应的IPID存储表中存储的IPID ;判断模块(5044),用于判断获取到的IPID中,是否包含与上述数据包中的第一 IPID 相等的IPID,如果包含,触发第二转换模块(504 ;如果不包含,触发存储表更新单元 (706);所述第二转换模块(5045),用于将数据包中的第一 IPID转换为第二 IPID,其中,第二 IPID与所述与第二源IP地址和第一目的IP地址对应的IPID存储表中存储的IPID均不相同;更新模块(5046),用于将数据包中的第二 IPID存储在与第二源IP地址和第一目的IP 地址对应的IPID存储表中。
全文摘要
本发明是关于一种网络地址转换方法及装置,所述的方法包括网络地址转换NAT设备接收内网主机发送的数据包;解析数据包,获取数据包中包含的第一源互联网协议IP地址、第一源端口、第一目的IP地址和第一IP数据包的标识IPID;对数据包中的第一源IP地址和第一源端口进行处理,包括将第一源IP地址转换为第二源IP地址,将第一源端口转换为第二源端口;对数据包中的第一IPID进行处理;根据第一目的IP地址,发送处理后的数据包。本发明提出的网络地址转换方法及装置,在NAT设备上进行地址替换时,同时修改报文的IP_ID,可保证目的设备进行报文重组时不发生错误。
文档编号H04L29/12GK102232288SQ201180000517
公开日2011年11月2日 申请日期2011年4月15日 优先权日2011年4月15日
发明者徐靖 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1