CN102447748A - 在nat穿越中分配外网互联网协议ip地址的方法及设备、系统 - Google Patents
在nat穿越中分配外网互联网协议ip地址的方法及设备、系统 Download PDFInfo
- Publication number
- CN102447748A CN102447748A CN2010105083464A CN201010508346A CN102447748A CN 102447748 A CN102447748 A CN 102447748A CN 2010105083464 A CN2010105083464 A CN 2010105083464A CN 201010508346 A CN201010508346 A CN 201010508346A CN 102447748 A CN102447748 A CN 102447748A
- Authority
- CN
- China
- Prior art keywords
- address
- outer net
- nat
- appointment
- request message
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/09—Mapping addresses
- H04L61/25—Mapping addresses of the same type
- H04L61/2503—Translation of Internet protocol [IP] addresses
- H04L61/256—NAT traversal
- H04L61/2582—NAT traversal through control of the NAT server, e.g. using universal plug and play [UPnP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/09—Mapping addresses
- H04L61/25—Mapping addresses of the same type
- H04L61/2503—Translation of Internet protocol [IP] addresses
- H04L61/2514—Translation of Internet protocol [IP] addresses between local and global IP addresses
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/09—Mapping addresses
- H04L61/25—Mapping addresses of the same type
- H04L61/2503—Translation of Internet protocol [IP] addresses
- H04L61/2557—Translation policies or rules
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Small-Scale Networks (AREA)
Abstract
本发明实施例提供一种在NAT穿越中分配外网互联网协议IP地址的方法及设备、系统,属通信领域。该方法包括:接收客户端发出的建立对应连接的NAT映射表项的请求消息,所述请求消息包括指定的外网IP地址,该外网IP地址与同一个应用已建立的任意一个连接对应的NAT映射表项中的外网IP地址相同;在根据接收的所述请求消息建立NAT映射表项时,按所述请求消息中指定的外网IP地址,分配与所述指定的外网IP地址相同的IP地址,作为所要建立NAT映射表项的外网IP地址。本发明实施例还提供NAT设备及系统。该方法大大加强了NAT穿越协议对现有应用的适应能力,增强NAT设备的性能。
Description
技术领域
本发明涉及通信领域,尤其涉及一种在NAT穿越中分配外网互联网协议IP地址的方法及设备、系统。
背景技术
目前IPv4的地址已经差不多分配完,IP(Internet Protocol,英特网协议)地址短缺的问题非常严重,业界普遍认为IPv6是解决这一问题的根本途径。但是目前IPv6部署的进度并不是很理想,短期内IPv6无法解决地址短缺的问题;近期内在运营商网络中部署NAT(Network Address Translation,网络地址转换)(CGN,Carrier Grade NAT,运营商级NAT)是暂时缓解地址短缺问题的有效途径。
但是在运营商网络中部署NAT,会带来较多的问题,特别是在NAT穿越方面。NAT穿越存在问题主要是部分通讯协议报文的净荷里携带有IP地址,而通常的NAT转换只会修改报文头里的地址,这样会造成通讯协议无法正常工作,受影响的通讯协议有FTP(File Transfer Protocol,文件传输协议)、SIP(Session Initiation Protocol,会话初始协议)。
解决NAT穿越问题的一种办法是使用应用层网关(ALG,ApplicationLayer Gateway),但这已经不是主流方式。目前通常采用PCP(PinholeControl Protocol,穿孔控制协议)协议来实现NAT穿越,如图1所示,在PCP协议中,客户端向PCP服务器端发送一个请求,要求打开一个外网端口号(ex-port),PCP服务器检查如果该端口未被使用,就会建立一个内网IP(in-ip)+内网端口号(ip-port)与外网IP(ex-ip)+外网端口号(ex-port)的NAT映射表项,同时PCP服务器会将外网IP与外网端口号的信息返回给客户端。当客户端的应用程序需要向网络发布自己的IP和端口号时,将发布自己的外网IP(ex-ip)和外网端口号(ex-port)。其他网络节点就可用该外网IP和外网端口号为目的地址和目的端口号,主动向该客户发起访问,NAT设备会根据PCP协商时建立起的NAT映射表项对报文进行转换,将外网IP和外网端口号转换为内网IP和内网端口号;当客户端需要向其他节点发送报文时,则进行反向的转换。现有PCP协议实现NAT穿越的缺点为:运营商网络中的NAT(CGN)通常是使用一个外网IP地址池,地址池中包含多个IP地址。当应用程序需要建立一个连接时,NAT设备会从中选取一个IP和一个端口来建立NAT映射表项。而在同一个应用程序建立多个连接时,现有PCP协议并无法保证多个连接的外网IP地址均相同,从而会导致应用程序无法正确进行数据传输或易受到网络攻击。
发明内容
本发明实施方式提供一种在NAT穿越中分配外网互联网协议IP地址的方法及设备、系统,可使同一个应用程序的多个连接通过NAT设备后的外网IP地址保持一致,提高NAT穿越协议对现有应用程序的适应能力,很好解决同一个应用程序的多个连接通过NAT设备后外网IP地址不一致带来的问题。
本发明实施例提供一种在NAT穿越中分配外网互联网协议IP地址的方法,包括:
接收客户端发出的建立对应连接的NAT映射表项的请求消息,所述请求消息包括指定的外网IP地址,该外网IP地址与所述客户端的同一个应用已建立的任意一个连接对应的NAT映射表项中的外网IP地址相同;
在根据接收的所述请求消息建立NAT映射表项时,按所述请求消息中指定的外网IP地址,分配与所述指定的外网IP地址相同的IP地址,作为所要建立NAT映射表项的外网IP地址。
本发明实施例还提供一种在NAT穿越中分配外网互联网协议IP地址的方法,包括:
在向NAT设备发送建立对应连接的NAT映射表项的请求消息中指定外网IP地址,所述指定的外网IP地址与同一个应用已建立的任意一个连接对应的NAT映射表项中的外网IP地址相同;
所述指定外网IP地址使NAT设备在根据所述请求消息建立NAT映射表项时,能按所述指定的外网IP地址,分配与所述指定的外网IP地址相同的IP地址,作为所述NAT设备所要建立NAT映射表项的外网IP地址;
向NAT设备发送包括所述指定外网IP地址的所述请求消息。
本发明实施例又提供一种NAT设备,包括:
接收单元,用于接收客户端发出的建立对应连接的NAT映射表项的请求消息,所述请求消息包括指定的外网IP地址,该外网IP地址与所述客户端的同一个应用已建立的任意一个连接对应的NAT映射表项中的外网IP地址相同;
建立单元,用于根据所述接收单元接收的所述请求消息,建立对应连接的NAT映射表项;
分配单元,用于在所述建立单元根据接收的所述请求消息建立NAT映射表项时,按所述接收单元接收的所述请求消息中指定的外网IP地址,分配与所述指定的外网IP地址相同的IP地址,作为所述建立单元所要建立NAT映射表项的外网IP地址。
本发明实施例进一步提供一种通信设备,包括:
设置单元,用于在向NAT设备发送建立对应连接的NAT映射表项的请求消息中指定外网IP地址,所述指定的外网IP地址与该通信设备上同一个应用已建立的任意一个连接对应的NAT映射表项中的外网IP地址相同;
发送单元,用于向NAT设备发送包括所述设置单元指定外网IP地址的所述请求消息。
本发明实施例还提供一种通信设备,包括:
设置单元,用于在向NAT设备发送建立对应连接的NAT映射表项的请求消息中指定索引值,所述指定的索引值所对应IP地址索引表中的外网IP地址与该通信设备上同一个应用已建立的任意一个连接对应的NAT映射表项中的外网IP地址相同;
发送单元,用于向NAT设备发送包括所述设置单元指定索引值的所述请求消息。
本发明实施例又提供一种NAT系统,包括:
客户端设备和服务器端设备;其中,所述客户端设备采用上述的通信设备;所述服务器端设备采用上述的NAT设备。
由上述本发明实施方式提供的技术方案可以看出,本发明实施例中通过在建立NAT映射表项时,按收到的客户端发送的请求消息中指定的外网IP地址,分配与所述外网IP地址相同的IP地址作为所要建立的NAT映射表项中的外网IP地址;并且收到的客户端发送的请求消息中指定的所述外网IP地址与同一个应用的已建立连接对应的NAT映射表项中的外网IP地址相同,从而很好的解决了在现有的NAT穿越方案中常出现的由于同一个应用程序的多个连接在NAT穿越以后外网IP地址不同而造成的应用程序不能正常运行或易造成网络攻击的问题,该方法大大加强了NAT穿越协议对现有应用程序的适应能力,增强了NAT设备的性能。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他附图。
图1为现有技术提供的PCP协议实现NAT穿越的示意图;
图2为现有技术提供的利用PCP协议实现FTP应用中NAT穿越的示意图;
图3为本发明实施例一提供的该方法流程图;
图4为本发明实施例一提供的该方法应用于PCP协议的示意图;
图5为本发明实施例二提供的利用PCP协议实现FTP应用中NAT穿越的示意图;
图6为本发明实施例二提供的利用PCP协议实现FTP应用中NAT穿越分配IP地址失败时的示意图;
图7为本发明实施例三提供的该方法流程图;
图8为本发明实施例四提供的NAT设备的结构框图;
图9为本发明实施例四提供的NAT设备的分配单元的结构框图;
图10为本发明实施例四提供的NAT设备的分配单元的另一种结构框图;
图11为本发明实施例五提供的通信设备的结构框图;
图12为本发明实施例七提供的通信系统的示意图。
具体实施方式
为便于理解,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
目前的NAT穿越中,当同一个应用程序需要建立多个连接时,并不能保证这多个连接的IP是一样的。而当多个连接的IP地址不一样时,某些通讯协议无法正常工作,例如图2所示的FTP应用,其中,当客户端(运行FTP客户端程序并作为PCP客户端)需要进行FTP协商时,会通过PCP协议在NAT设备上打开一个端口ex-port-1,与之对应的是ex-ip-1。FTP服务器收到的来自客户端的报文会携带ex-ip-1和ex-port-1。当客户端需要进行数据传输时,会在NAT设备上打开第二个端口ex-port-2,与之对应的外网IP地址是ex-ip-2,客户端会将ex-ip-2和ex-port-2通知给FTP服务器,FTP服务器会往该地址(即ex-ip-2和ex-port-2)发送数据流。但是当前的PCP协议并不能保证ex-ip-1与ex-ip-2相同,即不能保证同一个应用建立的两个连接在NAT穿越后外网IP地址相同,如果二者不同,有可能会成为网络攻击的手段,例如攻击者与服务器之间完成协商之后,却让服务器把数据流发往攻击目标。而本发明实施例的方案可保证同一个应用建立的多个连接在NAT穿越后外网IP地址相同。
实施例一
本实施例提供一种在NAT穿越中分配外网互联网协议IP地址的方法,是一种可应用在NAT穿越控制协议(如:PCP协议)中,实现使同一个应用程序的多个连接在NAT穿越后各连接的外网地址相同的方法,该方法可以由NAT设备实施,如图3所示,该方法具体包括:
步骤11、接收客户端发出的建立对应连接的NAT映射表项的请求消息,所述请求消息包括指定的外网IP地址,该外网IP地址与所述客户端同一个应用已建立的任意一个连接对应的NAT映射表项中的外网IP地址相同;
在请求消息包括指定的外网IP地址可以有多种方式,既可以直接将指定的外网IP地址在请求消息中携带,也可以在请求消息中携带指定的索引值,使接收方可以根据指定的索引值在IP地址索引表中找到对应的外网IP地址。客户端指定的索引值,可采用下述方式获得,在建立上述的同一个应用的连接时,客户端由返回的回应消息中获得已建立NAT映射表项的外网IP地址,在查找IP地址索引表即可确外网IP地址对应的索引值。另一种获得索引值的方式,可以是在上述回应消息中直接包括该索引值,该索引值为同一个应用程序的一个连接建立NAT映射表项后,该NAT映射表项的外网IP地址在IP地址索引表中对应的索引值。
步骤12、在根据接收的所述请求消息建立NAT映射表项时,按所述请求消息中指定的外网IP地址,分配与所述指定的外网IP地址相同的IP地址,作为所要建立NAT映射表项的外网IP地址。从而保证了在NAT穿越中同一个应用程序的多个连接的外网IP地址相同。
若请求消息中携带的是指定的索引值,则先根据该指定的索引值查找IP地址索引表,得到指定的外网IP地址,再按所述指定的外网IP地址,分配与所述指定的外网IP地址相同的IP地址,作为所要建立NAT映射表项的外网IP地址。
上述方法还包括:若无法分配与该外网IP地址相同的IP地址作为所要建立的NAT映射表项中的外网IP地址,则返回无法分配提示信息。使得客户端的应用程序可以根据返回的无法分配提示信息,断开之前已建立的连接,再重新建立各连接并通过NAT穿越控制协议(如PCP协议)重新建立对应各连接的NAT映射表项。
下面结合图4对上述方法应用于PCP协议中的情况作进一步说明:
通过上述方法,在PCP协议的PCP客户端发送的针对连接建立NAT映射表项的请求消息中包括指定的外网IP地址,指定的外网IP地址与同一个应用程序已建立连接中任意一个对应的NAT映射表项的外网IP地址相同(已建立连接对应的NAT映射表项的的外网IP地址,可由PCP服务器在建立对应连接的NAT映射表项后,回应消息中包括的外网IP地址获得),这样PCP服务器端可根据指定的外网IP地址分配所要建立的NAT映射表项的外网IP地址,具体在PCP协议中的流程如下:
步骤S11,PCP客户端向NAT设备运行的PCP服务器发送NAT映射请求,NAT映射请求中包括下述参数:in-ip,ex-ip,in-port,ex-port(内网IP地址,外网IP地址,内网端口号,外网端口号),其中外网端口号可以不具体指定例如为零,ex-ip为指定的外网IP地址,该指定的外网IP地址ex-ip与同一个应用程序已建立连接中任意一个对应的NAT映射表项的外网IP地址相同;
对某些不需要在NAT映射请求指定外网端口号的应用,可以将在NAT映射请求中的ex-port(外网端口号)一项设为特定值,如0,从而使服务器端不使用该参数。
步骤S12,PCP服务器根据PCP客户端发送的请求信息建立NAT映射表项,NAT映射表项为(in-ip,ex-ip)->(in-port,ex-port),该NAT映射表项中的ex-ip为PCP客户端指定的外网IP地址,ex-port由PCP服务器自行分配。NAT映射表项建立后,PCP服务器向PCP客户端回复的NAT映射回应为(in-ip,ex-ip,in-port,ex-port)。
经上述步骤S11、S12后,可保证需要建立多个连接的同一个应用程序,在建立后续的连接时,所要建立连接对应的NAT映射表项中的外网IP地址,与该应用程序已经建立的任意一个连接对应的NAT映射表项中的外网IP地址相同,从而使FTP应用程序在NAT穿越后的多个连接的外网IP地址相同,保证了FTP应用程序可正常连接进行数据传输,也避免了因多个连接的外网IP地址不同受到的网络攻击。
在PCP服务器不能按指定的外网IP地址分配相同的外网IP地址时,还包括步骤S13,NAT映射回应PCP服务器向PCP客户端回复的NAT映射回应无法分配提示信息为:不能分配指定地址(cannot assign mandatory address)。
实际应用中,应用程序建立连接时可以在请求建立第一个连接时在PCP请求消息中不指定外网IP地址,允许PCP服务器任意分配;而在第一连接建立对应的NAT映射表项后,应用程序在获得该外网IP地址后,在建立后续连接时,可以在发送的PCP请求消息中,用该外网IP地址作为指定的外网IP地址,要求PCP服务器分配与指定的外网IP地址相同的IP地址,使得后续连接对应的NAT映射表项中的外网IP地址与之前已建立连接对应的NAT映射表项中的外网IP地址相同,避免了因多个连接的外网地址不一致产生的应用程序不能正常连接的问题。
实施例二
本实施例结合在FTP应用中使NAT穿越后多个连接的外网IP地址相同的处理过程,对本发明实施例的在NAT穿越中分配外网互联网协议IP地址的方法进行说明,参见图5,其中,客户端经NAT设备与FTP服务器通信连接,客户端上运行FTP客户端程序和PCP客户端程序,PCP服务器运行在NAT设备上;该方法具体包括下述步骤:
步骤S21、FTP客户端程序先建立控制连接,客户端向PCP服务器发送NAT映射请求,NAT映射请求中包括参数(in-ip,in-ipor,ex-port-1),其中,in-ip为内网IP地址,in-ipor为内网端口号,ex-port-1为外网端口号。
步骤S22,PCP服务器收到客户端的NAT映射请求后,获取外网IP地址ex-ip-1和外网端口号ex-port-1,PCP服务器根据NAT映射请求和获取的外网IP地址(ex-ip-1)和外网端口号(ex-port-1)建立NAT映射表项:(in-ip,in-port-1)->(ex-ip-1,ex-port-1)。
步骤S23,PCP服务器建立针对控制连接的NAT映射表项后,向客户端回复NAT映射回应,NAT映射回应中包括(in-ip,in-ipor,ex-ip-1,ex-port-1);至此针对FTP应用的控制连接的NAT映射表项建立。
步骤S24,当FTP客户端需要向FTP服务器提供数据传输的目的IP地址和目的端口号时,客户端经PCP协议要在NAT设备上建立针对该FTP应用的数据连接的NAT映射表项,此时FTP客户端通过控制连接(控制连接中包括参数:ex-ip-1,ex-port-1)与FTP服务器协商数据连接的端口号(ex-port-2)。
步骤S25,协商确定端口号(ex-port-2)后,客户端向PCP服务器发送建立对应数据连接的NAT映射表项的NAT映射请求,NAT映射请求中包括(in-ip,ex-port-1,in-ipor-2,ex-port-2)。
步骤S26,PCP服务器收到客户端的NAT映射请求后,在NAT映射请求中指定的外网IP地址(ex-port-1)上获取端口号(ex-port-2),获取端口号(ex-port-2)后,根据NAT映射请求建立NAT映射表项:(in-ip,in-port-2)->(ex-ip-1,ex-port-2)。
步骤S27,PCP服务器建立针对数据连接的NAT映射表项后,向客户端回复NAT映射回应,NAT映射回应中包括(in-ip,ex-ip-1,in-port-2,ex-port-2);至此针对FTP应用的数据连接的NAT映射表项建立。
FTP客户端将外网IP地址(ex-ip-1)连同端口号(ex-port-2)告知FTP服务器,保证了控制连接的外网IP地址与数据连接的外网IP地址相同,FTP服务器以ex-ip-1和ex-port-2作为目的IP地址和目的端口号进行数据传输。
上述NAT穿越建立过程中,由于某些原因,例如PCP客户端指定要求分配的外网IP地址已经没有空余的端口可以分配,此时处理流程如图5所示,
步骤S31~35的处理过程与上述步骤S21~S25基本相同,不同的是:
步骤S36,PCP服务器收到客户端的NAT映射请求后,无法在NAT映射请求中指定的外网IP地址(ex-port-1)上获取端口号(ex-port-2),如NAT映射请求中指定的外网IP地址(ex-ip-1)已没有可用端口,会导致无法获取外网端口号(ex-port-2),则向客户端回复NAT映射回应,NAT映射回应中包括错误提示信息:不能分配指定地址(cannot assign mandatory address);
步骤S37,FTP客户端拆除已建立的控制连接,重新再建立各连接。
从图6可以看出,FTP客户端要求分配第一个IP地址(ex-ip-1)和端口(ex-port-1)时是成功的,但是请求分配该IP(ex-ip-1)的第二个端口(ex-port-2)时失败了,即该IP(ex-ip-1)没有对应的端口可用了。这种情况下FTP客户端需要终结当前的FTP连接,然后重新开始尝试建立连接。为了防止NAT设备再给FTP客户端分配到前一个IP地址(即与ex-ip-1相同的地址),FTP客户端也可以先通过PCP协议申请一个IP(与ex-ip-1不同的外网IP地址),然后再拆除当前的FTP连接,再重新建立新的FTP连接。
如果步骤S36中,ex-ip-1还有可用端口,但ex-port-2已被占用,此时也可以选择返回不能分配指定端口的信息。这种情况下,FTP客户端可以不必拆除控制连接,而是与FTP服务器重新协商数据连接的端口号,并重复上述步骤。
可以知道,在FTP应用中,在NAT映射请求指定外网IP地址,也可以采用在NAT映射请求指定一个索引值,使服务器端通过索引值在IP地址索引表中找到对应的外网IP地址这种方式,通过这种方式也可以实现客户端指定外网IP地址,使服务器端按指定的外网IP地址分配建立NAT映射表项的外网IP地址,从而使FTP应用中的多个连接在NAT穿越后保证外网IP地址相同。
实施例三
本实施例提供一种在NAT穿越中分配外网互联网协议IP地址的方法,如图7所示,该方法包括:
步骤S41,在向NAT设备发送建立对应连接的NAT映射表项的请求消息中指定外网IP地址,所述指定的外网IP地址与同一个应用已建立的任意一个连接对应的NAT映射表项中的外网IP地址相同;
所述指定外网IP地址使NAT设备在根据所述请求消息建立NAT映射表项时,能按该指定的外网IP地址,分配与所述指定的外网IP地址相同的IP地址,作为所述NAT设备所要建立NAT映射表项的外网IP地址;
步骤S42,向NAT设备发送包括所述指定外网IP地址的所述请求消息。
实施例四
本实施例提供一种NAT设备,如图8所示,包括:
接收单元1,用于接收客户端发出的建立对应连接的NAT映射表项的请求消息,所述请求消息包括指定的外网IP地址,该外网IP地址与同一个应用已建立的任意一个连接对应的NAT映射表项中的外网IP地址相同;
建立单元2,用于根据所述接收单元接收的所述请求消息,建立对应连接的NAT映射表项;
分配单元3,用于在所述建立单元根据接收的所述请求消息建立NAT映射表项时,按所述接收单元接收的所述请求消息中指定的外网IP地址,分配与所述指定的外网IP地址相同的IP地址,作为所述建立单元所要建立NAT映射表项的外网IP地址。
如图9所示,上述NAT设备中的分配单元包括:
获取模块31,用于获取所述接收单元接收客户端发出的建立对应连接的NAT映射表项的请求消息中指定的外网IP地址;
处理模块32,用于分配与所述外网IP地址相同的IP地址,作为所述建立单元根据所述请求消息所要建立的NAT映射表项中的外网IP地址。
该NAT设备可以按收到的客户端发送的请求消息中指定的外网IP地址,分配与所述外网IP地址相同的IP地址作为所要建立的NAT映射表项中的外网IP地址。
如图10所示,上述NAT设备中的分配单元的另一种结构形式包括:
获取模块311,用于获取所述接收单元接收客户端发出的建立对应连接的NAT映射表项的请求消息中指定的索引值;
查找模块313,用于根据所述指定的索引值在IP地址索引表中找到对应的外网IP地址;
处理模块312,用于分配与所述外网IP地址相同的IP地址,作为所述建立单元根据所述请求消息所要建立的NAT映射表项中的外网IP地址。
该NAT设备可以按收到的客户端发送的请求消息中指定的外网IP地址,分配与所述外网IP地址相同的IP地址作为所要建立的NAT映射表项中的外网IP地址。解决了在现有的NAT穿越方案中常出现的由于同一个应用程序的多个连接在NAT穿越后外网IP地址不同而造成的应用不能正常运行或易受到网络攻击的问题,大大加强了NAT穿越协议对现有应用的适应能力。
实施例五
如图11所示,本实施例提供一种通信设备,可作为客户端设备,包括:设置单元21和发送单元22;
设置单元21,用于在向NAT设备发送建立对应连接的NAT映射表项的请求消息中指定索引值,所述指定的索引值所对应IP地址索引表中的外网IP地址与同一个应用的已建立连接对应的NAT映射表项中的外网IP地址相同;使NAT设备在根据所述请求消息建立NAT映射表项时,能按该指定的索引值对应找到的外网IP地址,分配与所述外网IP地址相同的IP地址,作为所述NAT设备所要建立NAT映射表项的外网IP地址;
发送单元22,用于向NAT设备发送包括所述设置单元指定索引值的所述请求消息。
该通信设备可以在向NAT设备发送的建立对应连接的NAT映射表项的请求消息中指定外网IP地址,指定的外网IP地址与同一个应用已建立的任意一个连接对应的NAT映射表项中的外网IP地址相同,方便服务器按请求消息中指定的外网IP地址来分配相同的IP地址,作为所要建立NAT映射表项的外网IP地址,保证了同一个应用程序的多个连接在NAT穿越后各连接的外网IP地址相同。
实施例六
本实施例提供一种通信设备,也可作为客户端设备,其结构与实施例四的通信设备类似,可参见图11,包括:设置单元和发送单元;
设置单元,用于在向NAT设备发送建立对应连接的NAT映射表项的请求消息中指定外网IP地址,所述指定的外网IP地址与同一个应用已建立的任意一个连接对应的NAT映射表项中的外网IP地址相同;所述指定外网IP地址使NAT设备在根据所述请求消息建立NAT映射表项时,能按该指定的外网IP地址,分配与所述指定的外网IP地址相同的IP地址,作为所述NAT设备所要建立NAT映射表项的外网IP地址;
发送单元,用于向NAT设备发送包括所述设置单元指定外网IP地址的所述请求消息。
该通信设备可以在向NAT设备发送的建立对应连接的NAT映射表项的请求消息中指定索引值,指定的索引值所对应IP地址索引表中的外网IP地址与同一个应用已建立的任意一个连接对应的NAT映射表项中的外网IP地址相同;方便服务器按请求消息中指定的索引值在IP地址索引表中找到对应的外网IP地址,并根据找到的外网IP地址来分配相同的IP地址,作为所要建立NAT映射表项的外网IP地址,保证了同一个应用程序的多个连接在NAT穿越后各连接的外网IP地址相同。
实施例七
如图12所示,本实施例提供一种NAT系统,包括:
客户端设备41和服务器端设备42;其中,所述客户端设备采用上述实施例五、六任一项中给出的通信设备;所述服务器端设备采用上述实施例四中给出的NAT设备;
所述客户端设备41,与服务器端设备42连接,用于在向NAT设备发送建立对应连接的NAT映射表项的请求消息中指定外网IP地址,所述指定的外网IP地址与同一个应用已建立的任意一个连接对应的NAT映射表项中的外网IP地址相同,并将请求消息向服务器端设备42发送;
所述服务器端设备42,与客户端设备41通信连接,用于接收客户端发出的建立对应连接的NAT映射表项的请求消息,所述请求消息包括指定的外网IP地址,该外网IP地址与同一个应用已建立的任意一个连接对应的NAT映射表项中的外网IP地址相同;在根据接收的所述请求消息建立NAT映射表项时,按所述请求消息中指定的外网IP地址,分配与所述指定的外网IP地址相同的IP地址,作为所要建立NAT映射表项的外网IP地址。
由上可以看出,本发明实施例的方法,通过较简单的方式改进PCP协议,实现在NAT穿越中保证同一个应用程序的多个连接在NAT穿越后的外网IP地址相同,避免了因多个连接的外网IP地址不一致产生的应用程序不能正常连接或易受到网络攻击的问题。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一可读取存储介质中,所述的存储介质可以为,如:ROM/RAM、磁碟、光盘等。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
Claims (10)
1.一种在NAT穿越中分配外网互联网协议IP地址的方法,其特征在于,包括:
接收客户端发出的建立对应连接的NAT映射表项的请求消息,所述请求消息包括指定的外网IP地址,该外网IP地址与所述客户端的同一个应用已建立的任意一个连接对应的NAT映射表项中的外网IP地址相同;
在根据接收的所述请求消息建立NAT映射表项时,按所述请求消息中指定的外网IP地址,分配与所述指定的外网IP地址相同的IP地址,作为所要建立NAT映射表项的外网IP地址。
2.根据权利要求1所述的在NAT穿越中分配外网互联网协议IP地址的方法,其特征在于,所述按所述请求消息中指定的外网IP地址,分配与所述指定的外网IP地址相同的IP地址包括:
所述客户端发出的请求消息中包括指定的索引值,根据所述指定的索引值在IP地址索引表中找到对应的外网IP地址,分配与所述指定的索引值对应的外网IP地址相同的IP地址。
3.一种在NAT穿越中分配外网互联网协议IP地址的方法,其特征在于,包括:
在向NAT设备发送建立对应连接的NAT映射表项的请求消息中指定外网IP地址,所述指定的外网IP地址与同一个应用已建立的任意一个连接对应的NAT映射表项中的外网IP地址相同;
所述指定外网IP地址使NAT设备在根据所述请求消息建立NAT映射表项时,能按所述指定的外网IP地址,分配与所述指定的外网IP地址相同的IP地址,作为所述NAT设备所要建立NAT映射表项的外网IP地址;
向NAT设备发送包括所述指定外网IP地址的所述请求消息。
4.根据权利要求3所述的在NAT穿越中分配外网互联网协议IP地址的方法,其特征在于,所述在向NAT设备发送建立对应连接的NAT映射表项的请求消息中指定外网IP地址包括:
在向NAT设备发送的请求消息中包括指定的索引值,使服务器端能根据所述指定的索引值在IP地址索引表中找到对应的外网IP地址。
5.一种NAT设备,其特征在于,包括:
接收单元,用于接收客户端发出的建立对应连接的NAT映射表项的请求消息,所述请求消息包括指定的外网IP地址,该外网IP地址与所述客户端的同一个应用已建立的任意一个连接对应的NAT映射表项中的外网IP地址相同;
建立单元,用于根据所述接收单元接收的所述请求消息,建立对应连接的NAT映射表项;
分配单元,用于在所述建立单元根据接收的所述请求消息建立NAT映射表项时,按所述接收单元接收的所述请求消息中指定的外网IP地址,分配与所述指定的外网IP地址相同的IP地址,作为所述建立单元所要建立NAT映射表项的外网IP地址。
6.根据权利要求8所述的NAT设备,其特征在于,所述分配单元包括:
获取模块,用于获取所述接收单元接收客户端发出的建立对应连接的NAT映射表项的请求消息中指定的外网IP地址;
处理模块,用于分配与所述外网IP地址相同的IP地址,作为所述建立单元根据所述请求消息所要建立的NAT映射表项中的外网IP地址。
7.根据权利要求8所述的NAT设备,其特征在于,所述分配单元包括:
获取模块,用于获取所述接收单元接收客户端发出的建立对应连接的NAT映射表项的请求消息中指定的索引值;
查找模块,用于根据所述指定的索引值在IP地址索引表中找到对应的外网IP地址;
处理模块,用于分配与所述外网IP地址相同的IP地址,作为所述建立单元根据所述请求消息所要建立的NAT映射表项中的外网IP地址。
8.一种通信设备,其特征在于,包括:
设置单元,用于在向NAT设备发送建立对应连接的NAT映射表项的请求消息中指定外网IP地址,所述指定的外网IP地址与该通信设备上同一个应用已建立的任意一个连接对应的NAT映射表项中的外网IP地址相同;
发送单元,用于向NAT设备发送包括所述设置单元指定外网IP地址的所述请求消息。
9.一种通信设备,其特征在于,包括:
设置单元,用于在向NAT设备发送建立对应连接的NAT映射表项的请求消息中指定索引值,所述指定的索引值所对应IP地址索引表中的外网IP地址与该通信设备上同一个应用已建立的任意一个连接对应的NAT映射表项中的外网IP地址相同;
发送单元,用于向NAT设备发送包括所述设置单元指定索引值的所述请求消息。
10.一种NAT系统,其特征在于,包括:
客户端设备和服务器端设备;其中,所述客户端设备采用上述权利要求8或9中所述的通信设备;所述服务器端设备采用上述权利要求5~7任一项所述的NAT设备。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010508346.4A CN102447748B (zh) | 2010-10-15 | 2010-10-15 | 在nat穿越中分配外网互联网协议ip地址的方法及设备、系统 |
PCT/CN2011/075185 WO2011144154A1 (zh) | 2010-10-15 | 2011-06-02 | 在nat穿越中分配外网互联网协议ip地址的方法及设备、系统 |
EP11783071.1A EP2608489B1 (en) | 2010-10-15 | 2011-06-02 | Method, device and system for allocating internet protocol address of external network in network address translation pass-through |
US13/859,392 US20130227170A1 (en) | 2010-10-15 | 2013-04-09 | Method for allocating an external network ip address in nat traversal, and device and system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010508346.4A CN102447748B (zh) | 2010-10-15 | 2010-10-15 | 在nat穿越中分配外网互联网协议ip地址的方法及设备、系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102447748A true CN102447748A (zh) | 2012-05-09 |
CN102447748B CN102447748B (zh) | 2015-04-22 |
Family
ID=44991207
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201010508346.4A Active CN102447748B (zh) | 2010-10-15 | 2010-10-15 | 在nat穿越中分配外网互联网协议ip地址的方法及设备、系统 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20130227170A1 (zh) |
EP (1) | EP2608489B1 (zh) |
CN (1) | CN102447748B (zh) |
WO (1) | WO2011144154A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106559504A (zh) * | 2015-09-25 | 2017-04-05 | 华为技术有限公司 | 一种地址转换方法及装置 |
CN109165191A (zh) * | 2018-09-12 | 2019-01-08 | 郑州云海信息技术有限公司 | 一种基于ai云的容器卷数据上传方法和装置 |
CN109698869A (zh) * | 2017-10-23 | 2019-04-30 | 中国移动通信有限公司研究院 | 私网穿越方法、通信节点及存储介质 |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8806033B1 (en) * | 2011-06-30 | 2014-08-12 | Juniper Networks, Inc. | Effective network identity pairing |
CN102447630B (zh) * | 2011-12-28 | 2018-02-27 | 中兴通讯股份有限公司 | 协议报文的传输方法、家庭网关及运营商级网络转换设备 |
CN103580880B (zh) * | 2012-08-03 | 2017-12-29 | 华为技术有限公司 | 一种快速通知cgn异常的方法、设备及系统 |
CN103685586B (zh) * | 2012-09-07 | 2018-09-04 | 中兴通讯股份有限公司 | 一种实现地址共享的方法、装置和系统 |
US9473451B2 (en) * | 2012-09-21 | 2016-10-18 | Ixia | Methods, systems, and computer readable media for providing mapping information associated with port control protocol (PCP) in a test environment |
CN104243628A (zh) * | 2014-09-11 | 2014-12-24 | 杭州华三通信技术有限公司 | 一种连续多端口申请方法和装置 |
CN106487864B (zh) | 2015-09-02 | 2019-09-27 | 华为终端有限公司 | 数据连接的建立方法、服务端及移动终端 |
JP6641819B2 (ja) * | 2015-09-15 | 2020-02-05 | 富士通株式会社 | ネットワーク監視装置、ネットワーク監視方法及びネットワーク監視プログラム |
US10397182B1 (en) * | 2016-03-24 | 2019-08-27 | Sprint Communications Company L.P. | Method and procedure to identify a source across a network address translation device |
US11943248B1 (en) | 2018-04-06 | 2024-03-26 | Keysight Technologies, Inc. | Methods, systems, and computer readable media for network security testing using at least one emulated server |
US10708163B1 (en) | 2018-07-13 | 2020-07-07 | Keysight Technologies, Inc. | Methods, systems, and computer readable media for automatic configuration and control of remote inline network monitoring probe |
US10938777B2 (en) * | 2018-10-09 | 2021-03-02 | ColorTokens, Inc. | Computer implemented system and method for snooping PCP packets |
CN110913034A (zh) * | 2019-11-27 | 2020-03-24 | 迈普通信技术股份有限公司 | Ip地址配置方法、装置及网络系统 |
CN115499409A (zh) * | 2022-09-29 | 2022-12-20 | 阿里巴巴(中国)有限公司 | Nat网关、服务器和网络系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030233452A1 (en) * | 2002-06-13 | 2003-12-18 | Nvidia Corp. | Method and apparatus for security protocol and address translation integration |
CN1550094A (zh) * | 2001-08-30 | 2004-11-24 | 网络地址变换的地址的预先取得 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20040028046A (ko) * | 2002-09-28 | 2004-04-03 | 주식회사 케이티 | Mpls망과 비 mpls망간의 패킷 전달 방법 |
CN100341301C (zh) * | 2005-05-25 | 2007-10-03 | 复旦大学 | 基于nat的udp流媒体服务器的网关穿透方法 |
CN1976356A (zh) * | 2005-11-28 | 2007-06-06 | 华为技术有限公司 | 一种网络地址转换穿透系统、方法和用户设备 |
US8296437B2 (en) * | 2005-12-29 | 2012-10-23 | Logmein, Inc. | Server-mediated setup and maintenance of peer-to-peer client computer communications |
CN100588171C (zh) * | 2007-09-10 | 2010-02-03 | 杭州华三通信技术有限公司 | 实现通用路由封装隧道穿越的方法及设备 |
-
2010
- 2010-10-15 CN CN201010508346.4A patent/CN102447748B/zh active Active
-
2011
- 2011-06-02 WO PCT/CN2011/075185 patent/WO2011144154A1/zh active Application Filing
- 2011-06-02 EP EP11783071.1A patent/EP2608489B1/en active Active
-
2013
- 2013-04-09 US US13/859,392 patent/US20130227170A1/en not_active Abandoned
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1550094A (zh) * | 2001-08-30 | 2004-11-24 | 网络地址变换的地址的预先取得 | |
US20030233452A1 (en) * | 2002-06-13 | 2003-12-18 | Nvidia Corp. | Method and apparatus for security protocol and address translation integration |
Non-Patent Citations (1)
Title |
---|
ROSENBERG J: "STUN-Simple Traversal of User Datagram Protocol (UDP) Through Network Address Translators (NATs)", 《STUN-SIMPLE TRAVERSAL OF USER DATAGRAM PROTOCOL (UDP) THROUGH NETWORK ADDRESS TRANSLATORS (NATS)》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106559504A (zh) * | 2015-09-25 | 2017-04-05 | 华为技术有限公司 | 一种地址转换方法及装置 |
CN106559504B (zh) * | 2015-09-25 | 2020-09-08 | 华为技术有限公司 | 一种地址转换方法及装置 |
CN109698869A (zh) * | 2017-10-23 | 2019-04-30 | 中国移动通信有限公司研究院 | 私网穿越方法、通信节点及存储介质 |
CN109698869B (zh) * | 2017-10-23 | 2022-02-25 | 中国移动通信有限公司研究院 | 私网穿越方法、通信节点及存储介质 |
CN109165191A (zh) * | 2018-09-12 | 2019-01-08 | 郑州云海信息技术有限公司 | 一种基于ai云的容器卷数据上传方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
EP2608489A1 (en) | 2013-06-26 |
CN102447748B (zh) | 2015-04-22 |
EP2608489B1 (en) | 2017-04-05 |
US20130227170A1 (en) | 2013-08-29 |
EP2608489A4 (en) | 2013-07-24 |
WO2011144154A1 (zh) | 2011-11-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102447748A (zh) | 在nat穿越中分配外网互联网协议ip地址的方法及设备、系统 | |
CN102714636B (zh) | 用于便于越过网络边界的推送通信的方法和装置 | |
CN101488918B (zh) | 一种多网卡服务器的接入方法和系统 | |
KR100310652B1 (ko) | 네트워크 에뮬레이션을 제공하는 데이터 통신 네트워크에서 통신을 개선하기 위한 방법 및 시스템 | |
CN101534329B (zh) | 一种ip地址分配方法及系统 | |
US10785158B1 (en) | System and method for provisioning both IPV4 and IPV6 internet service and load balancer service | |
CN102404418B (zh) | 为用户终端分配ip地址的方法、装置和系统 | |
CN102761440B (zh) | 管理IPv4终端的通道的建立方法及网络网关 | |
CN102480530A (zh) | 一种报文发送方法及装置 | |
CN102148879A (zh) | 端口映射方法、装置与通信系统 | |
EP1307018B1 (en) | Load balancing unit and method of its operation | |
CN101321111A (zh) | 通信方法和设备、服务器、及计算机可读记录介质 | |
CN100420220C (zh) | 二层隧道协议网络服务器及其隧道建立方法 | |
EP2579519A1 (en) | Method, network device and system for automatically configuring network device in internet protocol version 6 network | |
CN102045409B (zh) | 网络穿透方法及网络通讯系统 | |
CN104618243A (zh) | 路由方法、装置及系统、网关调度方法及装置 | |
CN105245629A (zh) | 基于dhcp的主机通信方法及装置 | |
CN1812398B (zh) | 一种基于dhcp中继实现dhcp服务器负载分担的方法 | |
CN102469171A (zh) | 实现不同ip域中两个终端节点互通的方法、系统和设备 | |
CN102143242A (zh) | Ip网络中地址分配方法、设备及系统 | |
CN103118145A (zh) | 基于DNS的IPv4-over-IPv6多隧道自动建立方法 | |
CN111629059B (zh) | 一种集群通信方法、系统、设备及计算机可读存储介质 | |
CN103503413B (zh) | 传输网络信息的方法及装置 | |
CN102780602A (zh) | 一种数据传输方法及装置 | |
CN101431477B (zh) | 端到端运营商级和园区网路由器组合的IPv4/IPv6分组转换方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |