CN101133625A - 防止来自网络地址端口转换器服务的客户机的重复源 - Google Patents

防止来自网络地址端口转换器服务的客户机的重复源 Download PDF

Info

Publication number
CN101133625A
CN101133625A CNA2006800071424A CN200680007142A CN101133625A CN 101133625 A CN101133625 A CN 101133625A CN A2006800071424 A CNA2006800071424 A CN A2006800071424A CN 200680007142 A CN200680007142 A CN 200680007142A CN 101133625 A CN101133625 A CN 101133625A
Authority
CN
China
Prior art keywords
port
source
grouping
port numbers
client
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
Application number
CNA2006800071424A
Other languages
English (en)
Other versions
CN101133625B (zh
Inventor
帕特里夏·贾库比克
小林伍德·H.·奥弗尔比
乔伊斯·A.·波特
戴维·J.·维耶尔波夫斯基
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN101133625A publication Critical patent/CN101133625A/zh
Application granted granted Critical
Publication of CN101133625B publication Critical patent/CN101133625B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/50Address allocation
    • H04L61/5046Resolving address allocation conflicts; Testing of addresses
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/2517Translation of Internet protocol [IP] addresses using port numbers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/16Implementing security features at a particular protocol layer
    • H04L63/164Implementing security features at a particular protocol layer at the network layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2101/00Indexing scheme associated with group H04L61/00
    • H04L2101/60Types of network addresses
    • H04L2101/618Details of network addresses
    • H04L2101/663Transport layer addresses, e.g. aspects of transmission control protocol [TCP] or user datagram protocol [UDP] ports

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Small-Scale Networks (AREA)
  • Computer And Data Communications (AREA)

Abstract

在使用源地址、协议和源端口号以识别包括端口号转换的连接的协议连接上防止重复源。响应来自远程源客户机的入站IPsec分组,做出在服从管理该连接的安全联合的端口号范围内是否有端口号的判断。如果是这样的话,便将可用的端口号分配给该连接,从而避免重复源的可能性。如果没有可用的端口号,则拒绝该分组。

Description

防止来自网络地址端口转换器服务的客户机的重复源
技术领域
一般来说,本发明涉及因特网的连网,确切地说,涉及网络地址和端口转换所导致的寻址冲突。
背景技术
按照形成因特网通信基础的因特网和TCP/IP协议描述问题和解决方案。不过,本发明也可以应用到其他通信协议,取决于这些协议的细节。
使用因特网网络地址转换有几个理由。主要理由是为了节省对公共地址的使用。一般来说,网络地址转换器(NAT)的因特网协议(IP)地址是公共地址。也就是说,外部世界知道的是所述NAT IP地址,而在NAT背后的所有服务器或客户机是专用地址,外部世界不知道它们。在这种情况下,外部世界与NAT通信,而NAT控制着与其后的适当服务器和客户机的通信。这意味着NAT背后设备的IP地址仅仅在该系列内必须是唯一的,但是可以与世界上其余系列中的其他IP地址重复。NAT仅仅涉及IP地址的转换。还存在着称为网络地址端口转换(NAPT)的转换类型,其中对IP地址和端口号双方都进行了转换。在因特网工程任务组(IETF)RFC 3022中阐述了网络地址转换(NAT)和网络地址端口转换(NAPT)的标准,标题为“TraditionalIP Network Address Translation”。
设计最初的因特网时并未将安全作为主要因素。事实上,当时有目的地使因特网相对地开放,作为对科学和教育通信的辅助工具。不过,网络及其商业使用的出现已经增加了对安全的因特网通信的需求。针对这些问题定义了因特网安全协议,通常称为IPsec。例如,IPsec提供了对网络设备的鉴别和/或对传输数据的加密。源与目的地地址之间的IPsec通信按照安全联合(SA)进行管理;SA是一种或多种规则,它们定义了应用到通信中的IPsec处理。IPsec在RFC 2401和其他RFC中定义。通过将分组的属性与安全策略数据库(SPD)中的安全规则进行匹配而确定是拒绝分组、不经过IPsec处理即许可分组还是经过IPsec处理再许可分组。为了进行这种判断,已知技术按照对输出和输入分组都以从最明确属性到最不明确属性的次序对静态和动态的规则都进行搜索。一组静态规则本质上是安全策略。静态规则是预定义的,并且一般来说不经常改变。动态规则是IKE(因特网键交换)处理期间根据需要在节点之间所协商并且被增加到安全策略数据库的规则。授予国际商用机器公司的美国专利6,347,376介绍了搜索SPD动态规则的优选方法,这个专利的全部内容在此引用作为参考。
在网络地址或端口转换与IPsec处理之间存在着固有的不兼容性。这些不兼容性是部署IPsec的屏障。RFC 3175认识到并讨论了这些不兼容性的一部分,但是却未提供一般的解决方案。例如,RFC 3175的4.1节参考了在RFC 3456“Dynamic Host Configuration Protocol(DHCPv4,Configuration of IPsec Tunnel Mode”)中提出的有限解决方案,但是却指出需要更一般的解决方案。此外,来自IETF的IPsec工作组、标题为“UDP Encapsulation of IPsec Packet”的RFC 3948的第5节同样涉及了某些不兼容性问题。确切地说,RFC 3948的5.2节简要地介绍了判断在至NAPT所服务的客户机的连接上使用何种IPsec安全联合时面临的问题。该节还介绍了在NAPT也处理Ipsec流量时,许可与NAPT背后的客户机进行明文连接时的另一个问题。
因此,由NAPT服务客户机时,存在着处理避免重复源问题的需求。任何有关的IETF RFC都未提供对这种问题的任何解决方案。为了本说明书的目的,重复源被定义为具有相同源地址(如由NAPT分配给IPsec封装的原始分组的IP地址)、相同传输协议和相同原始源端口号(即在IPsec封装分组的传输头中的端口号)的分组。
重复源导致了破坏网络完整性的重复连接。例如,分组可能会发送到错误的目的地。
标题为“Negoriation of NAT-Traversal in the IKE”的RFC 3947介绍了在NAT遍历支持的IKE(因特网键交换)阶段1和阶段2中所需要的要素。这包括检测分组通信的两个端点是否都支持NAT遍历,以及检测沿着从主机到主机的通道是否存在着一个或多个NAT。它还包括如何以IKE快速模式协商使用用户数据报协议(UDP)封装的IPsec分组,并且介绍了在需要时如何向另一端传输原始源IP地址。UDP在RFC 768中定义。RFC 3948“UDP Encapsulation of IPsetPackets”定义了为了遍历NAT而在UDP分组内部封装和去封装ESP(封装安全有效负载)分组的方法。EPS在RFC 2406中定义。EPS设计为在IPv4和IPv6中提供混合的安全服务。
发明内容
本发明致力于防止在使用源地址、协议和源端口号识别由NAPT服务的源应用程序的连接中分组的重复源。当服务器收到分组时,便做出关于该分组是不是封装其传输通道包含网络地址转换器(NAPT)的ESP分组的UDP分组的判断。如果满足了这些判断,便将原始分组去封装,以获取原始源端口号和原始传输协议。然后做出在服从管理该连接的安全联合的端口号范围内是否有可用的端口号的判断。如果找到了可用的端口,便将其分配给该连接,从而避免重复源的可能性。如果在管理该连接的端口号范围内没有可用的端口号,则拒绝该分组。
附图说明
现在将参考以下附图仅仅举例说明本发明的优选实施例,其中:
图1显示了从客户机通过NAPT和NAT到目的地主机的分组处理以及随着该分组的前进对该分组头和内容的改变;
图2显示了响应图1中分组的返回分组;
图3显示了源端口转换表(SPTT)的展示性实施例;
图4显示了NAPT转换的分组,它封装了加密的原始分组;
图5显示了解密后图4的分组;
图6和图7分别对应于图4和图5,显示了与早先分组通道相同的第二分组,它表示了因为在传输通道中包括NAPT所导致的非法重复连接;
图8是因特网键交换协议的展示性流程图,借此定义了安全联合并确定了端口号的范围,两者都是为了安装到用于该目的地与客户机之间通信的协议栈内;
图9是流程图,显示了当入站分组首次到达目的地主机时可用的若干选项;
图10是流程图,显示了在入口A处对既封装了加密的原始分组又已经通过了NAPT的入站分组进行处理;在入口B处,处理尚对没有通过NAPT的IPsec分组进行处理,以及在入口D处对没有通过NAPT并且不是IPsec分组的分组进行处理;
图11继续图10的对入站分组的处理;
图12是流程图,显示了对入站分组处理的替代方法,这些入站分组既不满足封装的条件,又不满足通过NAPT的条件;
图13显示了跟踪已分配和未分配端口号的可用源端口池的展示性实施例。
具体实施方式
不过,本发明可以实施为许多不同的形式,而且不应当理解为受限于本文阐述的实施例;相反,提供这些实施例是为了使本公开将彻底、完全,并且将全面地向本领域技术人员传达本发明的范围。尽管在因特网传输中的传输模式和隧道模式下都存在所涉及的问题,但是所公开的实施例主要针对传输模式。所介绍的稍微变化使传输模式公开技术适应隧道模式下的操作。
本发明的实施例能够实施为软件、硬件或者硬件与软件。正如本领域的技术人员所认识的那样,本发明的若干实施例能够采取完全硬件实施例的形式、完全软件(包括固件、驻留软件、微代码等)实施例的形式,或者既包含软件方面又包括硬件方面实施例的形式。不仅如此,本发明的若干实施例也能够采取计算机可用即计算机可读存储介质上计算机程序产品的形式,使程序代码装置记录在由计算机或任何指令执行系统使用或与之相连的介质中。在本文档的范围中,计算机可用即计算机可读介质可以是能够包含、存储、通信、传播或传输由所述指令执行系统、装置或设备使用或与之相连的程序的任何装置。例如,该介质可以是但是不限于电子的、磁性的、光学的、电磁的、红外线的或半导体式的系统、装置、设备或者传播媒介。计算机可读介质更具体的实例(非面面俱到的列表)将会包括具有一条或多条线路的电气连接、可拆卸的计算机软盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪存)、光纤和便携式光盘只读存储器(CD-ROM)。注意,计算机可用即计算机可读介质甚至可以是打印了程序的纸张或另一种适合的介质,因为可以通过例如对该纸张或其他介质的光学扫描而以电子方式获取该程序,然后在需要时进行编译、解释或以其他适合的方式进行处理,然后存储在计算机存储器中。
在本说明书中,相同的附图标记从始至终都是指相同的要素。
IPsec处理可以用于为了安全目的对分组内容的鉴别或加密。可以对分组既应用鉴别又应用加密,或者分开地应用任一种。为了简化本介绍,IPsec处理的说明在加密和解密技术方面讨论了分组的封装和去封装。无论是仅仅应用鉴别还是连同加密同时应用,所介绍的处理都同等地有效。
当对来自源客户机的流出分组应用IPsec处理时,该处理加密原始的源和目的地端口以及协议字段,并且将这种加密的信息封装到UDP分组内。该原始客户机的源IP地址保留在UDP分组中,但是源端口号却被设置为由RFC 3948“UDP Encapsulation of Ipsec ESPpackets”所规定的4500。如果UDP分组随后通过NAPT,那么NAPT进行进一步转换。以下对应图1和图2详细介绍这些转换。确切地说,NAPT用其自身的IP地址取代客户机的源IP地址,向UDP头分配新的唯一端口号并对这些转换保持跟踪,以便使返回的分组能够被映射到原始源。RFC 3948介绍了一种方案,其中NAPT设备不改变TCP或UDP分组中的原始源端口号,因为它是现在被加密为IPsec ESP有效载荷的一部分的原始传输头的一部分。相反,却如上所述改变UDP头中为UDP封装而增加的端口号。当服务器收到这样的IPsec分组并进行解密时,便展现了该分组的原始源和目的地端口。对于未经过IPsec处理的分组,NAPT设备转换原始的源IP地址和源端口。对于未加密的分组,NAPT确保不存在重复连接(重复源)。
图1展示了从客户机向服务器发送IPsec分组时,它沿着网络通道的转换。图2展示了返回分组以相反方向从服务器到客户机的转换。参考图1,IP地址为10.1.1.1的客户机发送的加密分组去往IP地址为11.1.1.1的服务器。在100处显示了分组由IPsec处理之前的原始内容。100的左列描述了分组的字段类型,而右列则显示了字段内容。注意,在100处目的地IP地址是211.1.1.1,它是在真实目的地服务器11.1.1.1前方的NAT的公共地址。NAT 211.1.1.1的责任就是将分组映射到其后端服务器,比如11.1.1.1。在100处,源和目的地端口展示性地分别设置为4096和21。经过IPsec处理后的分组内容显示在102处。在分组102底部浅阴影部分展示了由IPsec加密的部分。102深阴影部分(以及传输通道其他点上的分组内容)展示了传输中在该点已经改变的或已经增加的若干字段。在102处,真实的源和目的地端口为4096和21被IPsec加密的值,并且在此点不可读。IPsec处理已经增加了UDP头,以表明这是封装了原始客户机分组的端口和协议的Ipsec分组。由Ipsec增加的明文UDP头中的源和目的地端口按照RFC 3948的要求设置为4500。SPI(安全参数索引)字段展示性地设置为256。SPI字段与安全协议(ESP或AH)和目的地地址一起指向客户机10.1.1.1与服务器11.1.1.1之间的安全联合,它管理这些实体之间的加密算法和其他安全参数。
102处的分组由IP地址为210.1.1.1的NAPT转换,产生104处显示的分组。在此点NAPT 210.1.1.1已经改变了源IP地址,以反应其自身的地址210.1.1.1。NAPT还设置了新的唯一源端口号。在图1中,选定的源端口号展示性地从4500改变到4501。NAPT 210.1.1.1跟踪这种转换,以用于从服务器11.1.1.1返回的分组和将来从客户机IP 10.1.1.1和源端口4500发送的分组。
104处的分组由NAPT 211.1.1.1重新转换为服务器11.1.1.1的输入分组。这个输入分组显示在106处。本质上,分组的目的地IP地址由NAPT 211.1.1.1映射到目的地服务器的真实目的地地址11.1.1.1。分组的IPsec处理除去了在源10.1.1.1处由IPsec处理增加的UDP头,并且恢复了真实的源和目的地端口号。然后,如108处显示,恢复的分组被传递到目的地端口(在这个实例中是21)以便应用程序处理。
为了完整性,图2显示了从服务器211.1.1.1到原始客户机10.1.1.1的返回分组流。没有必要以任何细节讨论这种分组流,因为对返回分组不可能出现所针对的重复源问题。
再参考图1,108处的分组包含地址NAPT 210.1.1.1作为源地址和源端口地址4096。不过,NAPT 210.1.1.1背后的另一台客户机(比如说10.1.1.2)也从源端口4096向主机11.1.1.1发送分组也是非常可能的。所以,由于客户机10.1.1.1与主机11.1.1.1之间的通道中存在着NAPT,所以存在着导致冲突的非法重复源的可能性。
目的地主机处的源端口转换表(SPTT,图3)用于定义源(图3中称源端口项)之间的关联,它涉及NAPT以及由目的地主机分配给这样的连接的转换后端口号(图3中称转换后的源端口项)。转换后的源端口选自可分配(尚未分配)给与给定安全联合相关联的输入分组的端口池。每种协商的安全联合都具有其自己的转换端口池。当然,对于给定连接,每个转换端口池都必须遵循原始连接所需要的SPD中相同或等价的安全规则,如由原始客户机端口号的一部分中的定义。通过向输入分组分配可用的转换端口,由本发明拒绝的“重复”分组的数目应当减少,而且也许会显著地减少。
图3中的300显示了展示性的SPTT。当输入分组到达目的地主机时,这个表根据需要动态地产生。SPTT的源端口项包含四个字段;1)连接通道中NAPT的源IP地址(如项302包含NAPT IP地址210.1.1.1);2)由NAPT分配的UDP源端口(如项302的4501);3)由NAPT服务的源客户机所选择的原始源端口号(如项302的4096);4)原始客户机分组的协议(如项302的TCP)。SPTT的每个源端口项都指向转换后的源端口项。例如,源端口项302指向图3中转换后的源端口项308。每个转换后的源端口项都包含三个字段:1)连接通道中NAPT的源IP地址(如项308包含NAPT IP地址210.1.1.1);2)由NAPT服务的源客户机的转换后的端口号(如项308的4096);3)由源客户机分组所选择的协议(如项308的TCP)。源端口项用于为入站到目的地主机的分组寻找转换后的源端口项,而转换后的源端口项用于为从主机出站的分组寻找源端口项。
图13(图13与图3在同一页上)中显示的可用源端口池(ASPP)对可用于转换分配的端口号和已经分配的端口号保持跟踪。当服务器从新的远程客户机首次接收到分组时,便动态地产生ASPP中的信息。ASPP 1300包含指向若干端口向量的若干远程客户机项。每个远程客户机项都包含两个字段,取自输入分组的NAPT的IP地址以及该分组的原始客户机协议,UDP或TCP。当分组到达时,原始客户机协议被加密,并且在IPsec处理之后在目的地主机处以明文可用。这些远程客户机项的每一项都指向不同的端口向量,向量的每一位都描述了由该向量内某位的位置所定义的端口号可用或不可用的状态。
参考图13,当IKE协商遍历NAPT的IPsec安全联合时,TCP/IP栈创建在所协商的安全联合下可接受的端口号范围。这个范围内的端口号可以任意分配给输入分组,以避免重复源的可能性。在图8到图12的讨论中如何做到这一点将变得清楚。将会看到,在任何向量中仅仅涉及根据对应的远程客户机项的安全联合能够进行分配的端口范围。
图4到图7有助于展示以上的讨论。图4显示了来自源NAPT的分组。为了展示,客户机的地址和端口假设为10.1.1.1和4096。400是由NAPT更新后的IP头。它包含NAPT地址210.1.1.1和主机目的地地址11.1.1.1。402是由IPsec处理增加并由NAPT更新的封装UDP头。源端口4500已经被NAPT改变为4501。404包含由IPsec处理增加的封装的安全协议(ESP)头。TCP传输头406包含原始客户机的源端口4096和目的地端口21。408包含有效负载数据,随后是ESP尾记录。传输头406和有效负载408按照IPsec处理被加密。图5呈现了在目的地解密之后的图4的分组。现在注意,目前源NAPT地址210.1.1.1(从500)、客户机的源端口4096和协议(TCP)从506可用。对于入站分组,使用这些属性搜索了SPTT 300的源端口项(如302、304),以定位对应的转换后的源端口项(如果它存在)。对于出站分组,搜索了转换后的源端口项(如308、310),以定位对应的源端口项。
图6和图7表现了第二个到达的“重复”源分组。本发明的实施例将接受这种分组,假设根据管理分组的安全联合的允许端口号的范围存在着可用于分配给分组的端口号。
以下将与适合的流程图相关联,更详细地解释这种过程。
图8展示了IKE协商期间安全联合的初始化。IKE协商在步骤802处表示。在协商期间,步骤804向TCP/IP栈发送通知,以便安装所协商的安全联合。一旦知道了该安全联合,就搜索SPD以确定端口号的范围,如果存在着某个范围,它就可用于向连接分配。步骤806确定这些端口号并将它们增加到该堆栈中存储的安全联合。
图9在数据分组到达目的地主机时开始避免重复源的过程。图9在数据分组到达目的地主机时开始检测重复源的过程。步骤902判断入站分组是否包含UDP头中封装的ESP分组,并且UDP头中的源端口不是预定义的UDP封装端口4500。如果以上为真,那么该分组正在使用IPsec,或者用于加密或者用于鉴别,而且传输通道中包括NAPT。如果分组正在使用UDP协议、目的地端口是4500而且开始的四个字节包含非零数据,那么该分组被识别为UDP封装的ESP分组。如果对这些问题的答案为否,那么有两种替代的处理选项,904处的选项1和906处的选项2。二者都在以下进行讨论。假设对两个问题的答案都为是,那么步骤908继续到图10中的A处。在图10中,步骤1001去除了输入分组的UDP头。步骤1002执行所需的IPsec处理以解密该分组。结果就获得了原始客户机源端口号比如302处的4096和原始客户机协议比如302处的TCP。从该UDP头分别得知NAPT源IP地址和NAPT分配的端口号,比如302处的210.1.1.1和4501。步骤1004在这些属性上搜索SPTT 300的源端口项。如果在步骤1006发现了匹配的源端口项,这意味着已经向这个会话分配转换后的端口号。步骤1008定位已经分配的端口号。在这个实例中,匹配的源端口项是302,对应的转换后的源端口项是308。项308包含所分配的源端口号4096,它恰好与原始客户机源端口号一致。这意味着创建项308时,该原始客户机源端口号可用于分配并因此被用作所分配的端口。以下还将进一步涉及这一点。步骤1010用来自308的转换后的源端口取代该分组传输头中的源端口号,正常的分组处理在步骤1012继续。要是在步骤1008该匹配的转换后的源端口项是310,那么根据SPPT 300的展示性内容,该转换后的端口号将可能一直是38096。
继续这个实例,如果步骤1006未找到SPTT 300中的源端口项,那么便开始某个过程,以根据需要创建这样的项以及ASPP 1300的若干项。一开始,步骤1016判断ASPP远程客户机项是否已经存在。如果不存在,步骤1020就使用这个实例中的源NAPT IP地址210.1.1.1和来自解密后分组的协议TCP创建该项。步骤1022创建对应的位向量。一开始,该向量的所有位都被设置为可用状态。在图11的E,步骤1102下一步判断该分组中的客户机源端口号是否在该源端口位向量中被标记为可用。如果标记为可用,在1104分配在该分组中的源端口号。这对应于302和308处的实例,其中原始的源端口号和分配的端口号一致。如果该原始的客户机源端口号在向量中被标记为不可用,步骤1110确定根据安全联合可允许用于分配的端口范围。在端口位向量中的这个范围内,如果有任何可用者,步骤1112确定可用的下一个端口号。如果没有可用于分配的端口号,该分组在1114被拒绝,因为它表示不能被解决的重复源。如果在该向量中可允许范围内有端口可用,步骤1113就使用从该向量中选择的可用端口,在SPTT 300中创建转换后的源端口项(比如308和310);步骤1106将所选择的端口标记为不可用;步骤1108在SPTT 300中创建源端口项,比如304,并且将其与在步骤1113创建的转换后的源端口项相关联。处理过程在图10中的F处继续,该分组端口号在此处由在步骤1010分配的端口号所替代,正常的分组处理在步骤1012继续。
如果使用了图9的选项1,需要在步骤1110对以上进行一种变更。如果步骤910判定输入分组不是IPsec分组,那么就不存在着与这个分组相关联的SA。因此,步骤1110必须直接从SPD而不是如在优选实施例中从SA获得包含可用于分配的端口范围的端口位向量。
图9中的选项1和选项2表示分组以明文发送(没有IPsec处理)或通道中不存在地址转换(NAPT)的情况。只要在这台主机上终止的某个安全联合也遍历NAPT,在这些情况下就仍然可能有若干重复源。替代选项1和2都避免这些条件下这样的重复分组。选项1应用了与以上讨论的避免重复源相同的原理,但是根据该分组的需要,通过应用或避免IPsec处理而实现。选项2使用SPD的滤波规则避免重复源。如果选择了选项1(904),步骤910判断该分组是否需要IPsec处理。如果需要,处理过程在912继续,它继续到图10中的B;图10中B处的步骤1002根据需要执行IPsec处理,处理过程在1004继续。如果在步骤910判定该分组不是IPsec分组,步骤914继续到图10中的D,它仅仅跳过了B处的IPsec处理步骤。在这种情况下,图10中的步骤1004使用UDP源端口零(0),因为在该分组中不存在封装UDP头。
如果可能,选项2使用入站IPsec分组滤波避免重复源。一旦Ipsec就位,所有的分组都通过IPsec规则表SPD处理,无论任一分组是否被加密。这是为了验证事实上IPsec规则允许给定连接上的明文分组。选项2的过程开始于图12的C处。在步骤1202通过IPsec规则表(未显示)处理了输入分组。在优选实施例中如何实现这种处理的实例可以从前述的美国专利6,347,376中确定,这个专利的全部内容在此引用作为参考。如果该分组已加密(步骤1204),那么步骤1206判断所述匹配IPsec规则是否需要加密。假设是这种情况,在1206允许该分组。否则在1210拒绝它。如果在步骤1204判定该分组为明文,那么在1212做出所述匹配IPsec规则是否允许未加密分组的判断,从而允许或拒绝该分组。
在隧道模式中,所述IPsec SA不必是端到端的。例如,在主机与服务多台客户机或服务器的网关之间有可能协商SA。在隧道模式中单一的NAPT地址(它是UDP封装头中的源IP地址)有可能潜在地表示多台主机。在隧道模式中,分组的封装加密部分既包含源的原始IP地址也包含TCP传输头。为了本说明书的目的,隧道模式中原始的源IP地址被称为内部源IP地址。因为该内部源IP地址不是全球唯一的,它不可用于分组路由或表示连接的源。原始的源端口,比如SPTT 300的源端口项中包含的,以及单独地用UDP端口封装的源IP地址,如以上对传输模式的介绍,也许不是唯一的。为了处理这个问题,向图3中的SPTT 300的源端口项(如302和304)增加了包含所述内部源IP地址的附加字段。所述内部源IP地址(在传输模式中不可用)与所述源端口项的其他值相组合时,就产生了唯一标识符,用于由隧道模式IPsec SA保护的主机。
本领域的技术人员将会理解,所述优选和公开的实施例可以具有在本教导意图和范围内的许多细小变化。本发明人的意图是依照本发明领域中可适用的有关技术的状态,将这些变化包括到可能的程度。

Claims (24)

1.一种在使用网络地址、协议和端口号识别连接的网络协议中防止重复源冲突的方法,包括:
在位于目的地主机的连接上响应来自远程源客户机的入站分组,判断在服从管理所述连接的安全联合的端口号范围内是否有可用端口号;
将可用的端口号分配给所述连接,从而避免重复源的可能性;以及
如果在管理所述连接的端口号范围内没有可用的端口号,则拒绝所述分组。
2.根据权利要求1的方法,进一步包括:
为每台远程源客户机保持可分配端口号的列表,并在所述列表中保持每个端口号的已分配和未分配状态。
3.根据权利要求2的方法,其中,每个可分配端口号的列表都是位向量,其中的位位置标识端口号,而所述位状态描述所述端口号的已分配和未分配状态。
4.根据权利要求1的方法,进一步包括:
保持使每个客户机端连接与转换后的端口号相关联的源端口转换表。
5.根据权利要求4的方法,其中,所述源端口转换表包含源端口项和转换后的源端口项,每个源端口项都唯一地与转换后的源端口项相关联,并且每个源端口项都包含因特网源地址、由NAPT分配的UDP源端口号、客户机源端口号和客户机协议标识符,每个转换后的源端口项都包含因特网源地址、转换后的客户机源端口号和客户机协议标识符,其中在输入分组上搜索所述源端口项,以识别先前分配给远程客户机连接的端口号,并且在输出分组上搜索所述转换后的源端口项,以从先前分配的转换后的端口号中识别客户机端口号。
6.一种在使用网络地址、协议和端口号识别连接的网络协议中防止重复源冲突的方法,包括:
a)在服务器接收分组;
b)判断所述分组是否已经被网络地址端口转换器所转换并且是否包含封装的加密分组;
c)如果所述分组已经被转换并且包含封装的加密分组,就解密所述封装的分组以获取原始的连接信息;
d)判断在服从管理所述连接的安全联合的端口号范围内是否有可用的端口号;
e)将可用的端口号分配给所述连接,从而避免重复源的可能性;
以及
f)如果在管理所述连接的端口号范围内没有可用的端口号,则拒绝所述分组。
7.根据权利要求6的方法,进一步包括:
为每个连接保持可分配端口号的列表,并在所述列表中保持每个端口号的已分配和未分配状态。
8.根据权利要求7的方法,其中,每个可分配端口号的列表都是位向量,其中的位位置标识端口号,而所述位状态描述所述端口号的已分配和未分配状态。
9.一种在使用网络地址、协议和端口号识别连接的网络协议中防止重复源冲突的装置,包括:
在位于目的地主机的连接上响应来自远程源客户机的入站分组,判断在服从管理所述连接的安全联合的端口号范围内是否有可用端口号的装置;
将可用的端口号分配给所述连接,从而避免重复源的可能性的装置;以及
如果在管理所述连接的端口号范围内没有可用的端口号,则拒绝所述分组的装置。
10.根据权利要求9的装置,进一步包括:
为每台远程源客户机保持可分配端口号的列表,并在所述列表中保持每个端口号的已分配和未分配状态的装置。
11.根据权利要求10的装置,其中,每个可分配端口号的列表都是位向量,其中的位位置标识端口号,而所述位状态描述所述端口号的已分配和未分配状态。
12.根据权利要求9的装置,进一步包括:
保持使每个客户机端连接与转换后的端口号相关联的源端口转换表的装置。
13.根据权利要求12的装置,其中,所述源端口转换表包含源端口项和转换后的源端口项,每个源端口项都唯一地与转换后的源端口项相关联,并且每个源端口项都包含因特网源地址、由NAPT分配的UDP源端口号、客户机源端口号和客户机协议标识符,每个转换后的源端口项都包含因特网源地址、转换后的客户机源端口号和客户机协议标识符,其中所述装置进一步包括在输入分组上搜索源端口项,以识别先前分配给远程客户机连接的端口号的装置,以及在输出分组上搜索所述转换后的源端口项,以从先前分配的转换后的端口号中识别客户机端口号的装置。
14.一种在使用网络地址、协议和端口号识别连接的网络协议中防止重复源冲突的装置,包括:
a)在服务器接收分组的装置;
b)判断所述分组是否已经被网络地址端口转换器所转换并且是否包含封装的加密分组的装置;
c)解密所述封装的分组以获取原始的连接信息的装置;
d)判断在服从管理所述连接的安全联合的端口号范围内是否有可用端口号的装置;
e)将可用的端口号分配给所述连接,从而避免重复源的可能性的装置;以及
f)如果在管理所述连接的端口号范围内没有可用的端口号,则拒绝所述分组的装置。
15.根据权利要求14的装置,进一步包括:
为每个连接保持可分配端口号的列表,并在所述列表中保持每个端口号的已分配和未分配状态的装置。
16.根据权利要求15的装置,其中,每个可分配端口号的列表都是位向量,其中的位位置标识端口号,而所述位状态描述所述端口号的已分配和未分配状态。
17.一种用于存储程序指令的存储介质,将其加载到计算机内时,使所述计算机执行在使用网络地址、协议和端口号识别连接的网络协议中防止重复源冲突的方法,所述指令包括:
在位于目的地主机的连接上响应来自远程源客户机的入站分组,判断在服从管理所述连接的安全联合的端口号范围内是否有可用端口号的若干指令;
将可用的端口号分配给所述连接,从而避免重复源的可能性的若干指令;以及
如果在管理所述连接的端口号范围内没有可用的端口号,则拒绝所述分组的指令。
18.根据权利要求17的介质,其中,所述指令进一步包括:
为每台远程源客户机保持可分配端口号的列表,并在所述列表中保持每个端口号的已分配和未分配状态的指令。
19.根据权利要求18的介质,其中,由所述指令产生的每个可分配端口号的列表都是位向量,其中的位位置标识端口号,而所述位状态描述所述端口号的已分配和未分配状态。
20.根据权利要求17的介质,进一步包括:
保持使每个客户机端连接与转换后的端口号相关联的源端口转换表的指令。
21.根据权利要求20的介质,其中,由所述指令产生的所述源端口转换表包含源端口项和转换后的源端口项,每个源端口项都唯一地与转换后的源端口项相关联,并且每个源端口项都包含因特网源地址、由NAPT分配的UDP源端口号、客户机源端口号和客户机协议标识符,每个转换后的源端口项都包含因特网源地址、转换后的客户机源端口号和客户机协议标识符,其中在输入分组上搜索所述源端口项,以识别先前分配给远程客户机连接的端口号,并且在输出分组上搜索所述转换后的源端口项,以从先前分配的转换后的端口号中识别客户机端口号。
22.一种用于存储程序指令的存储介质,将其加载到计算机内时,使所述计算机执行在使用网络地址、协议和端口号识别连接的网络协议中防止重复源冲突的方法,所述指令包括:
a)在服务器接收分组的装置;
b)判断所述分组是否已经被网络地址端口转换器所转换并且是否包含封装的加密分组的若干指令;
c)解密所述封装的分组以获取原始的连接信息的若干指令;
d)判断在服从管理所述连接的安全联合的端口号范围内是否有可用端口号的若干指令;
e)将可用的端口号分配给所述连接,从而避免重复源的可能性的若干指令;以及
f)如果在管理所述连接的端口号范围内没有可用的端口号,则拒绝所述分组的指令。
23.根据权利要求22的存储介质,进一步包括:
为每个连接保持可分配端口号的列表,并在所述列表中保持每个端口号的已分配和未分配状态的指令。
24.根据权利要求23的存储介质,其中,由所述指令产生的每个可分配端口号的列表都是位向量,其中的位位置标识端口号,而所述位状态描述所述端口号的已分配和未分配状态。
CN2006800071424A 2005-04-11 2006-04-07 防止重复源冲突的方法和装置 Active CN101133625B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/907,659 2005-04-11
US10/907,659 US8787393B2 (en) 2005-04-11 2005-04-11 Preventing duplicate sources from clients served by a network address port translator
PCT/EP2006/061443 WO2006108808A1 (en) 2005-04-11 2006-04-07 Preventing duplicate sources from clients served by a network address port translator

Publications (2)

Publication Number Publication Date
CN101133625A true CN101133625A (zh) 2008-02-27
CN101133625B CN101133625B (zh) 2011-10-12

Family

ID=36645677

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2006800071424A Active CN101133625B (zh) 2005-04-11 2006-04-07 防止重复源冲突的方法和装置

Country Status (10)

Country Link
US (2) US8787393B2 (zh)
EP (1) EP1872562B1 (zh)
JP (1) JP4482601B2 (zh)
CN (1) CN101133625B (zh)
AT (1) ATE460039T1 (zh)
BR (1) BRPI0607516B1 (zh)
CA (1) CA2602789C (zh)
DE (1) DE602006012644D1 (zh)
TW (1) TWI380650B (zh)
WO (1) WO2006108808A1 (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011035678A1 (zh) * 2009-09-25 2011-03-31 华为技术有限公司 数据传输方法及装置
CN103139189A (zh) * 2011-12-05 2013-06-05 京信通信系统(中国)有限公司 一种IPSec隧道共用方法、系统及设备
CN105515990A (zh) * 2014-09-23 2016-04-20 中国电信股份有限公司 基于二维信息进行寻路的方法和接入网关
CN106899474A (zh) * 2016-12-07 2017-06-27 新华三技术有限公司 一种报文转发的方法和装置
CN112242943A (zh) * 2020-11-26 2021-01-19 迈普通信技术股份有限公司 IPSec隧道建立方法及装置、分支设备、中心端设备

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7852961B2 (en) * 2004-05-20 2010-12-14 Samsung Electronics Co., Ltd. Digital broadcasting transmission/reception devices capable of improving a receiving performance and signal processing method thereof
US8787393B2 (en) 2005-04-11 2014-07-22 International Business Machines Corporation Preventing duplicate sources from clients served by a network address port translator
US7962652B2 (en) 2006-02-14 2011-06-14 International Business Machines Corporation Detecting network topology when negotiating IPsec security associations that involve network address translation
JP2009111437A (ja) * 2007-10-26 2009-05-21 Hitachi Ltd ネットワークシステム
US8108514B2 (en) 2008-04-02 2012-01-31 International Business Machines Corporation High availability of internet protocol addresses within a cluster
GB2474843B (en) * 2009-10-27 2012-04-25 Motorola Solutions Inc Method for providing security associations for encrypted packet data
US8806033B1 (en) * 2011-06-30 2014-08-12 Juniper Networks, Inc. Effective network identity pairing
US8775614B2 (en) 2011-09-12 2014-07-08 Microsoft Corporation Monitoring remote access to an enterprise network
US10263916B2 (en) * 2012-12-03 2019-04-16 Hewlett Packard Enterprise Development Lp System and method for message handling in a network device
FR3072233B1 (fr) * 2017-10-10 2020-11-27 Bull Sas Procede de generation de requetes pour la segmentation de la surveillance d'un reseau d'interconnexion et materiel associe
US11381665B2 (en) 2019-02-18 2022-07-05 International Business Machines Corporation Tracking client sessions in publish and subscribe systems using a shared repository
US11526499B2 (en) 2019-02-18 2022-12-13 International Business Machines Corporation Adaptively updating databases of publish and subscribe systems using optimistic updates
US11778071B2 (en) * 2021-01-26 2023-10-03 Avago Technologies International Sales Pte. Limited Systems and methods for converting between a lossy communication protocol and a lossless communication protocol

Family Cites Families (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5758084A (en) * 1995-02-27 1998-05-26 Hewlett-Packard Company Apparatus for parallel client/server communication having data structures which stored values indicative of connection state and advancing the connection state of established connections
US5872769A (en) * 1995-07-19 1999-02-16 Fujitsu Network Communications, Inc. Linked list structures for multiple levels of control in an ATM switch
US6560220B2 (en) * 1997-06-20 2003-05-06 Telefonaktiebolaget L M Ericsson (Publ) Network access device and telecommunications signaling
US6138144A (en) * 1997-06-24 2000-10-24 At&T Corp. Method for managing multicast addresses for transmitting and receiving multimedia conferencing information on an internet protocol (IP) network implemented over an ATM network
US6615357B1 (en) 1999-01-29 2003-09-02 International Business Machines Corporation System and method for network address translation integration with IP security
US6347376B1 (en) 1999-08-12 2002-02-12 International Business Machines Corp. Security rule database searching in a network security environment
EP1168754B1 (en) * 2000-06-26 2005-03-16 Alcatel Addressing scheme to be used in an IP-based radio access network
US7120697B2 (en) * 2001-05-22 2006-10-10 International Business Machines Corporation Methods, systems and computer program products for port assignments of multiple application instances using the same source IP address
JP2002232450A (ja) * 2001-01-31 2002-08-16 Furukawa Electric Co Ltd:The ネットワーク中継装置、データ通信システム、データ通信方法およびその方法をコンピュータに実行させるプログラム
AU2002258113A1 (en) * 2001-02-20 2002-09-24 Innomedia Pte Ltd. Device and system for sending datagrams in a real time streaming media communication system
CN1268104C (zh) * 2001-03-16 2006-08-02 松下电器产业株式会社 设置防火墙的方法和设备
US20020144024A1 (en) * 2001-03-30 2002-10-03 Kumpf David A. Method and system for assigning peripheral devices to logical ports of a network peripheral server
DE60223451T2 (de) * 2001-06-14 2008-11-27 Hitachi, Ltd. System zur Quittierung von Datenpaketen
US7684317B2 (en) 2001-06-14 2010-03-23 Nortel Networks Limited Protecting a network from unauthorized access
US6898652B2 (en) * 2001-08-22 2005-05-24 General Atomics Wireless device attachment and detachment system, apparatus and method
US7363286B2 (en) * 2001-10-29 2008-04-22 International Business Machines Corporation File system path alias
US20030140089A1 (en) * 2001-11-01 2003-07-24 Hines Kenneth J. Inter-applet communication using an applet agent
US20030154306A1 (en) * 2002-02-11 2003-08-14 Perry Stephen Hastings System and method to proxy inbound connections to privately addressed hosts
JP3819804B2 (ja) * 2002-05-09 2006-09-13 日本電信電話株式会社 Ipネットワーク接続機能を備えたネットワークインターフェイスを用いる通信方式およびその装置
US7143137B2 (en) 2002-06-13 2006-11-28 Nvidia Corporation Method and apparatus for security protocol and address translation integration
US7339889B2 (en) * 2002-06-20 2008-03-04 Nortel Networks Limited Control plane architecture for automatically switched optical network
KR100479261B1 (ko) 2002-10-12 2005-03-31 한국전자통신연구원 네트워크 주소 변환 상에서의 데이터 전송 방법 및 장치
US7346770B2 (en) 2002-10-31 2008-03-18 Microsoft Corporation Method and apparatus for traversing a translation device with a security protocol
US7386881B2 (en) * 2003-01-21 2008-06-10 Swander Brian D Method for mapping security associations to clients operating behind a network address translation device
US20040193677A1 (en) * 2003-03-24 2004-09-30 Shaul Dar Network service architecture
JP4352748B2 (ja) * 2003-04-21 2009-10-28 パナソニック株式会社 中継装置
US7633948B2 (en) * 2003-07-07 2009-12-15 Panasonic Corporation Relay device and server, and port forward setting method
US7283517B2 (en) * 2003-07-22 2007-10-16 Innomedia Pte Stand alone multi-media terminal adapter with network address translation and port partitioning
US7287077B2 (en) * 2003-08-07 2007-10-23 International Business Machines Corporation Reservation of TCP/UDP ports using UID, GID or process name
CN1317874C (zh) * 2003-09-27 2007-05-23 财团法人资讯工业策进会 提供虚拟主机服务快速查询置换的网络地址端口转换网关器与方法
US7424025B2 (en) * 2003-10-01 2008-09-09 Santera Systems, Inc. Methods and systems for per-session dynamic management of media gateway resources
JP3762402B2 (ja) * 2003-10-07 2006-04-05 キヤノン株式会社 データ処理装置及び方法
US20050166206A1 (en) 2004-01-26 2005-07-28 Parson Dale E. Resource management in a processor-based system using hardware queues
JP4555592B2 (ja) * 2004-03-31 2010-10-06 富士通株式会社 パケット処理システム
US20050265252A1 (en) * 2004-05-27 2005-12-01 International Business Machines Corporation Enhancing ephemeral port allocation
US7366182B2 (en) * 2004-08-13 2008-04-29 Qualcomm Incorporated Methods and apparatus for efficient VPN server interface, address allocation, and signaling with a local addressing domain
US8787393B2 (en) 2005-04-11 2014-07-22 International Business Machines Corporation Preventing duplicate sources from clients served by a network address port translator
US7656795B2 (en) 2005-04-11 2010-02-02 International Business Machines Corporation Preventing duplicate sources from clients served by a network address port translator

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011035678A1 (zh) * 2009-09-25 2011-03-31 华为技术有限公司 数据传输方法及装置
CN103139189A (zh) * 2011-12-05 2013-06-05 京信通信系统(中国)有限公司 一种IPSec隧道共用方法、系统及设备
CN103139189B (zh) * 2011-12-05 2017-03-22 京信通信系统(中国)有限公司 一种IPSec隧道共用方法、系统及设备
CN105515990A (zh) * 2014-09-23 2016-04-20 中国电信股份有限公司 基于二维信息进行寻路的方法和接入网关
CN106899474A (zh) * 2016-12-07 2017-06-27 新华三技术有限公司 一种报文转发的方法和装置
CN112242943A (zh) * 2020-11-26 2021-01-19 迈普通信技术股份有限公司 IPSec隧道建立方法及装置、分支设备、中心端设备

Also Published As

Publication number Publication date
JP2008536418A (ja) 2008-09-04
CA2602789C (en) 2015-10-06
BRPI0607516B1 (pt) 2020-06-02
US9253146B2 (en) 2016-02-02
DE602006012644D1 (de) 2010-04-15
US8787393B2 (en) 2014-07-22
CA2602789A1 (en) 2006-10-19
CN101133625B (zh) 2011-10-12
TWI380650B (en) 2012-12-21
US20140244862A1 (en) 2014-08-28
EP1872562A1 (en) 2008-01-02
WO2006108808A1 (en) 2006-10-19
ATE460039T1 (de) 2010-03-15
EP1872562B1 (en) 2010-03-03
JP4482601B2 (ja) 2010-06-16
BRPI0607516A2 (pt) 2012-01-17
TW200709629A (en) 2007-03-01
US20060227770A1 (en) 2006-10-12

Similar Documents

Publication Publication Date Title
CN101133625B (zh) 防止重复源冲突的方法和装置
CN101156420B (zh) 防止来自网络地址端口转换器napt所服务的客户机的重复源的方法
US11290420B2 (en) Dynamic VPN address allocation
US6438612B1 (en) Method and arrangement for secure tunneling of data between virtual routers
Gupta et al. Authentication/confidentiality for OSPFv3
US20090059940A1 (en) Network address translation gateway for local area networks using local ip addresses and non-translatable port addresses
CN101420423A (zh) 网络系统
CN103188351A (zh) IPv6 环境下IPSec VPN 通信业务处理方法与系统
CN101005355A (zh) Ipv4/ipv6综合网络系统的安全通信系统和方法
US7908481B1 (en) Routing data to one or more entities in a network
Touch et al. Use of IPsec transport mode for dynamic routing
CN115277200B (zh) 一种链路层透明加密系统多节点密钥自动协商管理的方法
CN115277190B (zh) 一种链路层透明加密系统在网络上实现邻居发现的方法
Wang Network Working Group J. Touch Request for Comments: 3884 ISI Category: Informational L. Eggert NEC

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