CN113014689A - 一种网络地址转换的方法和装置 - Google Patents
一种网络地址转换的方法和装置 Download PDFInfo
- Publication number
- CN113014689A CN113014689A CN202110227541.8A CN202110227541A CN113014689A CN 113014689 A CN113014689 A CN 113014689A CN 202110227541 A CN202110227541 A CN 202110227541A CN 113014689 A CN113014689 A CN 113014689A
- Authority
- CN
- China
- Prior art keywords
- message
- request message
- simulated
- response message
- target
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 48
- 238000013519 translation Methods 0.000 title claims abstract description 35
- 230000004044 response Effects 0.000 claims abstract description 191
- 238000012545 processing Methods 0.000 claims abstract description 40
- 238000004088 simulation Methods 0.000 claims description 49
- 238000006243 chemical reaction Methods 0.000 claims description 31
- 238000004422 calculation algorithm Methods 0.000 claims description 11
- 230000008569 process Effects 0.000 description 19
- 238000004590 computer program Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000006855 networking Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/09—Mapping addresses
- H04L61/25—Mapping addresses of the same type
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请公开了一种网络地址转换的方法和装置,应用于多物理CPU的网络设备,该方法包括:接收到客户端的请求报文时,从本网络设备所连接的若干服务器中确定用于响应该请求报文的目标服务器的地址;从预设的端口范围中确定目标服务器针对该请求报文待回复的响应报文的源端口号,以使来自目标服务器的响应报文与请求报文由同一物理CPU进行处理;根据所确定的响应报文的源端口号及目标服务器的地址,对所述请求报文进行目的NAT转换。本申请方案在接收到请求报文时,根据预设的端口范围多次调整待改写的目的端口号,以使真实的请求报文与对应的响应报文到达同一物理CPU进行处理,减少跨物理CPU的内存访问,降低性能消耗、提高效率。
Description
技术领域
本申请涉及通信技术领域,特别是一种网络地址转换的方法和装置。
背景技术
随着网络规模不断扩大,对各类网络设备计算性能的要求也不断提高,配置有多物理CPU(后文所述的CPU均表示物理CPU)的网络设备因而得到日益广泛的使用。
当一个配置有多路CPU的网络设备,执行网络地址转换(Network AddressTranslation,NAT)任务时,将根据所接收到的报文信息,计算hash值并分配所述多路CPU中的一路CPU对该报文进行处理和转发。不过,由于请求报文需要经过目的NAT转换后转发,响应报文需要经过源NAT转换后转发,达到所述网络设备的请求报文和其响应报文所计算出的hash值并不一致,即同一会话的报文可能被分配至不同的CPU进行处理和转发。
各CPU均配有内存,各CPU所处理报文的会话信息将保存在自身内存中。当同一会话的报文被分配至不同CPU进行处理时,将会导致所述不同CPU为了获取报文所属会话的信息,进行跨CPU的内存访问和查询,造成性能消耗大、处理效率低的问题。
发明内容
本申请提供一种网络地址转换的方法和装置。
根据本申请实施例的第一方面,提供一种网络地址转换的方法,所述方法包括:
当接收到来自客户端的请求报文时,从本网络设备所连接的若干服务器中,确定用于响应所述请求报文的目标服务器的地址;
从预设的端口范围中,确定所述目标服务器针对所述请求报文待回复的响应报文的源端口号,以使来自所述目标服务器的响应报文与所述请求报文由所述网络设备中的同一物理CPU进行处理;
根据所确定的所述响应报文的源端口号以及所述目标服务器的地址,对所述请求报文进行目的NAT转换,并将目的NAT转换后的请求报文发送给所述目标服务器进行响应。
根据本申请实施例的第二方面,提供一种网络地址转换的装置,所述装置包括地址确定单元、端口确定单元和转换单元:
其中,地址确定单元,用于在接收到来自客户端的请求报文时,从本网络设备所连接的若干服务器中,确定用于响应所述请求报文的目标服务器的地址;
端口确定单元,用于从预设的端口范围中,确定所述目标服务器针对所述请求报文待回复的响应报文的源端口号,以使来自所述目标服务器的响应报文与所述请求报文由所述网络设备中的同一物理CPU进行处理;
转换单元,用于根据所确定的所述响应报文的源端口号以及所述目标服务器的地址,对所述请求报文进行目的NAT转换,并将目的NAT转换后的请求报文发送给所述目标服务器进行响应。
本申请所提供的技术方案,在接收到请求报文时,根据预设的端口范围,多次调整对应的响应报文的源端口号,直至处理所述对应的响应报文的物理CPU与处理所述请求报文的物理CPU相同,从而确定所述请求报文待改写的网络地址,以使真实的请求报文与对应的响应报文到达同一物理CPU进行处理和转发,减少跨物理CPU的内存访问,降低性能消耗、提高效率。
附图说明
图1为本申请实施例的一组网架构示意图;
图2为本申请所提供的一种网络地址转换的方法流程图;
图3为本申请方案中判断本次模拟出的响应报文与请求报文是否由同一物理CPU进行处理的方法流程图;
图4为本申请所提出的网络地址转换装置所在网络设备的硬件结构示意图;
图5为本申请所提供的一种网络地址转换的装置框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
参见图1,为本申请实施例的一组网架构示意图。该组网中,包括客户端设备A,NAT设备B,以及目标服务器C。
所述客户端设备A,可以是用户使用的任一终端设备,包括但不限于个人电脑、移动电话等便携式移动终端,它将向NAT设备B发送请求报文,但该请求报文实际则由与NAT设备B相连的目标服务器C进行处理和响应。
所述客户端A发送给NAT设备B的请求报文,其报文信息如下表1所示:
表1
所述NAT设备B,可以是负载均衡设备,当其接收到来自客户端设备A的请求报文时,将根据预设的负载均衡策略,从与其相连的若干服务器中选择一个目标服务器C。基于所述目标服务器C,NAT设备B将对上述请求报文做目的NAT转换(Network AddressTranslation,网络地址转换),改写上述请求报文的目的地址和端口号,其中,改写的目的地址为目标服务器C的地址,改写的目的端口号则可以由NAT设备B随机选取。
所述目标服务器C,也可以根据其他预设的转发策略选择确定,例如:根据所述请求报文所属的业务类型,选择相应的业务服务器作为目标服务器C。
所述客户端A发送至NAT设备B的请求报文经过目的NAT转换后的报文信息如下表2所示:
表2
所述NAT设备B将目的NAT转换后的请求报文发送至所述目标服务器C,所述目标服务器C将对目的NAT转换后的请求报文进行处理,然后向NAT设备B回复响应报文,所述响应报文的报文信息如下表3所示:
表3
所述NAT设备B,在接收到来自目标服务器C回复的针对上述请求报文的响应报文时,将对其做源NAT转换,改写该响应报文的源地址和端口号,经过源NAT转换后的所述响应报文的报文信息,如下表4所示:
表4
所述NAT设备B将源NAT转换后的响应报文发送至所述客户端设备A,客户端A因而接收到目标服务器C针对自己发送的请求报文所回复的响应报文,本次客户端请求-服务器响应的交互完毕。
目前,相关技术中,执行网络地址转换的NAT设备大多配置单物理CPU,当报文到达NAT设备时,将基于接收到的报文信息,计算hash值,并根据该hash值分配所述单物理CPU下的某一物理核对该报文进行处理和转发。
基于上述,来自客户端的请求报文到达NAT设备后,基于表1所示的报文信息计算hash值后,将被分配至某一物理核进行处理和转发;相应地,来自目标服务器的针对上述请求报文回复的响应报文到达NAT设备后,基于表3所示的报文信息计算hash值后,也将被分配至某一物理核进行处理和转发。所述请求报文和响应报文虽然有可能被分配至不同的物理核进行处理,但二者的会话数据实际保存在同一CPU内存中。
然而,随着对网络设备性能要求的不断提高,越来越多的设备都采取多物理CPU的方式实现。当执行网络地址转换的NAT设备配置有多个物理CPU时,到达该NAT设备的请求报文和其响应报文将有可能被分配至不同物理CPU下的不同物理核进行处理,此时将会产生跨物理CPU的内存访问和查询,造成性能消耗大、效率低的问题。
有鉴于此,本申请提出一种网络地址转换的方法,应用于任一配置有多个物理CPU的网络设备。
参见图2,为本申请所提出的网络地址转换方法的流程图,将该方法应用于图1所示的组网中,执行主体为配置有多个物理CPU的NAT设备,下面分步骤对本申请方案进行具体说明:
步骤202,当所述网络设备接收到来自客户端的请求报文时,从本网络设备所连接的若干服务器中,确定用于响应所述请求报文的目标服务器的地址。
NAT设备接收到的来自客户端的请求报文,为目的NAT转换前的请求报文,NAT设备将对其进行目的NAT转换后转发至目标服务器进行处理和响应。
后文将使用“请求报文”表征由客户端发送至NAT设备的未经过目的NAT转换的请求报文,使用“目的NAT转换后的请求报文”表征NAT设备对上述“请求报文”做目的NAT转换后将发送至目标服务器的请求报文。
所述目的NAT转换,即对所述请求报文的目的地址和目的端口号进行改写。其中,待改写的目的地址为目标服务器的地址,诸如IP地址、MAC地址等,它应当是NAT设备所确定的目标服务器的既定地址。
本申请对NAT设备确定目标服务器的具体方式不做限制,包括但不限于根据预设的负载均衡策略、业务转发策略等,从与自身相连的若干服务器中确定目标服务器。
例如:当NAT设备为负载均衡设备时,根据预设的加权轮询负载均衡算法,它将从与自己相连的若干服务器中,确定当前周期所记录的权值最高的服务器作为目标服务器,即选择当前周期所记录的配置最高、负载最轻的服务器作为目标服务器。
步骤204,所述网络设备从预设的端口范围中,确定所述目标服务器针对所述请求报文待回复的响应报文的源端口号,以使来自所述目标服务器的响应报文与所述请求报文由所述网络设备中的同一物理CPU进行处理。
NAT设备对请求报文进行目的NAT转换时,基于步骤202已确定待改写的目的地址为目标服务器的地址,基于步骤204将确定待改写的目的端口号。同时,NAT设备所改写的目的端口号也是目标服务器针对所述请求报文回复的响应报文的源端口号。
由于待改写的目的端口号通常是可以随机选取的,本申请方案将通过调整所述待改写的目的端口号的方式,实现将真实的请求报文和其响应报文分配至同一物理CPU进行处理的目的。
后文将使用“响应报文”表征由目标服务器发送至NAT设备的未经过源NAT转换的响应报文,使用“源NAT转换后的响应报文”表征NAT设备对上述“响应报文”做源NAT转换后将发送至客户端设备的响应报文。
在一种可选择的实现方式下,从预设的端口范围中确定目标服务器针对请求报文待回复的响应报文的源端口号,如图3所示,具体包括如下步骤:
步骤a,所述网络设备从预设的端口范围中,选取未被选取过的端口号作为目标模拟端口号。
所述预设的端口范围,包括0至65535的数值区间中的任一子区间,或若干子区间的交集。预设的端口范围,可以根据与NAT设备相连的若干服务器开放的端口范围进行分别设置,本申请对此不做具体限制。
所述目标模拟端口号,从所述预设的端口范围中选取并用于模拟出所述目标服务器针对所述请求报文待回复的响应报文的报文信息,多次模拟出的响应报文的报文信息中使用不同的目标模拟端口号。
所述从预设的端口范围中选取未被选取过的端口号作为目标模拟端口号,存在多种可选择的实现方式,本申请对此不做具体限制。
在一种可选择的实现方式下,NAT设备可以从预设的端口范围中随机选取一个未被选取过的端口号作为目标模拟端口号。
例如:预设的端口范围为5000至5003,NAT设备从中随机选取端口号5001,用于所述响应报文的报文信息的首次模拟中,若后续步骤c中判断出本次模拟出的响应报文与请求报文并非同一物理CPU处理,则于端口号5000、5002、5003中再随机选取新的目标模拟端口号,用于所述响应报文的报文信息的下一次模拟,以此类推,不再赘述。
在另一种可选择的实现方式下,NAT设备也可以基于上次选取的目标模拟端口号,根据预设的算法,从预设的端口范围中,再选取新的目标模拟端口号。
例如,预设的端口范围为5000至5003,NAT设备从中选取最小的端口号5000,用于对所述响应报文的报文信息的首次模拟中,若后续步骤c中判断出本次模拟出的响应报文与请求报文并非同一物理CPU处理,则基于端口号5000,递增选取新的目标模拟端口号,即选取端口号5001,用于所述响应报文的报文信息的下一次模拟,以此类推,不再赘述。
步骤b,所述网络设备基于所述目标模拟端口号、所述目标服务器的地址,以及所述请求报文的报文信息,模拟出所述目标服务器针对所述请求报文待回复的响应报文的报文信息。
NAT设备模拟所述目标服务器针对所述请求报文待回复的响应报文的报文信息,该模拟出的响应报文的报文信息,并非真实的响应报文的报文信息,多次模拟出的响应报文的报文信息彼此不同。
模拟所述目标服务器针对所述请求报文待回复的响应报文的报文信息时,
使用所述请求报文的源地址和源端口号,可以模拟出所述响应报文的目的地址和目的端口号;
使用所述请求报文的传输层协议,可以模拟出所述响应报文的传输层协议;
使用所确定的目标服务器的地址,可以模拟出所述响应报文的源地址;
使用本次选取的目标模拟端口号,可以模拟出所述响应报文的源端口号;
基于所述模拟出的响应报文的源地址、源端口号、传输层协议、目的地址和目的端口号中的一或多项,构成模拟出的响应报文的报文信息。
步骤c,所述网络设备根据本次模拟出的响应报文的报文信息,以及所述请求报文的报文信息,判断本次模拟出的响应报文与所述请求报文是否由同一物理CPU进行处理。
基于步骤b将多次模拟出响应报文的报文信息,本申请将基于模拟出的响应报文的报文信息,判断模拟出的响应报文与所述请求报文是否由同一物理CPU进行处理,从而从预设的端口范围中确定能够使得真实的响应报文与请求报文由同一物理CPU进行处理的目标模拟端口号。
判断模拟出的响应报文与所述请求报文是否由同一物理CPU进行处理,存在多种可选择的实现方式,可视NAT设备中分配报文的具体机制而采取相应方法,本申请对此不做具体限制。
下面介绍两种可选择的实现方式,其中,所述报文信息为报文的五元组信息,NAT设备为多物理CPU多物理核设备,它将基于所接收报文的五元组hash值,根据预设算法,分配某一物理CPU下的某一物理核对报文进行处理。
在一种可选择的实现方式下,可以计算本次模拟出的响应报文的五元组的hash值,与接收请求报文时已计算的所述请求报文的五元组的hash值进行比较,若判断得出二者相同,则确定本次模拟出的响应报文与所述请求报文是由同一物理CPU进行处理的。该方式无需考虑NAT设备在计算出报文五元组的hash值后具体采用何种算法确定处理报文的物理CPU及物理核,适用性强。
在另一种可选择的实现方式下,也可以计算本次模拟出的响应报文的五元组的hash值,并根据NAT设备中的物理CPU数量,确定处理本次模拟出的响应报文的物理CPU的标识,与接收请求报文时已保存的处理所述请求报文的物理CPU的标识,若判断得出二者相同,则确定本次模拟出的响应报文与所述请求报文是由同一物理CPU进行处理的。该方式适用于在计算出报文五元组的hash值后采用取模法确定处理报文的物理CPU及物理核的场景,应用广泛且降低了计算量。
例如:NAT设备配置有4路物理CPU,每路物理CPU下有4个物理核,记录NAT设备内的配置如下表5所示:
表5
NAT设备计算本次模拟出的响应报文的五元组的hash值为27,根据NAT设备中的物理CPU数量:4,确定分配到标识为CPU 2的物理CPU进行处理;或者,根据NAT设备中的物理CPU数量:4,和物理核数量:16,确定分配到物理核10进行处理,对应的物理CPU标识为CPU2;然后与已保存的处理请求报文的物理CPU的标识进行比较。
步骤d,若判断出本次模拟出的响应报文与所述请求报文由同一物理CPU进行处理,则所述网络设备确定所述目标模拟端口号为所述响应报文的源端口号。
若判断出本次模拟出的响应报文与所述请求报文并非由同一物理CPU进行处理,则返回所述步骤a。
当基于步骤c判断得出本次模拟出的响应报文与所述请求报文由同一物理CPU进行处理时,则确定本次模拟所选取的目标模拟端口号为所述目标服务器针对所述请求报文待回复的响应报文的源端口号,即所述请求报文待改写的目的端口号。
当基于步骤c判断得出本次模拟出的响应报文与所述请求报文并非由同一物理CPU进行处理时,则转至步骤a,重新选取新的目标模拟端口号,再次模拟出新的响应报文的报文信息并判断。
步骤206,所述网络设备根据所确定的所述响应报文的源端口号以及所述目标服务器的地址,对所述请求报文进行目的NAT转换,并将目的NAT转换后的请求报文发送给所述目标服务器进行响应。
NAT设备将所述请求报文的目的地址,由NAT设备的地址改写为目标服务器的地址,将所述请求报文的目的端口号,由NAT设备所使用的端口号改写为基于步骤204所确定的端口号,完成对所述请求报文的目的NAT转换。NAT设备将目的NAT转换后的请求报文转发至目标服务器,以使目标服务器对该目的NAT转换后的请求报文进行处理并做出响应。
本申请所提供的技术方案,在接收到请求报文时,根据预设的端口范围,多次调整对应的响应报文的源端口号,直至处理所述对应的响应报文的物理CPU与处理所述请求报文的物理CPU相同,从而确定所述请求报文待改写的网络地址,以使真实的请求报文与对应的响应报文到达同一物理CPU进行处理和转发,减少跨物理CPU的内存访问,降低性能消耗、提高效率。
为了使本领域技术人员更好地理解本申请中的技术方案,下面将图2所示的网络地址转换方法应用于图1所示的组网架构中,进行进一步的详细说明,后续描述的实施例仅是本申请的一部分实施例,而不是全部的实施例。
客户端设备A,向NAT设备B发送一请求报文,该请求报文的源地址为客户端设备A的IP地址:IP-A,源端口号为客户端设备A所使用的端口号:Port-A,该请求报文的目的地址为NAT设备B的IP地址:IP-B,目的端口号为NAT设备B所使用的端口号:Port-B,该请求报文的传输层协议为TCP。
NAT设备B配置有4路物理CPU,每路物理CPU下配置有4个物理核,如表5所示。
当NAT设备B接收到该请求报文时,将计算该请求报文的五元组的hash值,假设上述五元组信息计算得到hash值为17,根据一致性hash算法,该请求报文将被分配至物理核0进行处理,即处理该请求报文的物理CPU的标识为CPU 0。
NAT设备B对该请求报文进行目的NAT转换,基于预设的转发策略,从与自身相连的若干服务器中确定了目标服务器C对该请求报文做出响应,NAT设备B因而确定了待改写的目的地址为目标服务器C的IP地址:IP-C。
NAT设备B随后从预设的端口范围:1024至65535中,随机选取一个端口号3600作为目标模拟端口号。
基于该请求报文的源地址和源端口号,以及已确定的目标服务器C的IP地址,模拟目标服务器C针对该请求报文待回复的响应报文的五元组信息,本次模拟出的响应报文的源地址为目标服务器C的IP地址:IP-C,源端口号为本次模拟的目标模拟端口号3600,目的地址为客户端设备A的IP地址:IP-A,目的端口号为客户端设备A所使用的端口号:Port-A,传输层协议为TCP。
NAT设备B基于本次模拟出的响应报文的五元组信息,计算得到hash值为27,根据同一算法,本次模拟出的响应报文将被分配至物理核10进行处理,即处理本次模拟出的响应报文的物理CPU的标识为CPU 2。
NAT设备B判断得出处理本次模拟出的响应报文的物理CPU与处理该请求报文的物理CPU并不相同,因而仍需调整待改写的目的端口号,基于预设的端口范围:1024至65535,将当前选取的目标模拟端口号3600加1,得到新的目标模拟端口号3601,再次模拟目标服务器C针对该请求报文待回复的响应报文的五元组信息,再次模拟出的响应报文的协议、目的地址、目的端口号不变,源地址也仍为IP-C,而再次模拟出的响应报文的源端口号调整为新的目标模拟端口号3601。
NAT设备B基于再次模拟出的响应报文的五元组信息,计算得到hash值为34,根据同一算法,再次模拟出的响应报文将被分配至物理核1进行处理,即处理再次模拟出的响应报文的物理CPU的标识为CPU 0。
NAT设备B判断得出处理再次模拟出的响应报文的物理CPU与处理该请求报文的物理CPU相同,从而确定了待改写的目的端口号3601。
NAT设备B根据已确定的目标服务器C的IP地址,以及多次模拟所确定的待回复的响应报文的源端口号,将该请求报文的目的地址改为IP-C,目的端口号改为3601,得到目的NAT转换后的请求报文。该目的NAT转换后的请求报文的源地址为客户端设备A的IP地址:IP-A,源端口号为客户端设备A所使用的端口号:Port-A,目的地址为目标服务器C的IP地址:IP-C,目的端口号为多次模拟所确定的目标模拟端口号:3601,传输层协议为TCP。
NAT设备B将该目的NAT转换后的请求报文发送至目标服务器C,目标服务器C接收并回复响应报文,该响应报文的源地址为IP-C,源端口号为3601,目的地址为IP-A,目的端口号为Port-A,该响应报文的五元组信息与上述目的NAT转换后的请求报文的五元组信息相对应,同时与NAT设备B在做目的NAT转换前源最后一次所模拟出的待回复的响应报文的五元组信息相一致。
NAT设备B接收该真实的响应报文,计算得到其五元组信息的hash值为34,根据同一算法,将该响应报文分配至物理核1进行处理,物理核1和物理核0同属物理CPU 0,因而处理该响应报文的物理核1能够在物理CPU 0的内存中获取该响应报文所属会话的会话数据,无需跨CPU访问或查询内存,提高了处理效率,降低性能消耗。
NAT设备B对该响应报文做源NAT转换,将该响应报文的源地址改写为IP-B,源端口号改写为Port-B,得到源NAT转换后的响应报文的源地址为NAT设备B的地址:IP-B,源端口号为NAT设备B所使用的端口号:Port-B,目的地址为客户端设备A的IP地址:IP-A,目的端口号为客户端设备A所使用的端口号:Port-A传输层协议为TCP。
NAT设备B随后将源NAT转换后的响应报文发送至客户端设备A,客户端设备A因而接收目标服务器C针对自己所发的请求报文回复的响应报文。
与前述网络地址转换的方法实施例相对应,本申请还提供了网络地址转换的装置实施例。
本申请所提供的网络地址转换的装置实施例,可以应用在任一配置有多个物理CPU的网络设备中。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在网络设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图4所示,为本申请网络地址转换装置所在网络设备的一种硬件结构图,除了图4所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的网络设备通常根据其实际功能,还可以包括其他硬件,对此不再赘述。
参见图5,为本申请实施例所提供的一种网络地址转换装置的框图,该装置包括地址确定单元510、端口确定单元520和转换单元530:
其中,地址确定单元510,用于在接收到来自客户端的请求报文时,从本网络设备所连接的若干服务器中,确定用于响应所述请求报文的目标服务器的地址。
端口确定单元520,用于从预设的端口范围中,确定所述目标服务器针对所述请求报文待回复的响应报文的源端口号,以使来自所述目标服务器的响应报文与所述请求报文由所述网络设备中的同一物理CPU进行处理。
转换单元530,用于根据所确定的所述响应报文的源端口号以及所述目标服务器的地址,对所述请求报文进行,并将目的NAT转换后的请求报文发送给所述目标服务器进行响应。
可选择地,所述端口确定单元520在从预设的端口范围中,确定所述目标服务器针对所述请求报文待回复的响应报文的源端口号,以使来自所述目标服务器的响应报文与所述请求报文由所述网络设备中的同一物理CPU进行处理时,具体用于:
从预设的端口范围中,选取未被选取过的端口号作为目标模拟端口号;
基于所述目标模拟端口号、所述目标服务器的地址,以及所述请求报文的报文信息,模拟出所述目标服务器针对所述请求报文待回复的响应报文的报文信息;
根据本次模拟出的响应报文的报文信息,以及所述请求报文的报文信息,判断本次模拟出的响应报文与所述请求报文是否由同一物理CPU进行处理;
若是,则确定所述目标模拟端口号为所述响应报文的源端口号;
若否,则返回所述从预设的端口范围中,选取未被选取过的端口号作为目标模拟端口号的步骤。
可选择地,所述本次模拟出的响应报文的报文信息,以及所述请求报文的报文信息,为各自的五元组信息;
所述判断本次模拟出的响应报文与所述请求报文是否由同一物理CPU进行处理,包括计算本次模拟出的响应报文的五元组的hash值;
判断所述本次模拟出的响应报文的五元组的hash值,与已计算的所述请求报文的五元组的hash值是否相同;
若相同,则确定所述本次模拟出的响应报文与所述请求报文是由同一物理CPU进行处理的。
可选择地,所述本次模拟出的响应报文的报文信息,以及所述请求报文的报文信息,为各自的五元组信息;
所述判断本次模拟出的响应报文与所述请求报文是否由同一物理CPU进行处理,包括计算本次模拟出的响应报文的五元组的hash值;
根据所述本次模拟出的响应报文的五元组的hash值,和所述网络设备中的物理CPU数量,确定处理本次模拟出的响应报文的物理CPU的标识;
判断所述处理本次模拟出的响应报文的物理CPU的标识,与已保存的处理所述请求报文的物理CPU的标识是否相同;
若相同,则确定所述本次模拟出的响应报文与所述请求报文是由同一物理CPU进行处理的。
可选择地,所述从预设的端口范围中,选取未被选取过的端口号作为目标模拟端口号,包括:
从预设的端口范围中,随机选取未被选取过的端口号作为目标模拟端口号;
或者,
从预设的端口范围中,基于上次选取的目标模拟端口号,根据预设算法,确定本次选取的目标模拟端口号。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
本说明书中描述的主题及功能操作的实施例可以在以下中实现:数字电子电路、有形体现的计算机软件或固件、包括本说明书中公开的结构及其结构性等同物的计算机硬件、或者它们中的一个或多个的组合。本说明书中描述的主题的实施例可以实现为一个或多个计算机程序,即编码在有形非暂时性程序载体上以被数据处理装置执行或控制数据处理装置的操作的计算机程序指令中的一个或多个模块。可替代地或附加地,程序指令可以被编码在人工生成的传播信号上,例如机器生成的电、光或电磁信号,该信号被生成以将信息编码并传输到合适的接收机装置以由数据处理装置执行。计算机存储介质可以是机器可读存储设备、机器可读存储基板、随机或串行存取存储器设备、或它们中的一个或多个的组合。
本说明书中描述的处理及逻辑流程可以由执行一个或多个计算机程序的一个或多个可编程计算机执行,以通过根据输入数据进行操作并生成输出来执行相应的功能。所述处理及逻辑流程还可以由专用逻辑电路—例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)来执行,并且装置也可以实现为专用逻辑电路。
适合用于执行计算机程序的计算机包括,例如通用和/或专用微处理器,或任何其他类型的中央处理单元。通常,中央处理单元将从只读存储器和/或随机存取存储器接收指令和数据。计算机的基本组件包括用于实施或执行指令的中央处理单元以及用于存储指令和数据的一个或多个存储器设备。通常,计算机还将包括用于存储数据的一个或多个大容量存储设备,例如磁盘、磁光盘或光盘等,或者计算机将可操作地与此大容量存储设备耦接以从其接收数据或向其传送数据,抑或两种情况兼而有之。然而,计算机不是必须具有这样的设备。此外,计算机可以嵌入在另一设备中,例如移动电话、个人数字助理(PDA)、移动音频或视频播放器、游戏操纵台、全球定位系统(GPS)接收机、或例如通用串行总线(USB)闪存驱动器的便携式存储设备,仅举几例。
适合于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、媒介和存储器设备,例如包括半导体存储器设备(例如EPROM、EEPROM和闪存设备)、磁盘(例如内部硬盘或可移动盘)、磁光盘以及CD ROM和DVD-ROM盘。处理器和存储器可由专用逻辑电路补充或并入专用逻辑电路中。
虽然本说明书包含许多具体实施细节,但是这些不应被解释为限制任何发明的范围或所要求保护的范围,而是主要用于描述特定发明的具体实施例的特征。本说明书内在多个实施例中描述的某些特征也可以在单个实施例中被组合实施。另一方面,在单个实施例中描述的各种特征也可以在多个实施例中分开实施或以任何合适的子组合来实施。此外,虽然特征可以如上所述在某些组合中起作用并且甚至最初如此要求保护,但是来自所要求保护的组合中的一个或多个特征在一些情况下可以从该组合中去除,并且所要求保护的组合可以指向子组合或子组合的变型。
类似地,虽然在附图中以特定顺序描绘了操作,但是这不应被理解为要求这些操作以所示的特定顺序执行或顺次执行、或者要求所有例示的操作被执行,以实现期望的结果。在某些情况下,多任务和并行处理可能是有利的。此外,上述实施例中的各种系统模块和组件的分离不应被理解为在所有实施例中均需要这样的分离,并且应当理解,所描述的程序组件和系统通常可以一起集成在单个软件产品中,或者封装成多个软件产品。
由此,主题的特定实施例已被描述。其他实施例在所附权利要求书的范围以内。在某些情况下,权利要求书中记载的动作可以以不同的顺序执行并且仍实现期望的结果。此外,附图中描绘的处理并非必需所示的特定顺序或顺次顺序,以实现期望的结果。在某些实现中,多任务和并行处理可能是有利的。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。
Claims (10)
1.一种网络地址转换的方法,其特征在于,所述方法应用于配置有多个物理CPU的网络设备,包括:
当接收到来自客户端的请求报文时,从本网络设备所连接的若干服务器中,确定用于响应所述请求报文的目标服务器的地址;
从预设的端口范围中,确定所述目标服务器针对所述请求报文待回复的响应报文的源端口号,以使来自所述目标服务器的响应报文与所述请求报文由所述网络设备中的同一物理CPU进行处理;
根据所确定的所述响应报文的源端口号以及所述目标服务器的地址,对所述请求报文进行目的NAT转换,并将目的NAT转换后的请求报文发送给所述目标服务器进行响应。
2.根据权利要求1所述的方法,其特征在于,所述从预设的端口范围中,确定目标服务器针对请求报文待回复的响应报文的源端口号,以使来自目标服务器的响应报文与请求报文由网络设备中的同一物理CPU进行处理,包括:
从预设的端口范围中,选取未被选取过的端口号作为目标模拟端口号;
基于所述目标模拟端口号、所述目标服务器的地址,以及所述请求报文的报文信息,模拟出所述目标服务器针对所述请求报文待回复的响应报文的报文信息;
根据本次模拟出的响应报文的报文信息,以及所述请求报文的报文信息,判断本次模拟出的响应报文与所述请求报文是否由同一物理CPU进行处理;
若是,则确定所述目标模拟端口号为所述响应报文的源端口号;
若否,则返回所述从预设的端口范围中,选取未被选取过的端口号作为目标模拟端口号的步骤。
3.根据权利要求2所述的方法,其特征在于,所述本次模拟出的响应报文的报文信息,以及所述请求报文的报文信息,为各自的五元组信息;
所述判断本次模拟出的响应报文与所述请求报文是否由同一物理CPU进行处理,包括:
计算本次模拟出的响应报文的五元组的hash值;
判断所述本次模拟出的响应报文的五元组的hash值,与已计算的所述请求报文的五元组的hash值是否相同;
若相同,则确定所述本次模拟出的响应报文与所述请求报文是由同一物理CPU进行处理的。
4.根据权利要求2所述的方法,其特征在于,所述本次模拟出的响应报文的报文信息,以及所述请求报文的报文信息,为各自的五元组信息;
所述判断本次模拟出的响应报文与所述请求报文是否由同一物理CPU进行处理,包括:
计算本次模拟出的响应报文的五元组的hash值;
根据所述本次模拟出的响应报文的五元组的hash值,和所述网络设备中的物理CPU数量,确定处理本次模拟出的响应报文的物理CPU的标识;
判断所述处理本次模拟出的响应报文的物理CPU的标识,与已保存的处理所述请求报文的物理CPU的标识是否相同;
若相同,则确定所述本次模拟出的响应报文与所述请求报文是由同一物理CPU进行处理的。
5.根据权利要求2所述的方法,其特征在于,所述从预设的端口范围中,选取未被选取过的端口号作为目标模拟端口号,包括:
从预设的端口范围中,随机选取未被选取过的端口号作为目标模拟端口号;
或者,
从预设的端口范围中,基于上次选取的目标模拟端口号,根据预设算法,确定本次选取的目标模拟端口号。
6.一种网络地址转换的装置,其特征在于,所述装置应用于配置有多个物理CPU的网络设备,包括地址确定单元、端口确定单元和转换单元:
所述地址确定单元,用于在接收到来自客户端的请求报文时,从本网络设备所连接的若干服务器中,确定用于响应所述请求报文的目标服务器的地址;
所述端口确定单元,用于从预设的端口范围中,确定所述目标服务器针对所述请求报文待回复的响应报文的源端口号,以使来自所述目标服务器的响应报文与所述请求报文由所述网络设备中的同一物理CPU进行处理;
所述转换单元,用于根据所确定的所述响应报文的源端口号以及所述目标服务器的地址,对所述请求报文进行目的NAT转换,并将目的NAT转换后的请求报文发送给所述目标服务器进行响应。
7.根据权利要求6所述的装置,其特征在于,所述端口确定单元在从预设的端口范围中,确定所述目标服务器针对所述请求报文待回复的响应报文的源端口号,以使来自所述目标服务器的响应报文与所述请求报文由所述网络设备中的同一物理CPU进行处理时,具体用于:
从预设的端口范围中,选取未被选取过的端口号作为目标模拟端口号;
基于所述目标模拟端口号、所述目标服务器的地址,以及所述请求报文的报文信息,模拟出所述目标服务器针对所述请求报文待回复的响应报文的报文信息;
根据本次模拟出的响应报文的报文信息,以及所述请求报文的报文信息,判断本次模拟出的响应报文与所述请求报文是否由同一物理CPU进行处理;
若是,则确定所述目标模拟端口号为所述响应报文的源端口号;
若否,则返回所述从预设的端口范围中,选取未被选取过的端口号作为目标模拟端口号的步骤。
8.根据权利要求7所述的装置,其特征在于,所述本次模拟出的响应报文的报文信息,以及所述请求报文的报文信息,为各自的五元组信息;
所述判断本次模拟出的响应报文与所述请求报文是否由同一物理CPU进行处理,包括:
计算本次模拟出的响应报文的五元组的hash值;
判断所述本次模拟出的响应报文的五元组的hash值,与已计算的所述请求报文的五元组的hash值是否相同;
若相同,则确定所述本次模拟出的响应报文与所述请求报文是由同一物理CPU进行处理的。
9.根据权利要求7所述的装置,其特征在于,所述本次模拟出的响应报文的报文信息,以及所述请求报文的报文信息,为各自的五元组信息;
所述判断本次模拟出的响应报文与所述请求报文是否由同一物理CPU进行处理,包括:
计算本次模拟出的响应报文的五元组的hash值;
根据所述本次模拟出的响应报文的五元组的hash值,和所述网络设备中的物理CPU数量,确定处理本次模拟出的响应报文的物理CPU的标识;
判断所述处理本次模拟出的响应报文的物理CPU的标识,与已保存的处理所述请求报文的物理CPU的标识是否相同;
若相同,则确定所述本次模拟出的响应报文与所述请求报文是由同一物理CPU进行处理的。
10.根据权利要求7所述的装置,其特征在于,所述从预设的端口范围中,选取未被选取过的端口号作为目标模拟端口号,包括:
从预设的端口范围中,随机选取未被选取过的端口号作为目标模拟端口号;
或者,
从预设的端口范围中,基于上次选取的目标模拟端口号,根据预设算法,确定本次选取的目标模拟端口号。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110227541.8A CN113014689B (zh) | 2021-03-01 | 2021-03-01 | 一种网络地址转换的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110227541.8A CN113014689B (zh) | 2021-03-01 | 2021-03-01 | 一种网络地址转换的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113014689A true CN113014689A (zh) | 2021-06-22 |
CN113014689B CN113014689B (zh) | 2023-03-31 |
Family
ID=76387211
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110227541.8A Active CN113014689B (zh) | 2021-03-01 | 2021-03-01 | 一种网络地址转换的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113014689B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112615943A (zh) * | 2020-12-11 | 2021-04-06 | 深圳金信诺高新技术股份有限公司 | 一种用于多cpe测试的地址转换方法及系统 |
CN113507532A (zh) * | 2021-08-24 | 2021-10-15 | 优刻得科技股份有限公司 | 网络地址转换的方法及相应服务器、存储介质和电子设备 |
CN114257545A (zh) * | 2021-12-09 | 2022-03-29 | 北京奇艺世纪科技有限公司 | 一种报文转发方法及装置 |
CN115225733A (zh) * | 2022-02-22 | 2022-10-21 | 北京邮电大学 | 基于直接路由和动态量化解析负载的标识解析方法及装置 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101631075A (zh) * | 2009-08-19 | 2010-01-20 | 杭州华三通信技术有限公司 | 一种报文处理方法和设备 |
CN101635681A (zh) * | 2009-08-18 | 2010-01-27 | 杭州华三通信技术有限公司 | 一种业务处理方法和网络设备 |
CN102710497A (zh) * | 2012-04-24 | 2012-10-03 | 汉柏科技有限公司 | 多核多线程网络设备的报文处理方法及系统 |
CN104468412A (zh) * | 2014-12-04 | 2015-03-25 | 东软集团股份有限公司 | 基于rss的网络会话数据包分发方法及系统 |
CN105634958A (zh) * | 2015-12-24 | 2016-06-01 | 东软集团股份有限公司 | 基于多核系统的报文转发方法和装置 |
CN109218229A (zh) * | 2017-06-30 | 2019-01-15 | 华为技术有限公司 | 一种报文处理方法、网络设备及存储介质 |
US20190205149A1 (en) * | 2019-03-12 | 2019-07-04 | Intel Corporation | Processing vectorized guest physical address translation instructions |
-
2021
- 2021-03-01 CN CN202110227541.8A patent/CN113014689B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101635681A (zh) * | 2009-08-18 | 2010-01-27 | 杭州华三通信技术有限公司 | 一种业务处理方法和网络设备 |
CN101631075A (zh) * | 2009-08-19 | 2010-01-20 | 杭州华三通信技术有限公司 | 一种报文处理方法和设备 |
CN102710497A (zh) * | 2012-04-24 | 2012-10-03 | 汉柏科技有限公司 | 多核多线程网络设备的报文处理方法及系统 |
CN104468412A (zh) * | 2014-12-04 | 2015-03-25 | 东软集团股份有限公司 | 基于rss的网络会话数据包分发方法及系统 |
CN105634958A (zh) * | 2015-12-24 | 2016-06-01 | 东软集团股份有限公司 | 基于多核系统的报文转发方法和装置 |
CN109218229A (zh) * | 2017-06-30 | 2019-01-15 | 华为技术有限公司 | 一种报文处理方法、网络设备及存储介质 |
US20190205149A1 (en) * | 2019-03-12 | 2019-07-04 | Intel Corporation | Processing vectorized guest physical address translation instructions |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112615943A (zh) * | 2020-12-11 | 2021-04-06 | 深圳金信诺高新技术股份有限公司 | 一种用于多cpe测试的地址转换方法及系统 |
CN112615943B (zh) * | 2020-12-11 | 2022-02-22 | 深圳金信诺高新技术股份有限公司 | 一种用于多cpe测试的地址转换方法及系统 |
CN113507532A (zh) * | 2021-08-24 | 2021-10-15 | 优刻得科技股份有限公司 | 网络地址转换的方法及相应服务器、存储介质和电子设备 |
CN114257545A (zh) * | 2021-12-09 | 2022-03-29 | 北京奇艺世纪科技有限公司 | 一种报文转发方法及装置 |
CN114257545B (zh) * | 2021-12-09 | 2023-09-05 | 北京奇艺世纪科技有限公司 | 一种报文转发方法及装置 |
CN115225733A (zh) * | 2022-02-22 | 2022-10-21 | 北京邮电大学 | 基于直接路由和动态量化解析负载的标识解析方法及装置 |
CN115225733B (zh) * | 2022-02-22 | 2024-04-05 | 北京邮电大学 | 基于直接路由和动态量化解析负载的标识解析方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN113014689B (zh) | 2023-03-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113014689B (zh) | 一种网络地址转换的方法和装置 | |
CN101815033B (zh) | 负载均衡的方法、设备及系统 | |
US9942152B2 (en) | Forwarding data packets using a service-based forwarding policy | |
Prabhavat et al. | Effective delay-controlled load distribution over multipath networks | |
US8068417B1 (en) | System, method, and computer program product for processing flow requests based on an associated preference using a single computation | |
US20070214282A1 (en) | Load balancing via rotation of cluster identity | |
CN109361606B (zh) | 一种报文处理系统及网络设备 | |
CN110891019B (zh) | 一种基于负载均衡的数据中心流量调度方法 | |
CN107547391B (zh) | 一种报文传输方法和装置 | |
CN105099944B (zh) | 一种缓存数据的方法及转发设备 | |
CN102447638A (zh) | 负载均衡的方法及转发设备 | |
US9049140B2 (en) | Backbone network with policy driven routing | |
US20200067838A1 (en) | Layer 2 load balancing system | |
CN109040243A (zh) | 一种报文处理方法及装置 | |
US20190394789A1 (en) | Enforcing station fairness with mu-mimo deployments | |
CN107580079A (zh) | 一种报文传输方法和装置 | |
US20220337499A1 (en) | Systems and methods for determining network component scores using bandwidth capacity | |
CN107547346A (zh) | 一种报文传输方法和装置 | |
CN107046503B (zh) | 一种报文传输方法、系统及其装置 | |
CN106101171A (zh) | 服务器连接方法及装置 | |
CN109412976A (zh) | 数据传输方法、装置、系统、服务器、电子设备及介质 | |
CN109981696B (zh) | 一种负载均衡方法、装置及设备 | |
CN110166375A (zh) | 一种报文转发方法及装置 | |
CN113098788B (zh) | 一种路由发布的方法及装置 | |
US10855766B2 (en) | Networking switch with object storage system intelligence |
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 |