CN110417924B - 分布式设备中的报文处理方法和分布式设备 - Google Patents
分布式设备中的报文处理方法和分布式设备 Download PDFInfo
- Publication number
- CN110417924B CN110417924B CN201810399892.5A CN201810399892A CN110417924B CN 110417924 B CN110417924 B CN 110417924B CN 201810399892 A CN201810399892 A CN 201810399892A CN 110417924 B CN110417924 B CN 110417924B
- Authority
- CN
- China
- Prior art keywords
- port number
- address
- processing unit
- packet
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
- H04L45/04—Interdomain routing, e.g. hierarchical routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
-
- 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/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/50—Address allocation
- H04L61/5007—Internet protocol [IP] addresses
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/50—Routing or path finding of packets in data switching networks using label swapping, e.g. multi-protocol label switch [MPLS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1023—Server selection for load balancing based on a hash applied to IP addresses or costs
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请公开了分布式设备中的报文处理方法,用以解决报文处理失败问题。分布式设备包括第一分流单元、第二分流单元、至少两个处理单元。第一分流单元从第一网络接收第一报文,将第一报文发送给第一处理单元;第一处理单元为第一报文分配一个IP地址、以及一个端口号,分配的端口号满足条件:根据地址转换后的第一报文的反向报文的数据流标识和第二分流算法,从至少两个处理单元中选择出的第二处理单元与第一处理单元为同一处理单元,地址转换后的第一报文的源端口号为所述分配的端口号,第二分流算法是第二分流单元对所述反向报文进行分流时使用的算法;第一处理单元对第一报文进行地址转换后,第二分流单元向第二网络发送地址转换后的第一报文。
Description
技术领域
本申请涉及计算机及通信技术领域,尤其涉及一种分布式设备中的报文处理方法及一 种分布式设备。
背景技术
为了提高报文转发设备的处理能力,越来越多的作为报文转发节点的网络设备采用分 布式处理构架。分布式处理构架通过横向扩展的方式扩展性能,即通过增加设备中具有类 似功能的并行处理单元的数量来提升性能。采用分布式处理构架的网络设备包括但不限于 路由器、交换机、防火墙、和服务器负载均衡器等。
然而,分布式处理构架的应用场景存在一定局限。这种局限体现在设备性能提升的效 果与网络设备工作所依赖的数据的性质具有很强的相关性。对于路由器或交换机来说,其 工作所依赖的数据主要是路由表(英文:Routing Info Base,RIB)和转发表(英文:Forward Information Base,FIB)。路由表和转发表中保存的主要是网络拓扑信息。路由表和转发 表中保存的数据的特点是变化速度不快(一般变化以秒计),数据量不大(路由表中表项的 数量范围是几万条到几十万条,转发表中表项数量更少)。路由器或交换机在其中包含的每 个处理单元上同步地复制一份路由表、转发表或者MAC转发表就可以保证设备正常工作。
然而,对于另外一些工作依赖的数据变化非常快、或者数据量非常大的网络设备而言, 横向扩展的效果非常有限。这是因为网络设备如果采用分布式处理架构,需要在其所包含 的每个处理单元上同步地复制一份数据,这一过程将导致网络设备耗费大量处理资源和存 储资源用于同步和维护多个处理单元分别保存的数据。例如,对于防火墙设备或服务器负 载均衡器(英文:Server Load Balancer,SLB)而言,工作依赖的数据主要是会话表。可 以理解,在网络拓扑不变的情况下,设备之间在一段时间内可以反复或同时建立大量不同 会话,其中涉及会话表项的建立、刷新和删除操作。因而从所包含的数据的变化速度和数 据量来看,会话表都远远超过上述路由表和转发表。由于会话表数据量大、数据变化速度 很快的特点,网络设备无法在包含的每个处理单元上都同步复制一份完整数据,只能将会 话表分布地保存在不同的处理单元上。在这种情况下,如果上行数据流和对应的下行数据 流被设备中的网络设备中的分流单元分流到不同的处理单元上,用于处理下行数据流的处 理单元会因为未保存会话表项而无法对下行数据流进行处理。
如何为工作依赖的数据变化非常快、或者数据量非常大的分布式网络设备设计一种普 遍适用的报文处理方案,从而能够将一个数据流以及对应的反向数据流分流到网络设备的 同一处理单元上,成为一个影响分布式设备处理性能的一个关键问题。
发明内容
本申请提供一种分布式设备中的报文处理方法,用以解决现有技术中因难以保证将一 个数据流以及对应的反向数据流分流到分布式设备的同一处理单元而造成的报文处理失败 问题。
第一方面,提供了一种分布式设备中的报文处理方法,所述分布式设备部署于第一网 络和第二网络之间,所述分布式设备包括第一分流单元、第二分流单元、以及至少两个处 理单元,所述至少两个处理单元中的每个处理单元与所述第一分流单元和所述第二分流单 元连接,所述方法包括:
所述第一分流单元从所述第一网络接收第一报文,根据所述第一报文的数据流标识和 第一分流算法,从所述至少两个处理单元中选择第一处理单元,所述第一报文的数据流标 识至少包括所述第一报文的源互联网协议IP地址、目的IP地址、源端口号和目的端口号;
所述第一分流单元将所述第一报文发送给所述第一处理单元;
所述第一处理单元为所述第一报文分配一个IP地址、以及一个端口号,分配的所述端 口号满足条件:根据地址转换后的所述第一报文的反向报文的数据流标识和第二分流算法, 从所述至少两个处理单元中选择出的第二处理单元与所述第一处理单元为同一处理单元, 所述地址转换后的所述第一报文的源端口号为所述分配的端口号,所述地址转换后的所述 第一报文的源IP地址和目的IP地址中的一个为所述分配的IP地址,所述第二分流算法是 所述第二分流单元对所述地址转换后的所述第一报文的反向报文进行分流时使用的算法;
所述第一处理单元对所述第一报文进行地址转换,从而得到所述地址转换后的第一报 文,所述地址转换包括将所述第一报文的源端口号替换为所述分配的所述端口号;
所述第一处理单元向所述第二分流单元发送所述地址转换后的第一报文;
所述第二分流单元向所述第二网络发送所述地址转换后的第一报文。
本申请实施例提供的分布式设备中的处理单元在为一个报文分配源地址时,通过分配 的源端口号使得地址转换后的该报文的反向报文也将被分流单元分流到本处理单元中,从 而保证由分布式设备中的同一处理单元处理属于同一会话的双向报文。避免了由分布式设 备中的不同处理单元处理属于同一会话的双向报文而引发的报文处理失败问题。
在一种可能的实现方式中,所述第一网络是私网,所述第二网络是公网,所述第二分 流算法是指将输入报文的源IP地址、目的IP地址、源端口号、协议号,以及第一端口号按照第一方式指示的顺序输入预定哈希算法后,将所述哈希算法的结果与调整值求和后,对求和结果执行对N取余运算,将取余运算结果对应的处理单元作为选择出的处理单元,所述调整值为所述输入报文的目的端口号减去第一端口号得到的差值,N为所述分布式设备 包含的处理单元的数目,所述至少两个处理单元中的每个处理单元分别对应0至N-1中的 一个值;
所述第一处理单元为所述第一报文分配一个IP地址、以及一个端口号,包括:
所述第一处理单元为所述第一报文分配预先配置的公网IP地址作为分配的IP地址;
所述第一处理单元从所述第一处理单元对应的端口段中选择一个端口号作为第二端口 号,所述第一处理单元与所述至少两个处理单元中的其他处理单元分配的IP地址相同、且 第一处理单元与所述至少两个处理单元中的其他处理单元对应的端口段互不重叠;
所述第一处理单元按照第二方式指示的顺序,将所述地址转换后的所述第一报文的源 IP地址、目的IP地址、目的端口号,以及所述第二端口号输入所述预定哈希算法,得到哈 希运算结果,所述地址转换后的所述第一报文的源IP地址为所述分配的IP地址,所述第二方式指示的顺序中源IP地址与所述第一方式指示的顺序中目的IP地址的位置相同、目的IP地址与所述第一方式指示的顺序中源IP地址的位置相同、目的端口号与所述第一方式指示的顺序中源端口号的位置相同;
所述第一处理单元求取所述哈希运算结果对N的取余运算结果;
所述第一处理单元求取所述第一处理单元对应的0至N-1中的值与取余运算结果之间 的差值;
所述第一处理单元为所述第一报文分配所述第二端口号和所述差值之和作为所述分配 的端口号。
本申请实施例在设计第二分流算法时,引入调整值的概念。该调整值的作用是在第一 处理单元在分配端口号时,采用与分流算法相对应的方法根据已知分流结果反推符合条件 的调整值,从而根据调整值最终确定满足条件的端口号。通过在分流算法中引入调整值是 一种技术实现层次的创新,提升了计算满足条件的端口号时的效率。进一步地,该分布式 设备中的各处理单元可以共享同一公网IP地址,从而可以节省地址资源。
在一种可能的实现方式中,所述从对应的端口段中选择一个端口号作为第二端口号, 包括:
所述第一处理单元按照预定数量的端口号划分为一组的方式,将所述端口号段划分为 至少一个端口号组;
随机从所述至少一个端口号组中选取一个端口号组,确定选取的端口号组中预定位置 的端口号为所述第二端口号。
在一种可能的实现方式中,所述从对应的端口段中选择一个端口号作为第二端口号, 包括:
将从预留端口号开始的连续端口号划分为至少一个端口号组,所述至少一个端口号组 中的第一个端口号用十六进制表示时后三位为0;
随机从所述至少一个端口号组中选取一个端口号组,确定选取的端口号组中预定位置 的端口号为所述第二端口号。
在一种可能的实现方式中,在上述第一网络是私网,第二网络是公网的场景中,地址 转换还包括将所述第一报文的源IP地址替换为分配的IP地址。
在一种可能的实现方式中,所述第一分流算法与所述第二分流算法相同。这样分布式 设备中的两个分流单元采用相同的算法,从而使得对第一报文和地址转换后的第一报文的 反向报文进行分流时采用相同的算法。避免不同分流单元保存多个分流算法时占用的存储 资源,简化了分流过程。
在一种可能的实现方式中,所述第一分流算法的输入报文是所述第一报文,所述根据 所述第一报文的数据流标识和第一分流算法,从所述至少两个处理单元中选择第一处理单 元,包括:
所述第一分流单元确定所述第一端口号和所述调整值;
按照第一方式指示的顺序,将所述第一报文的源IP地址、目的IP地址、源端口号、以及所述第一端口号输入所述预定哈希算法;
将所述哈希算法的结果与所述调整值求和后,对求和结果执行对N取余运算,将取余 运算结果对应的处理单元作为所述第一处理单元。
在一种可能的实现方式中,所述确定所述第一端口号和所述调整值,包括:
将从预留端口号开始至所述第一报文的目的端口号为止的连续端口号,按照预定数量 的端口号划分为一组的方式,划分为至少一个端口号组;
确定所述第一报文的目的端口号所在的端口号组中所述目的端口号之前预定位置的端 口号为所述第一端口号;
确定所述调整值为所述第一报文的目的端口号减去所述第一端口号得到的差值。
在一种可能的实现方式中,所述确定所述第一端口号和所述调整值,包括:
将从预留端口号开始的连续端口号划分为至少一个端口号组,所述至少一个端口号组 中的第一个端口号用十六进制表示时后三位为0;
确定所述第一报文的目的端口号所在的端口号组中所述目的端口号之前预定位置的端 口号为所述第一端口号;
确定所述调整值为所述第一报文的目的端口号减去所述第一端口号得到的差值。
在一种可能的实现方式中,在上述第一网络是公网,第二网络是私网的场景中,所述 第一报文为来自所述公网的报文,
所述第二分流算法是指将输入报文的源IP地址、目的IP地址、源端口号、协议号,以及第一端口号按照第一方式指示的顺序输入预定哈希算法后,将所述哈希算法的结果与调整值求和后,对求和结果执行对N取余运算,将取余运算结果对应的处理单元作为选择出的处理单元,所述调整值为所述输入报文的目的端口号减去第一端口号得到的差值,N为所述分布式设备包含的处理单元的数目,所述至少两个处理单元中的每个处理单元分别对应0至N-1中的一个值;
所述第一处理单元为所述第一报文分配一个IP地址、以及一个端口号,包括:
所述第一处理单元按照负载均衡策略,从保存的至少一个地址端口对中选择出第一地 址端口对,所述第一地址端口对包括一个私网IP地址和一个端口号;
所述第一处理单元为所述第一报文分配所述第一地址端口对中的私网IP地址作为分配 的IP地址;
所述第一处理单元根据所述第一报文的源端口号确定所述第二端口号;
所述第一处理单元按照第二方式指示的顺序,将所述地址转换后的所述第一报文的源 IP地址、目的IP地址、目的端口号、以及所述第二端口号输入所述预定哈希算法,得到哈 希运算结果,所述地址转换后的所述第一报文的目的IP地址中的一个为所述分配的IP地 址,所述地址转换后的所述第一报文的目的端口号是所述第一地址端口对中的端口号,所 述第二方式指示的顺序中源IP地址与所述第一方式指示的顺序中目的IP地址的位置相同、 目的IP地址与所述第一方式指示的顺序中源IP地址的位置相同、目的端口号与所述第一 方式指示的顺序中源端口号的位置相同;
所述第一处理单元求取所述哈希运算结果对N的取余运算结果;
所述第一处理单元计算所述第一处理单元对应的0至N-1中的值与所述取余运算结果 之间的差值;
所述第一处理单元为所述第一报文分配所述第二端口号和所述差值之和作为所述分配 的端口号。
在一种可能的实现方式中,所述第一分流算法的输入报文是所述第一报文,所述根据 所述第一报文的数据流标识和第一分流算法,从所述至少两个处理单元中选择第一处理单 元,包括:
所述第一分流单元确定所述第一端口号和所述调整值;
按照所述第一方式指示的顺序,将所述第一报文的源IP地址、目的IP地址、源端口号、以及所述第一端口号输入所述预定哈希算法;
将所述哈希算法的结果与所述调整值求和后,对求和结果执行对N取余运算,将取余 运算结果对应的处理单元作为所述第一处理单元。
在一种可能的实现方式中,在上述第一网络是公网,所述第二网络是私网的场景中, 所述地址转换还包括:将所述第一报文的目的IP地址替换为所述第一地址端口对中的私网 IP地址,将所述第一报文的目的端口号替换为所述第一地址端口对中的端口号。
在一种可能的实现方式中,第三处理单元与所述第一处理单元为同一处理单元,所述 第三处理单元是根据所述第一报文的反向报文的数据流标识和所述第二分流算法从所述两 个处理单元中选择出的处理单元。换句话说,第二分流算法是对称算法,这样第一处理单 元在为第一报文分配端口号时,无需判断是在何种场景下,即无需判断第一报文是私网向 公网发送的报文,还是公网向私网发送的报文。从而进一步简化了分流过程,提高了分流 效率。
在一种可能的实现方式中,所述第二分流算法是指将输入报文的源IP地址、目的IP 地址、源端口号、协议号,以及第一端口号按照第一方式指示的顺序输入预定哈希算法后, 将所述哈希算法的结果与调整值求和后,对求和结果执行对N取余运算,将取余运算结果 对应的处理单元作为选择出的处理单元,所述第一端口号和所述调整值之和为所述输入报 文的目的端口号,N为所述分布式设备包含的处理单元的数目,所述至少两个处理单元中的 每个处理单元分别对应0至N-1中的一个值,
所述哈希算法对输入的源IP地址、目的IP地址、源端口号、协议号,以及第一端口号进行逻辑异或,输出逻辑异或的结果,或者所述哈希算法对输入的源IP地址、目的IP 地址、源端口号、协议号,以及第一端口号进行按字节求和,输出按字节求和的结果。
在一种可能的实现方式中,所述第一处理单元为所述第一报文分配一个IP地址、以及 一个端口号之后,所述方法还包括:所述第一处理单元建立映射表项,所述映射表项中包 括地址转换之前所述第一报文的数据流标识以及地址转换之后所述第一报文的数据流标 识,所述映射表项用于对所述第一处理单元后续接收到的第二报文进行地址转换。第一处 理单元基于建立的映射表项对第一报文所属数据流的后续报文进行地址转换,无需对每个 报文都执行分配端口号的过程,提升了处理效率。
第二方面,提供了一种分布式设备,执行第一方面或第一方面的任意一种可能的实现 方式中的方法。具体地,该分布式设备包括用于执行第一方面或第一方面的任意一种可能 的实现方式中的方法的单元。这些单元可以由程序模块实现,也可以由硬件或固件实现, 具体参见实施例中的详细描述,此处不再赘述。
第三方面,还提供了一种分布式设备,所述分布式设备部署于第一网络和第二网络之间, 所述分布式设备包括,第一分流单元、第二分流单元、以及至少两个处理单元;
第一分流单元包括网络接口和处理器,网络接口和处理器用于相互配合,实现上述第 一方面或第一方面的任意一种可能的实现方式中第一分流单元执行的步骤,具体参见方法 示例中的详细描述,此处不再赘述;
所述至少两个处理单元中的第一处理单元包括网络接口和处理器,网络接口和处理器 用于相互配合,实现上述第一方面或第一方面的任意一种可能的实现方式中第一处理单元 执行的步骤,具体参见方法示例中的详细描述,此处不再赘述;
第二分流单元包括网络接口和处理器,网络接口和处理器用于相互配合,实现上述第 一方面或第一方面的任意一种可能的实现方式中第二分流单元执行的步骤,具体参见方法 示例中的详细描述,此处不再赘述。
第四方面,提供了一种计算机存储介质,用于储存为上述分布式设备所用的计算机软 件指令,其包括用于执行上述第一方面、或第一方面的任意一种可能的实现方式所设计的 程序。
第五方面,提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计 算机执行上述第一方面或第一方面的任意一种可能的实现方式所述的方法。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的 附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领 域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附 图。
图1为本申请实施例中一个典型的NAT设备的部署及结构示意图;
图2为本申请实施例提供的分布式设备中的报文处理方法的应用场景示意图;
图3为本申请实施例提供的分布式设备中的分流单元的结构示意图;
图4为本申请实施例提供的分布式设备中的处理单元的结构示意图;
图5为本申请实施例提供的报文处理方法的流程图;
图6为本申请实施例提供的在局域网用户发起对互联网提供的服务的访问过程中,NAT 设备应用本申请实施例提供的报文处理方法,对上行报文和对应的下行报文进行处理的场 景示意图;
图7为在本申请实施例图6所示的场景中,NAT设备执行报文处理方法的示意图;
图8为本申请实施例提供的在互联网中的用户访问局域网中的服务器提供的服务的过 程中,SLB设备应用本申请实施例提供的报文处理方法,对上行报文和对应的下行报文进行 处理的场景示意图;
图9为在本申请实施例图8所示的场景中,SLB设备执行报文处理方法的示意图;
图10为本申请实施例提供的一种分布式设备的结构示意图。
具体实施方式
分布式处理构架不适合防火墙设备、SLB等网络设备的原因是这类设备工作依赖的数据 变化非常快、或者数据量非常大,网络设备难以在其所包含的每个处理单元上都同步复制 一份完整数据。并且,上述网络设备中应用的传统的分流算法难以保证不同的分流单元将 上行数据流、以及对应的下行数据流分配给同一个处理单元处理,造成处理单元可能因为 未存储对应的会话表项而处理失败。
传统的分流算法比较简单,例如对待分流报文的数据流标识(例如五元组)中的各元 素进行哈希运算,对运算结果取余。传统分流算法难以保证不同的分流单元将上行数据流、 以及对应的下行数据流分配给同一个处理单元处理的原因在于,在上述场景中,处理单元 对数据流执行了地址转换处理,地址转换前后数据流的五元组将会发生变化。因此一个分 流单元对地址转换前的数据流进行分流的结果与另一个分流单元对地址转换后的数据流进 行分流的结果很可能不同。图1是一个典型的网络地址转换(英文:networkaddress translation,NAT)NAT设备的部署及结构示意图。该NAT设备中包括两个分流单元,分 别为LB 1和LB 2,以及若干个处理单元,分别为SPU 1、SPU 2……SPU n。其中LB 1与私网相连。私网可以是局域网(英文:local area network,LAN)。LB 2与公网相连。公 网可以是互联网。当私网中的一个主机想要访问公网中的一个服务器时,向公网发送访问 请求报文。LB 1根据分流算法,将该访问请求报文分流到SPU 1中进行处理。SPU 1对访 问请求报文进行地址转换,并且建立地址映射表和会话表项后,向过LB 2向公网发送地址 转换后的请求报文,LB 2再向公网发送地址转换后的请求报文。上述地址映射表保存有地 址转换前后访问请求报文的数据流标识之间的对应关系。
当LB 2接收到上述访问请求报文对应的下行报文时,根据分流算法,将该下行报文分 流到SPU 2中进行处理。其中,在本申请实施例中为了将不同方向的数据流进行简单区分, 将私网向公网发送的报文简称为上行报文,将公网向私网发送的报文简称为下行报文。然 而由于SPU 2中未保存上述地址映射关系,SPU 2无法对下行报文进行地址转换,也就无法 把地址转换后的下行报文通过LB 1发送给私网中上述发起网络访问的主机。
本申请实施例提供了一种分布式设备中的报文处理方法。该报文处理方法对报文处理 流程、以及报文处理流程中应用的分流算法进行改进,使得上行报文和对应的下行报文被 分流到同一个处理单元中进行处理,从而避免出现因处理单元未保存地址映射表项或会话 表项导致的报文处理失败的问题。具体来说,一个分流单元将接收到的会话报文分流到一 个处理单元后,接收到会话报文的处理单元在进行地址转换过程中,在分配一个端口号作 为地址转换后的源端口号时,分配的端口号要满足:另一个分流单元采用相同的分流方案 对反向报文进行分流,分流的结果仍然是本处理单元。
下面结合各个附图对本发明实施例技术方案的主要实现原理、具体实施方式及其对应 能够达到的有益效果进行详细的阐述。
本申请实施例应用的网络场景如图2所示。图2中的分布式设备可以是采用分布式处 理架构的各种设备,包括但不限于NAT设备、防火墙设备、SLB、运营商级NAT(英文:carrier-grade NAT,CGN)设备或IPv6过渡地址转换设备等。分布式设备包括两个分流单元,分别为LB 1和LB 2,以及若干个处理单元,分别为SPU 1、SPU 2……SPU n。其中LB 1与私网相连,私网可以是局域网(英文:Local Area Network,LAN)。LB 2与公网相连, 公网可以是互联网。如图3或图4所示,分布式设备中的分流单元和处理单元可以是插入 到同一机框内的不同板卡,相互之间通过机框的交换板,例如背板交换网(crossbar switch) 连接,其中交换板起交换机的作用,用以实现同一机框中的多个板卡之间的报文交换。此 外当分流单元和处理单元是不同板卡时,也可以通过标准的以太网连接,标准的以太网是 指物理层和数据链路层的实现方式遵从电气和电子工程师协会(Institute of Electrical andElectronics Engineers,IEEE)802.3系列标准规定的以太网。
传统方案中应用于分流单元(如图1或图2中的LB 1或LB 2)的分流算法可以是一个 哈希算法,该哈希算法记为HASH1,具体地:
目标处理单元标识=HASH1(X1,X2,X3,X4,X5)MOD(N)。其中,X1,X2,X3,X4, X5为数据流的标识中的各个元素。例如,假设数据流的标识为五元组<源IP地址,目的IP 地址,源端口,目的端口,协议类型>,其中X1为五元组中的源IP地址,X2为五元组中的 目的IP地址,X3为五元组中的源端口,X4为五元组中的目的端口,X5为五元组中的传输 层协议类型,N为分布式设备中处理单元的数目。上述HASH1指示的算法可以是通常的散列 算法,只要满足基本的离散性要求,能够将不同输入映射到有限取值空间中的一个散列值。 由于不同的输入可能会映射为同一个散列值,所以不可能从散列值来确定唯一的输入值。 例如散列算法可以是对X1~X5中的各个元素做异或运算,然后对异或运算结果求余。
本申请实施例提供的报文处理方法至少包含两方面的改进:首先,分流算法同时应用 于分流单元和处理单元,而不是像传统方案一样分流算法只应用于分流单元上,并不应用 于处理单元上。进一步地,对分流算法进行改进,改进的分流算法记为HASH2,处理单元在 为一个报文分配源端口号时,模拟分流单元对地址转换后的该报文的反向报文也进行类似 的分流处理,以确保分配的源端口号能使得上述反向报文也被分流到本处理单元上,从而 计算出符合该条件的源端口号。
改进的分流算法将输入报文的源IP地址、目的IP地址、源端口号、协议号,以及第一端口号按照第一方式指示的顺序输入预定哈希算法后,将所述哈希算法的结果与调整值求和后,对求和结果执行对N取余运算。将取余运算结果对应的处理单元作为选择出的处理单元。其中,所述调整值为所述输入报文的目的端口号减去第一端口号得到的差值,N为所述分布式设备包含的处理单元的数目。由于改进的分流算法最终的输出是对N取余运算的结果,因此改进的分流算法的输出是0至N-1中的一个值,即改进的分流算法的输出结 果的取值空间是0至N-1。分布式网络设备中的每个处理单元分别对应0至N-1中的一个值。
上述改进的分流算法设计的初衷是为了求取满足条件的端口号时计算层面的便捷:
改进的分流算法将目的端口号拆分为第一端口号和调整值,等同于采用相同的分流算 法对输入报文的反向报文进行分流时,将反向报文的目的端口号(转换后的输入报文的源 端口号)拆分为第二端口号和调整值。这样分配端口号的过程实际上就转化为在已知分流 结果的前提下,根据输入报文的反向报文反推满足条件的调整值。计算调整值后基于计算 出的调整值计算待分配端口号,这样可以依据计算公式快速计算出待分别的端口号。相比 较依次将所有可能的端口号代入分流算法,判断端口号是否符合条件这种穷举测试方式, 本申请实施例提供的上述方案效率明显较高。
假设用HASH2表示上述改进的分流算法,用HASH1表示现有的一个哈希算法,那么上 述分流算法的工作原理可以被描述为:
针对输入分流算法的一个报文,假设从报文头中提取的以五元组表示的数据流的标识 为<源IP地址,目的IP地址,源端口,目的端口,协议类型>,则
目标处理单元对应的取值=HASH2(X1,X2,X3,X4,X5)MOD(N)=(HASH1(X1,X2,X3,NewPort1,X5)+NewPort2)MOD(N)),其中X1~X5依然分别代表作为数据流的标识 的五元组中的各个元素,其中X1为五元组中的源IP地址,X2为五元组中的目的IP地址, X3为五元组中的源端口号,X4为五元组中的目的端口号,X5为五元组中的协议类型,N为 分布式设备中处理单元的数目。
NewPort1为第一端口号,NewPort2为调整值,X4=NewPort1+NewPort2。
可选地,如果NewPort1是根据X4计算出的,记为NewPort1(X4)。
可选地,如果数据流的标识中还包含更多可选元素,则上述分流算法也可以做适应性 的扩展。例如数据流的标识为六元组<源IP地址,目的IP地址,源端口,目的端口,协议类型,扩展元素>,其中扩展元素可以是局域网的标识或者虚拟专用网(英文:virtualprivate network,VPN)的标识,局域网的标识可以表示为VLAN-ID,虚拟专用网的标识记为VPN-ID。
相应地,目标处理单元标识=HASH2(X1,X2,X3,X4,X5,X6)MOD(N)=(HASH1(X1,X2,X3,NewPort1,X5,X6)+NewPort2)MOD(N)),其中X1~X5的含义同上,X6为VLAN-ID 或VPN-ID。
类似地,如果数据流的标识中还包含更多数目的可选元素,分流算法也可以进行类似 的扩展。
附图2中的分流单元LB 1或LB 2的结构如附图3所示。分流单元包括处理器31、存储器32和网络接口33,存储器32和网络接口33通过数据总线34相互连接。
可选地,处理器31是一个或多个处理器,还可以是网络处理器(NP,NetworkProcessor)。
存储器32包括但不限于是随机存取存储器(random access memory,RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或者快闪存储器)、或便携式只读存储器 (CD-ROM)。存储器32用于保存分流表,分流表中记录了数据流标识与处理单元标识之间的 对应关系。分流单元接收到一个来自于其他网络设备的报文之后,先从报文头中提取该报 文的数据流标识,在分流表中查询是否已存在该数据流标识。如果分流表中存在该数据流 标识,则从分流表中获得该数据流标识对应的处理单元标识,将该报文发送给处理单元标 识所指示的处理单元。如果分流表中不存在该数据流标识,则根据该数据流标识和分流算法,获得分流算法的输出结果。输出结果指示了分布式设备中的一个处理单元。将该报文发送给输出结果指示的处理单元,并在分流表中保存该报文的数据流标识与输出结果的对应关系,以便于网络设备从其他网络设备中接收到同一数据流的后续报文后,根据分流表进行分流。
处理器31用于在分流表中未保存报文的数据流标识时,执行分流过程,以及控制向处 理单元发送报文。处理器31基于分流算法执行分流的详细过程请参考后面实施例中的描述。
附图3中的网络接口33可以是例如标准的以太网接口,也可以是框式设备中的板间信 元交换接口,例如HiGig。
附图2中处理单元SPU 1~SPU n中一个处理单元的结构如附图4所示。处理单元包括 处理器41、存储器42和网络接口43,处理器41、存储器42和网络接口43通过数据总线 44相互连接。可选地,处理器41可以为一个或多个处理器,处理器可以是单核处理器,也 可以是多核处理器,例如Intel公司的X86处理器。
存储器42包括随机存取存储器、快闪存储器、内容可寻址存储器(contentaddressable memory,CAM)或其任意组合。存储器42用于保存公网地址池(或负载均衡表)和地址映 射表。公网地址池用于保存预先配置给本处理单元使用的公网IP地址、以及该公网地址上 配置的端口号。负载均衡表用于在SLB场景下保存私网中用于提供指定服务的服务器的私 网IP地址和端口号。
地址映射表用于保存一个报文在地址转换之前的数据流标识与地址转换之后的数据流 标识之间的对应关系。可选地,存储器42中还保存会话表,所述会话表用于保存数据流标 识与数据流状态的对应关系。
处理器41用于在接收到分流单元发送的报文时,根据该报文的数据流标识在地址映射 表中查询对应的数据流标识。如果查询到对应的数据流标识,则用查找到的数据流标识对 报文进行地址转换,向另一分流单元发送地址转换后的报文。还用于在地址映射表中未查 询到对应的数据流标识时,根据公网地址池、或者负载均衡表为所述报文分配一个数据流 标识,根据分配的数据流标识对报文进行地址转换,向另一分流单元发送地址转换后的报 文。并且在地址映射表中创建一个表项,该表项用于记录地址转换之前的数据流标识与地 址转换之后的数据流标识之间的对应关系。可选地,处理器41还用于根据更新会话表,例 如创建会话表项或者更新已保存的会话表项中的会话状态、命中时间等等。
其中,处理器41在地址映射表中未查询到对应的数据流标识时,基于分流算法为报文 分配数据流标识的详细过程请参考后面实施例中的描述。
下面通过结合附图2、附图3和附图4对本申请实施例提供的报文处理方法进行简单说 明。附图5是本申请实施例提供的报文处理方法的流程图。
步骤51,分布式设备的第一分流单元从第一网络接收第一报文,根据所述第一报文的 数据流标识和第一分流算法,从该分布式设备的至少两个处理单元中选择第一处理单元。 第一分流算法的输出结果用于指示至少两个处理单元中的一个处理单元。在本申请实施例 中将第一分流算法的输出结果指示的处理单元称为目标处理单元。在本实施例中假定第一 分流算法的输出结果指示的目标处理单元是第一处理单元。其中第一网络可以是私网或公 网。如果第一网络是以局域网为例的私网,则后面出现的第二网络为以互联网为例的公网。 如果第一网络是以互联网为例的公网,则后面出现的第二网络为以局域网为例的私网。
本实施例中分布式设备的结构如附图2所示,第一分流单元可以为附图2中的LB 1或 LB 2。如果第一分流单元是附图2中的LB 1,则后面出现的第二分流单元为附图2中的LB2。如果第一分流单元是附图2中的LB 2,则第二分流单元为附图2中的LB 1。
可选地,第一分流算法可以是上述举例现有分流算法,也可以是上述描述的改进的分 流算法。
在本申请实施例中,“第一报文”这种命名方式是为了与后面出现的其他报文相区分。
步骤52,第一分流单元将第一报文发送给第一处理单元。
步骤53,第一处理单元为第一报文分配一个IP地址、以及一个端口号,分配的所述端 口号满足条件:根据地址转换后的所述第一报文的反向报文的数据流标识和第二分流算法, 从所述至少两个处理单元中选择出的第二处理单元与所述第一处理单元为同一处理单元。 所述第二分流算法是所述第二分流单元对地址转换后的所述第一报文的反向报文进行分流 时使用的算法。其中所述地址转换后的所述第一报文的源端口号为所述分配的端口号,所 述地址转换后的所述第一报文的源IP地址和目的IP地址中的一个为所述分配的IP地址。
在不同场景中,地址转换后的所述第一报文的源IP地址和目的IP地址中的一个为所 述分配的IP地址。例如,在NAT场景中,地址转换后的所述第一报文的源IP地址为所述分配的IP地址;在SLB场景中,地址转换后的所述第一报文的目的IP地址为所述分配的 IP地址。后面将结合不同实例进行详细说明。
在本实施例中第一分流单元对第一报文分流使用的第一分流算法和第二分流单元对第 一报文的反向报文分流使用的第二分流算法可以是不同的分流算法。在实际应用场景中, 为了部署成本的考虑,同一个网络设备可能需要适用于多种不同场景,因此出于配置简便 的考虑,第一分流算法可以与第二分流算法相同。下面假定第一分流单元和第二分流单元 均使用上面提及的改进的分流算法,这里对第一分流单元和第二分流单元的分流过程进行 简单描述。
为了描述方便,本实施例中用五元组<源IP地址,目的IP地址,源端口,目的端口,协议类型>表示数据流标识。
在步骤51中,第一分流单元的分流过程包括:
第一分流单元按照第一方式将第一报文的五元组中的各个元素输入预定的分流算法。 第一方式指示了各元素输入分流算法时的先后顺序。
可选地,第一方式包括但不限于按照“源IP地址、目的IP地址、源端口号、目的端口号、协议类型”的顺序输入HASH2。换句话说,第一方式等同于按照“源IP地址、目的 IP地址、源端口号、第一端口号、协议类型、调整值”的顺序输入HASH1,其中X1为五元 组中的源IP地址,X2为五元组中的目的IP地址,X3为五元组中的源端口,X4为五元组中 的目的端口,X5为五元组中的协议类型,NewPort1为第一端口号,NewPort2为调整值,则 第一方式表示为“X1,X2,X3,NewPort1,X5,NewPort2”,其中X4=NewPort1+NewPort2。
目标处理单元的计算过程可以用以下公式表示:
目标处理单元标识=HASH2(第一报文的源IP地址,第一报文的目的IP地址,第一报 文的源端口号,第一报文的目的端口号,第一报文的协议类型)MOD(N)=(HASH1(第一报文的源IP地址,第一报文的目的IP地址,第一报文的源端口号,第一端口号,第一报文 的协议类型)+调整值)MOD(N))公式(1)
对于第一分流单元而言,在计算分流算法的输出结果时,首先确定满足条件“X4=NewPort1+NewPort2”的第一端口号和调整值,然后再将第一报文的源IP地址、第一报文 的目的IP地址、第一报文的源端口号、第一端口号、第一报文的协议类型和调整值依次输 入分流算法,得到输出结果。
第一分流单元确定第一端口号和调整值的方法有多种,只要满足条件“X4=NewPort1+ NewPort2”即可。后面将结合附图6和附图8中的具体场景对计算第一端口号和调整值的 方法进行详细说明。
与步骤51类似的,步骤53中第一处理单元分配端口号的过程如下:
设计目标是:第一处理单元假设按照第一方式将地址转换后的第一报文的反向报文的 数据流标识中的各个元素输入第二分流算法,得到的分流结果应该是第一分流单元对应的 取值。或者,也等价于:假设第一处理单元按照第二方式将地址转换后的第一报文的数据 流标识中的各个元素输入预定的分流算法,得到的分流结果应该是第一分流单元对应的取 值。这里第二方式是与第一方式对应的方式。
反向报文的数据流标识与地址转换后的第一报文的数据流标识具有对应性:反向报文 的源IP地址为地址转换后的第一报文的目的IP地址,反向报文的源端口号为地址转换后 的第一报文的目的端口号,反向报文的目的IP地址为地址转换后的第一报文的源地址,反 向报文的目的端口为地址转换后的第一报文的源端口。
正是由于上述对应性,在实际处理过程中,第一处理单元可以将地址转换后的第一报 文对应的数据流标识按照第二方式指示的顺序输入第二分流算法。在第二方式指示的顺序 中,源IP地址所处的位置与第一方式指示的顺序中目的IP地址所处的位置相同。在第二 方式指示的顺序中,目的IP地址所处的位置与第一方式指示的顺序中源IP地址所处的位 置相同。在第二方式指示的顺序中,源端口号所处的位置与第一方式指示的顺序中目的端 口号所处的位置相同。在第二方式指示的顺序中,目的端口号所处的位置与第一方式指示 的顺序中源端口号所处的位置相同。
例如,第一方式指示的顺序是“源IP地址、目的IP地址、源端口号、目的端口号、 协议类型”,那么第二方式指示的顺序是“目的IP地址、源IP地址、目的端口号、源端口 号,协议类型”。其中地址转换并不改变第一报文的协议类型,因此地址转换后的第一报文 的协议类型与第一报文的协议类型相同。地址转换后的第一报文的源端口号即为分配的端 口号,因此第二方式指示的顺序也可以表示为“地址转换后的第一报文的目的IP地址、地 址转换后的第一报文的源IP地址、地址转换后的第一报文的目的端口号、第二端口号、所 述第一报文的协议类型、调整值”,其中第二端口号和所述调整值之和为分配的所述端口号。即第一处理单元在计算第一报文的反向报文分流结果也可以被表示为:
目标处理单元标识=HASH2(地址转换后的第一报文的目的IP地址,地址转换后的第 一报文的源IP地址,地址转换后的第一报文的目的端口号,地址转换后的第一报文的源端 口号,第一报文的协议类型)MOD(N)=(HASH1(地址转换后的第一报文的目的IP地址,地址转换后的第一报文的源IP地址,地址转换后的第一报文的目的端口号,第二端口号,第一报文的协议类型)+调整值)MOD(N)公式(2)
对于第一处理单元而言,本步骤相当于分流结果是已知的,即分流结果为第一处理单 元,求取分配的端口号。对上述公式(2)进行变形,得到公式(3)
调整值=目标处理单元标识-HASH1(地址转换后的第一报文的目的IP地址,地址转换 后的第一报文的源IP地址,地址转换后的第一报文的目的端口号,第二端口号,第一报文 的协议类型)MOD(N)。公式(3)
可以理解,第一处理单元在分配端口号作为转换后的第一报文的源端口号时,为了保 证反向流量能够被分流到本处理单元上,对端口号进行了特殊设计。这种特殊设计就是为 了计算未知的待分配的源端口号,将待分配的源端口号拆分为设定部分和补偿部分,设定 部分是上述第二端口号,补偿部分为上述调整值。设定部分是指根据预先的确定方式能够 在代入上述公式之前知晓的一个端口号。第一处理单元通过将已知的目标处理单元标识和 第二端口号输入已知的分流算法,能够求取调整值。再对第二端口号和调整值求和,将求 和结果作为分配的满足要求的源端口号。
在第一处理单元根据公式(3)得到调整值之前,先要确定第二端口号。第一处理单元 确定第二端口号的方式是从第一处理单元对应的端口号段中选择一个端口号作为第二端口 号。
第一分流单元确定第二端口号的方法有多种,只要确定出了第二端口号,代入公式(3) 就可以得到调整值。第一分流单元将第二端口号和调整值之和作为分配的端口号,该分配 的端口号作为地址转换后的第一报文的源端口号。
后面将结合附图6和附图8中的具体场景对计算第二端口号和调整值的方法进行详细 说明。
步骤54,第一处理单元对第一报文进行地址转换,从而得到转换后的第一报文,所述 地址转换包括:将所述第一报文的源端口号替换为所述分配的所述端口号。
步骤55,第一处理单元向第二分流单元发送所述地址转换后的第一报文。
步骤56,第二分流单元向所述第二网络发送所述地址转换后的第一报文。
本申请实施例提供了一种分布式设备中的报文处理方法,分布式设备中包括两个分流 单元以及若干个处理单元。处理单元从一个分流单元中接收到的报文后,在为该报文分配 IP地址、以及一个端口号作为地址转换后的源端口时,分配的端口号要满足:另一个分流 单元采用分流算法对地址转换后的所述报文的反向报文进行分流,反向报文仍然能被分流 到本处理单元上。在端口分配的过程中将待分配的源端口号拆分为两部分,根据改进的分 流算法在已知分流结果的条件下,反推满足条件的端口号。采用提供的报文处理方法后, 分布式设备无需耗费资源在多个处理单元间同步并维护所有会话表数据,摆脱了工作所依 赖的数据的特性对于分布式设备应用场景造成的制约。与此同时本申请实施例提供的报文 处理方法能够保证会话双方的双向数据流能够被分流到分布式设备的同一处理单元上,因 而不再出现因处理单元未存储地址映射关系而造成的业务处理失败问题,从而提高了分布 式设备的工作可靠性。
附图6为在局域网用户发起对互联网提供的服务的访问过程中,NAT设备应用附图5所 示的报文处理方法,对上行报文和对应的下行报文进行处理的场景示意图。如附图6,分布 式设备具体为NAT设备。该NAT设备中包含2个分流单元,分别为LB 1和LB 2,该NAT设备还包括8个处理单元,分别为SPU 1~SPU 8。SPU 1~SPU 8与第二分流算法的输出结果取值之间的对应关系如表1。
表1
处理单元的名称 | 分流算法输出结果的取值 |
SPU 1 | 0 |
SPU 2 | 1 |
SPU 3 | 2 |
SPU 4 | 3 |
SPU 5 | 4 |
SPU 6 | 5 |
SPU 7 | 6 |
SPU 8 | 7 |
附图7为在附图6所示的场景中,NAT设备对报文进行处理的流程图。附图7所示的报 文处理方法包括以下步骤。
步骤71,局域网中的主机发送第一报文,第一报文是上行报文。
具体地,第一报文是因网络访问行为而触发的访问请求报文。用户使用局域网中的主 机上运行的浏览器访问网站abc.com,则主机生成一个访问请求报文并向NAT设备发送该访 问请求报文。该访问请求报文的源地址是局域网主机的私网地址10.10.10.10,源端口号为 10000。该访问请求报文的目的地址是Web服务器的公网地址30.30.30.30,目的端口号为 30000。Web服务器通过公网地址30.30.30.30上的端口30000提供网站abc.com的网页服 务。
可选地,对于NAT设备而言,可以根据预先配置的端口与网络的对应关系区分上行报 文和下行报文,例如NAT设备的第一端口段与局域网连接,第二端口段与互联网连接。NAT 的第一端口段中的端口接收到报文是上行报文,NAT设备的第二端口段中的端口接收到的报 文是下行报文。在本实施例中,第一报文是NAT设备的第一端口段中的端口接收到的报文, 因而确定第一报文是上行报文。
步骤72,NAT设备中的分流单元LB 1接收到主机发送的第一报文。在分流单元LB 1的分流表中未存储第一报文的数据流标识的条件下,将第一报文输入分流算法,根据分流算法的输出结果,从NAT设备的8个处理单元中选择处理单元SPU 5。
为了描述简洁,在本实施例中,LB 1使用的分流算法与LB 2使用的分流算法相同,都 称为“分流算法”,实际上LB 1使用的分流算法也可以与LB 2使用的分流算法不同,只要处理单元和LB 2均使用相同的分流算法即可。
请参考前面提及的公式(1)和公式(2)中均涉及到一个哈希算法HASH1。首先,对本实施例中分流时使用的哈希算法进行一个简单介绍。哈希算法的设计方式有很多种,可以分为对称算法和非对称算法。在本申请实施例中对称算法是指将一个报文的五元组中的各元素输入该算法时,如果对调源IP地址和目的IP地址在输入顺序中的位置、同时对调源 端口号和目的端口号在输入顺序中的位置,调换位置之后算法的输出结果与调换位置之前算法的输出结果相同。相应地,非对称算法是指调换位置之后算法的输出结果与调换位置之前算法的输出结果不同。
相比较非对称算法,对称算法的优点在于虽然算法规定了将待分流的报文的五元组中 各元素输入算法时的顺序,但是无需事先区分待分流的报文是上行报文还是下行报文。为 了便于理解,这里结合实例给出对称算法和非对称算法的具体例子。
假定一个待分流的报文的源IP地址为10.10.10.10,目的IP地址为30.30.30.30,源 端口号是10000,目的端口号是30000,协议为TCP。TCP在相关标准中的协议号为6。
非对称算法示例:
HASH(源IP地址,目的IP地址,源端口号,目的端口号,协议号)=(源IP地址-目 的IP地址)XOR(源端口号-目的端口号)XOR协议号,其中XOR表示十六进制按字节异或。 该算法先求取源IP地址与目的IP地址的十六进制按字节的差值、源端口号与目的端口号 的十六进制按字节的差值,再将两个差值与协议号按字节异或成一个单字节。
在对调位置之前,按照“源IP地址、目的IP地址、源端口号、目的端口号、协议类型”的顺序将上述报文的数据流标识输入HASH算法的过程表示为:
目标SPU对应的取值=HASH(10.10.10.10,30.30.30.30,10000,30000,6)MOD(8)= ((10.10.10.10-30.30.30.30)XOR(10000-30000)XOR(6))MOD(8),
用十六进制表示上述算法中涉及的异或运算,则上述计算过程为
目标SPU对应的取值=(0xEC^0xEC^0xEC^0xEC^0xB1^0xE0^0x6)MOD(8)=0x57MOD(8)=7。
在对调位置之后,按照“目的IP地址、源IP地址、目的端口号、源端口号、协议类型”的顺序将上述报文的数据流标识输入分流算法的过程表示为:
目标SPU对应的取值=HASH(30.30.30.30,10.10.10.10,30000,10000,6)MOD(8)= ((30.30.30.30-10.10.10.10)XOR(30000-10000)XOR(6))MOD(8),
用十六进制表示上述算法涉及的异或运算,则上述计算过程为
目标SPU对应的取值=(0x14^0x14^0x14^0x14^0x4E^0x20^0x6)MOD(8)=0x68MOD(8)=4。
可见,对调位置之前算法的输出结果是7,对调位置之后算法的输出结果是4,二者不 同。
对称算法示例:
HASH(源IP地址,目的IP地址,源端口号,目的端口号,协议号)=源IP地址XOR 目的IP地址XOR源端口号XOR目的端口号XOR协议号。该算法是将五元组中的五个元素按 字节异或为一个单字节。
在对调位置之前,按照“源IP地址、目的IP地址、源端口号、目的端口号、协议类型”的顺序将上述报文的数据流标识输入分流算法的过程表示为:
目标SPU对应的取值=HASH(10.10.10.10,30.30.30.30,10000,30000,6)MOD(8)= ((10.10.10.10XOR 30.30.30.30)XOR(10000XOR 30000)XOR(6))MOD(8),
用十六进制表示上述算法中涉及的异或运算,则上述计算过程为
目标SPU对应的取值=(0x1E^0x1E^0x1E^0x1E^0x14^0x14^0x14^0x14^0x75 ^0x30^0x7^0xd8^0x6)MOD(8)=0x9C MOD(8)=1。
在对调位置之后,按照“目的IP地址、源IP地址、目的端口号、源端口号、协议类型”的顺序将上述报文的数据流标识输入分流算法的过程表示为:
目标SPU对应的取值=HASH(30.30.30.30,10.10.10.10,30000,10000,6)MOD(8)= ((30.30.30.30XOR 10.10.10.10)XOR(30000XOR 10000)XOR(6))MOD(8),
用十六进制表示上述算法中涉及的异或运算,则上述计算过程为
目标SPU对应的取值=(0x14^0x14^0x14^0x14^0x1E^0x1E^0x1E^0x1E^0x7 ^0xd8^0x75^0x30^0x6)MOD(8)=0x9C MOD(8)=1。
可见,对调位置之前算法的输出结果是1,对调位置之后算法的输出结果也是1,二者 相同。
显然,对称算法和非对称算法不止上述列举的几种。另一个对称算法还可以是
目标SPU对应的取值=HASH(源IP地址,目的IP地址,源端口号,目的端口号,协 议号)=(源IP地址+目的IP地址)XOR(源端口号+目的端口号)XOR协议号。该算法先 求取源IP地址与目的IP地址的十六进制按字节的和值、源端口号与目的端口号的十六进 制按字节的和值,再将两个和值与协议号按字节异或成一个单字节。其他的对称算法和非 对称算法在此无法进行一一列举。
后面以本实施例使用分流算法为上述列举的第一个对称算法为例,对分流过程进行描 述。显然由于本实施例中NAT设备能够区分上行报文和下行报文,因此本实施例中也可以 使用非对称算法。
示例性地,假设数据流标识是五元组<源IP地址,目的IP地址,源端口,目的端口,协议类型>。附图2中的LB 1接收到主机发送的第一报文,在LB 1的分流表中未存储数据 流标识<10.10.10.10,30.30.30.30,10000,30000,TCP>的情况下,将数据流标识按照第 一方式输入第一分流算法。在本实施例中,以第一方式为“源IP地址、目的IP地址、源 端口号、第一端口号、协议类型、调整值”为例,那么
目标SPU对应的取值=HASH2(10.10.10.10,30.30.30.30,10000,30000,TCP)
=HASH1((10.10.10.10,30.30.30.30,10000,NewPort1,TCP)+NewPort2)MOD(8)
LB 1在计算目标SPU之前,需要先计算NewPort1和NewPort2。LB 1首先确定NewPort1, 再根据NewPort2=目的端口号-NewPort1来确定NewPort2。LB 1确定NewPort1的方法有 很多种,下面仅进行举例说明。
方法一、将从预留端口号开始的连续端口号划分为至少一个端口号组,至少一个端口 号组中的第一个端口号用十六进制表示时后三位为0。确定第一报文的目的端口号所在的端 口号组中目的端口号之前预定位置的端口号为所述第一端口号。
例如预留端口号为1~999,则从端口号1000开始分组,按照上述分组方式得到的端口 号组中,目的端口号30000所在的端口号组为[30000,30007]。假定预定位置的端口号为每 组中的第一个端口号,NewPort1=30000,则NewPort2=30000-30000=0。
方法二、将从预留端口号开始至所述第一报文的目的端口号为止的连续端口号,按照 预定数量的端口号划分为一组的方式,划分为至少一个端口号组;确定所述第一报文的目 的端口号所在的端口号组中所述目的端口号之前指定位置的端口号为所述第一端口号
例如,预留端口号为1~999,将1000开始的连续端口号进行分组,每8个连续端口号 为一组。则端口号30000所在的端口号组为[30000,30007]。确定[30000,30007]中的第一个端口号为NewPort1,即NewPort1=30000,则NewPort2=30000-30000=0。
继续上面的例子,假定LB 1得到了NewPort1为30000,NewPort2为0,将NewPort1和NewPort2代入上述公式后得到
目标SPU对应的取值=HASH1((10.10.10.10,30.30.30.30,10000,NewPort1,TCP)+NewPort2)MOD(8)
=HASH1((10.10.10.10,30.30.30.30,10000,30000,6)+0)MOD(8)
=(10.10.10.10XOR 30.30.30.30XOR 10000XOR 30000XOR 6)MOD(8)
用十六进制表示上述算法中涉及的异或运算,则上述计算过程为
目标SPU对应的取值
=(0xA^0xA^0xA^0xA^0x1E^0x1E^0x1E^0x1E^0x27^0x10^0x75^0x30^0x6)MOD(8)
=0x74MOD(8)=4,即目标SPU的为SPU 5。
步骤73,NAT设备中的分流单元LB 1将第一报文发送给处理单元SPU 5。
步骤74,处理单元SPU 5为第一报文分配一个IP地址、以及一个端口号。分配的新的 IP地址作为地址转换后的源IP地址,分配的端口号作为地址转换后的源端口号。分配的端 口号满足条件:SPU 5将地址转换后的第一报文的数据流标识按照与第一方式对应的第二方 式输入所述预定的分流算法,根据所述分流算法的输出结果,从所述至少两个处理单元中 选择出的处理单元仍然是SPU 5。
假定在本实施例中,各处理单元配置的公网地址均为20.20.20.20,即各处理单元共享 相同的公网地址,但各处理单元分别配置20.20.20.20上的不同端口号范围。这样可以节 约有限的公网地址资源。
例如,SPU 5上配置的端口号范围为2000-9999共计8000个端口号。SPU 5对第一报文进行地址转换后,第一报文的数据流标识为<20.20.20.20,30.30.30.30,新源端口号,30000,TCP>。
SPU 5将转换后的第一报文的数据流标识按照第二方式输入分流算法。在本实施例中, 以第二方式为“目的IP地址,源IP地址,目的端口号,第二端口号,协议类型、调整值”为例,那么
目标SPU对应的取值=HASH2(30.30.30.30,20.20.20.20,30000,新源端口号,TCP) =HASH1((30.30.30.30,20.20.20.20,30000,NewPort1,TCP)+NewPort2)MOD(8)=4。
由于目标SPU对应的分流算法的输出结果为4是已知的,那么计算新源端口号的过程 实际上就转化为计算NewPort1和NewPort2的过程。SPU 5首先确定出NewPort1,再根据确定出的NewPort1计算出NewPort2,最后根据新源端口号=NewPort1+NewPort2确定出 新源端口号。SPU 5确定NewPort1的方法有很多种,下面仅进行举例说明。
SPU 5从SPU 5对应的端口号段中选择出一个端口号作为NewPort1。可选地,选择的 方式是SPU 5按照预定数量的端口号划分为一组的方式,将端口号段2000-9999划分为至 少一个端口号组;SPU 5随机从至少一个端口号组中选取一个端口号组,确定选取的端口号 组中指定位置的端口号为所述第二端口号。
例如,SPU 5按照8端口号划分为一组的方式,将端口号段2000-9999划分为1000组, 从1000组中随机选择一组,例如选择第2个端口组,第2个端口组包含的端口号是 2008~2015。选取第2个端口组中的第1个端口号2008作为NewPort1。
可选地,选择方式也可以是SPU 5将端口号段2000-9999中端口号用十六进制数表示, 以其中十六进制表示时后三位为0的端口号作为每个分组的第一个端口号,从而将端口号 段2000-9999进行分组。SPU 5随机从至少一个端口号组中选取一个端口号组,确定选取的 端口号组中预定位置的端口号为所述第二端口号。
SPU 5在确定出NewPort1后,再进一步计算NewPort2。
NewPort2=4-HASH1(30.30.30.30,20.20.20.20,30000,NewPort1,TCP)MOD(8)=4-HASH1(30.30.30.30,20.20.20.20,30000,2008,TCP))MOD(8)
用十六进制表示上述算法中涉及的异或运算,则上述计算过程为
NewPort2=
4-(0x1E^0x1E^0x1E^0x1E^0x14^0x14^0x14^0x14^0x75^0x30^0x7^0xD8^0x6)MOD(8)=4 –0x9C MOD(8)=4-4=0。
再进一步根据计算出的NewPort1和NewPort2确定新源端口号,新源端口号=NewPort1+ NewPort2=2008。
为了避免同时为来自局域网中不同主机的报文分配相同的端口号,第一处理单元还以 在对应的端口段中为每个端口号设置一个使用状态标识,该使用状态标识用于记录该端口 号是否已被使用。例如该标识取值为1时表示已被使用,该标识取值为0时表示未被使用。 根据该使用状态标识,当第一处理单元为第一报文分配的端口号已被使用时,采用上述方 法重新确定第二端口号,进而重新计算调整值,根据重新确定的第二端口号和调整值求和, 从而再次分配一个端口号。当第一处理单元为第一报文分配一个端口号后,将该端口号对 应的使用状态标识设置为已使用对应的值。当第一处理单元根据会话表中记录的会话状态 确定使用已被分配的端口号建立的会话结束时,重新将已被分配的端口号的使用状态标识 设置为未使用对应的值,以便于该端口号可以被重复利用。例如,当第一处理单元为第一 报文分配端口号2008后,将端口号2008的状态设置为1。当第一处理单元根据会话表中的 会话状态确定第一报文所属的会话结束后,第一处理单元将端口号2008的状态设置为0。
步骤75,SPU 5对所述第一报文进行地址转换。地址转换包括:将第一报文的源IP地 址10.10.10.10替换为新IP地址20.20.20.20,将源端口号10000替换为分配的端口号2008,从而得到转换后的第一报文。地址转换后的第一报文的数据流标识是<20.20.20.20,30.30.30.30,2008,30000,TCP>。
步骤76,SPU 5向分流单元LB 2发送地址转换后的第一报文。
步骤77,LB 2向互联网中的服务器发送地址转换后的第一报文。
可选地,在步骤74之后,还包括步骤78,SPU 1在地址映射表中建立一个新的表项,该表项中包括地址转换之前第一报文的数据流标识<10.10.10.10,30.30.30.30,10000,30000,TCP>和地址转换之后所述第一报文的数据流标识<20.20.20.20,30.30.30.30,2008, 30000,TCP>。
通过步骤71~步骤77,NAT设备能够保证在LB 2接收到来自于Web服务器的第二报文 后,LB 2能够将第二报文分流到SPU 5上进行处理。在本实施例中第二报文是对应访问请 求报文的响应报文,也是第一报文的反向报文。
可选地,附图7的处理方法还包括步骤79~714。
步骤79,NAT设备上的LB 2接收到第二报文,第二报文是Web服务器发送的第一报文 的响应报文。
具体地,Web服务器接收到第一报文后,从第一报文的请求行“GET/index.htmlHTTP/1.1”中得到主机请求的资源的URL路径/index.html。如果存在路径为/index.html的资源,则服务器在第二报文中携带状态行HTTP/1.1 200OK以及其他用于说明服务器的一些信息以及将来继续访问该资源时的策略。
步骤710,NAT设备上的LB 2在分流单元LB 2的分流表中未存储第二报文的数据流标 识的条件下,将第二报文输入分流算法,根据分流算法的输出结果,从NAT设备的多个处理单元中选择处理单元SPU 5。
第二报文的数据流标识是<30.30.30.30,20.20.20.20,30000,2008,TCP>。LB 2按照第一方式将数据流标识输入分流算法。
目标SPU对应的取值=HASH2(30.30.30.30,20.20.20.20,30000,2008,TCP)
=HASH1((30.30.30.30,20.20.20.20,30000,2008,6)+0)MOD(8),
用十六进制表示上述算法涉及的异或运算,则上述计算过程为
目标SPU对应的取值=
((0x1E^0x1E^0x1E^0x1E^0x14^0x14^0x14^0x14^0x75^0x30^0x7^0xD8^0x6)+2)MOD(8) =4
输出结果4对应的处理单元是SPU 5。
步骤711,NAT设备上的分流单元LB 2将第二报文发送给处理单元SPU 5。
步骤712,处理单元SPU 5查找地址映射表,根据查找到的表项对第二报文进行地址转 换。
由于此时处理单元SPU 5的地址映射表中存在包含第二报文的数据流标识 <30.30.30.30,20.20.20.20,30000,2008,TCP>的表项,因此处理单元SPU 5可以根据 会话表项中对应的数据流标识对第二报文进行地址转换,将第二报文的目的地址转换为10.10.10.10,目的端口转换为10000,从而得到地址转换后的第二报文。
可选地,处理单元SPU 5还可以根据第二报文中携带的其他信息,例如状态行的内容 修改对应的会话表项中记录的会话状态。
步骤713,处理单元SPU 5将地址转换后的第二报文发送给分流单元LB 1。
步骤714,分流单元LB 1将地址转换后的第二报文发送给局域网中的主机,该主机为 此前发送第一报文的主机。
通过上述方案,一方面能够保证局域网的主机向互联网服务器发送的第一报文被被分 流单元分流到LB 5,并由处理单元SPU 5进行NAT转换后,互联网服务器发送的、作为地 址转换后的第一报文的响应报文的第二报文仍由处理单元SPU 5进行处理。由于处理单元 SPU 5在进行NAT转换后已建立了地址映射表项以及会话表项,在接收到第二报文后,处理 单元SPU 5能够根据地址映射表项以及会话表项对第二报文进行处理,从而避免了处理失 败。同时,在该方案中各处理单元在进行地址转换时可以使用同一公网IP地址,避免地址 资源浪费,节约了有限的地址资源。
附图8为互联网中的用户访问局域网中的服务器提供的服务的过程中,SLB设备应用附 图5所示的报文处理方法,对下行报文和对应的上行报文进行处理的场景示意图。如附图8, 分布式设备具体为SLB设备,SLB设备中包含2个分流单元,分别为LB 1和LB 2,SLB设 备中还包含8个处理单元,分别为SPU 1~SPU 8。SPU 1~SPU 8分别对应的0-7的取值仍然 请参照表1。
附图9为在附图8所示的场景中,SLB设备对报文进行处理的流程图。附图9所示的报 文处理方法包括以下步骤。
步骤91,互联网中的主机发送第一报文,第一报文是下行报文。
局域网中的服务器集群提供网站cd.com的网页服务。互联网中的主机经过域名系统(英 文:Domain Name System,DNS)解析得到提供网站cd.com的网页服务的虚拟IP地址是 22.22.22.22,端口号是2222。互联网中的主机发送的第一报文是访问请求报文。该访问请 求报文的目的地址是上述虚拟IP地址22.22.22.22,目的端口号是2222,源IP地址是互联网中的主机的IP地址33.33.33.33,源端口号是3333。
步骤92,SLB设备中的分流单元LB 2接收到第一报文。分流单元LB 2在分流表中未存储第一报文的数据流标识的条件下,将第一报文输入预定的分流算法,根据分流算法的输出结果,从SLB设备的8个处理单元中选择处理单元SPU 3。
在本实施例中,分流单元LB 2使用的分流算法与LB 1、以及各处理单元使用的分流算 法相同,因此不区分地称为分流算法。
关于分流算法中涉及的哈希算法的说明请参照前面实施例中附图7步骤72的说明。本 实施例中仍以上面实施例中的对称算法为例,对分流过程进行说明。显然由于本实施例中 实现区分了上行报文和下行报文,因此本实施例中也可以使用非对称算法。由于本实施例 中SLB设备也能够通过预先端口配置信息区分上行报文和下行报文,因此本实施例中也可 以使用非对称算法。
具体地,LB 2将数据流标识按照第一方式输入分流算法。本实施例中的第一方式与附 图7所示的实施例相同。
目标SPU对应的取值=HASH2(33.33.33.33,22.22.22.22,3333,2222,TCP)=HASH1 ((33.33.33.33,22.22.22.22,3333,NewPort1,TCP)+NewPort2)MOD(8)。
LB 2采用与附图7步骤72类似的方法,确定出NewPort1为3328,NewPort2为5,具体过程在这里不再重复。LB 2将NewPort1和NewPort2代入上述公式后得到
目标SPU对应的取值=HASH1(33.33.33.33,22.22.22.22,NewPort1(3333),2222,TCP) +NewPort2)MOD(8)
=HASH1(33.33.33.33,22.22.22.22,3328,2222,6)+5)MOD(8)
用十六进制表示上述算法中涉及的异或运算,则上述计算过程为
目标SPU对应的取值
=((0x21^0x21^0x21^0x21^0x16^0x16^0x16^0x16^0xD^0x00^0x8^0xAE^0x6)+5)MOD(8)
=(0xAD+5)MOD(8)=2
在本实施例中LB 2计算出的分流算法的输出结果为2,其指示的处理单元为SPU3。
步骤93,SLB设备中的分流单元LB 3将第一报文发送给处理单元SPU 3。
步骤94,处理单元SPU 3为第一报文分配一个IP地址、以及一个端口号。分配的新的 IP地址作为地址转换后的目的IP地址,分配的端口号作为地址转换后的源端口号。分配的 端口号满足条件:SPU 3将地址转换后的第一报文的数据流标识按照与第一方式对应的第二 方式输入所述预定的分流算法,根据所述分流算法的输出结果,从所述至少两个处理单元 中选择出的处理单元仍然是SPU 3。
在本实施例中,SPU 3根据预定的负载均衡算法,选择实际处理访问请求的服务器的真 实地址和端口号。例如,在局域网中,4个服务器共同分担网站cd.com的网页服务。4个服务器的地址和端口号如表2所示。
表2
服务器名称 | 服务器地址 | 端口号 |
Server 1 | 11.11.11.11 | 1111 |
Server 2 | 11.11.11.12 | 1111 |
Server 3 | 11.11.11.13 | 1111 |
Server 4 | 11.11.11.14 | 1111 |
可选地,负载均衡算法可以随机从4个服务器中选择出一个服务器,也可以根据4个 服务器的当前资源占用率,选择一个当前资源占用率最低的服务器来提供服务器,在这里 不再一一列举。
假定在本实施例中,SPU 3选择出的服务器是服务器1。那么地址转换之后第一报文的 目的IP地址是11.11.11.11、目的端口号是1111。SPU 3对第一报文进行地址转换后,第 一报文的数据流标识为<33.33.33.33,11.11.11.11,新源端口号,1111,TCP>。
SPU 3将转换后的第一报文的数据流标识按照第二方式输入分流算法。在本实施例中, 以第二方式为“目的IP地址,源IP地址,目的端口号,第二端口号,协议类型、调整值”为例,那么
目标SPU对应的取值=HASH2(11.11.11.11,33.33.33.33,1111,新源端口号,TCP)=HASH1((11.11.11.11,33.33.33.33,1111,NewPort1,TCP)+NewPort2)MOD(8)=1。
由于目标SPU对应的分流算法的输出结果为2是已知的,那么计算新源端口号的过程 实际上就转化为计算NewPort1和NewPort2的过程。SPU 3首先确定出NewPort1,再根据确定出的NewPort1计算出NewPort2,最后根据新源端口号=NewPort1+NewPort2确定出 新源端口号。SPU 3确定NewPort1的方法有很多种,与附图7步骤72中确定NewPort1的 方法类似,请参照附图7中的说明。在本实施例中,SPU 3确定出NewPort1为3328。
SPU 3在确定出NewPort1后,再采用附图7步骤74中计算NewPort2的类似方法,进一步计算NewPort2。
NewPort2=2-HASH1(11.11.11.11,33.33.33.33,1111,NewPort1,TCP)MOD(8)
=2-HASH1(11.11.11.11,33.33.33.33,1111,3328,TCP)MOD(8)
用十六进制表示上述算法中涉及的异或运算,则上述计算过程为
NewPort2=
2-(0xB^0xB^0xB^0xB^0x21^0x21^0x21^0x21^0x4^0x57^0xD^0x0^0x6)MOD(8)
=2–0x58MOD(0x8)=2-0=2
再进一步根据计算出的NewPort1和NewPort2确定新源端口号,新源端口号=NewPort1+ NewPort2=3328+2=3330。
步骤95,SPU 3对第一报文进行地址转换。地址转换包括:将第一报文的目的IP地址 22.22.22.22替换为新IP地址11.11.11.11,将第一报文的目的端口替换为端口号1111,将源端口号3333替换为分配的3330,从而得到转换后的第一报文。转换后的第一报文的数据流标识是<33.33.33.33,11.11.11.11,3330,1111,TCP>。
步骤96,SPU 3向分流单元LB1发送地址转换后的第一报文。
步骤97,分流单元LB1向局域网中的服务器发送地址转换后的第一报文。
可选地,在步骤94之后,还包括步骤98,SPU 3在地址映射表中建立一个新的表项,该表项中包括地址转换之前第一报文的数据流标识<33.33.33.33,22.22.22.22,3333,2222,TCP>和地址转换之后所述第一报文的数据流标识<33.33.33.33,11.11.11.11,3330,1111,TCP>。
通过步骤91~97,SLB设备能够保证在LB 1接收到来自于局域网中的服务器1的第二 报文后,LB 1能够将第二报文分流到SPU 3上进行处理。在本实施例中第二报文是对应访 问请求的响应报文,也是第一报文的反向报文。
可选地,附图9的处理方法还包括步骤99~914。
步骤99,SLB设备的LB1接收到第二报文,第二报文是服务器1发送的第一报文的响应报文。
具体地,服务器1接收到第一报文后,从第一报文的请求行“GET/index.htmlHTTP/1.1” 中得到主机请求的资源的URL路径/index.html。如果存在路径为/index.html的资源,则 服务器在第二报文中携带状态行HTTP/1.1 200OK以及其他用于说明服务器的一些信息以 及将来继续访问该资源时的策略。
步骤910,SLB设备上的LB 1在分流单元LB 1的分流表中未存储第二报文的数据流标 识的条件下,将第二报文输入分流算法,根据分流算法的输出结果,从SLB设备的多个处理单元中选择处理单元SPU 3。
第二报文的数据流标识是<11.11.11.11,33.33.33.33,1111,3330,TCP>。SLB设备上的分流单元均是按照第一方式将数据流标识输入分流算法。
目标SPU对应的取值=HASH2(11.11.11.11,33.33.33.33,1111,3330,TCP)
=HASH1((11.11.11.11,33.33.33.33,1111,3328,TCP)+2)MOD(8)
用十六进制表示上述算法涉及的异或运算,则上述计算过程为
目标SPU对应的取值
=((0xB^0xB^0xB^0xB^0x21^0x21^0x21^0x21^0x4^0x57^0xD^0x0^0x6)+2)MOD(8)
=(0+2)MOD(8)=2。
输出结果2对应的处理单元是SPU 3。
步骤911,SLB设备上的分流单元LB 1将第二报文发送给处理单元SPU 3。
步骤912,处理单元SPU 3查找地址映射表,根据查找到的表项对第二报文进行地址转 换。
由于此时处理单元SPU 3中存在包含第二报文的数据流标识<11.11.11.11,33.33.33.33,1111,3330,TCP>的表项,因此处理单元SPU3可以根据表项中对应的数据 流标识对第二报文进行地址转换,将第二报文的目的地址转换为33.33.33.33,目的端口转换为3333,从而得到地址转换后的第二报文。
可选地,处理单元SPU 3还可以根据第二报文中携带的其他信息,例如状态行的内容 修改对应的会话表项中记录的会话状态。
步骤913,处理单元SPU 3将地址转换后的第二报文发送给分流单元LB 2。
步骤914,分流单元LB 2向互联网中的主机发送地址转换后的第二报文,该主机为此 前发送第一报文的主机。
本发明实施例还提供了一种分布式设备。附图10为该分布式设备的结构示意图,该分 布式设备包括第一分流单元101、第二分流单元102、以及包括第一处理单元103在内至少 两个处理单元。
第一分流单元101包括接收子单元1011,处理子单元1012和发送子单元1013。
第二分流单元102包括接收子单元1021,处理子单元1022和发送子单元1023。
第一处理单元103包括接收子单元1031,处理子单元1032和发送子单元1033。
第一分流单元101中的接收子单元1011,用于从所述第一网络接收第一报文。
第一分流单元101中的处理子单元1012,用于根据所述第一报文的数据流标识和第一 分流算法,从所述至少两个处理单元中选择第一处理单元,所述第一报文的数据流标识至 少包括所述第一报文的源互联网协议IP地址、目的IP地址、源端口号和目的端口号;
第一分流单元101中的发送子单元1013,用于将所述第一报文发送给所述第一处理单 元103。
第一处理单元103中的接收子单元1031,用于接收第一分流单元101发送的所述第一 报文。
第一处理单元103中的处理子单元1032,用于为所述第一报文分配一个IP地址、以及 一个端口号,分配的所述端口号满足条件:根据地址转换后的所述第一报文的反向报文的 数据流标识和第二分流算法,从所述至少两个处理单元中选择出的第二处理单元与所述第 一处理单元为同一处理单元,所述地址转换后的所述第一报文的源端口号为所述分配的端 口号,所述地址转换后的所述第一报文的源IP地址和目的IP地址中的一个为所述分配的 IP地址,所述第二分流算法是所述第二分流单元对所述地址转换后的所述第一报文的反向 报文进行分流时使用的算法;对所述第一报文进行地址转换,从而得到所述地址转换后的 第一报文,所述地址转换包括将所述第一报文的源端口号替换为所述分配的所述端口号。
第一处理单元103中的发送子单元1032,用于向所述第二分流单元发送所述地址转换 后的第一报文。
第二分流单元102中的接收子单元1021,用于接收第一处理单元103发送的地址转换 后的第一报文。
第二分流单元102中的处理子单元1022,用于指示第二分流单元102中的发送子单元 1023向所述第二网络发送所述地址转换后的第一报文。
上述第一分流单元101、第二分流单元102、第一处理单元103、以及各个子单元的具 体工作流程请参照前面实施例中的说明,在这里不再详述。这些单元可以全部或部分地通 过软件、硬件、固件或者其任意组合来实现,当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。
所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质 向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、 服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红 外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介 质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、 硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD)) 等。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的范围。 这样,倘若本申请的这些修改和变型属于本发明权利要求的范围之内,则本发明也意图包 括这些改动和变型在内。
Claims (24)
1.一种分布式设备中的报文处理方法,所述分布式设备部署于第一网络和第二网络之间,所述分布式设备包括第一分流单元、第二分流单元、以及至少两个处理单元,所述至少两个处理单元中的每个处理单元与所述第一分流单元和所述第二分流单元连接,其特征在于,所述方法包括:
所述第一分流单元从所述第一网络接收第一报文,根据所述第一报文的数据流标识和第一分流算法,从所述至少两个处理单元中选择第一处理单元,所述第一报文的数据流标识至少包括所述第一报文的源互联网协议IP地址、目的IP地址、源端口号和目的端口号;
所述第一分流单元将所述第一报文发送给所述第一处理单元;
所述第一处理单元为所述第一报文分配一个IP地址、以及一个端口号,分配的所述端口号满足条件:根据地址转换后的所述第一报文的反向报文的数据流标识和第二分流算法,从所述至少两个处理单元中选择出的第二处理单元与所述第一处理单元为同一处理单元,所述地址转换后的所述第一报文的源端口号为所述分配的端口号,所述地址转换后的所述第一报文的源IP地址和目的IP地址中的一个为所述分配的IP地址,所述第二分流算法是所述第二分流单元对所述地址转换后的所述第一报文的反向报文进行分流时使用的算法,所述第二分流算法是指将输入报文的源IP地址、目的IP地址、源端口号、协议号,以及第一端口号按照第一方式指示的顺序输入预定哈希算法后,将所述哈希算法的结果与调整值求和后,对求和结果执行对N取余运算,将取余运算结果对应的处理单元作为选择出的处理单元,所述调整值为所述输入报文的目的端口号减去第一端口号得到的差值,N为所述分布式设备包含的处理单元的数目,所述至少两个处理单元中的每个处理单元分别对应0至N-1中的一个值;
所述第一处理单元对所述第一报文进行地址转换,从而得到所述地址转换后的第一报文,所述地址转换包括将所述第一报文的源端口号替换为所述分配的所述端口号;
所述第一处理单元向所述第二分流单元发送所述地址转换后的第一报文;
所述第二分流单元向所述第二网络发送所述地址转换后的第一报文。
2.根据权利要求1所述的方法,其特征在于,所述第一网络是私网,所述第二网络是公网,
所述第一处理单元为所述第一报文分配一个IP地址、以及一个端口号,包括:
所述第一处理单元为所述第一报文分配预先配置的公网IP地址作为分配的IP地址;
所述第一处理单元从所述第一处理单元对应的端口段中选择一个端口号作为第二端口号,所述第一处理单元与所述至少两个处理单元中的其他处理单元分配的IP地址相同、且第一处理单元与所述至少两个处理单元中的其他处理单元对应的端口段互不重叠;
所述第一处理单元按照第二方式指示的顺序,将所述地址转换后的所述第一报文的源IP地址、目的IP地址、目的端口号,以及所述第二端口号输入所述预定哈希算法,得到哈希运算结果,所述地址转换后的所述第一报文的源IP地址为所述分配的IP地址,所述第二方式指示的顺序中源IP地址与所述第一方式指示的顺序中目的IP地址的位置相同、目的IP地址与所述第一方式指示的顺序中源IP地址的位置相同、目的端口号与所述第一方式指示的顺序中源端口号的位置相同;
所述第一处理单元求取所述哈希运算结果对N的取余运算结果;
所述第一处理单元求取所述第一处理单元对应的0至N-1中的值与取余运算结果之间的差值;
所述第一处理单元为所述第一报文分配所述第二端口号和所述差值之和作为所述分配的端口号。
3.根据权利要求2所述的方法,其特征在于,所述从对应的端口段中选择一个端口号作为第二端口号,包括:
所述第一处理单元按照预定数量的端口号划分为一组的方式,将所述端口段划分为至少一个端口号组;
随机从所述至少一个端口号组中选取一个端口号组,确定选取的端口号组中预定位置的端口号为所述第二端口号。
4.根据权利要求2所述的方法,其特征在于,所述从对应的端口段中选择一个端口号作为第二端口号,包括:
将从预留端口号开始的连续端口号划分为至少一个端口号组,所述至少一个端口号组中的第一个端口号用十六进制表示时后三位为0;
随机从所述至少一个端口号组中选取一个端口号组,确定选取的端口号组中预定位置的端口号为所述第二端口号。
5.根据权利要求1所述的方法,其特征在于,所述第一分流算法与所述第二分流算法相同。
6.根据权利要求5所述的方法,其特征在于,所述第一分流算法的输入报文是所述第一报文,所述根据所述第一报文的数据流标识和第一分流算法,从所述至少两个处理单元中选择第一处理单元,包括:
所述第一分流单元确定所述第一端口号和所述调整值;
按照第一方式指示的顺序,将所述第一报文的源IP地址、目的IP地址、源端口号、以及所述第一端口号输入所述预定哈希算法;
将所述哈希算法的结果与所述调整值求和后,对求和结果执行对N取余运算,将取余运算结果对应的处理单元作为所述第一处理单元。
7.根据权利要求6所述的方法,其特征在于,所述确定所述第一端口号和所述调整值,包括:
将从预留端口号开始至所述第一报文的目的端口号为止的连续端口号,按照预定数量的端口号划分为一组的方式,划分为至少一个端口号组;
确定所述第一报文的目的端口号所在的端口号组中所述目的端口号之前预定位置的端口号为所述第一端口号;
确定所述调整值为所述第一报文的目的端口号减去所述第一端口号得到的差值。
8.根据权利要求6所述的方法,其特征在于,所述确定所述第一端口号和所述调整值,包括:
将从预留端口号开始的连续端口号划分为至少一个端口号组,所述至少一个端口号组中的第一个端口号用十六进制表示时后三位为0;
确定所述第一报文的目的端口号所在的端口号组中所述目的端口号之前预定位置的端口号为所述第一端口号;
确定所述调整值为所述第一报文的目的端口号减去所述第一端口号得到的差值。
9.根据权利要求1所述的方法,其特征在于,所述第一网络是公网,所述第二网络是私网,所述第一报文为来自所述公网的报文,
所述第一处理单元为所述第一报文分配一个IP地址、以及一个端口号,包括:
所述第一处理单元按照负载均衡策略,从保存的至少一个地址端口对中选择出第一地址端口对,所述第一地址端口对包括一个私网IP地址和一个端口号;
所述第一处理单元为所述第一报文分配所述第一地址端口对中的私网IP地址作为分配的IP地址;
所述第一处理单元根据所述第一报文的源端口号确定第二端口号;
所述第一处理单元按照第二方式指示的顺序,将所述地址转换后的所述第一报文的源IP地址、目的IP地址、目的端口号、以及所述第二端口号输入所述预定哈希算法,得到哈希运算结果,所述地址转换后的所述第一报文的目的IP地址为所述分配的IP地址,所述地址转换后的所述第一报文的目的端口号是所述第一地址端口对中的端口号,所述第二方式指示的顺序中源IP地址与所述第一方式指示的顺序中目的IP地址的位置相同、目的IP地址与所述第一方式指示的顺序中源IP地址的位置相同、目的端口号与所述第一方式指示的顺序中源端口号的位置相同;
所述第一处理单元求取所述哈希运算结果对N的取余运算结果;
所述第一处理单元计算所述第一处理单元对应的0至N-1中的值与所述取余运算结果之间的差值;
所述第一处理单元为所述第一报文分配所述第二端口号和所述差值之和作为所述分配的端口号。
10.根据权利要求9所述的方法,其特征在于,所述第一分流算法的输入报文是所述第一报文,所述根据所述第一报文的数据流标识和第一分流算法,从所述至少两个处理单元中选择第一处理单元,包括:
所述第一分流单元确定所述第一端口号和所述调整值;
按照所述第一方式指示的顺序,将所述第一报文的源IP地址、目的IP地址、源端口号、以及所述第一端口号输入所述预定哈希算法;
将所述哈希算法的结果与所述调整值求和后,对求和结果执行对N取余运算,将取余运算结果对应的处理单元作为所述第一处理单元。
11.根据权利要求9所述的方法,其特征在于,所述地址转换还包括:将所述第一报文的目的IP地址替换为所述第一地址端口对中的私网IP地址,将所述第一报文的目的端口号替换为所述第一地址端口对中的端口号。
12.根据权利要求1所述的方法,其特征在于,第三处理单元与所述第一处理单元为同一处理单元,所述第三处理单元是根据所述第一报文的反向报文的数据流标识和所述第二分流算法从所述至少两个处理单元中选择出的处理单元。
13.根据权利要求12所述的方法,其特征在于,所述哈希算法对输入的源IP地址、目的IP地址、源端口号、协议号,以及第一端口号进行逻辑异或,输出逻辑异或的结果,或者所述哈希算法对输入的源IP地址、目的IP地址、源端口号、协议号,以及第一端口号进行按字节求和,输出按字节求和的结果。
14.根据权利要求1-13任一所述的方法,其特征在于,所述第一处理单元为所述第一报文分配一个IP地址、以及一个端口号之后,所述方法还包括:
所述第一处理单元建立映射表项,所述映射表项中包括地址转换之前所述第一报文的数据流标识以及地址转换之后所述第一报文的数据流标识,所述映射表项用于对所述第一处理单元后续接收到的第二报文进行地址转换。
15.一种分布式设备,所述分布式设备部署于第一网络和第二网络之间,所述分布式设备包括,第一分流单元、第二分流单元、以及至少两个处理单元,其特征在于,
所述第一分流单元包括网络接口和处理器,
所述第一分流单元的网络接口,用于从所述第一网络接收第一报文;
所述第一分流单元的处理器,用于根据所述第一报文的数据流标识和第一分流算法,从所述至少两个处理单元中选择第一处理单元,所述第一报文的数据流标识至少包括所述第一报文的源互联网协议IP地址、目的IP地址、源端口号和目的端口号;
所述第一分流单元的网络接口,还用于将所述第一报文发送给所述第一处理单元;
所述第一处理单元包括网络接口和处理器,
所述第一处理单元的网络接口,用于接收所述第一报文;
所述第一处理单元的处理器,用于为所述第一报文分配一个IP地址、以及一个端口号,分配的所述端口号满足条件:根据地址转换后的所述第一报文的反向报文的数据流标识和第二分流算法,从所述至少两个处理单元中选择出的第二处理单元与所述第一处理单元为同一处理单元,所述地址转换后的所述第一报文的源端口号为所述分配的端口号,所述地址转换后的所述第一报文的源IP地址和目的IP地址中的一个为所述分配的IP地址,所述第二分流算法是所述第二分流单元对所述地址转换后的所述第一报文的反向报文进行分流时使用的算法,所述第二分流算法是指将输入报文的源IP地址、目的IP地址、源端口号、协议号,以及第一端口号按照第一方式指示的顺序输入预定哈希算法后,将所述哈希算法的结果与调整值求和后,对求和结果执行对N取余运算,将取余运算结果对应的处理单元作为选择出的处理单元,所述调整值为所述输入报文的目的端口号减去第一端口号得到的差值,N为所述分布式设备包含的处理单元的数目,所述至少两个处理单元中的每个处理单元分别对应0至N-1中的一个值;对所述第一报文进行地址转换,从而得到所述地址转换后的第一报文,所述地址转换包括将所述第一报文的源端口号替换为所述分配的所述端口号;
所述第一处理单元的网络接口,还用于向所述第二分流单元发送所述地址转换后的第一报文;
所述第二分流单元包括网络接口和处理器,
所述第二分流单元的网络接口,用于接收所述地址转换后的第一报文;
所述第二分流单元的处理器,用于指示所述第二分流单元的网络接口向所述第二网络发送所述地址转换后的第一报文。
16.根据权利要求15所述的分布式设备,其特征在于,所述第一网络是私网,所述第二网络是公网,
所述第一处理单元的处理器,用于为所述第一报文分配预先配置的公网IP地址作为分配的IP地址;
从所述第一处理单元对应的端口段中选择一个端口号作为第二端口号,所述第一处理单元与所述至少两个处理单元中的其他处理单元分配的IP地址相同、且第一处理单元与所述至少两个处理单元中的其他处理单元对应的端口段互不重叠;
按照第二方式指示的顺序,将所述地址转换后的所述第一报文的源IP地址、目的IP地址、目的端口号,以及所述第二端口号输入所述预定哈希算法,得到哈希运算结果,所述地址转换后的所述第一报文的源IP地址为所述分配的IP地址,所述第二方式指示的顺序中源IP地址与所述第一方式指示的顺序中目的IP地址的位置相同、目的IP地址与所述第一方式指示的顺序中源IP地址的位置相同、目的端口号与所述第一方式指示的顺序中源端口号的位置相同;
求取所述哈希运算结果对N的取余运算结果;
求取所述第一处理单元对应的0至N-1中的值与取余运算结果之间的差值;
为所述第一报文分配所述第二端口号和所述差值之和作为所述分配的端口号。
17.根据权利要求16所述的分布式设备,其特征在于,
所述第一处理单元的处理器,用于按照预定数量的端口号划分为一组的方式,将所述端口段划分为至少一个端口号组;
随机从所述至少一个端口号组中选取一个端口号组,确定选取的端口号组中预定位置的端口号为所述第二端口号。
18.根据权利要求16所述的分布式设备,其特征在于,所述第一分流算法与所述第二分流算法相同,所述第一分流算法的输入报文是所述第一报文,
所述第一分流单元的处理器,用于确定所述第一端口号和所述调整值;
按照第一方式指示的顺序,将所述第一报文的源IP地址、目的IP地址、源端口号、以及所述第一端口号输入所述预定哈希算法;
将所述哈希算法的结果与所述调整值求和后,对求和结果执行对N取余运算,将取余运算结果对应的处理单元作为所述第一处理单元。
19.根据权利要求18所述的分布式设备,其特征在于,
所述第一分流单元的处理器,用于将从预留端口号开始至所述第一报文的目的端口号为止的连续端口号,按照预定数量的端口号划分为一组的方式,划分为至少一个端口号组;
确定所述第一报文的目的端口号所在的端口号组中所述目的端口号之前预定位置的端口号为所述第一端口号;
确定所述调整值为所述第一报文的目的端口号减去所述第一端口号得到的差值。
20.根据权利要求15所述的分布式设备,其特征在于,所述第一网络是公网,所述第二网络是私网,所述第一报文为来自所述公网的报文,
所述第一处理单元的处理器,用于按照负载均衡策略,从保存的至少一个地址端口对中选择出第一地址端口对,所述第一地址端口对包括一个私网IP地址和一个端口号;
为所述第一报文分配所述第一地址端口对中的私网IP地址作为分配的IP地址;
根据所述第一报文的源端口号确定第二端口号;
按照第二方式指示的顺序,将所述地址转换后的所述第一报文的源IP地址、目的IP地址、目的端口号、以及所述第二端口号输入所述预定哈希算法,得到哈希运算结果,所述地址转换后的所述第一报文的目的IP地址为所述分配的IP地址,所述地址转换后的所述第一报文的目的端口号是所述第一地址端口对中的端口号,所述第二方式指示的顺序中源IP地址与所述第一方式指示的顺序中目的IP地址的位置相同、目的IP地址与所述第一方式指示的顺序中源IP地址的位置相同、目的端口号与所述第一方式指示的顺序中源端口号的位置相同;
求取所述哈希运算结果对N的取余运算结果;
计算所述第一处理单元对应的0至N-1中的值与所述取余运算结果之间的差值;
为所述第一报文分配所述第二端口号和所述差值之和作为所述分配的端口号。
21.根据权利要求20所述的分布式设备,其特征在于,所述第一分流算法的输入报文是所述第一报文,
所述第一分流单元的处理器,用于确定所述第一端口号和所述调整值;
按照所述第一方式指示的顺序,将所述第一报文的源IP地址、目的IP地址、源端口号、以及所述第一端口号输入所述预定哈希算法;
将所述哈希算法的结果与所述调整值求和后,对求和结果执行对N取余运算,将取余运算结果对应的处理单元作为所述第一处理单元。
22.根据权利要求20、或21所述的分布式设备,其特征在于,
所述第一处理单元的处理器,还用于将所述第一报文的目的IP地址替换为所述第一地址端口对中的私网IP地址,将所述第一报文的目的端口号替换为所述第一地址端口对中的端口号。
23.根据权利要求15所述的分布式设备,其特征在于,第三处理单元与所述第一处理单元为同一处理单元,所述第三处理单元是根据所述第一报文的反向报文的数据流标识和所述第二分流算法从所述至少两个处理单元中选择出的处理单元。
24.根据权利要求23所述的分布式设备,其特征在于,
所述哈希算法对输入的源IP地址、目的IP地址、源端口号、协议号,以及第一端口号进行逻辑异或,输出逻辑异或的结果,或者所述哈希算法对输入的源IP地址、目的IP地址、源端口号、协议号,以及第一端口号进行按字节求和,输出按字节求和的结果。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810399892.5A CN110417924B (zh) | 2018-04-28 | 2018-04-28 | 分布式设备中的报文处理方法和分布式设备 |
EP19792098.6A EP3780552B1 (en) | 2018-04-28 | 2019-04-01 | Message processing method in distributed device and distributed device |
PCT/CN2019/080706 WO2019205892A1 (zh) | 2018-04-28 | 2019-04-01 | 分布式设备中的报文处理方法和分布式设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810399892.5A CN110417924B (zh) | 2018-04-28 | 2018-04-28 | 分布式设备中的报文处理方法和分布式设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110417924A CN110417924A (zh) | 2019-11-05 |
CN110417924B true CN110417924B (zh) | 2021-10-01 |
Family
ID=68294875
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810399892.5A Active CN110417924B (zh) | 2018-04-28 | 2018-04-28 | 分布式设备中的报文处理方法和分布式设备 |
Country Status (3)
Country | Link |
---|---|
EP (1) | EP3780552B1 (zh) |
CN (1) | CN110417924B (zh) |
WO (1) | WO2019205892A1 (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110838974A (zh) * | 2019-11-14 | 2020-02-25 | 苏州盛科科技有限公司 | 一种实现负载均衡的方法和装置 |
CN111147390B (zh) * | 2019-11-22 | 2023-06-30 | 国家计算机网络与信息安全管理中心 | 负载分担求余的方法及装置 |
CN111447300A (zh) * | 2020-03-26 | 2020-07-24 | 深信服科技股份有限公司 | 一种目标端口确定方法、装置、设备及可读存储介质 |
US11689493B2 (en) * | 2020-07-02 | 2023-06-27 | Vmware, Inc. | Connection tracking records for a very large scale NAT engine |
US11316824B1 (en) | 2020-11-30 | 2022-04-26 | Vmware, Inc. | Hybrid and efficient method to sync NAT sessions |
CN112565102B (zh) * | 2020-11-30 | 2022-11-11 | 锐捷网络股份有限公司 | 一种负载均衡方法、装置、设备及介质 |
CN112583736A (zh) * | 2020-12-11 | 2021-03-30 | 北京锐安科技有限公司 | 一种信令报文分流方法、装置、设备及介质 |
CN112738290B (zh) * | 2020-12-25 | 2022-08-26 | 杭州迪普科技股份有限公司 | 一种nat转换方法、装置及设备 |
CN114363433B (zh) * | 2021-12-24 | 2024-06-25 | 山石网科通信技术股份有限公司 | 网络资源的分配方法、装置、存储介质及处理器 |
CN115086274B (zh) * | 2022-06-10 | 2023-12-22 | 北京启明星辰信息安全技术有限公司 | 一种网络流量分配方法、装置、设备和存储介质 |
CN115988574B (zh) * | 2023-03-15 | 2023-08-04 | 阿里巴巴(中国)有限公司 | 基于流表的数据处理方法、系统、设备和存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2005018175A3 (en) * | 2003-08-05 | 2005-08-04 | Scalant Systems Inc | Method and apparatus for adaptive flow-based routing in multi-stage data networks |
CN103825976A (zh) * | 2014-03-04 | 2014-05-28 | 杭州华三通信技术有限公司 | 分布式系统架构中的nat处理方法及装置 |
CN104580550A (zh) * | 2014-12-30 | 2015-04-29 | 北京天融信科技有限公司 | 分布式系统中多业务板分流时的nat处理方法及设备 |
CN107222408A (zh) * | 2017-06-01 | 2017-09-29 | 杭州迪普科技股份有限公司 | 一种分流方法及装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7453850B2 (en) * | 2002-12-20 | 2008-11-18 | Alcatel Lucent | Apparatus, and associated method, for facilitating bi-directional routing of data in a packet radio communication system |
US8005098B2 (en) * | 2008-09-05 | 2011-08-23 | Cisco Technology, Inc. | Load balancing across multiple network address translation (NAT) instances and/or processors |
CN106534394B (zh) * | 2015-09-15 | 2020-01-07 | 瞻博网络公司 | 用于管理端口的设备、系统和方法 |
CN107948076B (zh) * | 2017-12-29 | 2021-08-24 | 杭州迪普科技股份有限公司 | 一种转发报文的方法及装置 |
-
2018
- 2018-04-28 CN CN201810399892.5A patent/CN110417924B/zh active Active
-
2019
- 2019-04-01 EP EP19792098.6A patent/EP3780552B1/en active Active
- 2019-04-01 WO PCT/CN2019/080706 patent/WO2019205892A1/zh unknown
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2005018175A3 (en) * | 2003-08-05 | 2005-08-04 | Scalant Systems Inc | Method and apparatus for adaptive flow-based routing in multi-stage data networks |
CN103825976A (zh) * | 2014-03-04 | 2014-05-28 | 杭州华三通信技术有限公司 | 分布式系统架构中的nat处理方法及装置 |
CN104580550A (zh) * | 2014-12-30 | 2015-04-29 | 北京天融信科技有限公司 | 分布式系统中多业务板分流时的nat处理方法及设备 |
CN107222408A (zh) * | 2017-06-01 | 2017-09-29 | 杭州迪普科技股份有限公司 | 一种分流方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
EP3780552B1 (en) | 2023-03-22 |
EP3780552A1 (en) | 2021-02-17 |
EP3780552A4 (en) | 2021-06-16 |
WO2019205892A1 (zh) | 2019-10-31 |
CN110417924A (zh) | 2019-11-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110417924B (zh) | 分布式设备中的报文处理方法和分布式设备 | |
RU2742542C1 (ru) | Способ, устройство и оборудование для передачи данных и считываемый носитель данных | |
US11063819B2 (en) | Managing use of alternative intermediate destination computing nodes for provided computer networks | |
EP3355553B1 (en) | Reliable load-balancer using segment routing and real-time application monitoring | |
US9397946B1 (en) | Forwarding to clusters of service nodes | |
US11336715B2 (en) | Load balancing method, apparatus and system | |
US11038834B2 (en) | Selecting an external link of a plurality of external links | |
EP3254417B1 (en) | Method and system for supporting port ranging in a software-defined networking (sdn) system | |
CN109937401B (zh) | 经由业务旁路进行的负载均衡虚拟机的实时迁移 | |
US8676980B2 (en) | Distributed load balancer in a virtual machine environment | |
KR101371993B1 (ko) | 가상화 네트워크 인프라구조를 갖는 투명 클라우드 컴퓨팅을 위한 방법 및 장치 | |
US9660905B2 (en) | Service chain policy for distributed gateways in virtual overlay networks | |
EP2909981B1 (en) | Method and system of packet based identifier locator network protocol (ilnp) load balancing and routing | |
EP3399703B1 (en) | Method for implementing load balancing, apparatus, and network system | |
US20150124823A1 (en) | Tenant dhcp in an overlay network | |
US9350666B2 (en) | Managing link aggregation traffic in a virtual environment | |
EP2723026A1 (en) | Method and system of frame based identifier locator network protocol (ILNP) load balancing and routing | |
US9686178B2 (en) | Configuring link aggregation groups to perform load balancing in a virtual environment | |
WO2016134624A1 (zh) | 路由方法、装置及系统、网关调度方法及装置 | |
EP3780512B1 (en) | Packet processing method and apparatus | |
CN111512611A (zh) | Mptcp感知的负载均衡器的设计和使用该设计的负载均衡器 | |
US9426069B2 (en) | System and method of cross-connection traffic routing | |
US20150146724A1 (en) | Traffic Optimization Using Network Address and Port Translation in a Computer Cluster | |
JP2018515050A (ja) | パケット転送 | |
US9025604B2 (en) | Scaling IPV4 at large datacenters with device level aggregation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |