网络地址转换方法和设备的制作方法

文档序号:7914425阅读:196来源:国知局
专利名称:网络地址转换方法和设备的制作方法
技术领域
本发明涉及技术领域IP地址技术领域,尤其涉及一种网络地址转换方法和设备。
背景技术
NAT (Network Address Translation,网络地址转换)是一种解决IPv4地址短缺以保留公网IP地址的重要技术,NAT的主要应用方法之一是通过创建TCP/UDP端口的映射将大量内部私网地址转换到少量公网IP地址,以起到节省公网地址的作用。目前网络地址转换已经得到广泛的使用。随着全球IPv4地址枯竭日期的临近,NAT444技术也在NAT技术基础上发展成为了一种向IPv6演进的重要过渡技术。由于TCP (Transmission Control Protocol,传输控制协议)/UDP (User Data Protocol,用户数据报协议)的可用源、目地端口长度为16比特(比特),因此在NAT环境中一个公网地址可以代理的TCP/UDP连接数将少于65535个,当端口全部被占用后,NAT用户后续使用新端口的会话将无法建立,因此制约了公网IPv4地址的利用率和NAT用户的业务应用。图1示出现有技术中NAT网关进行网络地址转换的示意图。在图1中,内网主机A 11具有私网地址例如10.1. 0. 1,内网主机B 12具有私网地址例如10. 100. 0. 1,NAT设备13具有公网地址218. 80. 254. 1,公网主机(服务器)D 14具有公网地址202. 100. 0.1。NAT设备13为内网主机A 11转换地址后,同一外网IP会话使用的端口达到最大值,此时,如果内网主机B 12请求建立新的端口会话,由于与公网IP地址218. 80. 254.1对应的端口会话达到上限,内网主机B 12新建的会话将在NAT设备13上丢弃。即NAT设备上一个公网IPv4地址对应的最大会话数将受到端口的最大数限制,而不能超过65535。同样的,在NAT64过渡技术中,由于IPv6地址范围远大于IPv4所需代理的IPv6地址,因此端口限制也会造成公网IPv4地址的大量消耗和超过65535个端口后新会话无法建立的问题。

发明内容
鉴于以上问题提出本发明。本发明要解决的一个技术问题是提供一种网络地址转换方法和设备,能够提高NAT转换能力,提高了公网IPv4地址利用率。根据本发明的一个方面,提供一种网络地址转换方法,包括接收来自内网主机的IP报文,IP报文包括IPv4报文头和源端口字段,IPv4报文头中的源IP地址为内网主机的私网IP地址,源端口字段为内网主机的端口号;将私网IP地址和内网主机的端口号映射到公网IP地址和由EPORT字段和源端口字段表示的扩展端口号;将IP报文的源IP地址转换为公网IP地址,将扩展端口号写入IP报文的源端口字段和EPORT字段,发送IP报文。优选地,该方法还包括根据私网IP地址和内网主机的端口号与公网IP地址和扩展端口号的映射关系建立映射表项。 优选地,将私网IP地址和内网主机的端口号映射到公网IP地址和由EPORT字段和源端口字段表示的扩展端口号包括将私网IP地址映射到公网IP地址;将内网主机的端口号映射到扩展端口号,其中由源端口字段表示扩展端口号的低位比特,由EPORT字段表示扩展端口号的高位比特。优选地,将私网IP地址和内网主机的端口号映射到公网IP地址和新端口号包括将私网IP地址映射到公网IP地址;将内网主机的端口号映射到扩展端口号,扩展端口号包括由源端口字段表示的端口号和由EPORT字段表示的内网主机的唯一标识。优选地,该方法还包括接收来自公网的IP报文,IP报文包括IPv4报文头、目的端口字段和EPORT字段;根据NAT映射表项获得与由EPORT字段和源端口字段表示的扩展端口号对应的私网IP地址和端口号;将IP报文转发给与私网IP地址和端口号对应的内网主机。根据本发明的另一方法,还提供一种网络地址转换设备,包括报文接收模块,用于接收来自内网主机的IP报文,IP报文包括IPv4报文头和源端口字段,IPv4报文头中的 源IP地址为内网主机的私网IP地址,源端口字段为内网主机的端口号;地址映射模块,用于将私网IP地址和内网主机的端口号映射到公网IP地址和由EPORT字段和源端口字段表示的扩展端口号;报文发送模块,用于将IP报文的源IP地址转换为公网IP地址,将扩展端口号写入IP报文的源端口字段和EPORT字段,发送IP报文。优选地,该设备还包括映射存储模块,用于存储根据私网IP地址和内网主机的端口号与公网IP地址和扩展端口号的映射关系建立的映射表项。优选地,该地址映射模块包括IP地址映射单元,用于将私网IP地址映射到公网IP地址;端口映射单元,用于将内网主机的端口号映射到由EPORT字段和源端口字段表示的扩展端口号。优选地,由EPORT字段和源端口字段表示的扩展端口号包括由源端口字段表示扩展端口号的低位比特和由EPORT字段表示扩展端口号的高位比特,或由源端口字段表示的端口号和由EPORT字段表不的内网主机的唯一标识。优选地,报文接收模块还用于接收来自公网的IP报文,IP报文包括IPv4报文头、目的端口字段和EPORT字段;地址映射模块还用于根据NAT映射表项获得与由EPORT字段和源端口字段表示的扩展端口号对应的私网IP地址和端口号;报文发送模块还用于将IP报文转发给与私网IP地址和端口号对应的内网主机。本发明提供的网络地址转换方法和设备,采用可选IPv4报文选项EPORT扩展传统的UDP/TCP端口数量,由此增强了 NAT转换能力、大幅提高了公网IPv4地址利用率。


构成说明书的一部分的附图描述了本发明的实施例,并且连同说明书一起用于解释本发明的原理。参照附图,根据下面的详细描述,可以更加清楚地理解本发明,其中图1不出现有技术中NAT网关进彳丁网络地址转换的不意图;图2示出IPv4报文头格式以及可选报文头EPORT的示意图;图3示出本发明的网络地址转换方法的一个实施例的流程图;图4示出本发明的网络地址转换方法的另一个实施例的流程图5示出本发明的网络地址转换方法的又一个实施例的流程图;图6示出本发明的网络地址转换设备的一个实施例的结构图;图7示出本发明的网络地址转换设备的另一个实施例的结构图;图8示出本发明的NAT网关进行网络地址转换的示意图。
具体实施例方式现在将参照附图来详细描述本发明的各种示例性实施例。应注意到除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。 以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为授权说明书的一部分。在这里示出和讨论的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它示例可以具有不同的值。应注意到相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。本发明实施例的基本构思为通过新的IPv4可选报文头EPORT(Extended TCP/UDP PORT)来扩展NAT网关TCP/UDP端口映射能力。图2示出IPv4报文头格式以及可选报文头EPORT的一个例子的示意图,该例子中报文头规格如下选项类型(option-type)字段(8比特)第I比特copied flag :取I,将可选报文头复制到所有的切片报文中。第2比特option class,:取01定义为新的IP扩展第5比特option number :取00001定义为EPORT id,标识该IPv4报文包含EPORT可选报文头为报文头用于扩展TCP/UDP端口。长度(LENGTH)字段(8比特)取00000100,标识EPORT可选报文头的总长度为
4byte0选项数据(option-data)字段(16比特)用于标识NAT网关映射的TCP/UDP扩
展端口号。本领域的技术人员应当理解,IPv4报文头格式也可以有其他的实现方式,option-data字段也可以包括其他的可选字段,而LENGTH等字段可以有相应的取值。图3示出本发明的网络地址转换方法的一个实施例的流程图。如图3所示,步骤302,NAT设备接收来自内网主机的IP报文,IP报文包括IPv4报文头和源端口字段,IPv4报文头中的源IP地址为内网主机的私网IP地址,源端口字段为内网主机的端口号。IP 报文例如是 TCP、UDP、IGMP (Internet Group Management Protocol,Internet组管理协议)等。步骤304,NAT设备将私网IP地址和内网主机的端口号映射到公网IP地址和由EPORT字段和源端口字段表示的扩展端口号。可以根据私网IP地址和内网主机的端口号与公网IP地址和扩展端口号的映射关系建立映射表项,将映射关系存储在映射表项中。步骤306,NAT设备将IP报文的源IP地址转换为公网IP地址,将扩展端口号写IP报文的源端口字段和EPORT字段,发送IP报文。上述实施例中,网络NAT网关在进行私网、公网IP地址转换端口映射时结合原有的TCP/UDP端口,以可选的IPv4报文的方式扩展TCP/UDP端口数量。这样,一个公网IPv4地址可代理的TCP/UDP连接数从原有的16比特扩展到了 32比特,使得一个公网IPv4地址可以代理的连接数量从65535个大幅扩展到了 4294967295个,大幅度降低了 IPv4公网地址的消耗速度,同时在不影响用户应用体验的情况下增加了单层或多层NAT网关后可代理的私网地址规模,为IPv6的大规模部署赢得了时间。同时,该解决方案不修改现有TCP/UDP报文头的结构和相关定义,不改变IP报文头已定义的各个字 段,具备较好的协议兼容性。通过EPORT字段和源端口字段表示扩展端口号有多种实现方式。下面将介绍几个具体的例子。在本发明的一个实施例中,NAT网关设备将公网映射侧TCP/UDP映射端口从传统的TCP/UDP源端口号的16比特扩展到32比特,其中低位16比特端口号由传统TCP/UDP源端号字段表示,超过16比特后(即一个经过NAT映射后的公网地址代理的连接超过65535个后)的端口号由IPv4可选报文头EPORT中option-data字段的TCP/UDP扩展端口号+TCP/UDP源端号字段表示。需要注意,这种情况下,每个NAT网关的内网主机可建立的连接遵从IPv4UDP/TCP的端口定义不超过65535,所有的内网主机共享NAT网关的4294967295个(32比特)理论TCP/UDP连接。该方式对于小于65535个端口的情况不使用EPORT字段,对于大于65535个端口的情况再使用EPORT字段,可以较好地和现有的技术方案兼容,具有较好的兼容性。在本发明的另一个实施例中,NAT网关设备将公网映射侧TCP/UDP映射端口从传统的TCP/UDP源端口号的16比特扩展到32比特,其中低位的16比特端口号由传统TCP/UDP源端号字段表述,高位的IPv4可选报文头EPORT的TCP/UDP扩展端口号用于标识NAT网关代理的私网主机,每一个内网主机都由NAT网分配一个唯一的PORT的TCP/UDP扩展端口号。在这种情况下,一个NAT网关设备最多可以代理65535(16比特)个内网主机,每个主机理论上都可以通过NAT网关建立65536 (16比特)的理论TCP/UDP连接。图4示出本发明的网络地址转换方法的另一个实施例的流程图。如图4所示,步骤402,NAT设备接收来自内网主机的TCP/UDP报文,报文中包括IPv4报文头和源端口字段,IPv4报文头中的源IP地址为内网主机的私网IP地址。步骤404,将源IP地址由私网IP地址映射为公网IP地址。步骤406,将源端口号映射为由EPORT字段和源端口字段表示的扩展端口号。例如,源端口号占用源端口字段的16比特(比特),取值范围为1-65535,而扩展端口号占用EPORT字段(16比特)和源端口字段(16比特)共32比特,取值范围可以为1-4294967295个。步骤408,建立映射表项,将公网IP地址和扩展端口号写入TCP/UDP报文的对应字段,将TCP/UDP报文发送到公网。采用公网IP地址的主机终端具备识别TCP/UDP报文中可选报文头EPORT字段的能力,据此区分属于不同会话连接的TCP/UDP报文,在返回TCP/UDP报文中原封保留接收到的可选报文头的EPORT字段。该实施例还可以包括如下步骤步骤410,NAT设备接收来自公网的TCP/UDP报文,TCP/UDP报文中包括目的IP地址、目的端口号和EPORT字段。步骤412,根据映射表项获得与目的IP地址和由EPORT字段和目的端口字段表示的扩展端口号对应的内网主机的私网IP地址和端口号。步骤414,将TCP/UDP报文发送给与私网IP地址对应的内网主机。上述实施例中,NAT网关设备接收到来自公网主机应答的TCP/UDP报文后,识别可选报文头的EPORT字段,根据映射的表项去除包含EPORT字段IPv4可选报文头并将公网主机应答的数据报文返回给相应的内网主机。不需要修改现有TCP/UDP报文头的结构,不改变IP报文头已定义的各个字段,具备较好的协议兼容性。 从NAT网关出口到所访问的公网目地终端途经的网络设备不修改包含TCP/UDP端口扩展的EPORT字段及所属IPv4可选报文头,不丢弃拥有该可选报文头的IPv4报文。图5示出本发明的网络地址转换方法的又一个实施例的流程图。如图5所示,步骤502,NAT设备接收来自内网主机的TCP/UDP报文,报文中包括IPv4报文头和源端口字段,IPv4报文头中的源IP地址为内网主机的私网IP地址。步骤504,NAT设备将私网IP地址和源端口号映射为公网IP地址和扩展端口号,并建立映射表项。步骤506,NAT设备将公网IP地址和扩展端口号写入TCP/UDP报文的源IP地址字段和源端口、EPORT字段,将TCP/UDP报文发向目的主机。步骤508,采用公网IP地址的公网主机识别TCP/UDP报文中可选报文头EPORT字段,在返回TCP/UDP报文中原封保留接收到的可选报文头的EPORT字段,将源端口字段的内容写入目的端口字段。步骤510,NAT设备接收来自公网的TCP/UDP报文,TCP/UDP报文中包括目的IP地址、目的端口号。步骤512,NAT设备判断TCP/UDP报文的IPv4报文头中是否包括EPORT字段,如果是,则执行步骤516,否则执行步骤514。步骤514,根据映射表项获得与目的IP地址和由目的端口字段表示的端口号对应的内网主机的私网IP地址和端口号。步骤516,根据映射表项获得与目的IP地址和由EPORT字段和目的端口字段表示的扩展端口号对应的内网主机的私网IP地址和端口号。步骤518,将TCP/UDP报文发送给与私网IP地址对应的内网主机。上述实施例中,NAT设备通过判断是否具有EPORT字段来分别进行传统映射处理和扩展端口号处理,可以较好地和现有技术兼容。图6示出本发明的网络地址转换设备的一个实施例的结构图。如图6所示,该设备包括报文接收模块61、地址映射模块62和报文发送模块63。其中,报文接收模块61接收来自内网主机的IP报文,IP报文包括IPv4报文头和源端口字段,IPv4报文头中的源IP地址为内网主机的私网IP地址,源端口字段为内网主机的端口号;地址映射模块62将私网IP地址和内网主机的端口号映射到公网IP地址和由EPORT字段和源端口字段表示的扩展端口号;报文发送模块63将IP报文的源IP地址转换为公网IP地址,将扩展端口号写IP报文的源端口字段和EPORT字段,发送IP报文。图7示出本发明的网络地址转换设备的另一个实施例的结构图。如图7所示,该设备包括报文接收模块61、地址映射模块72、报文发送模块63和映射存储模块74。映射存储模块74存储根据私网IP地址和内网主机的端口号与公网IP地址和扩展端口号的映射关系建立的映射表项。根据本发明的一个实施例,地址映射模块72包括IP地址映射单元721和端口映射单元722。其中,IP地址映射单元721将私网IP地址映射到公网IP地址;端口映射单元722将内网主机的端口号映射到由EPORT字段和源端口字段表示的扩展端口号。根据本发明的一个实施例,报文接收模块61还用于接收来自公网的IP报文,IP报文包括IPv4报文头、目的端口字段和EPORT字段;地址映射模块72还用于根据NAT映射表项获得与由EPORT字段和源端口字段表示的扩展端口号对应的私网IP地址和端口号;报文 发送模块63还用于将IP报文转发给与私网IP地址和端口号对应的内网主机。图8示出本发明的NAT网关进行网络地址转换的示意图。如图8所示,NAT设备13在达到传统最大端口数后,主机B 12初始化新的TCP/UDP连接,NAT设备13接收并启用EPORT选项报文,将超出传统最大端口数的部分扩展到选项报文中去。服务器D 14识别NAT设备13传递过来数据包中的EPORT选项;在返回NAT设备13的数据包中原封附带该EPORT选项报文;NAT设备13根据之前建立的内外映射表,将公网地址转换成NAT内部的私网地址,并去除EPROT选项报文头返回给内网主机B 12。本发明实施例采用可选IPv4报文选项EPORT将传统的UDP/TCP端口数量在NAT转换时从16bit扩展到32bit,由此增强了 NAT转换能力、大幅提高了公网IPv4地址利用率。此外,本发明实施例不修改现有TCP/UDP报文头的结构和相关定义,不改变IP报文头已定义的各个字段,因此具备较好的协议兼容性。本发明实施例提供了通过扩展TCP/UDP端口增强NAT转换能力、提高IPv4地址利用率的方法和设备。至此,已经详细描述了根据本发明的网络地址转换方法和设备。为了避免遮蔽本发明的构思,没有描述本领域所公知的一些细节。本领域技术人员根据上面的描述,完全可以明白如何实施这里公开的技术方案。本发明的描述是为了示例和描述起见而给出的,而并不是无遗漏的或者将本发明限于所公开的形式。很多修改和变化对于本领域的普通技术人员而言是显然的。选择和描述实施例是为了更好说明本发明的原理和实际应用,并且使本领域的普通技术人员能够理解本发明从而设计适于特定用途的带有各种修改的各种实施例。
权利要求
1.一种网络地址转换方法,其特征在于,包括接收来自内网主机的IP报文,所述IP报文包括IPv4报文头和源端口字段,所述IPv4报文头中的源IP地址为所述内网主机的私网IP地址,所述源端口字段为所述内网主机的端口号;将所述私网IP地址和所述内网主机的端口号映射到公网IP地址和由EPORT字段和所述源端口字段表示的扩展端口号;将所述IP报文的源IP地址转换为所述公网IP地址,将所述扩展端口号写入所述IP报文的源端口字段和EPORT字段,发送所述IP报文。
2.根据权利要求1所述的方法,其特征在于,根据所述私网IP地址和所述内网主机的端口号与所述公网IP地址和扩展端口号的映射关系建立映射表项。
3.根据权利要求1所述的方法,其特征在于,将所述私网IP地址和所述内网主机的端口号映射到公网IP地址和由EPORT字段和所述源端口字段表示的扩展端口号包括将所述私网IP地址映射到所述公网IP地址;将所述内网主机的端口号映射到所述扩展端口号,其中由所述源端口字段表示所述扩展端口号的低位比特,由所述EPORT字段表示所述扩展端口号的高位比特。
4.根据权利要求1所述的方法,其特征在于,将所述私网IP地址和所述内网主机的端口号映射到公网IP地址和新端口号包括将所述私网IP地址映射到所述公网IP地址;将所述内网主机的端口号映射到所述扩展端口号,所述扩展端口号包括由所述源端口字段表示的端口号和由所述EPORT字段表示的所述内网主机的唯一标识。
5.根据权利要求2所述的方法,其特征在于,还包括接收来自公网的IP报文,所述IP报文包括IPv4报文头、目的端口字段和EPORT字段;根据所述NAT映射表项获得与由所述EPORT字段和所述源端口字段表示的扩展端口号对应的私网IP地址和端口号;将所述IP报文转发给与所述私网IP地址和端口号对应的内网主机。
6.一种网络地址转换设备,其特征在于,包括报文接收模块,用于接收来自内网主机的IP报文,所述IP报文包括IPv4报文头和源端口字段,所述IPv4报文头中的源IP地址为所述内网主机的私网IP地址,所述源端口字段为所述内网主机的端口号;地址映射模块,用于将所述私网IP地址和所述内网主机的端口号映射到公网IP地址和由EPORT字段和所述源端口字段表示的扩展端口号;报文发送模块,用于将所述IP报文的源IP地址转换为所述公网IP地址,将所述扩展端口号写入所述IP报文的源端口字段和EPORT字段,发送所述IP报文。
7.根据权利要求6所述的设备,其特征在于,还包括映射存储模块,用于存储根据所述私网IP地址和所述内网主机的端口号与所述公网IP地址和扩展端口号的映射关系建立的映射表项。
8.根据权利要求6所述的设备,其特征在于,所述地址映射模块包括IP地址映射单元,用于将所述私网IP地址映射到所述公网IP地址;端口映射单元,用于将所述内网主机的端口号映射到由所述EPORT字段和所述源端口字段表示的扩展端口号。
9.根据权利要求8所述的设备,其特征在于,由所述EPORT字段和所述源端口字段表示的扩展端口号包括由所述源端口字段表示所述扩展端口号的低位比特和由所述EPORT字段表示所述扩展端口号的高位比特或由所述源端口字段表示的端口号和由所述EPORT字段表示的所述内网主机的唯一标识。
10.根据权利要求7所述的设备,其特征在于,所述报文接收模块还用于接收来自公网的IP报文,所述IP报文包括IPv4报文头、目的端口字段和EPORT字段;所述地址映射模块还用于根据所述NAT映射表项获得与由所述EPORT字段和所述源端口字段表示的扩展端口号对应的私网IP地址和端口号;所述报文发送模块还用于将所述IP报文转发给与所述私网IP地址和端口号对应的内网主机。
全文摘要
本发明公开一种网络地址转换方法和设备,涉及IP地址技术领域。该方法采用可选IPv4报文选项EPORT将传统的UDP/TCP端口数量在NAT转换时从16bit扩展到32bit,由此增强了NAT转换能力、大幅提高了公网IPv4地址利用率。此外,该方法并不修改现有TCP/UDP报文头的结构和相关定义,不改变IP报文头已定义的各个字段,因此具备较好的协议兼容性。
文档编号H04L29/12GK103024089SQ20111027912
公开日2013年4月3日 申请日期2011年9月20日 优先权日2011年9月20日
发明者孙剑平, 黄国瑾 申请人:中国电信股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1