CN109379452B - 报文处理方法和nat设备 - Google Patents

报文处理方法和nat设备 Download PDF

Info

Publication number
CN109379452B
CN109379452B CN201811408274.9A CN201811408274A CN109379452B CN 109379452 B CN109379452 B CN 109379452B CN 201811408274 A CN201811408274 A CN 201811408274A CN 109379452 B CN109379452 B CN 109379452B
Authority
CN
China
Prior art keywords
message
address
nat
port number
information
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
Application number
CN201811408274.9A
Other languages
English (en)
Other versions
CN109379452A (zh
Inventor
刘宝春
何军
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.)
Jingdong Technology Holding Co Ltd
Original Assignee
JD Digital Technology Holdings Co Ltd
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 JD Digital Technology Holdings Co Ltd filed Critical JD Digital Technology Holdings Co Ltd
Priority to CN201811408274.9A priority Critical patent/CN109379452B/zh
Publication of CN109379452A publication Critical patent/CN109379452A/zh
Application granted granted Critical
Publication of CN109379452B publication Critical patent/CN109379452B/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/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4641Virtual LANs, VLANs, e.g. virtual private networks [VPN]
    • 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/2521Translation architectures other than single NAT servers
    • H04L61/2532Clique of NAT servers
    • 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/2557Translation policies or rules
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Small-Scale Networks (AREA)

Abstract

本发明实施例公开了一种报文处理方法和NAT设备,其中,所述方法包括:网络地址转换NAT设备获取报文的头信息,所述头信息至少包括所述报文的N元组信息和标记位;其中4≤N≤7中的至少一个整数;所述NAT设备依据所述报文的N元组信息和标记位,在至少两个NAT设备中确定目标NAT设备;和/或,所述NAT设备获取的头信息用于交换机确定目标NAT设备;其中,所述目标NAT设备至少为对所述报文进行地址转换或逆转换的NAT设备。

Description

报文处理方法和NAT设备
技术领域
本发明涉及报文处理技术,具体涉及一种报文处理方法和网络地址转换设备(Network Address Translation,NAT)。
背景技术
NAT设备是一种具备网络地址转换功能的网关设备,能够将私有网际协议(IP)地址转换成公网IP地址,利用公网IP地址将报文发送到外部网络(公有网络)如互联网(Internet)上。
如图1所示,为NAT设备的一种应用场景。客户端使用的网络为私有网络,NAT设备以集群方式出现(即包括两个及以上NAT设备),私有网络内部的一客户端要通过NAT设备访问外部网络时,客户端产生访问数据(报文),并经过头部封装,例如如果私有网络采用虚拟专用网络(VPC)网络,则头部需要经过网络虚似化技术(Vxlan,Virtual Extensible LAN)的头封装,得到经封装之后的报文,交换机根据报文中的四元组或五元组中的元素取值为报文计算出一个哈希值(hash),并将报文传输至与计算出的hash对应的NAT设备,NAT设备将私有网络的IP地址映射为一空闲的公网IP地址,将报文数据的来源端口(客户端上的某个端口)映射为可供外网访问的端口,由此建立起一会话连接。其中,会话连接可视为是一种映射关系,该映射关系可实现私有网络与外部网络之间的正常通信。
以上过程可视为私有网络向外部网络发送的过程,也可视为私有网络出数据的过程。针对私有网络向外部发送的报文,外部网络在存在有针对其的反馈数据(可视为私有网络入数据的过程)时,
在私有网络中,交换机根据反馈数据中的四元组、五元组或六元组中的元素取值为该反馈数据计算出一个hash,并将反馈数据传输至与计算出的hash对应的NAT设备,NAT设备将反馈数据发送至客户端。在实际应用中,因为私有网络采用的网络类型如VPC网络与外部网络采用的网络类型如Internet并不相同,可能导致私有网络发送的报文的四元组或五元组中的元素取值与私有网络接收的反馈数据的四元组或五元组中的元素取值不同,针对发送的报文计算出的hash值与针对接收到的反馈数据的计算出的hash值也不同,由此导致私有网络出数据时使用的NAT设备与针对所述出数据的反馈数据(入数据)时使用的NAT设备可能不是同一NAT设备。如此,便为会话连接带来很大的难度,甚至会话连接无法建立,无法实现私有网络和外部网络之间的正常通信。
发明内容
为解决现有存在的技术问题,本发明实施例提供一种报文处理方法、NAT设备、电子设备及计算机可读存储介质,至少能够保证私有网络的出数据与私有网络接收到的针对该出数据的反馈数据(入数据)能够通过同一NAT设备进行地址转换,实现私有网络和外部网络之间的正常通信。
本发明实施例的技术方案是这样实现的:
本发明实施例提供一种报文处理方法,所述方法包括:
网络地址转换NAT设备获取报文的头信息,所述头信息至少包括所述报文的N元组信息和标记位;其中4≤N≤7,N为一个整数;所述标记位用于表征所述报文为私有网络向外部网络发送的第一类型报文,或用于表征所述报文为外部网络针对所述第一类型报文而反馈回的第二类型报文;
其中,所述第一类型为Vxlan类型,所述第二类型为非Vxlan类型;
所述NAT设备依据所述报文的N元组信息和标记位,在至少两个NAT设备中确定目标NAT设备;和/或,所述NAT设备获取的头信息用于交换机确定目标NAT设备;
其中,所述NAT设备获取的头信息用于交换机确定目标NAT设备,包括:
所述NAT设备依据所述第一类型报文N元组信息中的目的地址和目的端口号信息对获取的头信息进行更新,或依据所述第二类型报文N元组信息中的源IP地址和源端口号信息对获取的头信息进行更新;
所述NAT设备将所述头信息更新后得到的报文发送至所述交换机,以使所述交换机依据所述报文中更新的头信息确定目标NAT设备;
其中,所述目标NAT设备至少为对所述报文进行地址转换或逆转换的NAT设备。
上述方案中,所述方法还包括:
所述NAT设备依据所述标记位,对所述报文的N元组信息进行更新;其中,所述N元组信息至少包括所述报文的源网际协议IP地址、源端口号、目的地址和目的端口号;
所述NAT设备依据所述报文的更新后的N元组信息,在至少两个NAT设备中确定所述报文的目标NAT设备;
和/或,所述更新后的N元组信息用于交换机确定目标NAT设备。
上述方案中,在所述标记位表征为所述报文为私有网络向外部网络发送的第一类型报文时,所述方法包括:
所述NAT设备获取所述第一类型报文的N元组信息中的目的地址和目的端口号信息;依据所述目的地址和目的端口号信息,得到目标NAT设备的标识;确定具有所述标识的NAT设备为所述目标NAT设备;
和/或,
所述NAT设备依据所述目的地址和目的端口号信息,得到所述第一类型报文的新的源端口号;获得所述第一类型报文的新的源IP地址、新的目的地址和新的目的端口号;所述NAT设备发送所述新的源端口号、新的源IP地址、新的目的地址和新的目的端口号至所述交换机,以使所述交换机确定目标NAT设备。
上述方案中,在所述标记位表征为所述报文为外部网络针对所述第一类型报文而反馈回的第二类型报文时,
所述NAT设备获取所述第二类型报文的N元组信息中的源IP地址和源端口号信息;依据源IP地址和源端口号信息,得到目标NAT设备的标识;确定具有所述标识的NAT设备为所述目标NAT设备;
和/或,
所述NAT设备依据源IP地址和源端口号信息,得到所述第二类型报文的新的源端口号;获得所述第二类型报文的新的源IP地址、新的目的地址和新的目的端口号;所述NAT设备发送所述新的源端口号、新的源IP地址、新的目的地址和新的目的端口号至所述交换机,以使所述交换机确定目标NAT设备。
上述方案中,所述方法还包括:
更新所述标记位;
在确定所述NAT设备为目标NAT设备时,
依据更新后的标记位,至少对所述报文进行地址转换或逆转换。
上述方案中,所述确定所述NAT设备为目标NAT设备,包括:
针对所述报文为私有网络向外部网络发送的第一类型报文的情况,所述NAT设备依据所述第一类型报文的N元组信息中的目的地址和目的端口号信息,计算哈希值;
针对所述报文为外部网络针对所述第一类型报文而反馈回的第二类型报文的情况,所述NAT设备依据报文的N元组信息中的源IP地址和源端口号信息,计算哈希值;
将计算出的哈希值与私有网络中存在NAT设备的总数量进行取模运算,得到第一运算结果;
所述NAT设备的虚拟IP地址标识为所述第一运算结果。
本发明实施例提供一种NAT设备,所述设备包括处理器和存储介质;其中,所述存储介质用于存储计算机序;
所述处理器,用于在执行所述存储介质存储的计算机程序时,至少执行以下步骤:
获取报文的头信息,所述头信息至少包括所述报文的N元组信息和标记位;其中4≤N≤7,N为一个整数;所述标记位用于表征所述报文为私有网络向外部网络发送的第一类型报文,或用于表征所述报文为外部网络针对所属第一类型报文而反馈回的第二类型报文;
其中,所述第一类型为Vxlan类型,所述第二类型为非Vxlan类型;
依据所述报文的N元组信息和标记位,在至少两个NAT设备中确定目标NAT设备;和/或,所获取的头信息用于交换机确定目标NAT设备;
其中,所获取的头信息用于交换机确定目标NAT设备,包括:
依据所述第一类型报文N元组信息中的目的地址和目的端口号信息对获取的头信息进行更新,或依据所述第二类型报文N元组信息中的源IP地址和源端口号信息对获取的头信息进行更新;
将所述头信息更新后得到的报文发送至所述交换机,以使所述交换机依据所述报文中更新的头信息确定目标NAT设备;
其中,所述目标NAT设备至少为对所述报文进行地址转换或逆转换的NAT设备。
上述方案中,所述处理器,还用于执行以下步骤:
依据所述标记位,对所述报文的N元组信息进行更新;其中,所述N元组信息至少包括所述报文的源网际协议IP地址、源端口号、目的地址和目的端口号;
依据所述报文的更新后的N元组信息,在至少两个NAT设备中确定所述报文的目标NAT设备;
和/或,所述更新后的N元组信息用于交换机确定目标NAT设备。
上述方案中,所述处理器,还用于执行以下步骤:
在所述标记位表征为所述报文为私有网络向外部网络发送的第一类型报文时,
获取所述第一类型报文的N元组信息中的目的地址和目的端口号信息;依据所述目的地址和目的端口号信息,得到目标NAT设备的标识;确定具有所述标识的NAT设备为所述目标NAT设备;
和/或,
依据所述目的地址和目的端口号信息,得到所述第一类型报文的新的源端口号;获得所述第一类型报文的新的源IP地址、新的目的地址和新的目的端口号;发送所述新的源端口号、新的源IP地址、新的目的地址和新的目的端口号至交换机,以使所述交换机确定目标NAT设备。
上述方案中,所述处理器,还用于执行以下步骤:
在所述标记位表征为所述报文为外部网络针对所述第一类型报文而反馈回的第二类型报文时,
获取所述第二类型报文的N元组信息中的源IP地址和源端口号信息;依据源IP地址和源端口号信息,得到目标NAT设备的标识;确定具有所述标识的NAT设备为所述目标NAT设备;
和/或,
依据源IP地址和源端口号信息,得到所述第二类型报文的新的源端口号;获得所述第二类型报文的新的源IP地址、新的目的地址和新的目的端口号;发送所述新的源端口号、新的源IP地址、新的目的地址和新的目的端口号至交换机,以使所述交换机确定目标NAT设备。
上述方案中,所述处理器,还用于执行以下步骤:
更新所述标记位;
在确定所述NAT设备为目标NAT设备时,
依据更新后的标记位,至少对所述报文进行地址转换或逆转换。
上述方案中,所述处理器,还用于执行以下步骤:
针对所述报文为私有网络向外部网络发送的第一类型报文的情况,依据所述第一类型报文的N元组信息中的目的地址和目的端口号信息,计算哈希值;
针对所述报文为外部网络针对所述第一类型报文而反馈回的第二类型报文的情况,依据报文的N元组信息中的源IP地址和源端口号信息,计算哈希值;
将计算出的哈希值与私有网络中存在NAT设备的总数量进行取模运算,得到第一运算结果;
NAT设备的虚拟IP地址标识为所述第一运算结果。
本发明实施例中还提供了一种电子设备,所述电子设备包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的计算机可执行指令时,实现上述任一项所述的方法的步骤。
本发明实施例中还提供了一种计算机可读存储介质,其上存储有计算机可执行指令,所述计算机可执行指令被执行时用于实现上述任一项所述的方法的步骤。
本发明实施例的报文处理方法、NAT设备、电子设备及计算机可读存储介质,目标NAT设备至少依据报文的N元组信息和标记位来确定;其中,N元组信息中包括用于计算与目标设NAT设备对应的hash的各个元素,依据N元组信息和标记位的结合,至少能够保证私有网络的出数据与私有网络接收到的针对该出数据的反馈数据可经过同一NAT设备,进而方便会话的建立,实现私有网络和外部网络之间的正常通信。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为NAT设备应用于私有网络的一应用场景示意图;
图2为本发明提供的报文处理方法的第一实施例的实现流程示意图;
图3为本发明提供的报文处理方法的第二实施例的实现流程示意图;
图4为本发明提供的报文处理方法的第三实施例的实现流程示意图;
图5为本申请实施例的NAT设备的组成结构示意图一;
图6为本申请实施例的NAT设备的组成结构示意图二。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚明白,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
相关技术中,产生私有网络的出数据经过的NAT设备与私有网络接收到的针对该出数据的反馈数据经过的NAT设备不是同一NAT的这一技术问题的原因在于:出数据的报文的N元组中的元素取值与私有网络接收的反馈数据的N元组中的元素取值不同,由此交换机针对出数据计算出的hash值与针对入数据计算出的hash值不同。其中4≤N≤7中的至少一个整数。
其中,本领域技术人员应该而知,四元组包括:源IP地址、目的IP地址、源端口和目的端口。五元组包括:源IP地址、目的IP地址、协议类型、源端口、目的端口。六元组包括:源媒体接入控制(MAC)地址、源IP地址、目的IP地址、协议类型、源端口、目的端口。六元组:源MAC地址、源IP地址、源端口号、目的MAC地址、目的IP地址和目的端口号。七元组:源MAC地址、源IP地址、源端口号、目的MAC地址、目的IP地址、目的端口号和协议类型。
以五元组为例(对于其它元组的理解请参照五元组的描述),
对于私有网络的出数据而言,源IP地址为产生出数据的客户端使用的私有网络的IP地址,源端口为产生出数据的客户端的端口号,目的地址是私有网络要访问的外部网络的IP地址,目的端口为访问目的地址使用的端口号。协议类型为传输控制协议(TCP,Transmission Control Protocol)或用户数据报协议(User Datagram Protocol,UDP)协议。关于元组中的各个元素的含义说明具体请参见现有相关说明,不赘述。
可以理解,hash值的取值由N元组中的各元素的取值而定。要达到出数据与针对该出数据的入数据经过同一NAT设备进行地址转换的技术效果,至少可从为出数据计算的hash值与为入数据计算的hash值为相同的数值这一角度入手。如何能够使得这两个hash值为相同可参照如下方案描述。
本发明提供的报文处理方法的第一实施例,如图2所示,所述方法包括:
步骤201:获取报文的头信息,所述头信息至少包括所述报文的N元组信息和标记位;
其中,所述N元组信息请参见前述相关说明,不赘述。标记位是为实现本方案可在报文的头信息中增加的比特(bit)位,可占用至少一个比特,具体占用几个bit视具体情况而灵活设定。
步骤202:NAT设备依据所述报文的N元组信息和标记位,在至少两个NAT设备中确定目标NAT设备;和/或,所述NAT设备获取的头信息用于交换机确定目标NAT设备;其中,所述目标NAT设备至少为对所述报文进行地址转换或逆转换的NAT设备。
执行步骤201的主体为NAT设备。执行步骤202的主体可以仅为NAT设备,也可以仅为交换机,还可以同时为NAT设备和交换机。
上述方案中,目标NAT设备至少依据报文的N元组信息和标记位来确定;其中,N元组信息中包括用于计算与目标设NAT设备对应的hash的各个元素,依据N元组信息和标记位的结合,至少能够保证私有网络的出数据与私有网络接收到的针对该出数据的反馈数据可经过同一NAT设备,进而方便会话的建立,实现私有网络和外部网络之间的正常通信。
在一个可选的方案中,所述步骤202还可以包括:
步骤202a:依据所述标记位,对所述报文的N元组信息进行更新;其中,所述N元组信息至少包括所述报文的源网际协议IP地址、源端口号、目的地址和目的端口号;
步骤202b:依据所述报文的更新后的N元组信息,在至少两个NAT设备中确定所述报文的目标NAT设备;和/或,所述更新后的N元组信息用于交换机确定目标NAT设备。
执行步骤202a的主体为NAT设备。执行步骤202b的主体可以仅为NAT设备,也可以仅为交换机,还可以同时为NAT设备和交换机。
在步骤202a和202b中依据根据标记位对报文的N元组信息进行更新,并依据更新后的N元组确定目标NAT设备,至少能够保证私有网络的出数据与私有网络接收到的针对该出数据的反馈数据可经过同一NAT设备。
在一个可选的方案中,所述方法进一步包括(此处针对报文是私有网络的出数据的情况下如何对报文的N元组进行更新并根据更新后的N元组确定目标NAT设备):
在所述标记位表征为所述报文为私有网络向外部网络发送的报文时,
所述NAT设备获取所述报文的N元组信息中的目的地址和目的端口号信息;依据所述目的地址和目的端口号信息,得到目标NAT设备的标识;确定具有所述标识的NAT设备为所述目标NAT设备;
和/或,
所述NAT设备依据所述目的地址和目的端口号信息,得到所述报文的新的源端口号;获得所述报文的新的源IP地址、新的目的地址和新的目的端口号;所述NAT设备发送所述新的源端口号、新的源IP地址、新的目的地址和新的目的端口号至所述交换机,以使所述交换机确定目标NAT设备。
针对私有网络的出数据,至少依据目的地址和目的端口号信息对报文的五元组进行更新,得到更新后的五元组,依据更新后的五元组计算出的目标NAT设备,至少能够保证私有网络的出数据与私有网络接收到的针对该出数据的反馈数据可经过同一NAT设备。
在一个可选的方案中,所述方法进一步包括(此处针对报文是私有网络接收到的针对出数据的反馈数据的情况下如何对报文的N元组进行更新并根据更新后的N元组确定目标NAT设备):
在所述标记位表征为所述报文为外部网络针对报文而反馈回的数据时,
所述NAT设备获取所述报文的N元组信息中的源IP地址和源端口号信息;依据源IP地址和源端口号信息,得到目标NAT设备的标识;确定具有所述标识的NAT设备为所述目标NAT设备;
和/或,
所述NAT设备依据源IP地址和源端口号信息,得到所述报文的新的源端口号;获得所述报文的新的源IP地址、新的目的地址和新的目的端口号;所述NAT设备发送所述新的源端口号、新的源IP地址、新的目的地址和新的目的端口号至所述交换机,以使所述交换机确定目标NAT设备。
针对私有网络的入数据,至少依据源IP地址和源端口号信息对报文的五元组进行更新,得到更新后的五元组,依据更新后的五元组计算出的目标NAT设备。私有网络的出数据和入数据均采用各自的规则对五元组进行更新,并依据更新后的五元组进行目标NAT设备的确定,至少能够保证私有网络的出数据与私有网络接收到的针对该出数据的反馈数据可经过同一NAT设备。
在一个可选的实施例中,所述方法还包括:
更新所述标记位,具体是在更新五元组后对标记位也进行更新;
在确定所述NAT设备为目标NAT设备时,
依据更新后的标记位,至少对所述报文进行地址转换或逆转换。
上述可选方案中,目标NAT设备根据更新后的标记位,确定该报文是私有网络的入数据还是出数据,并执行相应的地址转换或逆转换功能,以将入数据从私有网络发送至外部网络,或使得私有网络中的某个客户端接收来自外部网络的入数据。
下面结合图3所示的应用场景,对本发明实施例的技术方案做详细描述,以帮忙理解本发明。
以私有网络采用VPC网络,集群NAT设备包括NAT 1、NAT 2、NAT 3和NAT 4为例,私有网络的出数据为Vxlan类型的数据。可以理解,根据现有相关网络协议的规定,私有网络的入数据,也即来源于外部网络的针对出数据的反馈数据为非Vxlan类型的数据。
私有网络的出数据过程:
以同一客户端如客户端1访问一次外部网络产生的同一业务流包括多个报文为例,以该同一业务流中的其中一个报文-首报文(报文1)为例,
步骤300:私有网络中的客户端1产生访问数据,并经过Vxlan头封装后得到报文1,并发送报文1至交换机;
这里,对于报文1来说,因为其是Vxlan类型的数据,所以在报文的组成结构上至少包括三部分:IP头部分、UDP头部分以及净荷数据部分。其中,五元组中的源IP地址和目的地址承载在IP头部分;源端口号和目的端口号承载在UDP头部分。将IP头部分和UDP头部分视为报文的头信息。
视此处的报文1的五元组为报文1的初始五元组,其初始五元组中的源IP地址为客户端1使用的私有网络的IP地址,源端口号为客户端1的其中一个端口号,目的地址是客户端1要访问的外部网络的IP地址,目的端口号为访问目的地址使用的端口号。
此外,为报文1设置一个标记位,该标记位至少占用1比特(bit),承载在UDP头部分。该标记位可以取值为第一数值、第二数值和第三数值中的任意一种。例如,第一数值可以为0;第二数值可以为1;第三数值可以为2。
本应用场景中,设置报文1中的标记位的初始值为第一数值0。
标记位取值为不用数值代表着不同的含义,标记位的取值可随着情况的不同发生变化。具体如下所述。
步骤301:交换机根据报文1中的初始五元组中的元素取值得到hash=1,并将报文1发送至与hash=1对应的NAT设备-NAT 1(中间NAT设备);
预先设定,hash=1对应的NAT设备为NAT 1。
步骤302:NAT 1判断接收到的报文1是否为Vxlan类型的数据;
是时执行步骤303;
需要说明的是,私有网络的出数据均为Vxlan类型的数据。
本领域技术人员可以理解,NAT 1是否为最终需要对报文1进行地址转换的NAT设备还需要根据如下方案来确定。
步骤303:NAT 1读取报文1中的标记位;
如果标记位为第一数值如0,则执行步骤304;
步骤304:NAT 1对报文1进行解封装,得到报文1初始五元组中的元素取值,并对报文1的头信息进行更新得到头信息更新后的报文1,并发送头信息更新后的报文1至交换机。
本步骤中,可以理解,更新是对报文1中的五元组及标记位进行更新,对报文中的净荷数据并不需要更新。也就是说,依据该元素取值得到报文1的新的五元组;更新报文1的标记位;并将头信息更新后的报文1发送至交换机。
这里,对报文1进行解封装,得到报文1的初始五元组中的目的地址和目的端口号。基于该目的地址和目的端口号计算hash值,并将该计算出的hash值视为Hashval。并将Hashval值与预定值如0xffff进行预定操作如逻辑与运算得到报文1的新的源端口号;并设置目的端口号为相关协议的规定值4789;将源IP地址设置为其中一个NAT设备的虚拟IP地址(Virtual IP Address,VIP)如NAT 1的VIP地址,将目的IP地址设置为其中一个NAT设备的VIP地址,优选为与前述源IP地址使用的VIP地址不同的NAT的VIP地址如NAT 2的VIP地址。
其中,相关协议规定,Vxlan类型的报文均使用端口号为4789的端口进行传输。本方案中,私有网络中的各个NAT设备使用不同的VIP地址。
本领域技术人员应该理解,此处相当于对报文1的初始五元组进行了更新,得到报文1的新的五元组。因为私有网络要发送的报文的五元组中的元素发生了变化,所以标记位也随之进行更新,将标记位从0更新为1。五元组和标记位进行了更新相当于报文1的IP头和UDP头这两个部分进行了更新,报文1的净荷数据没有发生更新。
步骤305:根据报文1中的更新后的五元组,交换机重新计算hash值;并将报文1发送至与该重新计算得出的hash值对应的NAT设备;
假定重新计算得出的hash值=2,hash值=2对应的NAT设备为NAT 2,交换机将头信息发生更新的报文1发送至NAT 2。
步骤306:NAT 2读取头信息发生更新的报文1的标记位;
如果标记位为第二数值1,则认为该报文1是五元组已经发生更新的报文,执行步骤307;
步骤307:NAT 2确定自身为需要对报文1进行地址转换的NAT设备(目标NAT设备),执行NAT的地址转换功能;
执行NAT的地址转换功能可以是:解封装Vxlan头部信息,根据五元组信息,查询会话(session),如果session存在,当将session视为一种地址转换映射关系时,直接通过session进行地址转换后,利用转换后的公网地址和目的端口号将报文1发送到外部网络。如果session不存在,则建立session,执行地址转换功能,利用转换后的公网地址和目的端口号将报文1发送到外部网络。
上述执行NAT的地址转换功能的具体过程请参见现有相关描述,此处不做重点说明。
上述方案中描述的是对客户端1访问外部网络的同一业务流中的其中一个报文-首报文(报文1)的处理流程的描述,对该同一业务流中的剩余报文逐一进行如上方案的处理,便可将客户端1访问外部网络的同一业务流中的所有报文均发送至外部网络中去。需要说明的是,不论是该同一业务流中的哪个报文,均需设置标记位的初始值为0,以表明该报文为私有网络的客户端产生的访问数据、其五元组是还未发生更新的初始五元组。
本领域技术人员可以理解,上述方案中描述的是对客户端1访问外部网络的同一业务流中的其中一个报文-首报文(报文1)的处理流程的描述,对于该同一业务流中的其它报文、以及客户端1对外部网络访问产生的其它业务流和其它客户端对外部网络访问产生的业务流中的报文的处理流程与前述方案相同,此处不做类似描述。
在私有网络将客户端1访问外部网络的同一业务流中的各个报文按照步骤300~307的方案发送出去之后,外部网络针对私有网络所发送的这些数据存在反馈数据。针对这些反馈数据的处理流程是:
以针对出数据-报文1的反馈数据-报文1’为例进行说明:
步骤400:交换机接收外部网络的反馈数据-报文1’,根据报文1’中的(初始)五元组,计算hash值;并将报文1’发送至与该hash值对应的NAT设备(中间NAT设备)中。
这里,将交换机接收到的反馈数据-报文1’中的五元组视为反馈报文的初始五元组。假定此处计算出的hash=1,对应的NAT为NAT 1。
步骤401:NAT 1判断接收到的报文1’是否为Vxlan类型的数据;
判断为不是Vxlan类型的数据时,执行步骤402;
可以理解,相关协议规定:外部网络发送至私有网络的数据不是Vxlan类型的数据。
步骤402:NAT 1对报文1’进行解封装,得到报文1’的初始五元组中的元素取值,并对报文1’的头信息进行更新得到头信息更新后的报文1’,并发送头信息更新后的报文1’至交换机。
这里,对报文1’进行解封装,得到报文1’的初始五元组中的源IP地址和源端口号。基于该源IP地址和源端口号计算hash值,并将该计算出的hash值视为Hashval。并将Hashval值与预定值如0xffff进行预定操作如逻辑与运算得到报文1的新的源端口号;并设置目的端口号为相关协议的规定值4789;将源IP地址设置为其中一个NAT设备的VIP地址如NAT 1的VIP地址,将目的IP地址设置为其中一个NAT设备的VIP地址,优选为与前述源IP地址使用的VIP地址不同的NAT的VIP地址如NAT 2的VIP地址。
报文1’虽然不是Vxlan类型的数据,但仍然需要在报文1’中设置标记位,并赋值标记位为第三数值2。
其中,可以理解,报文的标记位的取值为0相当于报文是私有网络的出数据且五元组未经过更新的数据;报文的标记位的取值为1相当于报文是私有网络的出数据且五元组是已经经过更新的数据;报文的标记位的取值为2相当于报文是私有网络的入数据且五元组是已经经过更新的数据。
还可以理解,五元组和标记位进行了更新相当于报文1’的IP头和UDP头这两个部分进行了更新,报文1’的净荷数据没有发生更新。
步骤403:根据报文1’中的更新后的五元组,交换机重新计算hash值;并将报文1’发送至与该重新计算得出的hash值对应的NAT设备;
假定重新计算得出的hash值=2,hash值=2对应的NAT设备为NAT 2,交换机将头信息发生更新的报文1’发送至NAT 2。
步骤404:NAT 2读取头信息发生更新的报文1’的标记位;
如果标记位为第三数值2,则认为该报文1’是五元组已经发生更新的私有网络的入数据,执行步骤405;
步骤405:NAT 2确定自身为需要对报文1’进行地址转换的NAT设备(目标NAT设备),执行NAT的地址逆转换功能;
步骤406:NAT 2将报文1’发送至目标客户端,目标客户端接收报文1’;
可以理解,目标客户端为期望接收反馈数据的客户端。
其中,执行NAT的地址逆转换功能可以是:解封装Vxlan头部信息,根据五元组信息,查询会话(session),如果session存在,当将session视为一种地址逆转换映射关系时,直接通过session进行地址逆转换后,将报文1’发送至相应的客户端。如果session不存在,则丢弃报文1’。上述执行NAT的地址逆转换功能的具体过程请参见现有相关描述,此处不做重点说明。其中,本领域技术人员应该而知,地址转换(映射)可以是从源IP地址映射到目的地址、从源端口号映射到目的端口号的过程,而地址逆转换(映射)则是从目的地址映射到源IP地址、从目的端口号映射到源端口号的过程。
前述方案中,关于hash值的计算,VIP地址的概念等相关描述参见现有相关说明,此处不赘述。
上述方案中描述的是私有网络接收到外部网络针对对客户端1访问外部网络的同一业务流中的其中一个报文而返回的反馈数据的处理过程,对该业务流的其它报文的反馈数据的处理流程如上方案的处理,如此,客户端便可将外部网络反馈回的所有的反馈数据。
从步骤304和步骤402可看出,出数据的五元组的更新是利用出数据的初始五元组中目的地址和目的端口号;入数据的五元组的更新是利用入数据的初始五元组中源IP地址和源端口号。本领域技术人员可以理解,同一客户端发送的出数据使用的目的地址、目的端口号和该客户端接收针对该出数据的入数据使用的源IP地址、源端口号为相同,均为该客户端访问的外部网络的IP地址和访问该IP地址使用的端口号。由此,便可保证为出数据计算的hash值与为该出数据的反馈数据-入数据计算的hash值为相同的数值,如此,可达到私有网络的出数据与针对该出数据的入数据可经过同一NAT设备进行地址转换的技术效果,进而实现私有网络和外部网络之间的正常通信。
在一个可选的实施例中,每个NAT设备可包括至少两个处理器(CORE),本方案中,利用前述方案,可达到私有网络的出数据与针对该出数据的入数据经过同一NAT设备的同一CORE。如此,便可保证对出数据、入数据的独立处理如查询、维护等。
此外,根据前述的方案可以理解,交换机根据报文1或报文1’的初始五元组中的元素计算出的NAT设备,可能是需要进行地址转换或逆转换的设备,也可能不是需要进行地址转换或逆转换的设备,也就是说,交换机根据报文的初始五元组计算出的NAT设备可能与根据报文的更新后的五元组计算出的NAT设备相同,也可能不同。如果将根据报文的初始五元组计算出的NAT设备视为中间NAT设备,将进行地址转换或逆转换的设备作为目标NAT设备。
在本方案中,可以采用如下方案进行中间NAT设备与目标NAT设备是否是同一NAT设备。且该过程由中间NAT设备来执行:
针对出数据来说,中间NAT设备基于出数据的初始五元组中的目的地址和目的端口号。基于该目的地址和目的端口号计算hash值,并将该计算出的hash值视为中间值Hashval。
针对入数据来说,中间NAT设备基于入数据的初始五元组的源IP地址和源端口号计算hash值,并将该计算出的hash值视为中间值Hashval。
中间NAT设备将Hashval值与私有网络中的NAT设备的总数量M做取模运算,得到数值P;私有网络中的各个NAT设备中,VIP地址取值为P的NAT设备即可为目标NAT设备。如果中间NAT设备经过如上的计算得出目标NAT设备即为自身,那么在对报文的头信息进行更新之后,无需再将头信息更新的报文发送至交换机进行目标NAT设备的计算,中间NAT设备确定自身为需要对该报文进行地址转换或逆转换的NAT设备,执行地址转换或逆转换流程即可。可避免报文不必要的从一个NAT设备-交换机-该NAT设备的传输流程,也可以避免报文由于在不同设备间传输而产生的对带宽资源的占用。
本发明实施例还提供一种NAT设备700,如图5所示,所述NAT设备700包括处理器701和存储介质702;其中,所述存储介质702用于存储计算机程序;
所述处理器701,用于在执行所述存储介质702存储的计算机程序时,至少执行以下步骤:
获取报文的头信息,所述头信息至少包括所述报文的N元组信息和标记位;其中4≤N≤7中的至少一个整数;
依据所述报文的N元组信息和标记位,在至少两个NAT设备中确定目标NAT设备;和/或,所获取的头信息用于交换机确定目标NAT设备;其中,所述目标NAT设备至少为对所述报文进行地址转换或逆转换的NAT设备。
其中,所述处理器701,还用于执行以下步骤:
依据所述标记位,对所述报文的N元组信息进行更新;其中,所述N元组信息至少包括所述报文的源网际协议IP地址、源端口号、目的地址和目的端口号;
依据所述报文的更新后的N元组信息,在至少两个NAT设备中确定所述报文的目标NAT设备;
和/或,所述更新后的N元组信息用于交换机确定目标NAT设备。
其中,所述处理器701,还用于执行以下步骤:
在所述标记位表征为所述报文为私有网络向外部网络发送的报文时,
获取所述报文的N元组信息中的目的地址和目的端口号信息;依据所述目的地址和目的端口号信息,得到目标NAT设备的标识;确定具有所述标识的NAT设备为所述目标NAT设备;
和/或,
依据所述目的地址和目的端口号信息,得到所述报文的新的源端口号;获得所述报文的新的源IP地址、新的目的地址和新的目的端口号;发送所述新的源端口号、新的源IP地址、新的目的地址和新的目的端口号至交换机,以使所述交换机确定目标NAT设备。
其中,所述处理器701,还用于执行以下步骤:
在所述标记位表征为所述报文为外部网络针对报文而反馈回的数据时,
获取所述报文的N元组信息中的源IP地址和源端口号信息;依据源IP地址和源端口号信息,得到目标NAT设备的标识;确定具有所述标识的NAT设备为所述目标NAT设备;
和/或,
依据源IP地址和源端口号信息,得到所述报文的新的源端口号;获得所述报文的新的源IP地址、新的目的地址和新的目的端口号;发送所述新的源端口号、新的源IP地址、新的目的地址和新的目的端口号至交换机,以使所述交换机确定目标NAT设备。
其中,所述处理器701,还用于执行以下步骤:
更新所述标记位;
在确定所述NAT设备为目标NAT设备时,
依据更新后的标记位,至少对所述报文进行地址转换或逆转换。
其中,所述处理器701,还用于执行以下步骤:
针对所述报文为私有网络向外部网络发送的报文的情况,依据报文的N元组信息中的目的地址和目的端口号信息,计算哈希值;
针对所述报文为外部网络针对报文而反馈回的数据的情况,依据报文的N元组信息中的源IP地址和源端口号信息,计算哈希值;
将计算出的哈希值与私有网络中存在NAT设备的总数量进行取模运算,得到第一运算结果;
NAT设备的虚拟IP地址标识为所述第一运算结果。
本发明实施例的电子设备还可以如图6所示,NAT设备700包括:至少一个处理器701、存储介质702、至少一个网络接口704和用户接口703。电子设备700中的各个组件通过总线系统705耦合在一起。可理解,总线系统705用于实现这些组件之间的连接通信。总线系统705除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图6中将各种总线都标为总线系统705。
其中,用户接口703可以包括显示器、键盘、鼠标、轨迹球、点击轮、按键、按钮、触感板或者触摸屏等。
可以理解,存储介质702可以是易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(ROM,Read OnlyMemory)、可编程只读存储器(PROM,Programmable Read-Only Memory)、可擦除可编程只读存储器(EPROM,Erasable Programmable Read-Only Memory)、电可擦除可编程只读存储器(EEPROM,Electrically Erasable Programmable Read-Only Memory)、磁性随机存取存储器(FRAM,ferromagnetic random access memory)、快闪存储器(Flash Memory)、磁表面存储器、光盘、或只读光盘(CD-ROM,Compact Disc Read-Only Memory);磁表面存储器可以是磁盘存储器或磁带存储器。易失性存储器可以是随机存取存储器(RAM,Random AccessMemory),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(SRAM,Static Random Access Memory)、同步静态随机存取存储器(SSRAM,Synchronous Static Random Access Memory)、动态随机存取存储器(DRAM,Dynamic Random Access Memory)、同步动态随机存取存储器(SDRAM,SynchronousDynamic Random Access Memory)、双倍数据速率同步动态随机存取存储器(DDRSDRAM,Double Data Rate Synchronous Dynamic Random Access Memory)、增强型同步动态随机存取存储器(ESDRAM,Enhanced Synchronous Dynamic Random Access Memory)、同步连接动态随机存取存储器(SLDRAM,SyncLink Dynamic Random Access Memory)、直接内存总线随机存取存储器(DRRAM,Direct Rambus Random Access Memory)。本发明实施例描述的存储介质702旨在包括但不限于这些和任意其它适合类型的存储器。
本发明实施例中的存储介质702用于存储各种类型的数据以支持电子设备700的操作。这些数据的示例包括:用于在电子设备700上操作的任何计算机程序,如操作系统7021和应用程序7022。其中,操作系统7021包含各种系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务。应用程序7022可以包含各种应用程序,例如媒体播放器(Media Player)、浏览器(Browser)等,用于实现各种应用业务。实现本发明实施例方法的程序可以包含在应用程序7022中。
上述本发明实施例揭示的方法可以应用于处理器701中,或者由处理器701实现。处理器701可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器701中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器701可以是通用处理器、数字信号处理器(DSP,Digital Signal Processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。处理器701可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本发明实施例所公开的方法的步骤,可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于存储介质中,该存储介质位于存储介质702,处理器701读取存储介质702中的信息,结合其硬件完成前述方法的步骤。
本申请实施例还提供一种存储介质,所述存储介质可以为图5和6中的存储介质702,用于存储计算机程序,该计算机程序被执行时执行前述的报文处理方法。
需要说明的是,本发明实施例提供的NAT设备,由于该NAT设备解决问题的原理与前述的报文处理方法相似,因此,NAT设备的实施过程及实施原理均可以参见前述报文处理方法的实施过程及实施原理描述,重复之处不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元,即可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
另外,在本发明各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
或者,本发明上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

Claims (14)

1.一种报文处理方法,其特征在于,所述方法包括:
网络地址转换NAT设备获取报文的头信息,所述头信息至少包括所述报文的N元组信息和标记位;其中4≤N≤7,N为一个整数;所述标记位用于表征所述报文为私有网络向外部网络发送的第一类型报文,或用于表征所述报文为外部网络针对所述第一类型报文而反馈回的第二类型报文;
其中,所述第一类型为Vxlan类型,所述第二类型为非Vxlan类型;
所述NAT设备依据所述报文的N元组信息和标记位,在至少两个NAT设备中确定目标NAT设备;和/或,所述NAT设备获取的头信息用于交换机确定目标NAT设备;
其中,所述NAT设备获取的头信息用于交换机确定目标NAT设备,包括:
所述NAT设备依据所述第一类型报文N元组信息中的目的地址和目的端口号信息对获取的头信息进行更新,或依据所述第二类型报文N元组信息中的源IP地址和源端口号信息对获取的头信息进行更新;
所述NAT设备将所述头信息更新后得到的报文发送至所述交换机,以使所述交换机依据所述报文中更新的头信息确定目标NAT设备;
其中,所述目标NAT设备至少为对所述报文进行地址转换或逆转换的NAT设备。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述NAT设备依据所述标记位,对所述报文的N元组信息进行更新;其中,所述N元组信息至少包括所述报文的源网际协议IP地址、源端口号、目的地址和目的端口号;
所述NAT设备依据所述报文的更新后的N元组信息,在至少两个NAT设备中确定所述报文的目标NAT设备;
和/或,所述更新后的N元组信息用于交换机确定目标NAT设备。
3.根据权利要求2所述的方法,其特征在于,在所述标记位表征为所述报文为私有网络向外部网络发送的第一类型报文时,所述方法包括:
所述NAT设备获取所述第一类型报文的N元组信息中的目的地址和目的端口号信息;依据所述目的地址和目的端口号信息,得到目标NAT设备的标识;确定具有所述标识的NAT设备为所述目标NAT设备;
和/或,
所述NAT设备依据所述目的地址和目的端口号信息,得到所述第一类型报文的新的源端口号;获得所述第一类型报文的新的源IP地址、新的目的地址和新的目的端口号;所述NAT设备发送所述新的源端口号、新的源IP地址、新的目的地址和新的目的端口号至所述交换机,以使所述交换机确定目标NAT设备。
4.根据权利要求2所述的方法,其特征在于,在所述标记位表征为所述报文为外部网络针对所述第一类型报文而反馈回的第二类型报文时,
所述NAT设备获取所述第二类型报文的N元组信息中的源IP地址和源端口号信息;依据源IP地址和源端口号信息,得到目标NAT设备的标识;确定具有所述标识的NAT设备为所述目标NAT设备;
和/或,
所述NAT设备依据源IP地址和源端口号信息,得到所述第二类型报文的新的源端口号;获得所述第二类型报文的新的源IP地址、新的目的地址和新的目的端口号;所述NAT设备发送所述新的源端口号、新的源IP地址、新的目的地址和新的目的端口号至所述交换机,以使所述交换机确定目标NAT设备。
5.根据权利要求1至4任一项所述的方法,其特征在于,所述方法还包括:
更新所述标记位;
在确定所述NAT设备为目标NAT设备时,
依据更新后的标记位,至少对所述报文进行地址转换或逆转换。
6.根据权利要求5所述的方法,其特征在于,所述确定所述NAT设备为目标NAT设备,包括:
针对所述报文为私有网络向外部网络发送的第一类型报文的情况,所述NAT设备依据所述第一类型报文的N元组信息中的目的地址和目的端口号信息,计算哈希值;
针对所述报文为外部网络针对所述第一类型报文而反馈回的第二类型报文的情况,所述NAT设备依据报文的N元组信息中的源IP地址和源端口号信息,计算哈希值;
将计算出的哈希值与私有网络中存在NAT设备的总数量进行取模运算,得到第一运算结果;
所述NAT设备的虚拟IP地址标识为所述第一运算结果。
7.一种NAT设备,其特征在于,所述设备包括处理器和存储介质;其中,所述存储介质用于存储计算机序;
所述处理器,用于在执行所述存储介质存储的计算机程序时,至少执行以下步骤:
获取报文的头信息,所述头信息至少包括所述报文的N元组信息和标记位;其中4≤N≤7,N为一个整数;所述标记位用于表征所述报文为私有网络向外部网络发送的第一类型报文,或用于表征所述报文为外部网络针对所述第一类型报文而反馈回的第二类型报文;
其中,所述第一类型为Vxlan类型,所述第二类型为非Vxlan类型;
依据所述报文的N元组信息和标记位,在至少两个NAT设备中确定目标NAT设备;和/或,所获取的头信息用于交换机确定目标NAT设备;
其中,所获取的头信息用于交换机确定目标NAT设备,包括:
依据所述第一类型报文N元组信息中的目的地址和目的端口号信息对获取的头信息进行更新,或依据所述第二类型报文N元组信息中的源IP地址和源端口号信息对获取的头信息进行更新;
将所述头信息更新后得到的报文发送至所述交换机,以使所述交换机依据所述报文中更新的头信息确定目标NAT设备;
其中,所述目标NAT设备至少为对所述报文进行地址转换或逆转换的NAT设备。
8.根据权利要求7所述的NAT设备,其特征在于,所述处理器,还用于执行以下步骤:
依据所述标记位,对所述报文的N元组信息进行更新;其中,所述N元组信息至少包括所述报文的源网际协议IP地址、源端口号、目的地址和目的端口号;
依据所述报文的更新后的N元组信息,在至少两个NAT设备中确定所述报文的目标NAT设备;
和/或,所述更新后的N元组信息用于交换机确定目标NAT设备。
9.根据权利要求8所述的NAT设备,其特征在于,所述处理器,还用于执行以下步骤:
在所述标记位表征为所述报文为私有网络向外部网络发送的第一类型报文时,
获取所述第一类型报文的N元组信息中的目的地址和目的端口号信息;依据所述目的地址和目的端口号信息,得到目标NAT设备的标识;确定具有所述标识的NAT设备为所述目标NAT设备;
和/或,
依据所述目的地址和目的端口号信息,得到所述第一类型报文的新的源端口号;获得所述第一类型报文的新的源IP地址、新的目的地址和新的目的端口号;发送所述新的源端口号、新的源IP地址、新的目的地址和新的目的端口号至交换机,以使所述交换机确定目标NAT设备。
10.根据权利要求8所述的NAT设备,其特征在于,所述处理器,还用于执行以下步骤:
在所述标记位表征为所述报文为外部网络针对所述第一类型报文而反馈回的第二类型报文时,
获取所述第二类型报文的N元组信息中的源IP地址和源端口号信息;依据源IP地址和源端口号信息,得到目标NAT设备的标识;确定具有所述标识的NAT设备为所述目标NAT设备;
和/或,
依据源IP地址和源端口号信息,得到所述第二类型报文的新的源端口号;获得所述第二类型报文的新的源IP地址、新的目的地址和新的目的端口号;发送所述新的源端口号、新的源IP地址、新的目的地址和新的目的端口号至交换机,以使所述交换机确定目标NAT设备。
11.根据权利要求7至10任一项所述的NAT设备,其特征在于,所述处理器,还用于执行以下步骤:
更新所述标记位;
在确定所述NAT设备为目标NAT设备时,
依据更新后的标记位,至少对所述报文进行地址转换或逆转换。
12.根据权利要求11所述的NAT设备,其特征在于,所述处理器,还用于执行以下步骤:
针对所述报文为私有网络向外部网络发送的第一类型报文的情况,依据所述第一类型报文的N元组信息中的目的地址和目的端口号信息,计算哈希值;
针对所述报文为外部网络针对所述第一类型报文而反馈回的第二类型报文的情况,依据报文的N元组信息中的源IP地址和源端口号信息,计算哈希值;
将计算出的哈希值与私有网络中存在NAT设备的总数量进行取模运算,得到第一运算结果;
NAT设备的虚拟IP地址标识为所述第一运算结果。
13.一种电子设备,其特征在于,所述电子设备包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的计算机可执行指令时,实现权利要求1至6任一项所述的报文处理方法。
14.一种计算机可读存储介质,其特征在于,其上存储有计算机可执行指令,所述计算机可执行指令被执行时用于实现权利要求1至6任一项所述的报文处理方法。
CN201811408274.9A 2018-11-23 2018-11-23 报文处理方法和nat设备 Active CN109379452B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811408274.9A CN109379452B (zh) 2018-11-23 2018-11-23 报文处理方法和nat设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811408274.9A CN109379452B (zh) 2018-11-23 2018-11-23 报文处理方法和nat设备

Publications (2)

Publication Number Publication Date
CN109379452A CN109379452A (zh) 2019-02-22
CN109379452B true CN109379452B (zh) 2021-03-30

Family

ID=65383703

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811408274.9A Active CN109379452B (zh) 2018-11-23 2018-11-23 报文处理方法和nat设备

Country Status (1)

Country Link
CN (1) CN109379452B (zh)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105681198A (zh) * 2014-11-21 2016-06-15 华为技术有限公司 一种业务链处理方法、设备及系统

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060206706A1 (en) * 2005-03-14 2006-09-14 Bryan Dietz Method and apparatus for dynamically distributing data flow in a communication network
CN1863152B (zh) * 2005-09-28 2010-05-05 华为技术有限公司 内网用户之间传递各种报文的方法
CN102299861B (zh) * 2011-09-22 2015-09-02 迈普通信技术股份有限公司 一种报文流量控制方法
US9130775B2 (en) * 2013-07-10 2015-09-08 Cisco Technology, Inc. Support for virtual extensible local area network segments across multiple data center sites
CN104333612B (zh) * 2014-10-29 2017-12-12 中国联合网络通信集团有限公司 转换网络地址的方法和装置
CN106899710B (zh) * 2017-04-26 2020-11-13 优刻得科技股份有限公司 Ip地址转换方法、ip地址转换装置以及网关系统
CN108011991B (zh) * 2017-11-30 2021-12-07 新华三技术有限公司 数据流转发方法、主控板、接口板、引擎板及分布式防火墙

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105681198A (zh) * 2014-11-21 2016-06-15 华为技术有限公司 一种业务链处理方法、设备及系统

Also Published As

Publication number Publication date
CN109379452A (zh) 2019-02-22

Similar Documents

Publication Publication Date Title
US20190190770A1 (en) Enhanced Network Virtualization using Metadata in Encapsulation Header
TWI744359B (zh) 一種資料傳輸的方法及網路設備
CN106533890B (zh) 一种报文处理方法、装置及系统
US10237130B2 (en) Method for processing VxLAN data units
US10516544B2 (en) Extranet connectivity in LISP networks
US11956100B1 (en) System for scaling network address translation (NAT) and firewall functions
US9106257B1 (en) Checksumming encapsulated network packets
CN113014692A (zh) 一种网络地址转换方法、装置、设备及存储介质
US10999239B2 (en) Stateful LISP subscription for overlapping subnetworks
US20220360577A1 (en) Systems and methods for applying attestation tokens to lisp messages
US9525661B2 (en) Efficient method of NAT without reassemling IPV4 fragments
CN110545230A (zh) 用于转发vxlan报文的方法和装置
CN112565018B (zh) 一种流量统计方法、装置,网关设备及存储介质
US8509235B2 (en) Layer-2 packet return in proxy-router communication protocol environments
CN109379452B (zh) 报文处理方法和nat设备
EP3494672B1 (en) Techniques for interconnection of controller-and protocol-based virtual networks
US20230171673A1 (en) Method and system for routing an internet protocol data packet between wireless computer devices connected to a cellular network
US20170339055A1 (en) Communication device and communication method
CN111988154B (zh) 一种网络传输加速的方法、装置及计算机可读存储介质
CN112511440A (zh) 报文转发方法、系统、存储介质和电子设备
CN113114565A (zh) 数据报文转发方法及装置、存储介质及电子设备
CN116566911A (zh) 负载均衡方法、装置、电子设备及计算机可读存储介质
US8438255B2 (en) Unit and method for managing at least one channel in an access session for accessing a service in a network
CN114928589A (zh) 数据传输方法、数据传输装置、计算机可读介质及设备
CN115883491A (zh) 报文转发方法、装置、电子设备和计算机可读介质

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
CB02 Change of applicant information
CB02 Change of applicant information

Address after: Room 221, 2nd floor, Block C, 18 Kechuang 11th Street, Daxing Economic and Technological Development Zone, Beijing, 100176

Applicant after: Jingdong Digital Technology Holding Co., Ltd.

Address before: Room 221, 2nd floor, Block C, 18 Kechuang 11th Street, Daxing Economic and Technological Development Zone, Beijing, 100176

Applicant before: Beijing Jingdong Financial Technology Holding Co., Ltd.

GR01 Patent grant
GR01 Patent grant
CP01 Change in the name or title of a patent holder
CP01 Change in the name or title of a patent holder

Address after: Room 221, 2nd floor, Block C, 18 Kechuang 11th Street, Daxing Economic and Technological Development Zone, Beijing, 100176

Patentee after: Jingdong Technology Holding Co.,Ltd.

Address before: Room 221, 2nd floor, Block C, 18 Kechuang 11th Street, Daxing Economic and Technological Development Zone, Beijing, 100176

Patentee before: JINGDONG DIGITAL TECHNOLOGY HOLDINGS Co.,Ltd.