CN102907073B - Dns服务器、网关和在数据传输中管理端口范围标识符的方法 - Google Patents
Dns服务器、网关和在数据传输中管理端口范围标识符的方法 Download PDFInfo
- Publication number
- CN102907073B CN102907073B CN201180025406.XA CN201180025406A CN102907073B CN 102907073 B CN102907073 B CN 102907073B CN 201180025406 A CN201180025406 A CN 201180025406A CN 102907073 B CN102907073 B CN 102907073B
- Authority
- CN
- China
- Prior art keywords
- gateway
- port
- server
- address
- identifier
- 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.)
- Active
Links
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/2517—Translation of Internet protocol [IP] addresses using port numbers
-
- 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/45—Network directories; Name-to-address mapping
- H04L61/4505—Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols
- H04L61/4511—Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols using domain name system [DNS]
-
- 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/255—Maintenance or indexing of mapping tables
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2101/00—Indexing scheme associated with group H04L61/00
- H04L2101/60—Types of network addresses
- H04L2101/618—Details of network addresses
- H04L2101/663—Transport layer addresses, e.g. aspects of transmission control protocol [TCP] or user datagram protocol [UDP] ports
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2101/00—Indexing scheme associated with group H04L61/00
- H04L2101/60—Types of network addresses
- H04L2101/695—Types of network addresses using masks or ranges of addresses
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
本发明涉及DNS服务器(110)和用于管理DNS请求的方法,该方法包括:接收关于访问可经由网关(106B)访问的远程应用(104B)的DNS请求的步骤(E2)和发送包括所述网关(106B)的IP地址的DNS响应的步骤(E3),该方法还包括:检验步骤,其中确定端口范围标识符是否与所述网关(106B)的IP地址相关联地被存储在所述DNS服务器(110)中,以及如果是则在发送所述DNS响应之前将所述标识符插入该DNS响应中的步骤。本发明还提供了一种用于从第一网关(106A)向第二网关(106B)发送数据的方法,一种用于从网关(106B)向本地网络(LAN B)的服务器(102B)发送数据的方法,和用于执行所述方法的网关(106A,106B)。
Description
技术领域
本发明涉及经由互联网交换数据的一般领域,并且具体地涉及经由接入网关在远程应用之间通信。
背景技术
已知地,接入网关使得给定本地网络中的多个终端能够与远程网络通信,并且例如经由互联网这样做。
图1示出了这样一个例子,其中包含于本地网LAN_A中的第一终端2A能够与位于远程本地网LAN_B中的远程服务器2B通信。为此,第一网关6A被串联地放置在终端2A与互联网之间,并且第二网关6B被串联地放置在服务器2B与互联网之间。这样,在终端2A中实现的应用客户端4A能够与位于服务器2B中的远程应用4B通信。在该例子中,考虑实现于终端2A中并且寻求与实现于服务器2B中的Web服务器通信的Web浏览器。
一般地,每个直接连接到互联网的设备(例如网关6A和6B)必须通过称作“公共地址”的IP地址来标识,从而能够与互联网上的其他设备通信。作为例子,这种地址是在注册到DHCP服务器(即利用动态主机配置协议分配IP地址的服务器)时被分配的。公共IP地址被认为在互联网上是“可路由的”,即它能够被用来标识经由互联网传送的数据分组的源或目的地。
此外,本地网络中的每个主机设备(例如终端2A或服务器2B)必须借助于称作“私有地址”或“本地地址”的IP地址来标识,其中该地址专用于所讨论的本地网络。本地IP地址可以只被分配给给定本地网络内的一个设备,由此使得网关能够标识它在本地网络中与其通信的设备。本地地址在互联网上不是可路由的,这意味着它无法被用于所讨论的本地网络的外部。
目前,分配给给定网关的公共IP地址的数目经常少于存在于该网关的本地网络内的设备的数目(终端、服务器等)。该网关因而实现了网络地址转换(NAT)功能,该功能在于存储以(本地地址,公共地址)的形式在表中配对的本地IP地址与公共IP地址之间的关联。网关因而能够动态地分配公共地址,它将该公共地址安排给它的本地网络中的期望在给定时刻与本地网外部通信的设备。
此外,NAT功能经常更新设备的通信会话的用户数据报协议(UDP)或传输控制协议(TCP)端口,从而节约对分配给网关的一个或多个公共地址的使用。NAT功能因而是所谓的网络地址端口转换(NAPT)功能,其在于存储本地和公共IP地址之间的关联,以及相应的公共和私有端口之间的关联。每个关联然后作为具有(本地地址,本地端口,公共地址,公共端口)的形式的条目而被存储在表中。在本文中,更简单地通过使用术语“NAT”来指代术语“NAPT”。
因此,网关6A和6B一旦获得公共地址和关联端口的新分配就更新其各自的NAT表8A和8B。
此外,目前,最广泛地用于实现IP地址的互联网协议是缩写IPV4(互联网协议版本4)。这个IP协议版本用来分配所谓的“IPV4”IP地址,该地址是以四个8比特字节被编码的,其对应于32比特编码。通常,IPV4地址被写成用点隔开的四个十进制数字的形式,例如193.43.55.67。
不幸的是,IP连通性服务提供商团体通常接受可用公共IPV4地址将耗尽是不可避免的。在32比特上编码IPV4地址将潜在的IPV4地址数目限制于232(即4,294,967,296),并且因此限制了能够由合适的机构(例如互联网编号分配机构(IANA,Internet assigned numbers Authority))在互联网内分配的不同公共地址的子集。公共IPV4地址的初始短缺预测是在2011年早期。
这个前景已经使得运营商规划用于缓解该短缺的解决方案。因此,从长远来说,为了克服与IPV4地址的32比特编码相关联的限制,运营商逐渐投入使用新的IP协议版本,其缩写为IPV6(互联网协议版本6)。这个新协议使得IP地址能够在128比特上被编码(给出了2128个潜在的不同IP地址),由此提供了大得多的地址空间。然而,还需要一定的时间来实现新协议并且使其融合到互联网中。
与IPV6部署并行地,过渡解决方案之一在于使得公共IPV4地址能够在多个互联网客户端之间被共享。这样,多个客户端(网关等)可以连接到互联网,同时使用单个通用的公共IPV4地址,其称作“共享”地址。
在下文中,术语“地址”或“IP地址”被用来指代IPV4地址。
目前,某些系统已经使得共享IPV4地址能够在互联网上被管理。通用地称作“端口范围”的一个解决方案已经被特别地开发出来以处理IPV4地址短缺的问题。该解决方案在于向互联网接入网关分配:
·共享的公共IPV4地址;和
·固定范围的已授权源端口。
下面参考图1所示的接入网关6A来描述端口范围方法的操作原理。
在端口范围方法中,网关6A已经分配了公共IPV4地址,其写为AdresPub,以及授权的端口范围PortRange_A,例如安排成从端口1024到端口2047。公共地址AdresPub是可以分配给其他网关的共享地址,例如网关6B,其例如提供与范围PortRange_A完全不相交的相关端口范围PortRange_B。
此外,网关6A实现NAT功能:当接收从终端2A去往终端2B的IP数据分组并且作为其源而指定终端2A的私有地址和关联于应用4A的源端口时,网关6A用公共地址AdresPub来代替分组的源地址,并且如果必要,它修改源端口以使其在范围PortRange_A内。
此外,当数据分组从互联网发送到网关6A时,称作端口范围路由器(PRR)(图1中未显示)的指定互联网设备能够基于目的IPv4地址和包含于相关分组中的目的端口来确定要向其发送分组的网关。PPR然后将传送中的分组引导至合适的目的网关并且它这样做的同时不需要修改相关分组。例如,如果PRR确定分组的目的地址是AdresPub并且同一分组的目的端口在范围PortRange_A内,则它将分组定向到网关6A。
应当观察到,端口范围方法的应用领域不限于互联网接入网关,而是可以应用于其他设备,例如移动终端。
端口范围方法特别地在以下文献中描述:WO 2009/125158A2、WO 2010/004156A1和WO 2010/004180A1。
然而,端口范围方法对于特定的使用而言存在缺陷。
例如,如果网关6B实现了端口范围方法,则终端2A上的web浏览器4A将通常无法访问在服务器2B中托管的web服务器4B。为了访问该web服务器,web浏览器必须发送IP数据分组至网关6B,该IP数据分组包括在NAT条目8B中与web服务器4B相关联的目的公共端口和目的公共地址。Web服务器是所谓的“已知”应用,其默认地可以在私有端口80上访问(超文本传输协议HTTP)。不幸的是,由于网关6B实现了端口范围功能,因此在其NAT表8B中具有将私有端口80关联于在范围PortRange_B内的给定公共端口PubPort_Server的条目。通常,web浏览器4A不具有由网关6B分配给web服务器4B的公共端口PubPort_Server的知识,并且它因而无法访问那里。
因此,web服务器4B必须将其公共端口PubPort_Server告知所有它的潜在应用客户端,以及特别是告知web浏览器4A。各种不同的技术使得例如web浏览器4A的应用客户端能够确定PubPort_Server。作为例子,web浏览器4B可以将包含PubPort_Server值的HTTP标签安装到互联网上的另一个服务器的web页面中。然而,该方法是限制性的并且不是非常通用。此外,对于与web服务器不同的应用而言,设想使用HTTP标签技术是不可行的。另一个技术在于事先将由网关6B分配给web服务器4B的PubPort_Server值告知域名服务器(DNS)。以缩写SRV(服务记录)而已知的这个功能是一种DNS选项,其使之能够在DNS服务器中存储与关联于IP地址的服务相对应的端口。因此,在DNS服务器10中可以与相应网关的公共IP地址相关联地存储用于访问远程应用的公共端口号。作为例子,这个信息可以被存储在包含于DNS服务器10中的表12中。作为例子,web浏览器4A可以经由其网关6A发送请求至DNS服务器10并且作为响应可以接收web服务器4B的目的IP地址以及关联的公共端口PubPort_Server。
然而,SRV方法在端口范围解决方案背景下的使用是不令人满意的,因为许多应用客户端(例如多数web浏览器)目前无法利用SRV功能。
因此,目前需要一种解决方案以使之能够使用在多个端口范围之中共享的公共地址,其不存在传统端口范围解决方案所固有的限制和缺陷。更确切地说,需要一种改进的端口范围解决方案版本以使得远程应用能够经由互联网相互通信,即使它们并不知道另一方的公共端口。
发明内容
为此,本发明提供了一种用于管理DNS请求的方法,该方法由DNS服务器执行并且包括以下步骤:
-接收关于访问可经由网关访问的远程应用的DNS请求;和
-发送包括所述网关的IP地址的DNS响应;
该方法的特征在于,还包括:
-用于确定端口范围标识符是否与该网关的IP地址相关联地被存储在该DNS服务器中的检验步骤;
-如果是,在发送所述DNS响应之前将所述标识符插入该DNS响应中的步骤。
本发明因而使之能够在DNS服务器中存储与网关的IP地址相关联地分配给该网关的端口范围标识符。当本发明的DNS服务器接收关于接受可经由远程网关访问的远程应用的DNS请求时,该DNS服务器返回包括该远程网关的IP地址的DNS响应。此外,如果DNS服务器确定端口范围标识符与该远程网关的IP片地址相关联地被存储,则该DNS服务器将该标识符插入DNS响应中。作为例子,这种插入能够通过使用上述SRV功能来实现。
作为例子,所述DNS响应被发送至向DNS服务器发送DNS请求的网关。端口范围标识符在DNS响应中的出现因而使得该请求的网关能够识别分配给该远程网关的端口范围。这种标识符在DNS响应中的出现意味着该远程网关正在使用共享IP地址。
此外,端口范围标识符例如可以对应于标识分配给网关的端口范围的正整数。
在一个特定的实现中,管理DNS请求的各种不同的步骤是由计算机程序指令来确定的。
因此,本发明也提供了一种数据介质上的计算机程序,该程序适于实现在DNS服务器中或更一般地实现在计算机中,该程序包括适于实现上述用于管理DNS请求的方法的各步骤的指令。
该程序可以使用任何编程语言并且以源代码、目标代码或源代码与目标代码之间的中间代码的形式,例如以部分编译的形式或以任何其他期望的形式。
本发明也提供了一种计算机可读数据介质或记录介质,其包括如上所述的计算机程序的指令。
本发明还提供了一种用于在第一网关中向第二网关发送数据的方法,该方法包括:
-预备步骤,其中在所述第一网关中存储与要向其发送数据的第二网关相关联的IP地址和端口范围标识符,该标识符是根据上述用于管理DNS请求的方法,响应于DNS请求而从DNS服务器获得的;
-确定步骤,其中使用所述标识符来确定要向其发送数据的目的端口号;和
-向所述第二网关的目的端口号发送数据的步骤。
上述数据发送方法是在第一网关中执行的。该第一网关因而能够基于所述标识符来确定要向其发送数据的目的端口号,该目的端口号在分配给所述第二网关的端口范围内。这样,所述第一网关能够发送数据至使用共享IP地址的第二网关。
此外,所述确定步骤还可以包括:
-当目的端口号初始包含于所述数据中时,在所述确定步骤期间根据所述标识符和初始目的端口号来确定要向其发送数据的目的端口号,并且用如此确定的新的目的端口号来代替该初始目的端口号;或
-当目的端口号最初未包含于所述数据中时,将该数据封装到包括在所述确定步骤期间所确定的目的端口的数据分组(通常是IP/UDP分组)中。
本发明因而使得网关能够发送不具有目的端口的数据分组至使用共享IP地址的网关。作为例子,这可以应用于由应用客户端发送至应用服务的互联网控制消息协议(ICMP)/Ping型的分组。
在一个特定的实现中,所述标识符是正整数I并且由所述第一网关确定的目的端口号等于增加了(I.N)个端口的初始目的端口号,其中N是预定正整数。
在一个特定的实现中,该数据发送方法也包括与数据一起发送根据关联于所述第一网关的端口范围标识符而确定的源端口号,该标识符被存储在所述第一网关中。
本发明因而使得使用共享IP地址的第一网关能够发送数据到第二网关,在所发送的数据分组中使用的源端口是在分配给所述第一网关的端口范围内的。
关联于第一网关的端口范围的标识符例如对应于标识了分配给所述第一网关的端口范围的正整数。
此外,在一个特定的实现中,所述数据发送方法还包括:
-所述第一网关接收来自所述远程应用的第二数据分组的步骤;
-由该第一网关执行的第二确定步骤,其中使用关联于该第二网关的标识符和最初包含于所接收的第二数据分组中的源端口号二者来确定当向可经由所述第一网关访问的本地网络的所确定应用发送第二分组时要使用的源端口号;和
-所述第一网关用在所述第二确定步骤期间所确定的源端口号来代替最初包含于所述第二数据分诅中的源端口号的步骤。
本发明因而有利地使得所述第一网关能够利用作为其源端口号的由所述应用访问的服务的默认端口,将来自所述第二网关的第二数据分组发送至目标应用。
在一个特定的实现中,所述数据是由计算机程序指令来确定的。
因此,本发明也提供了一种数据介质上的计算机程序,该程序适于实现在网关中,该程序包括适于执行上述实现之一的数据发送方法的各步骤。
所述程序可以使用任何编程语言并且以源代码、目标代码或源代码与目标代码之间的中间代码的形式,例如以部分编译的形式或以任何其他期望的形式。
本发明还提供了一种包括上述计算机程序的指令的计算机可读数据介质或记录介质。
本发明还提供了一种用于从网关向可经由该网关访问的本地网络的服务器发送第一数据分组的方法,该方法包括:
-预备步骤,其中存储关联于该网关的端口范围标识符;
-确定步骤,其中使用该标识符和最初包含于该第一数据分组中的目的端口号来确定要向其发送该第一数据分组的服务器的目的端口号;和
向所述服务器的目的端口号发送所述第一数据分组的步骤。
作为例子,所述标识符可以对应于标识了分配给该网关的端口范围的正整数。
在一个特定的实现中,所述标识符是正整数I并且由所述网关确定的目的端口号等于其初始号减少了(I.N)个端口的最初包含于所述第一数据分组中的目的端口号,其中N是预定整数。
在一个特定的实现中,所述发送方法还包括:
-所述网关接收由所述服务器响应于由该服务器接收的所述第一数据分组而发送的第二数据分组的步骤;
-确定步骤,其中使用所述标识符来确定要与所述第二数据分组一起发送的源端口号;和
-基于如此确定的源端口号来发送所述第二数据分组的步骤。
所述第二网关因而能够通过使用在为其分配的端口范围内的源端口号来发送第二数据分组至所述第一网关。
在一个特定的实现中,所述数据发送方法的各步骤是由计算机程序指令来确定的。
因此,本发明还提供了一种数据介质上的计算机程序,该程序适于实现在网关中,该程序包括适于执行根据上述实现中的任一个的数据发送方法的各步骤的指令。
该程序可以使用任何编程语言并且以源代码、目标代码或源代码与目标代码之间的中间代码的形式,例如以部分编译的形式或以任何其他期望的形式。
本发明还提供了一种计算机可读数据介质或记录介质,其包括上述计算机程序的指令。
上述记录介质可以是能够存储程序的任何类型的实体或设备。例如,该介质可以包括存储装置,例如只读存储器(ROM),如光盘(CD)ROM或微电子电路ROM,或实际上是磁记录装置,例如软盘或硬盘。
此外,所述记录介质可以对应于传输介质,例如适于通过电缆或光缆、通过无线电或通过其他手段传输的电或光信号。本发明的程序可以特别地从互联网型的网络下载。
可选地,所述记录介质可以对应于将所述程序纳入其中的集成电路,该电路适于执行或被用来执行上述方法。
应当观察到,参考管理DNS请求的方法和数据发送方法的各种不同的实现而提出的优点和注释,以类似的方式应用于提供DNS服务器或网关的本发明的各种不同的实施例。
本发明还提供了一种被配置成处理DNS请求的DNS服务器,该服务器包括:
-用于接收关于访问可经由网关访问的远程应用的DNS请求的装置;和
-用于发送包括该网关的IP地址的DNS响应的装置;该DNS服务器的特征在于,还包括:
-用于确定端口范围标识符是否与该网关的IP地址相关联地被存储在该DNS服务器中的检验装置;和
-被配置成当检验的结果是肯定的时在发送DNS响应之前将所述标识符插入该DNS响应的插入装置。
本发明还提供了一种被配置成向第二网关发送数据的网关,该网关包括:
-用于使用关联于该第二网关的IP地址的端口范围标识符来确定要向其发送数据的目的端口号的确定装置;和
-用于向所述目的端口号发送数据的装置。
此外,本发明还提供了一种被配置成向可经由所述网关访问的本地网络的服务器发送数据的网关,该网关包括:
-用于存储关联于该网关的端口范围标识符的存储装置;
-用于使用该标识符来确定要向其发送数据的服务器的目的端口号的确定装置;和
-用于向所述目的端口号发送数据的装置。
此外,本发明还提供了一种被配置成向可经由网关访问的本地网络的服务器发送数据的网关,该网关包括:
-用于存储关联于该网关的端口范围标识符的存储装置;
-用于使用所述标识符来确定要向其发送数据的服务器的目的端口号的确定装置;和
-用于向所述目的端口号发送数据的装置。
附图说明
参考示出了具有非限制性特征的实现的附图,通过阅读下面的描述,本发明的其他特征和优点将变得明显,其中:
-图1示出了以传统方式实现DNS服务器和网关的环境;
-图2示出了其中包括根据本发明的DNS服务器和网关的与图1类似的环境,以及根据本发明的用于管理DNS请求的方法的各步骤和发送方法的各步骤;
-图3示出了如何将关联于共享IP地址的端口空间分割成多个端口范围和端口范围子集的例子,其是根据本发明的一个特定实现来完成的;和
-图4示出了根据本发明的端口号转换的例子。
具体实施方式
本发明涉及经由例如互联网的通信网络在远程应用之间交换数据。然而,应当观察到,本发明可以应用于其他类型的通信网络,例如通用移动电信系统(UMTS)型的移动网络。
图2示出了类似于图1所示的环境。更确切地说,接入网关106A被串联地置于本地网络LAN_A和互联网之间,该本地网LAN_A包括其中实现了应用客户端104A的终端102A。类似地,接入网关106B被串联地置于本地网络LAN_B与互联网之间,该本地网络LAN_B包括实现应用服务104B的服务器102B。在这里描述的例子中,应用104A和104B分别是web浏览器和web服务器。
在这里描述的例子中,网关106A和106B具有传统网关的硬件结构。特别地,它们每个都包括处理器、随机访问存储器(RAM)、ROM和非易失性存储器。
ROM构成根据本发明的记录介质,其中可以记录根据本发明的计算机程序,该计算机程序包括用于执行本发明的发送方法之一的各步骤的指令(下文将详细描述这些方法)。
网关106A和106B也包括用于与其各自的本地网络的终端或服务器以及与互联网通信的装置。
在本地网络LAN_A内唯一的本地地址AdresPriv_TA是由网关106A分配给终端102A的。类似地,在本地网络LAN_B内唯一的本地地址AdresPriv_SB是由网关106B分配给服务器102B的。
此外,每个网关106A和106B都拥有各自的公共IP地址,写为AdresPub_A和AdresPub_B,这使得它们能够将来自其各自本地网络的数据发送至终端,反之亦然。公共地址AdresPub_A和AdresPub_B是共享地址,这意味着其他网关(或连至互联网的其他类型的设备)可能使用相同的公共地址以经由互联网通信。在大多数情形中,地址AdresPub_A和AdresPub_B是不同的,然而,可以设想这两个地址相同的情形。
在这里,考虑其中65536个不同的端口可以用于单个公共IP地址的例子。这些端口以端口范围的形式被分配给利用同一公共IP地址标识的不同客户端(网关等等)。
传统上,端口号0到1023被IANA看作是“已知端口”。当一个端口被默认地分配给已知应用时,即由IANA识别并标准化的应用,该端口被看作是已知的。例如,端口80是专用于HTTP协议的端口号,而端口21是用于文件传输协议(FTP)的端口。
在这个例子中,将使用共享公共IP地址AdresPub_A和AdresPub_B的所有设备看作是具有大小相同的各自的端口范围,即具有N个不同端口的范围(其中N是正整数)。然而,可以设想其中单个共享IP地址的不同端口范围具有不同的大小这一情形。
N因而被选择成使得不同端口的总数(即在本例子中是65536个)可以被N除尽。在该例子中,因而存在可以针对给定共享公共地址而被分配的65536/N个不同的端口范围。
图3示出了可用于地址AdresPub_A和AdresPub_B的65536个端口在该例子中是如何被分成端口范围和端口范围子集的。
最初考虑代表分配给网关的端口范围号的整数i。数i符合:
0≤i<imax=65536/N
此外,如果考虑代表给定端口范围i内的端口号的整数m,则m满足以下条件:
i.N≤m<i.(N+1)
在图3的例子中,考虑其中端口在每个具有2048个端口的32个不同范围之中共享这一情形(N=2048和imax=31)。
首先,项EPC_i被用来指定范围i内的端口的子集,以使得不管该子集中的端口号m如何,m满足以下条件:
(i.N)≤m<1024+(i.N)
如图3所示,EPC_i对应于用等于(i.N)的端口数偏移的端口[0-1023](即EPC_0)的集合。因此对于EPC_0(i=0)而言不存在偏移。
子集EPC_i对应于在被IANA看作是已知的应用的背景下使用的已知端口,其具有偏移(i.N)。
项EPSU_i也被用来指定范围i中的称作“特定”端口的端口的子集,这个子集满足以下条件:
1024+(i.N)≤m<1024+EPSUL+(i.N)
其中,EPSUL是包含于这个特定端口子集中的端口数目。
子集EPSUL_i对应于用等于(i.N)的端口数目偏移的端口集合[1024,1023+EPSUL](i.e.EPSUL_0)。因此对于子集EPSU_0(i=0)而言没有偏移。
特定端口与专用于相关环境的特定应用相关联地被使用。
在图3的例子中,EPSUL被选择成等于256个端口。然而,应当理解,其他值可以被分配给EPSUL。
此外,项PS_i被用来指定对应于范围i的最后一个端口的端口号,即端口号:
m=(i.(N+1))-1
特别地,对于PS_0而言,不存在偏移(i=0)。
最后,项EAP_i被用来指定具有在子集EPC_i、EPSU_i和PS_i以外的全部端口的范围i的子集。换言之,EAP_i对应于满足以下条件的端口的子集:
1024+EPSUL+(i.N)≤m<(i.N+1))-1
在图3中分布式显示的子集EPC_i、EPSU_i、EAP_i和PS_i的顺序仅是本发明的一个特定实现。可以设想以其他顺序安排这些端口子集。例如,子集可以相继地安排成以下顺序:EPC_i、PS_i、EPSU_i、EAP_i。
然而,应当观察到,为了使得本发明易于实现而将子集EPC_i置于范围i的开始是优选的。
此外,在这里描述的例子中,DNS服务器110具有计算机硬件结构。特别地,它包括处理器、RAM、ROM和非易失性存储器。
ROM构成根据本发明的记录介质,其可由DNS服务器110读取并且其上记录有根据本发明的计算机程序,该程序包括用于执行根据本发明的管理DNS请求的方法的各步骤的指令。该方法的主要步骤在下文详细描述。
DNS服务器110也包括用于与互联网通信的装置。
下面参考图2、3和4描述本发明的一个特定实现。更具体地,考虑图2的环境,其中,根据图3所示的例子,共享公共IP地址AdresPub_A和AdresPub_B被分割成端口范围和子集,其中,N=2048、EPSUL=256和0≤i≤31。
此外,在这里描述的例子中,网关106A和106B具有以下两项可用信息:
-为其分配的共享公共地址,即根据情况是AdresPub_A或AdresPub_B;和
-为其分配的端口范围的标识符,即分别是i_A和i_B。
在该实现中,上述两项信息以条目(AdresPub,i)的形式被记录在包含于每个网关中的表RangeAdresTable中。更具体地,包含于网关106A中的RangeAdresTable表标记为116A,这个表特别地包括条目(AdresPub_A,i_A)。同样,包含于网关106B中的RangeAdresTable表116B包括条目(AdresPub_B,i_B)。
相反,在本发明的上下文中,终端102A和服务器102B不需要知道分配各它们各自的网关的地址范围。终端102A和服务器102B不考虑分配给它们各自网关的端口范围号。
网关106A也包括标记为118A的表以用于存储本地端口,该本地端口由与终端102A的本地地址AdresPriv_TA相关联的应用104A使用。类似地,网关106B包括用于存储本地端口的表118B,该本地端口用于与服务器102B的本地地址address Adres_SB相关联的应用服务104B。
构成网关106A和106B的其他单元在下文详细描述。
在这一点,考虑尝试与应用服务104B通信的应用客户端104A。在该例子中,本发明的操作是相同的,而与服务104B是“已知”应用还是“特定”应用无关。
当终端102A的web浏览器想要访问远程web服务器104B时,它开始于发送DNS请求至DNS服务器110(步骤E1)。这个DNS请求包括与web服务器104B相关联的完全合格的域名(例如发送统一资源定位符(URL)www.abcdef.ghi)。
串联于终端102A和互联网之间的网关106A然后接收该DNS请求并将它发送给DNS服务器110(步骤E2)。
一旦该DNS请求已经被接收,则DNS服务器110查询内部表114以确定关联于应用104B的网关的公共IP地址AdresPub_B。
一旦地址AdresPub_B已经被确定,DNS服务器110就构造用于网关106A的DNS响应,该响应包括所述公共地址。
此外,在发送DNS响应之前,DNS服务器110也检验关联于网关106B的端口范围号i_B是否与网关106B的公共IP地址相关联地被存储。如果是,则DNS服务器将端口范围号i_B插入该DNS响应中以发送给网关106A。作为例子,这个插入可通过利用上述SRV功能来执行。
下面考虑其中检验结果是肯定的并且DNS服务器110发送包括AdresPub_B和i_B的DNS响应至网关106A这一情形(步骤E3)。
一旦这个DNS响应已经被接收,网关106A就检验端口范围号i_B是否包含在该响应中(步骤E4)。如果是,则网关106A将条目(AdresPub_B,i_B)存储到其RangeAdresTable表116A中。此外,网关106A发送消息至终端102A,该消息包含由DNS服务器提供的公共IP地址AdresPub_B(步骤E5)。相反,这个消息不包含由DNS服务器110提供的端口范围号i_B。这个消息中不包括号i_B的优点在下面详细描述。
在这个例子中,DNS请求处理和DNS响应是由DNS处理器模块220A来执行的,该模块参考RangeAdresTable表116A。
一旦网关106B的公共IP地址AdresPub_B已经被接收,应用客户端104A就能够与应用服务104B通信。为此,终端102A发送第一数据分组至服务器102B(步骤E6)。这个数据分组包括:
-对应于终端102A的本地地址AdresPriv_TA的源地址;
-对应于由应用104A使用的源端口Port_TA的源端口;
-对应于网关102B的公共IP地址AdresPub_B的目的地址;和
-对应于关联于应用104B的端口DefDest_PortTA的目的端口。
当要到达的应用被看作是已知的时,即其关联的端口在范围0到1023内(子集EPC_0)的应用,由应用104B使用的端口DefDest_PortTA对应于关联于该应用的默认端口。例如,当应用104A和104B分别是web浏览器和web服务器时,web浏览器选择默认的HTTP目的端口,即端口80。
以类似的方式,当要到达的应用是所谓的“特定”应用时,应用104A选择关联于该应用的默认目的端口DefDest_PortTA。这个端口因而在子集EPSU_0内,即范围[1024,1023+EPSUL]。
应当观察到,在特定的情形下,所述第一数据分组不包含要向其发送分组的目的端口。作为例子,这可能当终端102A向服务器102B发送ICMP/Ping分组时发生。
当网关106A接收该第一数据分组时,它在其内部RangeAdresTable表116A中检验是否存在(AdresPub_B,i_B)条目(步骤E7)。如果没有这种条目存在,则网关106A认为网关106B不具有共享公共IP地址。因此,网关106A不修改包含于该第一数据分组中的目的端口DefDest_PortTA。
相反,如果这种条目存在于RangeAdresTable表116A中,则网关106A确定应向其发送该第一数据分组的新的目的端口PortPub_B(步骤E7)。
为了确定PortPub_B,网关106A开始于检验目的端口号DefDest_PortTA(称作初始目的端口)是否包含于该第一数据分组请求中。
如果是,则网关106A用新的目的端口PortPub_B来代替该数据分组中最初所包含的目的端口DefDest_PortTA。这个新的目的端口对应于由网关106B分配给应用104B的公共端口。在这里描述的例子中,代替端口DefDest_PortTA的目的端口PortPub_B是如下计算的:
如果
0≤DefDest_PortTA<1024+EPSUL
即如果由终端102A发送的分组的目的端口是已知端口(在EPC_0中),或是特定端口(在EPSU_0中),则:
PortPub_B=DefDest_PortTA+(i_B.N)
换言之,该数据分组的目的端口的数目增加(i_B.N)个端口从而按照需要移至EPC_i_B或EPSU_i_B中。
如果
1024+EPSUL≤DefDest_PortTA
则网关106A确定其NAT表108A是否包含将端口DefDest_PortTA关联于公共端口号的条目。
在本例子中,这是由应用客户端104A发送至服务104B的第一分组,以便这种NAT条目无法存在于NAT表108A中。因此,这种可能性在这点上不予考虑。
此外,如果网关106A确定没有目的端口号DefDest_PortTA最初包含于该第一数据分组(例如ICMP/Ping分组)中,但是(AdresPub_B,i_B)条目实际存在于RangeAdresTable表116A中,则网关106A继续将数据分组封装到具有作为其目的端口的公共端口PortPub_B的新数据分组(通常是IP/UDP分组)中,以使得:
PortPub_B=PS_0+(i_B.N)
换言之,默认地用于发送不具有目的端口的分组的特定端口PS_0增加(i_B.N)个端口以变成端口范围i_B中的端口PS_i_B。
与所述第一数据分组的目的端口有关的上述处理操作是由包含在网关106A中的数据处理器模块222A来执行的,其中该模块利用RangeAdresTable表116A。
此外,网关106A不修改该第一数据分组的目的地址,即地址AdresPub_B。
另外,网关106A用网关106A的公共地址AdresPub_A来代替包含于该第一数据分组中的本地源地址AdresPriv_TA。
网关106A也检验源端口Port_TA是否包含于该第一数据分组中,这个端口是由应用客户端104A用来到达应用104B的本地端口。
如果是,则网关106A用新的源端口PortPub_A来代替最初包含于该数据分组中的源端口Port_TA。这个新的源端口对应于由网关106A分配给应用104A的公共端口。在这里描述的例子中,代替端口Port_TA的目的端口PortPub_A是如下计算的:
如果
0≤Port_TA<1024+EPSUL
即如果由终端102A发送的分组的源端口是已知端口(在EPC_0中)或特定端口(在EPSU_0中),则:
PortPub_A=Port_TA+(i_A.N)
换言之,该数据分组的端口号增加(i_A.N)个端口从而按照需要移至EPC_i_A或EPSU_i_A中。
另外,网关106A在其PrivPortAdresTable表118A中创建(Adres_TA,Port_TA)条目(图2)。这个表提供了与在用于本地网LAN_A中的子集EPC_0或EPSU_0中的本地端口与使用这些本地端口的本地终端的本地IP地址之间的关联有关的信息。
在当前描述的例子中,应当观察到,由于应用客户端104A首次向网关106A宣称它使用端口Port_TA,(Adres_TA,Port_TA)条目因而在PrivPortAdresTable表118A中被创建。相反,如果(Adres_TA,Port_TA)条目已经存在于PrivPortAdresTable表118A中,则不创建附加的条目。
此外,在这种情况下,Port_TA的计算是以与就像终端102A是服务器(例如服务器102B)那样的相同的方式而被执行的。这种一致的操作模式是有利的,因为网关能够针对由终端发送的分组和由服务器发送的分组以相同的方式来处理数据分组的源端口。
如果
1024+EPSUL≤Port_TA
则网关106A查询其NAT表108A以使得:
1)如果在NAT表108A中已经存在(Adres_TA,Port_TA,AdresPub_A,PortPub_A)型的传统NAT条目,则网关106A以传统的方式重新使用这个条目从而确定AdresPub_A和PortPub_A;否则
2)在网关106A的NAT表108A中创建(Adres_TA,Port_TA,AdresPub_A,PortPub_A)型的新的传统NAT条目,公共端口PortPub_A是从端口范围i_A中的端口范围EAP_i_A中选出的(分配给网关106A的端口范围)。
相反,如果在其检验期间,网关106A确定没有源端口Port_TA包含于该第一数据分组中(例如应用于ICMP/Ping分组),则它继续封装数据分组到新的分组中(通常是IP/UDP分组)。封装分组的公共源端口PortPub_A通常是从子集EAP_i_A中选出的。(Adres_TA,PS_0,AdresPub_A,PortPub_A)条目然后被置于NAT表108A中,其中PS_0在该例子中用于指示所发送的数据分组的无端口特性。如下文详细描述的那样,如果网关106A在响应中接收了第二数据分组,其中该第二数据分组具有作为其目的端口的上述NAT条目的公共源端口PortPub_A,则该响应是由网关106A发送至终端TA的。
在这个实现中,对源端口的处理是由数据处理模块222A执行的,该模块使用RangeAdresTable表116A、PrivPortAdresTable表118A和/或NAT表108,如上述情形中那样。
该第一数据分组然后由网关106A发送并且由网关106B接收(步骤E8)。
一旦已经接收了该第一数据分组,网关106B通过查询其RangeAdresTable表116B来处理包含于分组中的源端口PortPub_A,从而确定所述表是否包括(AdresPub_A,i_A)条目(步骤E9)。
如果这种条目已经存在于RangeAdresTable表116B中,则这意味着例如应用104A已经是由网关106B进行DNS搜索的主题。这个情形在该例子中没有设想,因为该第一分组的发送方是想要访问在服务器102B中托管的web服务器的应用客户端(或web浏览器)。
相反,如果(AdresPub_A,i_A)条目不存在于RangeAdresTable表116B中(如在本例子中那样),则网关106B无法确定数据分组所源自的网关106A是否是根据本发明的具有共享IP地址的网关。因此,网关106B不修改包含于该第一数据分组中的源端口PortPub_A。
此外,网关106B分别用本地地址Adres_SB和本地端口Port_SB来代替公共目的地址AdresPub_B和公共端口PortPub_B。本地地址Adres_SB和本地端口Port_SB是如下确定的:
如果
0≤PortPub_B-(i_B.N)<1024+EPSUL
即如果端口PortPub_B是范围i_B中的子集EPC_i_B或EPSU_i_B中的端口,则:
Port_SB=PortPub_B-(i_B.N)
换言之,最初包含于该第一数据分组中的目的端口PortPub_B减少(i_B.N)个端口从而按照需要而返回子集EPC_0或EPSU_0。
网关106B然后查询其PrivPortAdresTable表118B并且恢复存在于该表中的(Adres_SB,Port_SB)条目。根据端口号Port_SB,网关确定相应的本地目的地址Adres_SB以到达应用104B。
如果
PortPub_B-(i_B.N)=PS_0
则该数据分组是封装了无端口初始分组(例如ICMP/Ping分组)的分组。网关106B然后去封装该分组并且继续对该类型的分组进行适当的处理。
如果
PortPub_B-(i_B.N)≥1024+EPSUL
即如果PortPub_B在子集EAP_i_B中,则网关106B检验传统的(Adres_SB,Port_SB,AdresPub_B,PortPub_B)型的NAT条目是否存在于NAT表108B中。如果这种NAT条目存在,则它被用来确定应当向其发送该第一数据分组的本地地址Adres_SB和本地端口Port_SB,从而到达应用104B。相反,如果没有这种类型的NAT条目存在于表108B中,则网关106B不发送该第一数据分组至应用104B,并且该数据分组因而被丢弃。
与处理由网关106B接收的第一数据分组的目的端口和目的地址有关的上述操作是由数据处理器模块222B来执行的,该模块按照需要利用RangeAdresTable表116B、PrivPortAdresTable表118B和/或NAT表108A。
一旦端口和地址已经被处理,网关106B就发送该第一数据分组至服务器102B的端口Port_SB(步骤E10),服务器102B的本地IP地址是Adres_SB。
服务器因而接收由应用104B处理的第一数据分组。作为响应,应用104B发送第二数据分组至应用客户端104A(步骤E11)。该第二数据分组包括:
-专用于服务器102B的源地址Adres_SB;
-专用于应用104B的源端口Port_SB;
-对应于网关106A的公共IP地址的目的地址AdresPub_A;和
-对应于由网关106A分配给应用104A的端口的目的端口PortPub_A。
一旦该第二数据分组已经被接收,网关106B通过查询其RangeAdresTable表116B来处理目的端口PortPub_A从而确定是否存在(AdresPub_A,i_A)型的条目。
如果这种条目不存在于RangeAdresTable表116B中,则网关106B认为在目的端口上没有处理要被执行。因此,网关106B不修改包含于该第二数据分组中的目的端口PortPub_A,该端口对应于网关106A已经分配给应用104A的公共端口。
网关106B也不修改对应于网关106A的公共地址的目的地址AdresPub_A。
网关106B也确定从其发送该第二数据分组的公共源端口PortPub_B和公共源地址AdresPub_B。
更确切地说,网关106B检验源端口Port_SB是否最初包含于该第二数据分组中。如果是,则网关106B分别用公共源地址AdresPub_B和公共源端口PortPub_B来代替本地源地址Adres_S和本地源端口Port_SB。公共源端口PortPub_B是如下确定的:
如果
0≤PortPub_B<1024+EPSUL
即如果由服务器102B发送的该第二数据分组的源端口Port_SB是在子集EPC_0中的已知端口或是在子集EPSU_0中的特定端口,则:
PortPub_B=Port_SB+(i_B.N)
换言之,源端口增加(i_B.N)个端口以按照需要移至子集EPC_i_B或EPSU_i_B中。
另外,网关106B查询PrivPortAdresTable表118B以检验(Adres_SB,Port_SB)条目存在。在本例子中,这个条目存在,因此不创建附加条目。相反,如果该条目不存在于PrivPortAdresTable表118B中,则它由网关106B创建。
如果
PortPub_B≥1024+EPSUL
则网关106B确定(Adres_SB,Port_SB,AdresPub_B,PortPub_B)型的NAT条目是否存在于NAT表108B中。如果是,则网关使用这个条目来确定AdresPub_B和PortPub_B。
相反,如果没有这种类型的条目存在于NAT表108B中,则网关106B从端口子集EAP_i_B中选择公共端口PortPub_B并且在NAT表108B中创建(Adres_SB,Port_SB,AdresPub_B,PortPub_B)型的新NAT条目。公共端口PortPub_B因而由网关106B分配给应用104B。
在该例子中,Port_SB≥1024+EPSUL这一情形无法发生,因为服务器102B总是以子集EPC_0或EPSU_0中的端口来发送。
相反,如果所接收的第一数据分组封装无端口分组,并且如果在合适的处理之后,关于发送的响应也是无端口分组(例如ICMP/Ping分组),则网关106B通过将它封装在具有以下特征的分组中来发送响应分组:
-源地址=AdresPub_B;
-源端口=PS_0+(i_B.N);
-目的地址=AdresPub_A;和
-目的端口=之前由网关106B接收的封装分组的源端口PortPub_A。
与处理该第二数据分组的端口和地址有关的上述操作是由数据处理模块222B来执行的,该模块按照需要利用RangeAdresTable表116B、PrivPortAdresTable表118B和/或NAT表108B。
网关106B因而将该第二数据分组发送至在目的端口PortPub_A的公共目的地址AdresPub_A(步骤E13)。
一旦该第二数据分组已经被接收,网关106A就处理包含于该分组中的源端口PortPub_B(步骤E14)。为此,网关106A查询其RangeAdresTable表116A以恢复条目(AdresPub_B,i_B)。
如果没有这种类型的条目存在于RangeAdresTable表116A中,则网关106A无法确定网关106B是否是以根据本发明的共享公共地址而操作的。在这种情况下,网关106A不修改包含于该第二数据分组中的源端口PortPub_B。
相反,如果(AdresPub_B,i_B)条目存在于RangeAdresTable表116A中,则网关106A用如下确定的源端口ChangedSourcePort_B来代替包含于该第二数据分组中的源端口PortPub_B:
如果
0≤PortPub_B-(i_B.N)<1024+EPSUL
即如果源端口PortPub_B在子集EPC_i_B或EPSU_i_B内,则:
ChangedSourcePort_B=PortPub_B-(i_B.N)
换言之,包含于该第二数据分组中的源端口号减去(i_B.N)个端口从而返回合适的子集EPC_0或EPSU_0。
如果
PortPub_B-(i_B.N)≥1024+EPSUL
即如果源端口PortPub_B在子集EAP_i_B内,则网关106A不修改源端口PortPub_B。在这种情况下,
ChangedSourcePort_B=PortPub_B
应当观察到,这不会在这里描述的例子中出现,因为该第二数据分组由服务器发送以使得所使用的源端口必定在端口子集EPC_0或EPSU_0之一中。相反,如果:
PortPub_B-(i_B.N)=PS_0
则这是封装无端口内部数据分组(例如ICMP/ping分组)的IP/UDP分组。对这种分组的处理在下文当讨论目的端口时细描述。
与处理该第二数据分组的源端口有关的上述操作是由利用RangeAdresTable表116A的数据处理器模块222A来执行的。
此外,网关106A不修改包含于该第二数据分组中的源地址AdresPub_B。
另外,网关106A确定于要向其发送该第二数据分组的应用客户端104A相对应的本地目的端口Port_TA和本地目的地址Adres_TA。为此,网关106A检验包含于该第二数据分组中的本地目的端口Port_TA。
该网关然后分别用本地地址Adres_TA和本地端口Port_TA来代替公共目的地址AdresPub_A和公共目的端口PortPub_A,这是以如下方式确定的:
如果
0≤PortPub_A-(i_B.N)<1024+EPSUL
即如果公共目的端口PortPub_A是在子集EPC_i_a或EPSU_i_A中,则:
Port_TA=PortPub_A-(i_A.N)
换言之,最初包含于该第二数据分组中的目的端口号PortPub_A减少(i_A.N)从而变成由应用104A使用的源端口Port_TA。
网关106A还查询其PrivPortAdresTable表118A从而恢复之前记录的(Adres_TA,Port_TA)条目。利用Port_TA的值,网关106A确定托管应用104A的终端的本地IP地址Adres_TA。
如果
PortPub_A-(i_A.N)≥1024+EPSUL
即如果目的公共端口PortPub_A是在子集EAP_i_A内,则这意味着传统的(Adres_TA,Port_TA,AdresPub_A,PortPub_A)型的NAT条目已经存在于NAT表108A中。网关然后使用这个条目来确定Adres_TA和Port_TA。
特别地,如果NAT条目Adres_TA,Port_TA,AdresPub_A,PortPub_A)中的Port_TA的值等于PS_0,则这意味着所接收的第二分组是封装无端口分组的分组。在这种情况下,网关106A去封装该无端口分组并将它发送至终端102A(Adres_TA)。
相反,如果没有关于AdresPub_A和PortPub_A的条目存在于NAT表108A中,则网关106A丢弃该第二数据分组。
与处理地址和端口有关的上述操作是由数据处理器模块222A来执行的,该模块按照需要利用RangeAdresTable表116A、PrivPortAdresTable表118A和/或NAT表108A。
网关106A因而发送该第二数据分组至终端102A(步骤E15)。当该第二数据分组包括目的端口时,它被发送到与应用104A相对应的本地目的端口Port_TA。
总而言之,根据本发明的端口范围标识符的使用使之能够消除传统端口范围技术所固有的限制和缺陷。
特别地,本发明使之能够对应用服务器和应用客户端掩蔽由中间网关使用的真实端口(即公共端口)。
例如,本发明的优点在于,服务器(例如服务器102B)的管理者无须知道分配给其网关的端口范围来实现应用服务。
例如,当服务器管理者将web服务器安装到可经由网关访问的本地网络LAN中时,该管理者只需要向网关宣告该web服务器的本地地址(私有地址)以及与该web服务器有关的端口。这个宣告可以由服务器管理者例如利用由网关托管的指定web页面而人工地执行。这个宣告也可以借助于通用即插即用(UPnP)客户端(互联网网关设备(IGD)配置文件(profile))而自动地被执行,其中所述客户端能够与网关内的UPnP软件交互以请求与其端口和本地地址有关的静态配置。UPnP IGD型的客户端十分广泛地被用在当前的终端和计算机中以向网关宣告应用。
本发明的优点因而在于,它使得共享公共IP地址能够在不需要修改传统终端和服务器的操作的情况下被使用。本发明不需要对UPnP型的客户端的操作进行任何修改。例如实现web服务器的服务器能够使用其默认定义的端口(即端口80)而不必考虑已经分配给其网关的端口范围。类似地,实现特定应用(例如在专业或商业服务的背景下)的服务器能够使用其默认定义的端口而不必考虑分配给网关的端口范围。
此外,实现客户端应用的终端不必能够使用SRV功能以到达在具有共享IP地址的网关后面的应用。实现于终端上的客户端应用不必知道用来到达在远程服务器上可用的服务的公共端口。该终端也不必考虑分配给其网关的端口范围。托管客户端应用的终端仅需要使用默认定义的端口以到达所述服务。
由于使用了包含共享IP地址与端口范围标识符之间的至少一个关联的RangeAdresTable表型的表,可以对客户端应用和服务掩蔽由网关使用的公共端口。所述标识符可以对应于分配给包含所述RangeAdresTable表的网关的端口范围,或者它可以对应于可经由通信网络(例如互联网)访问的另一个网关的端口范围。
应当观察到,端口范围标识符可以例如是范围号。然而,其他类型的标识符也可以被设想。
本发明还有利地使之能够将不具有目的端口的数据分组(ICMP型分组)传输至具有共享IP地址的网关。这特别地应用于发送Ping型分组。
此外,当端口范围被分配给网关时,本发明有利地使之能够借助于NAT表而以传统方式使用该范围的一部分(在以上描述中是子集EPA_i),并且根据本发明使用该范围的剩余部分(根据与相关网关相关联的端口范围标识符来偏移端口)。
此外,实现本发明的发送方法的网关能够与不共享公共IP地址的网关交换数据。
本发明可以应用于非常广泛的背景。例如,本发明可以应用于住宅接入互联网。因此,具有根据本发明的网关的客户端能够容易地访问服务,该服务可经由其IP地址是共享地址的远程网关访问。客户端不必使用SRV功能或访问中间web页面来到达所寻求的服务。本发明还应用于实现于家庭网络中的服务器。这种服务器在更大程度上被用于家庭环境中。例如,将多媒体或家庭自动化服务器安装在家庭网络中变得越来越普遍,这些服务器可由用户远程访问。
本发明还可以适用于专业服务,该服务可以利用本地网络中的特定端口。
本发明也可以特别地应用于具有本地网络的商业服务背景,在该本地网络中服务器利用利用共享IP地址(如通常对于小型专业站点那样)。
Claims (12)
1.一种用于管理由DNS服务器(110)执行的DNS请求的方法,所述方法包括:
-接收关于访问可经由网关(106B)访问的远程应用(104B)的DNS请求的步骤;
-发送包括所述网关的IP地址的DNS响应的步骤;
其特征在于,该方法还包括:
-确定端口范围标识符是否与所述网关的IP地址相关联地被存储在所述DNS服务器中的检验步骤;和
-如果是,则在发送所述DNS响应之前将所述标识符插入该DNS响应中的步骤。
2.一种用于管理由DNS服务器(110)执行的DNS请求的系统,所述系统包括:
用于接收关于访问可经由网关(106B)访问的远程应用的DNS请求(104B)的装置;以及
用于发送包括所述网关的IP地址的DNS响应的装置;
其特征在于,所述系统还包括:
用于确定端口范围标识符是否与所述网关的IP地址相关联地被存储在所述DNS服务器中的装置;以及
用于如果是,则在发送所述DNS响应之前将所述标识符插入所述DNS响应中的装置。
3.一种用于在第一网关(106A)中向第二网关(106B)发送数据的方法,该方法包括:
-在所述第一网关中存储与要向其发送所述数据的所述第二网关相关联的IP地址和端口范围标识符的预备步骤,根据权利要求1的方法,所述标识符是响应于DNS请求而从DNS服务器(110)获得的;
-使用所述标识符来确定要向其发送所述数据的目的端口号的确定步骤;和
-将所述数据发送到所述第二网关的所述目的端口号的步骤。
4.根据权利要求3所述的方法,其中,所述确定步骤还包括:
-当目的端口号初始包含于所述数据中时,在所述确定步骤期间根据所述标识符和初始目的端口号来确定要向其发送所述数据的目的端口号,并且用在所述确定步骤期间所确定的所述目的端口号来代替所述初始目的端口号;或
-当没有目的端口号初始包含于所述数据中时,将所述数据封装到包括在所述确定步骤期间所确定的目的端口的数据分组中。
5.根据权利要求3或4所述的方法,所述方法还包括与所述数据一起发送从关联于所述第一网关的端口范围标识符中所确定的源端口号,所述标识符被存储在所述第一网关中。
6.一种用于在第一网关(106A)中向第二网关(106B)发送数据的系统,该系统包括:
用于在所述第一网关中存储与要向其发送所述数据的所述第二网关相关联的IP地址和端口范围标识符的装置,根据权利要求1的方法,所述标识符是响应于DNS请求而从DNS服务器(110)获得的;
用于使用所述标识符来确定要向其发送所述数据的目的端口号的装置;以及
用于将所述数据发送到所述第二网关的所述目的端口号的装置。
7.一种用于从第二网关(106B)向可经由该第二网关访问的本地网络(LAN_B)的服务器(102B)发送第一数据分组的方法,所述第一数据分组已经由第一网关(106A)利用根据权利要求3至5中任一项的方法而发送给所述第二网关,
所述方法包括:
-存储关联于所述第二网关的端口范围的标识符的预备步骤;
-使用所述标识符和初始包含于所述第一数据分组中的目的端口号来确定要向其发送所述第一数据分组的服务器的目的端口号的确定步骤;和
-发送所述第一数据分组至所述服务器的所述目的端口号的步骤。
8.根据权利要求7所述的方法,该方法还包括:
-所述第二网关接收由所述服务器(102B)响应于所述第一数据分组而发送的第二数据分组的步骤;
-使用所述标识符来确定要与所述第二数据分组一起发送的源端口号的确定步骤;和
-从所述源端口号发送所述第二数据分组的步骤。
9.一种用于从第二网关(106B)向可经由该第二网关访问的本地网络(LAN B)的服务器(102B)发送第一数据分组的系统,所述第一数据分组已经由第一网关(106A)利用根据权利要求3至5中任一项的方法而发送给所述第二网关;
所述系统包括:
用于存储关联于所述第二网关的端口范围的标识符的装置;
用于使用所述标识符和初始包含于所述第一数据分组中的目的端口号来确定要向其发送所述第一数据分组的服务器的目的端口号的装置;以及
用于发送所述第一数据分组至所述服务器的所述目的端口号的装置。
10.一种被配置成处理DNS请求的DNS服务器(110),包括:
-用于接收关于访问可经由网关(106B)访问的远程应用(104B)的DNS请求的装置;和
-用于发送包括所述网关的IP地址的DNS响应的装置;
其特征在于,该DNS服务器还包括:
-检验装置,其用于确定端口范围标识符是否与所述网关的IP地址相关联地被存储在所述DNS服务器中;和
-插入装置,其被配置成当所述检验的结果是肯定的时,在发送所述DNS响应之前将所述标识符插入该DNS响应中。
11.一种网关(106A),其被配置成利用根据权利要求3至5中任一项的数据发送方法而发送数据至第二网关(106B),所述网关包括:
-确定装置(222A),其用于使用关联于所述第二网关(106B)的IP地址的端口范围标识符来确定要向其发送所述数据的目的端口号;和
-用于发送所述数据至所述目的端口号的装置。
12.一种网关(106B),其被配置成利用根据权利要求7或8的数据发送方法而向可经由该网关访问的本地网络(LAN_B)的服务器(102B)发送数据,该网关包括:
-存储装置(116B),其用于存储关联于所述网关的端口范围标识符;
-确定装置(222B),其用于使用所述标识符来确定要向其发送所述数据的所述服务器的目的端口号;和
-用于发送所述数据至所述目的端口号的装置。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR1052209A FR2958104A1 (fr) | 2010-03-26 | 2010-03-26 | Serveur dns, passerelles et procedes pour la gestion d'un identifiant d'une plage de ports dans la transmission de donnees. |
FR1052209 | 2010-03-26 | ||
PCT/FR2011/050606 WO2011117534A2 (fr) | 2010-03-26 | 2011-03-22 | Serveur dns, passerelles et procedes pour la gestion d'un identifiant d'une plage de ports dans la transmission de donnees |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102907073A CN102907073A (zh) | 2013-01-30 |
CN102907073B true CN102907073B (zh) | 2015-04-08 |
Family
ID=43384507
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201180025406.XA Active CN102907073B (zh) | 2010-03-26 | 2011-03-22 | Dns服务器、网关和在数据传输中管理端口范围标识符的方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US9602333B2 (zh) |
EP (1) | EP2553908B1 (zh) |
CN (1) | CN102907073B (zh) |
FR (1) | FR2958104A1 (zh) |
WO (1) | WO2011117534A2 (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10454768B2 (en) | 2013-11-15 | 2019-10-22 | F5 Networks, Inc. | Extending policy rulesets with scripting |
CN105515990A (zh) * | 2014-09-23 | 2016-04-20 | 中国电信股份有限公司 | 基于二维信息进行寻路的方法和接入网关 |
CN104468857B (zh) * | 2014-11-03 | 2018-10-16 | 北京百度网讯科技有限公司 | 一种对应关系的获取方法及系统 |
FR3028124A1 (fr) * | 2014-11-05 | 2016-05-06 | Orange | Procede de controle des politiques de trafic depuis un module de securite dans un terminal mobile |
WO2017106779A1 (en) * | 2015-12-18 | 2017-06-22 | F5 Networks, Inc. | Methods of collaborative hardware and software dns acceleration and ddos protection |
US10326700B1 (en) | 2016-03-29 | 2019-06-18 | F5 Networks, Inc. | Hash based per subscriber DNS based traffic classification |
US11206318B2 (en) * | 2019-04-16 | 2021-12-21 | Abb Schweiz Ag | Cloud interoperability |
US10798051B1 (en) | 2019-05-23 | 2020-10-06 | At&T Intellectual Property I, L.P. | Filtering and organizing process for domain name system query collection |
CN113949695B (zh) * | 2020-06-29 | 2024-09-24 | 中兴通讯股份有限公司 | 访问网络的方法、媒体网关、电子设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101316272A (zh) * | 2008-07-09 | 2008-12-03 | 南京邮电大学 | 构建因特网协议版本4和6混合网络的多协议层翻译方法 |
CN101442566A (zh) * | 2009-01-08 | 2009-05-27 | 中国电信股份有限公司 | 实现动态域名更新的方法和设备 |
CN101662387A (zh) * | 2009-10-14 | 2010-03-03 | 中国电信股份有限公司 | 一种检测网络中计算机接入状态的系统及方法 |
Family Cites Families (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7113508B1 (en) * | 1995-11-03 | 2006-09-26 | Cisco Technology, Inc. | Security system for network address translation systems |
US20010040887A1 (en) * | 1997-10-09 | 2001-11-15 | Yuri Shtivelman | Apparatus and methods enhancing call routing to and within call-centers |
US6016512A (en) * | 1997-11-20 | 2000-01-18 | Telcordia Technologies, Inc. | Enhanced domain name service using a most frequently used domain names table and a validity code table |
US6822955B1 (en) * | 1998-01-22 | 2004-11-23 | Nortel Networks Limited | Proxy server for TCP/IP network address portability |
US7457279B1 (en) * | 1999-09-10 | 2008-11-25 | Vertical Communications Acquisition Corp. | Method, system, and computer program product for managing routing servers and services |
KR100856149B1 (ko) * | 1999-11-26 | 2008-09-03 | 네테카 인코포레이티드 | 전자 메일 서버 및 전자 메일 통신을 용이하게 하기 위한 방법 |
AU5859001A (en) * | 2000-05-22 | 2001-12-03 | Bango.Net Limited | Addressing remote data objects via a computer network |
US7496652B2 (en) * | 2000-07-17 | 2009-02-24 | Teleservices Solutions, Inc. | Intelligent network providing network access services (INP-NAS) |
US7337217B2 (en) * | 2000-07-21 | 2008-02-26 | Samsung Electronics Co., Ltd. | Architecture for home network on world wide web |
US20040073707A1 (en) * | 2001-05-23 | 2004-04-15 | Hughes Electronics Corporation | Generating a list of network addresses for pre-loading a network address cache via multicast |
US7197550B2 (en) * | 2001-08-23 | 2007-03-27 | The Directv Group, Inc. | Automated configuration of a virtual private network |
US7099957B2 (en) * | 2001-08-23 | 2006-08-29 | The Directtv Group, Inc. | Domain name system resolution |
US7636790B1 (en) * | 2001-10-25 | 2009-12-22 | Sprint Communications Company L.P. | Service-based network packet routing redirection using an address server |
US20030149740A1 (en) * | 2002-02-04 | 2003-08-07 | Wookey Michael J. | Remote services delivery architecture |
US20030163544A1 (en) * | 2002-02-04 | 2003-08-28 | Wookey Michael J. | Remote service systems management interface |
CN101795303B (zh) * | 2002-04-08 | 2012-08-01 | 艾利森电话股份有限公司 | 能够连接到具有本地地址域的网络的方法及系统 |
US7171467B2 (en) * | 2002-06-13 | 2007-01-30 | Engedi Technologies, Inc. | Out-of-band remote management station |
US7391768B1 (en) * | 2003-05-13 | 2008-06-24 | Cisco Technology, Inc. | IPv4-IPv6 FTP application level gateway |
NO20033897D0 (no) * | 2003-09-03 | 2003-09-03 | Ericsson Telefon Ab L M | Höytilgjengelighetssystem basert på separat kontroll og trafikksystem |
US7443880B2 (en) * | 2004-06-25 | 2008-10-28 | Cisco Technology, Inc. | Arrangement for reaching IPv4 public network nodes by a node in a IPv4 private network via an IPv6 access network |
IES20050519A2 (en) * | 2005-08-04 | 2006-12-13 | Asavie R & D Ltd | Network communications system and method |
US7643472B2 (en) * | 2005-10-19 | 2010-01-05 | At&T Intellectual Property I, Lp | Methods and apparatus for authorizing and allocating outdial communication services |
US20070168458A1 (en) * | 2006-01-16 | 2007-07-19 | Nokia Corporation | Remote access to local network |
US8249081B2 (en) * | 2006-09-29 | 2012-08-21 | Array Networks, Inc. | Dynamic virtual private network (VPN) resource provisioning using a dynamic host configuration protocol (DHCP) server, a domain name system (DNS) and/or static IP assignment |
JP5520928B2 (ja) | 2008-03-31 | 2014-06-11 | オランジュ | ネットワークにおけるデータパケットのルーティング方法および関連デバイス |
ES2387868T3 (es) | 2008-06-30 | 2012-10-03 | France Telecom | Procedimiento de recepción de un paquete de datos en un dominio IPv6, dispositivo y pasarela residencial asociados |
FR2933259A1 (fr) | 2008-06-30 | 2010-01-01 | France Telecom | Procede de reception d'un paquet de donnees en provenance d'un domaine ipv4 dans un domaine ipv6, dispositif et equipement d'acces associes |
-
2010
- 2010-03-26 FR FR1052209A patent/FR2958104A1/fr not_active Withdrawn
-
2011
- 2011-03-22 US US13/637,341 patent/US9602333B2/en active Active
- 2011-03-22 EP EP11715973.1A patent/EP2553908B1/fr active Active
- 2011-03-22 WO PCT/FR2011/050606 patent/WO2011117534A2/fr active Application Filing
- 2011-03-22 CN CN201180025406.XA patent/CN102907073B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101316272A (zh) * | 2008-07-09 | 2008-12-03 | 南京邮电大学 | 构建因特网协议版本4和6混合网络的多协议层翻译方法 |
CN101442566A (zh) * | 2009-01-08 | 2009-05-27 | 中国电信股份有限公司 | 实现动态域名更新的方法和设备 |
CN101662387A (zh) * | 2009-10-14 | 2010-03-03 | 中国电信股份有限公司 | 一种检测网络中计算机接入状态的系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102907073A (zh) | 2013-01-30 |
WO2011117534A2 (fr) | 2011-09-29 |
WO2011117534A3 (fr) | 2012-03-22 |
US9602333B2 (en) | 2017-03-21 |
EP2553908A2 (fr) | 2013-02-06 |
US20130013739A1 (en) | 2013-01-10 |
FR2958104A1 (fr) | 2011-09-30 |
EP2553908B1 (fr) | 2015-08-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102907073B (zh) | Dns服务器、网关和在数据传输中管理端口范围标识符的方法 | |
CN108886525B (zh) | 智能域名系统转发的方法和装置 | |
CN102132544B (zh) | 用于在因特网协议版本6域中接收数据分组的方法、以及相关联的装置和住宅网关 | |
EP2253124B1 (en) | Method and apparatus for communication of data packets between local networks | |
US7779158B2 (en) | Network device | |
US7369563B2 (en) | Method and apparatus for sharing a single internet protocol address without a network address translation in an internet access gateway for a local network | |
KR20050070119A (ko) | 데이터 네트워크에서 리모트 액세스를 허용하는 방법 및장치 | |
US7450585B2 (en) | Method and system in an IP network for using a network address translation (NAT) with any type of application | |
WO2005109785A1 (ja) | 情報処理装置、バブルパケット送信方法およびプログラム | |
EP1726141A2 (en) | Initiating communication sessions from a first computer network to a second computer network | |
US20070168551A1 (en) | Address and port number abstraction when setting up a connection between at least two computational devices | |
WO2002015014A1 (en) | Pseudo addressing | |
US20060031514A1 (en) | Initiating communication sessions from a first computer network to a second computer network | |
US9929951B1 (en) | Techniques for using mappings to manage network traffic | |
CN107040616B (zh) | Tcp/dn/ip网络兼容tcp/ip网络的转换方法及报文收发方法 | |
US20060002384A1 (en) | Network system and connecting method thereof | |
CN101355568A (zh) | 一种静态pat支持绑定路由器接口的方法及系统 | |
CN114731338B (zh) | 一种用于域名系统服务器的负载的控制的系统和方法 | |
KR100562390B1 (ko) | 호스트 라우팅과 IP Aliasing 기법을 이용한 네트워크 데이터 플로우 식별 방법 및 시스템 | |
US20230254278A1 (en) | Management of domain name system (dns) queries in computing systems | |
WO2023164314A2 (en) | Method of obtaining and using tunneling information for packets in a computer network | |
KR20070025835A (ko) | 데이터패킷 중계기의 주소 매핑 장치 및 그 방법 | |
WO2004066587A1 (en) | Sessions intiated from a first to a second computer network |
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 |