用于超大型NAT引擎的连接跟踪记录制造技术

技术编号:36800713 阅读:15 留言:0更新日期:2023-03-08 23:41
一些实施例提供了一种用于执行网络地址翻译以在大量连接之间共享有限数量的外部源网络地址的新颖方法。代替仅仅基于其内部源网络地址为外出分组分配外部源网络地址,一些实施例的方法基于外出分组的源网络地址和目的地网络地址来分配外部源网络地址。这允许将有限数量的外部源网络地址重用于不同的目的地网络地址。例如,在一些实施例中,该方法的网络地址分配方案允许将相同的64K(例如,2^16)个外部源端口用于每个目的地网络地址的64K个连接。接。接。

【技术实现步骤摘要】
【国外来华专利技术】用于超大型NAT引擎的连接跟踪记录

技术介绍

[0001]具有内部寻址方案的数据中心和其它私有或公共网络常常具有大量的机器和那些机器上需要连接到互联网或其它外部网络的过程。互联网上的通信常常采用具有源地址和目的地地址的分组的形式,每个地址都包括IP地址(常常是IP4地址)和端口号。可用的IP4地址(外部源IP地址)数量有限,因此数据中心常常具有需要比指派给数据中心的IP4地址多的连接的机器。网络地址翻译(NAT)系统部分地解决了这个问题,NAT系统为来自数据中心的机器的每个传出分组流指派数据中心有限数量的IP地址之一的单个端口。但是,由于每个IP地址只有64K个可用端口,因此具有大量机器或在需要外部连接的那些机器上运行的大量过程的数据中心会耗尽数据中心的外部源IP地址上的所有可用端口。因此,本领域中需要为数据中心的机器与数据中心外部的机器之间的大量连接提供外部源IP地址和端口的NAT系统。

技术实现思路

[0002]一些实施例提供了一种用于执行网络地址翻译以在大量连接之间共享有限数量的外部源网络地址的新颖方法。在一些实施例中,这种方法由使用有限数量的外部源网络地址与一个或多个其它网络通信的第一网络(例如,私有或公共数据中心网络)实现。在一些实施例中,第一网络的网关执行这种方法的操作。
[0003]代替仅仅基于其内部源网络地址为外出分组分配外部源网络地址,一些实施例的方法基于外出分组的源网络地址和目的地网络地址来分配外部源网络地址。这允许将有限数量的外部源网络地址重用于不同的目标网络地址。例如,在一些实施例中,该方法的网络地址分配方案允许将相同的64K(例如,2^16)个外部源端口用于每个目的地网络地址的64K个连接。
[0004]为了保持跟踪所分配的外部源网络地址,一些实施例的方法创建将所分配的外部源网络地址映射到内部源网络地址和外部目的地网络地址的连接

跟踪记录。一些实施例的方法在它接收到流的第一个分组时为外出分组流创建连接

跟踪记录。分组包括具有内部源地址(例如,数据中心中的机器或设备的地址)和外部目的地地址(例如,数据中心外部的机器或设备的地址)的报头。
[0005]从有限数量的外部源网络地址池中,该方法为分组流分配外部源网络地址,将第一分组的内部源地址替换为分配的外部源网络地址,并将第一分组转发到其目的地。该方法还(1)为第一流的后续分组、以及(2)为响应于第一分组流而接收的第二数据包流创建连接

跟踪记录。在一些实施例中,这个连接

跟踪记录包括两个子记录:用于前向方向(即,用于第一流的后续分组)的第一子记录和用于反向方向(即,用于响应于第一分组流的第二分组流的分组)的第二子记录。
[0006]第一子记录将内部源网络地址和外部目的地地址的组合映射到所分配的外部源网络地址,以便将第一流中的分组的源网络地址翻译成所分配的外部源网络地址。第二子记录将外部目的地地址和外部源网络地址的组合映射到内部源网络地址,以便将第二流中
的分组的目的地地址翻译成内部源网络地址。代替为前向和反向方向创建两个子记录,一些实施例的方法仅创建一个映射

连接跟踪记录,然后将这个记录的不同部分用于前向和反向方向的匹配和动作属性。
[0007]在一些实施例中,连接

跟踪记录使用外部目的地地址和外部源网络地址这两者来映射到内部网络地址,因为外部源网络地址也被用作到不同目的地地址的不同分组流的外部源网络地址。例如,如上面所提到的,一些实施例的方法对多个不同的目的地IP地址使用相同的外部源IP地址以及相同的64K个源端口范围。一些实施例的方法还通过将这个端口范围不仅用于不同的目的地IP地址而且用于到相同目的地IP地址的不同目的地端口地址来扩展64K个源端口的共享。这允许该方法为每个目的地IP地址支持多达4,294,967,296(64K乘以64K)个连接。
[0008]一些实施例的方法将连接

跟踪记录存储在连接

跟踪存储装置中。该方法通过从分组流的分组报头中的一组报头值生成标识连接

跟踪存储装置中的位置的散列值来创建连接

跟踪记录。然后,该方法将连接

跟踪记录存储在由散列值识别的存储装置中的位置。存储装置中的每个散列可寻址位置可以存储零个或更多个连接

跟踪记录的链表(例如,可以存储指向这种列表的指针或者是这种列表的条目的位置)。每个连接

跟踪记录与到同一目的地IP地址的不同分组流相关联,并且在一些实施例中与到同一目的地端口地址相关联。
[0009]一些实施例的方法为每个不同的目的地IP地址创建不同的连接

跟踪数据存储库,并且在一些实施例中,为目的地IP和端口地址的每个不同组合创建不同的连接

跟踪数据存储库。在此类实施例中,该方法将针对流的连接

跟踪记录存储在为流的目的地IP地址或目的地IP/端口地址对定义的连接

跟踪数据存储库中。对于相同流或反向流中的后续分组,一些实施例中的方法首先必须识别与流相关联的连接

跟踪数据存储库,然后识别针对流的连接

跟踪记录。
[0010]一些实施例提供了一种为多个连接分配外部源端口地址的高效方法,这多个连接针对网络外部的目的地IP地址或目的地IP/端口地址对共享一组有限的外部源IP地址。例如,在一些实施例中,该方法指定多个预分配的端口组,每个端口组具有多个外部端口地址。端口地址是与相同外部源网络IP地址对应的每个端口地址。当外部端口地址在预分配的端口组中可用时,该方法从预分配的端口组中分配外部端口地址以用于到目的地IP地址的新连接。该方法还随着到网络外部的目的地的连接的数量增加或减少而动态修改预分配的端口组的数量。每个预分配的组可以包括几个源端口地址并且这些源端口地址可以在特定组中是连续的。在一些实施例中,该方法执行这些操作以便提供用于(i)跟踪指派给到目的地IP地址的连接的源端口地址,以及(ii)当没有先前预分配的源端口地址可用时分配新的源端口地址的快速且高效的机制。
[0011]随着到特定目的地地址的连接的数量增加,预分配的端口组可以分配它们的所有可用端口。为了指派新端口,该方法通过识别必须为其指派外部源端口的新连接、确定预分配的端口组的现有集合不具有可用于指派给新连接的外部源端口地址以及指定预分配的端口组的新集合来动态地修改预分配的端口组的数量。该方法然后从预分配的端口组的新集合中分配外部端口地址。
[0012]在一些实施例中,动态地修改组的数量可以包括减少组的数量。该方法可以通过
识别(i)先前用于将源端口地址指派给连接并且(ii)在至少某个阈值时段内未指派所有预分配的源端口的预分配的组来减少组的数量。该方法然后从预分配的端口组中移除所识别的预分配的组。移除所识别的预分配的组可以意味着删本文档来自技高网
...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】1.一种执行网络地址翻译以在较大数量的连接之间共享较少数量的外部源网络地址的方法,所述较少数量的外部源网络地址被第一网络用来与一个或多个其它网络通信,所述方法包括:接收包括报头的第一分组流的第一分组,所述报头存储第一网络地址作为内部源地址和第二网络地址作为目的地地址;从可用于所述目的地地址的外部源地址池中,分配第三网络地址作为用于所述第一流的外部源地址,所述外部源地址池包括可用于到其它目的地地址的分组流的外部源地址;在用第三网络地址替换第一网络地址作为存储在分组的报头中的源地址之后,转发所接收的分组;以及对于响应于第一分组流而接收的第二分组流,创建将第二网络地址和第三网络地址映射到第一网络地址的连接

跟踪记录,以便将第二流中的分组的目的地地址翻译成第一网络地址。2.如权利要求1所述的方法,其中,所述连接

跟踪记录使用第二网络地址和第三网络地址这两者来映射到第一网络地址,因为第三网络地址被用作用于到不同目的地地址的不同分组流的外部源地址。3.如权利要求2所述的方法,其中,所述连接

跟踪记录包括匹配属性集合和动作属性集合,匹配属性集合包括第二网络地址和第三网络地址,并且动作属性集合包括第一网络地址。4.如权利要求3所述的方法,其中,所述连接

跟踪记录还包括分组的协议的标识符。5.如权利要求1所述的方法,还包括:接收第二流的第一分组;将第二流的第一分组的目的地网络地址和源网络地址匹配到由所述连接

跟踪记录存储的第三网络地址和第二网络地址;用所述连接

跟踪记录存储的第一网络地址替换第二流的第一分组的目的地网络地址;将第二流的第一分组转发到第一网络地址。6.如权利要求5所述的方法,其中,第一网络地址标识作为第一流的源的源机器。7.如权利要求6所述的方法,其中,第一网络地址、第二网络地址和第三网络地址包括IP地址。8.如权利要求7所述的方法,其中,第一网络地址与第一端口地址相关联,第二网络地址与第二端口地址相关联,并且第三网络地址与第三端口地址相关联。9.如权利要求8所述的方法,其中,第一端口地址是作为第一流的源的源机器的端口,并且将第二流的第一分组转发到第一网络地址包括将第二流的第一分组转发到第一IP地址和第一端口地址。10.如权利要求1所述的方法,还包括针对第三网络地址分配与第二网络地址和第一网络地址相关联的端口。11.如权利要求1所述的方法,其中所述连接

跟踪记录存储在连接

跟踪存储装置中,创建连接

跟踪记录包括:
从分组报头中的一组报头值生成标识所述连接

跟踪存储装置中的位置的散列值;以及将连接

跟踪记录存储在存储装置中由所述散列值标识的位置。12.如权利要求11所述的方法,其中,所述存储装置中的每个散列可寻址位置存储零个或更多个连接

跟踪记录的链表,每个连接

跟踪记录与到目的地第二网络地址的不同分组流相关联。13.如权利要求1所述的方法,其中,所述连接

跟踪记录存储在为作为外部目的地地址的第二网络地址定义的连接

跟踪数据存储库中,所述方法还包括:基于第二网络地址,识别用于第一分组的连接

跟踪数据存储库;以及将创建的连接

跟踪记录存储在所识别的连接

跟踪数据存储库中。14.一种为多个连接分配外部源端口地址的方法,所述多个连接共享一组有限的外部源IP地址以连接到网络外部的目的地IP地址,所述方法包括:指定多个预分配的端口组,每个组包括多个外部源端口地址;当外部源端口地址在预分配的组中可用时,为到所述目...

【专利技术属性】
技术研发人员:M
申请(专利权)人:VM维尔股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1