CN107241453B - 一种网络地址转换映射保活方法及装置 - Google Patents
一种网络地址转换映射保活方法及装置 Download PDFInfo
- Publication number
- CN107241453B CN107241453B CN201610184480.0A CN201610184480A CN107241453B CN 107241453 B CN107241453 B CN 107241453B CN 201610184480 A CN201610184480 A CN 201610184480A CN 107241453 B CN107241453 B CN 107241453B
- Authority
- CN
- China
- Prior art keywords
- address
- equipment
- current
- intranet
- mapping
- 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
- 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/2521—Translation architectures other than single NAT servers
-
- 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/2557—Translation policies or rules
-
- 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/255—Maintenance or indexing of mapping tables
- H04L61/2553—Binding renewal aspects, e.g. using keep-alive messages
-
- 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
-
- 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/14—Session management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/12—Network monitoring probes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0227—Filtering policies
- H04L63/0236—Filtering by address, protocol, port number or service, e.g. IP-address or URL
-
- 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/12—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Small-Scale Networks (AREA)
Abstract
本发明实施例提供一种网络地址转换映射保活方法及装置,实现了不需要资源受限节点频繁发送心跳消息来维持地址映射关系的保活,且保证了资源受限节点的安全性。该方法包括:网络地址转换NAT设备接收内网设备发送的探测请求,探测请求包括内网设备的私网地址;NAT设备向内网设备发送探测响应,探测响应携带指示信息,用于指示内网设备不主动发起心跳消息来维持网络地址转换映射保活;并从地址资源池中为内网设备分配至少两个公网地址,在后续内网设备与外网设备的会话过程的每一时间段,NAT设备将至少两个公网地址中的一个公网地址,作为在每一时间段内的当前激活地址,用于将内网设备的私网地址映射为当前激活地址。
Description
技术领域
本发明实施例涉及通信技术领域,尤其涉及一种网络地址转换映射保活方法及装置。
背景技术
物联网(英文:Internet of things,简称:IoT)的出现,给人们的生活带来了便利。IoT领域存在着大量的资源受限节点(Constrained Node),其主要表现在低能耗、低存储以及低的资源计算处理能力上。资源受限节点的低的资源处理能力,导致资源受限节点在安全方面面临的很多威胁,例如:IP网络协议加密方式主要是基于密钥和随机数,而互联网工程任务组(IETF)推荐的密钥长度是112bits,但是资源受限节点无法保存和处理这么长的密钥。
现有针对节点的安全性考虑,现有技术中采用网络地址转换(Network AddressTranslation,简称:NAT)技术,具体是NAT设备将内部设备网络地址与外部设备网络地址形成映射,既能减少外部设备网络地址的需求,又能够隐藏内部设备网络地址,起到安全隔离作用。
目前NAT技术中一般采用如下三种映射,包括端点独立映射(Endpoint-Independent Mapping)、地址依赖性映射(Address-Dependent Mapping)、地址和端口依赖性映射(Address and Port-Dependent Mapping)。
端点独立映射,是指对于从相同内部IP地址与端口发往任何外部IP地址与端口的数据包,都将该内部IP地址与端口映射为同一外部IP地址与端口。
地址依赖性映射,是指对于从相同内部IP地址与端口发往同一外部IP地址的数据包,不管外部端口号是多少,都将该内部IP地址与端口映射为同一外部IP地址与端口。
地址和端口依赖性映射,是指对于从相同内部IP地址与端口发往同一外部IP地址与端口的包,都将该内部IP地址与端口映射为同一外部IP地址与端口。
不论NAT采用NAT技术中哪种映射方式,都会对内部设备对应的内网地址分配一个对应的外部设备的外网地址;同时需要维持外网地址与外网地址映射关系的保活。
但是当前NAT技术需要内部设备发送心跳消息来维持地址映射关系的保活。并且如果使用NAT技术来屏蔽资源受限节点的IP地址来提高安全性,但是用户数据报协议(英文:User Datagram Protocol,简称:UDP)场景下,频繁的发送心跳消息来维持地址映射关系的映射对于低能耗的资源受限节点来说是不可能接受的。在传输控制协议(英文:Transmission Control Protocol,简称:TCP)场景下,长时间连接状态会使得资源受限节点在长时间内的外部映射地址固定,使得外部攻击者更容易窃取地址来发送伪造消息,降低了资源受限节点的安全性。
发明内容
本发明实施例提供一种网络地址转换映射保活方法及装置,实现了不需要资源受限节点频繁发送心跳消息来维持地址映射关系的保活,且保证了资源受限节点的安全性。
第一方面,本发明实施例提供了一种网络地址转换映射保活方法,包括:
NAT设备接收内网设备发送的探测请求,所述探测请求包括所述内网设备的私网地址;
所述NAT设备在接收到所述探测请求后,向所述内网设备发送探测响应,所述探测响应携带指示信息,所述指示信息用于指示所述内网设备不主动发起心跳消息来维持网络地址转换映射保活;并
从地址资源池中包括的空闲的公网地址中为所述内网设备分配至少两个公网地址,在后续所述内网设备与外网设备的会话过程的每一时间段,所述NAT设备将所述至少两个公网地址中的一个公网地址,作为在所述每一时间段内的当前激活地址,用于将所述内网设备的私网地址映射为所述当前激活地址。
本发明实施例中,NAT设备在首次接收到内网设备发送的请求时,针对内网地址分配至少两个公网地址,并将所述至少两个公网地址循环激活并将激活的地址作为内网设备的私网地址所映射的公网地址,从而内网设备不需要发送心跳消息来维持网络地址映射保活,达到了减少内网设备的能源消耗,由于采用循环激活,使得在内网设备与外网设备的会话过程中,内网设备的私网地址所映射的公网地址不固定,降低了外部网络设备获取私网地址所映射的公网地址的安全风险。
在一种可能的设计中,在后续所述内网设备与外网设备的会话过程的每一时间段,所述NAT设备将所述至少两个公网地址中的一个公网地址,作为在所述每一时间段内的当前激活地址,包括:
所述NAT设备按照所述至少两个公网地址的配置顺序,针对所述至少两个公网地址循环依次执行如下操作:
从选择当前次对应的一个公网地址起开始计时,直到计时时长达到所述一个公网地址对应的超时时长时为止,在所述当前次计时过程中,将当前次选择的一个公网地址作为当前激活地址;
其中,一个公网地址对应一个超时时长。
在一种可能的设计中,所述方法还包括:
所述NAT设备接收到所述内网设备发送给外网设备的第一上报数据消息,所述第一上报数据消息中的源地址为所述内网设备的私网地址;
所述NAT设备将所述上报数据消息中的所述内网设备的私网地址替换为作为当前激活地址的第一地址后发送给所述外网设备。
在一种可能的设计中,所述方法还包括:在接收到所述内网设备发送给外网设备的第一上报数据消息时,所述NAT设备将作为当前激活地址的第一地址标记为当前映射地址。
在一种可能的设计中,所述方法还包括:
所述NAT设备接收到所述外网设备发给所述内网设备的第一指令消息,所述第一指令消息的目的地址为第二地址;所标记的当前映射地址为第二地址;
所述NAT设备确定所述第一指令消息的目的地址与所标记的当前映射地址相同,将所述第一指令消息中的目的地址更改为所述第二地址所映射的所述内网设备的私网地址后,发送给所述内网设备。
在一种可能的设计中,所述方法还包括:
所述NAT设备接收到所述内网设备发送给外网设备的第二上报数据消息,其中,所述第二上报数据消息中的源地址为所述内网设备的私网地址,作为当前激活地址的公网地址为第三地址,所标记的当前映射地址为第四地址;
所述NAT设备将所述上报数据消息中的所述内网设备的私网地址替换为所述第三地址后发送给所述外网设备,将标记为当前映射地址的第四地址标记为前一映射地址;并将作为当前激活地址的第三地址标记为当前映射地址;
其中,所述前一映射地址以及所述当前映射地址均与所述内网设备的私网地址存在映射关系。
在一种可能的设计中,所述方法还包括:
所述NAT设备接收到所述外网设备发送给所述内网设备的第二指令消息;所述第二指令消息的目的地址为第五地址,所标记的当前映射地址为第六地址,所标记的前一映射地址为第五地址;
所述NAT设备确定所述第二指令消息的目的地址与所标记的当前映射地址不同,且所述第二指令消息的目的地址与所标记的前一映射地址相同;
所述NAT设备将所述第二指令消息的目的地址更改为所述第五地址所映射的所述内网设备的私网地址后,发送给所述内网设备。
在一种可能的设计中,作为当前激活地址的公网地址为第七地址,还包括:
在确定所述第二指令消息的目的地址与所标记的当前映射地址不同,且所述第二指令消息的目的地址与所标记的前一映射地址相同时,所述NAT设备将作为当前激活地址的第七地址标记为当前映射地址,并将标记为当前映射地址的第六地址标记为前一映射地址。
在一种可能的设计中,在所述NAT设备确定所述第二指令消息的目的地址与所标记的当前映射地址不同,且所述第二指令消息的目的地址与所标记的前一映射地址相同后,还包括:
所述NAT设备向所述外网设备发送指示消息,所述指示消息用于指示所述内网设备映射的地址更改为作为当前激活地址的第七地址。
在一种可能的设计中,还包括:
所述NAT设备接收到所述外网设备发送给所述内网设备的第三指令消息;所述第三指令消息的目的地址为第八地址,所标记的当前映射地址为第九地址,所标记的前一映射地址为第十地址;
所述NAT设备确定所述第三指令消息的目的地址与所标记的当前映射地址不同,且所述第二指令消息的目的地址与所标记的前一映射地址不同;
所述NAT设备将所述第三指令消息的源地址添加到告警列表中,并丢弃所述第三指令消息。
在一种可能的设计中,所述方法还包括:
所述NAT设备接收到所述外网设备发送给所述内网设备的第四指令消息;
所述NAT设备确定所述第一指令消息的源地址与所述告警列表包括的其中一个地址相同,则丢弃所述第四指令消息。
通过上述设计,根据告警列表确定第四指令消息为非正常消息,则直接丢弃不去转发,提高了安全性。
第二方面,本发明实施例提供了一种网络地址转换映射保活装置,所述装置应用于网络地址转换NAT设备,包括:
接收模块,用于接收内网设备发送的探测请求,所述探测请求包括所述内网设备的私网地址;
发送模块,用于在所述接收模块接收到所述探测请求后,向所述内网设备发送探测响应,所述探测响应携带指示信息,所述指示信息用于指示所述内网设备不主动发起心跳消息来维持网络地址转换映射保活;
处理模块,用于从地址资源池中包括的空闲的公网地址中为所述内网设备分配至少两个公网地址,在后续所述内网设备与外网设备的会话过程的每一时间段,将所述至少两个公网地址中的一个公网地址,作为在所述每一时间段内的当前激活地址,用于将所述内网设备的私网地址映射为所述当前激活地址。
在一种可能的设计中,所述装置还包括:
计时模块,用于对所述处理模块选择每一个公网地址作为当前激活地址的时长进行计时;
所述处理模块,具体用于:按照所述至少两个公网地址的配置顺序,针对所述至少两个公网地址循环依次执行如下操作:
指示所述计时模块从选择当前次对应的一个公网地址起开始计时,直到所述计时模块的计时时长达到所述一个公网地址对应的超时时长时为止,在所述计时模块当前次计时过程中,将当前次选择的一个公网地址作为当前激活地址;
其中,一个公网地址对应一个超时时长,所述计时模块预先被设置有每个公网地址对应的计时时长。
在一种可能的设计中,所述装置还包括至少两个计时模块,一个计时模块对应一个公网地址;
计时模块,用于对所述处理模块选择的计时模块对应的公网地址作为当前激活地址的时长进行计时;
所述处理模块,具体用于:按照所述至少两个公网地址的配置顺序,针对所述至少两个公网地址循环依次执行如下操作:
指示当前次选择的公网地址对应的计时模块从所述处理模块选择当前次对应的一个公网地址起开始计时,直到所述计时模块的计时时长达到所述一个公网地址对应的超时时长时为止,在所述计时模块当前次计时过程中,将当前次选择的一个公网地址作为当前激活地址;
其中,一个公网地址对应一个超时时长。
在一种可能的设计中,所述接收模块,还用于:接收所述内网设备发送给外网设备的第一上报数据消息,所述第一上报数据消息中的源地址为所述内网设备的私网地址;
所述处理模块,还用于将所述接收模块接收到的所述上报数据消息中的所述内网设备的私网地址替换为作为当前激活地址的第一地址;
所述发送模块,还用于将所述处理模块处理后的上报数据消息发送给所述外网设备。
在一种可能的设计中,所述处理模块,还用于:
在所述接收模块接收到所述内网设备发送给外网设备的第一上报数据消息时,将作为当前激活地址的第一地址标记为当前映射地址。
在一种可能的设计中,所述接收模块,还用于:
接收所述外网设备发给所述内网设备的第一指令消息,所述第一指令消息的目的地址为第二地址;所标记的当前映射地址为第二地址;
所述处理模块,在确定所述接收模块接收到的所述第一指令消息的目的地址与所标记的当前映射地址相同,将所述第一指令消息中的目的地址更改为所述第二地址所映射的所述内网设备的私网地址;
所述发送模块,还用于将所述处理模块处理后的第一指令消息发送给所述内网设备。
在一种可能的设计中,所述接收模块,还用于:
接收所述内网设备发送给外网设备的第二上报数据消息,其中,所述第二上报数据消息中的源地址为所述内网设备的私网地址,作为当前激活地址的公网地址为第三地址,所标记的当前映射地址为第四地址;
所述处理模块,还用于将所述接收模块接收到的所述上报数据消息中的所述内网设备的私网地址替换为所述第三地址后发送给所述外网设备,将标记为当前映射地址的第四地址标记为前一映射地址;并将作为当前激活地址的第三地址标记为当前映射地址;
其中,所述前一映射地址以及所述当前映射地址均与所述内网设备的私网地址存在映射关系。
在一种可能的设计中,所述接收模块,还用于:
接收所述外网设备发送给所述内网设备的第二指令消息;所述第二指令消息的目的地址为第五地址,所标记的当前映射地址为第六地址,所标记的前一映射地址为第五地址;
所述处理模块,在确定所述接收模块接收到的所述第二指令消息的目的地址与所标记的当前映射地址不同,且所述第二指令消息的目的地址与所标记的前一映射地址相同;将所述第二指令消息的目的地址更改为所述第五地址所映射的所述内网设备的私网地址;
所述发送模块,还用于将所述处理模块处理后的第二指令消息发送给所述内网设备。
在一种可能的设计中,作为当前激活地址的公网地址为第七地址,所述处理模块,还用于:
在确定所述第二指令消息的目的地址与所标记的当前映射地址不同,且所述第二指令消息的目的地址与所标记的前一映射地址相同时,所述NAT设备将作为当前激活地址的第七地址标记为当前映射地址,并将标记为当前映射地址的第六地址标记为前一映射地址。
在一种可能的设计中,所述发送模块,还用于:
在所述处理模块确定所述第二指令消息的目的地址与所标记的当前映射地址不同,且所述第二指令消息的目的地址与所标记的前一映射地址相同后,向所述外网设备发送指示消息,所述指示消息用于指示所述内网设备映射的地址更改为作为当前激活地址的第七地址。
在一种可能的设计中,所述接收模块,还用于接收所述外网设备发送给所述内网设备的第三指令消息;所述第三指令消息的目的地址为第八地址,所标记的当前映射地址为第九地址,所标记的前一映射地址为第十地址;
所述处理模块,还用于确定所述第三指令消息的目的地址与所标记的当前映射地址不同,且所述第二指令消息的目的地址与所标记的前一映射地址不同;将所述第三指令消息的源地址添加到告警列表中,并丢弃所述第三指令消息。
在一种可能的设计中,所述接收模块,还用于:
接收所述外网设备发送给所述内网设备的第四指令消息;
所述处理模块,还用于在确定所述第一指令消息的源地址与所述告警列表包括的其中一个地址相同时,丢弃所述第四指令消息。
本发明实施例中,NAT设备在首次接收到内网设备发送的请求时,针对内网地址分配至少两个公网地址,并将所述至少两个公网地址循环激活并将激活的地址作为内网设备的私网地址所映射的公网地址,从而内网设备不需要发送心跳消息来维持网络地址映射保活,达到了减少内网设备的能源消耗,由于采用循环激活,使得在内网设备与外网设备的会话过程中,内网设备的私网地址所映射的公网地址不固定,降低了外部网络设备获取私网地址所映射的公网地址的安全风险。
附图说明
图1为本发明实施例提供的应用系统示意图;
图2为本发明实施例提供的网络地址转换映射保活方法流程图;
图3为本发明实施例提供的循环选择当前激活地址示意图;
图4为本发明实施例提供的场景一对应的资源受限节点与云服务器会话方法示意图;
图5为本发明实施例提供的场景二对应的资源受限节点与云服务器会话方法示意图;
图6为本发明实施例提供的场景三对应的资源受限节点与云服务器会话方法示意图;
图7为本发明实施例提供的一种网络地址转换映射保活装置示意图;
图8为本发明实施例提供的另一种网络地址转换映射保活装置示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
本发明实施例提供一种网络地址转换映射保活方法及装置,实现了不需要资源受限节点频繁发送心跳消息来维持地址映射关系的保活,且保证了资源受限节点的安全性。其中,方法和装置是基于同一发明构思的,由于方法及装置解决问题的原理相似,因此装置与方法的实施可以相互参见,重复之处不再赘述。
需要说明的是,本发明实施例的说明书和权利要求书及附图中涉及的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
如图1所示,本发明实施例所应用的系统中包括NAT设备、内网设备、以及外网设备。NAT设备将网络分为两个网络分别为内网(或者称为私网)与外网(或者称为公网)。其中,与NAT设备的内部接口相连的网络是内网,与NAT设备外部接口相连的网络是外网。使用所述内网通信的设备称为内网设备,使用所述外网通信的设备称为外网设备。所述内网设备与所述外网设备之间通过NAT设备进行通信,比如内网设备经过NAT设备后,在外网中有一个经过NAT设备转换后的网络地址来表示内网设备在内网中地址,外网设备仅知道转换后的网络地址,而不知道内网设备在内网中的地址。
本发明实施例中可以应用于资源受限节点,即内网设备可以是资源受限节点。本发明实施例中,资源受限节点指的是计算、存储、能耗以及带宽等都有限的节点,特别是能耗有限以及带宽有限的节点,例如物联网中可以充当节点的手机、平板等移动终端。本发明实施例中的资源受限节点也可以是互联网工程任务组的RFC 7228中规定的资源受限节点或受限设备。
本发明实施例中的外网设备可以是云端服务器、IoT平台或者位于外网的其他终端设备等等。
如图2所示,本发明实施例提供了一种网络地址映射保活方法,该方法包括:
S201,NAT设备接收内网设备发送的探测请求。
所述探测请求包括所述内网设备的私网地址。
其中,所述内网设备的私网地址可以以两元组的形式表示,比如X:x形式,X表示IP地址,x表示端口号。
S202,所述NAT设备在接收到所述探测请求后,向所述内网设备发送探测响应。
所述探测响应携带指示信息,所述指示信息用于指示所述内网设备不主动发起心跳消息来维持网络地址转换映射保活。
S203,所述NAT设备从地址资源池中包括的空闲的公网地址中为所述内网设备分配至少两个公网地址,在后续所述内网设备与外网设备的会话过程的每一时间段,所述NAT设备将所述至少两个公网地址中的一个公网地址,作为在所述每一时间段内的当前激活地址,用于将所述内网设备的私网地址映射为所述当前激活地址。
其中,所述NAT设备从地址资源池中包括的空闲的公网地址中为所述内网设备分配至少两个公网地址,具体可以按照一定原则从资源池中选择一段IP地址与端口。例如,可以选择分配的四个公网地址,四个公网地址的IP地址相同端口号递增,四个公网地址表示如下:Y1:ya1、Y1:ya2、Y1:ya3以及Y1:ya4。
本发明实施例中,NAT设备在首次接收到内网设备发送的请求时,针对内网地址分配至少两个公网地址,并将所述至少两个公网地址循环激活并将激活的地址作为内网设备的私网地址所映射的公网地址,从而内网设备不需要发送心跳消息来维持网络地址映射保活,达到了减少内网设备的能源消耗,由于采用循环激活,使得在内网设备与外网设备的会话过程中,内网设备的私网地址所映射的公网地址不固定,降低了外部网络设备获取私网地址所映射的公网地址的安全风险。
可选地,在后续所述内网设备与外网设备的会话过程的每一时间段,所述NAT设备将所述至少两个公网地址中的一个公网地址,作为在所述每一时间段内的当前激活地址,可以通过如下方式实现:
所述NAT设备按照所述至少两个公网地址的配置顺序,针对所述至少两个公网地址循环依次执行如下操作:
从选择当前次对应的一个公网地址起开始计时,直到计时时长达到所述一个公网地址对应的超时时长时为止,在所述当前次计时过程中,将当前次选择的一个公网地址作为当前激活地址。
可选地,在后续所述内网设备与外网设备的会话过程的每一时间段,所述NAT设备将所述至少两个公网地址中的一个公网地址,作为在所述每一时间段内的当前激活地址时,所述NAT设备可以在接收到所述内网设备发送的第一个数据上报消息时,开始选择一个公网地址作为当前激活地址。也可以在所述NAT设备从地址资源池中包括的空闲的公网地址中为所述内网设备分配至少两个公网地址后,即开始选择一个公网地址作为当前激活地址。
本发明实施例中可以将上述从至少两个公网地址中循环选择一个公网地址作为当前激活地址称为循环激活机制。那么启动循环激活机制的时机可以是接收到内网设备发送的第一个数据上报消息,也可以是在为内网设备分配至少两个公网地址时启动循环激活机制。
可选地,分配的至少两个公网地址可以以地址链表的形式存储。链表中各个公网地址的顺序也就是循环选择的顺序。
其中,一个公网地址对应一个超时时长。每个公网地址对应的超时时长可以相同也可以不同,本发明实施例对此不作具体限定。本发明实施例中,可以针对分配的每一公网地址配置一个定时器,当选择该每一公网地址时,启动该每一公网地址的定时器。当然可以对所有的公网地址配置一个定时器,定时器定时时长随着选择的公网地址不同而不同。具体可以预先配置定时器定时时长,且定时时长的配置顺序与公网地址配置的顺序相同。
例如,NAT设备为内网设备分配的四个公网地址,四个公网地址分别为:Y1:ya1、Y1:ya2、Y1:ya3以及Y1:ya4。配置的顺序为如表1所示。
表1
Y1:ya1 | Y1:ya2 | Y1:ya3 | Y1:ya4 |
NAT设备可以借助NAT绑定超时(NAT binding timeout)定时器来实现上述表1中的公网地址的循环保活。
每个公网地址分别对应一个超时时长,如表2所示。
表2
公网地址 | Y1:ya1 | Y1:ya2 | Y1:ya3 | Y1:ya4 |
超时时长 | timeout1 | timeout2 | timeout3 | timeout4 |
假设,内网设备的私网地址为X:x,并且第一次计时开始时刻为0。那么,如图3所示,选择作为当前激活地址的公网地址的方式如下:
1),第一次选择的公网地址为Y1:ya1,那么在0时刻到timeout1时间段内,NAT设备将公网地址(Y1:ya1)作为当前激活地址。NAT设备自动启动内网设备的私网地址(X:x)与公网地址(Y1:ya1)的映射。在0时刻到timeout1这段时间内,NAT设备若收到该内网设备往外网发的消息,内网地址的私网地址都将映射到公网地址(Y1:ya1)。
2),当计时达到timeout1时,NAT设备按顺序选择公网地址Y1:ya2,并在timeout1到timeout1+timeout2时间段内,NAT设备将公网地址(Y1:ya2)作为当前激活地址,即NAT设备自动启动内网设备的私网地址(X:x)与公网地址(Y1:ya2)的映射。在timeout1到timeout1+timeout2时间段内,NAT设备若收到该内网设备往外网发的消息,内网地址的私网地址都将映射到公网地址(Y1:ya2)。
3),当计时达到timeout1+timeout2时,NAT设备按顺序选择公网地址Y1:ya3,并在timeout1+timeout2到timeout1+timeout2+timeout3时间段内,NAT设备将公网地址(Y1:ya3)作为当前激活地址,即NAT设备自动启动内网设备的私网地址(X:x)与公网地址(Y1:ya3)的映射。在timeout1+timeout2到timeout1+timeout2+timeout3时间段内,NAT设备若收到该内网设备往外网发的消息,内网地址的私网地址都将映射到公网地址(Y1:ya3)。
4),当计时达到timeout1+timeout2+timeout3时,NAT设备按顺序选择公网地址Y1:ya4,并在timeout1+timeout2+timeout3到timeout1+timeout2+timeout3+timeout4时间段内,NAT设备将公网地址(Y1:ya4)作为当前激活地址,即NAT设备自动启动内网设备的私网地址(X:x)与公网地址(Y1:ya4)的映射。在timeout1+timeout2+timeout3到timeout1+timeout2+timeout3+timeout4时间段内,NAT设备若收到该内网设备往外网发的消息,内网地址的私网地址都将映射到公网地址(Y1:ya4)。
4),当计时达到timeout1+timeout2+timeout3+timeout4时,NAT设备按顺序选择公网地址Y1:ya1,并在timeout1+timeout2+timeout3+timeout4到timeout1+timeout2+timeout3+timeout4+timeout1时间段内,NAT设备将公网地址(Y1:ya1)作为当前激活地址,即NAT设备自动启动内网设备的私网地址(X:x)与公网地址(Y1:ya1)的映射。在timeout1+timeout2+timeout3+timeout4到timeout1+timeout2+timeout3+timeout4+timeout1时间段内,NAT设备若收到该内网设备往外网发的消息,内网地址的私网地址都将映射到公网地址(Y1:ya1);以此类推。
一方面,所述NAT设备接收到所述内网设备发送给外网设备的第一上报数据消息,其中,所述第一上报数据消息中的源地址为所述内网设备的私网地址。在所述NAT设备接收到所述第一上报数据消息时,作为当前激活地址的公网地址为第一地址;
所述NAT设备将所述上报数据消息中的所述内网设备的私网地址替换为所述第一地址后发送给所述外网设备。
可选地,在接收到所述内网设备发送给外网设备的第一上报数据消息时,所述NAT设备可以将作为所述当前激活地址的第一地址标记为当前映射地址。
另一方面,所述NAT设备接收到所述内网设备发送给外网设备的第二上报数据消息,其中,所述第二上报数据消息中的源地址为所述内网设备的私网地址,作为当前激活地址的公网地址为第三地址,所标记的当前映射地址为第四地址;
所述NAT设备将所述上报数据消息中的所述内网设备的私网地址替换为所述第三地址后发送给所述外网设备,将标记为当前映射地址的第四地址标记为前一映射地址;并将作为当前激活地址的第三地址标记为当前映射地址。
其中,所述前一映射地址以及所述当前映射地址均与所述内网设备的私网地址存在映射关系。
例如,以图3所示的实施例为例,若0时刻到timeout1时间段内,所述内网设备与外网设备有消息来往,那么NAT设备把公网地址(Y1:ya1)标记为当前映射地址。若timeout1到timeout1+timeout2时间段内,所述内网设备与外网设备有消息来往,则NAT设备将公网地址(Y1:ya2)标记为当前映射地址。并将公网地址(Y1:ya1)标记为前一映射地址。若timeout1到timeout1+timeout2时间段内,所述内网设备与外网设备没有消息来往,则所标记的当前映射地址保持不变,依然为公网地址(Y1:ya1)。后续所述内网设备与外网设备的会话过程以此类推。标记为前一映射地址的公网地址以及标记为当前映射地址的公网地址均与内网设备的私网地址存在映射关系,即公网地址(Y1:ya1)以及公网地址(Y1:ya2)均与内网设备的私网地址存在映射关系。
若内网设备X与外网设备Y的会话过程中,在timeout1到timeout1+timeout2时间段中没有消息往来,则所标记的前一映射地址与所标记的当前映射地址的关系如表3。
表3
可选地,内网设备X与外网设备Y的会话过程中,若NAT设备收到外网设备Y发给内网设备X的消息时,通过如下方式来实现映射:
一方面,所述NAT设备接收到所述外网设备发给所述内网设备的第一指令消息,所述第一指令消息的目的地址为第二地址,所标记的当前映射地址为第二地址;所述NAT设备确定所述第一指令消息的目的地址与所标记的当前映射地址相同,将所述第一指令消息中的目的地址更改为所述第二地址所映射的所述内网设备的私网地址后,发送给所述内网设备。
另一方面,所述NAT设备接收到所述外网设备发送给所述内网设备的第二指令消息;所述第二指令消息的目的地址为第五地址,所标记的当前映射地址为第六地址,所标记的前一映射地址为第五地址;
所述NAT设备确定所述第二指令消息的目的地址与所标记的当前映射地址不同,且所述第二指令消息的目的地址与所标记的前一映射地址相同;
所述NAT设备将所述第二指令消息的目的地址更改为所述第五地址所映射的所述内网设备的私网地址后,发送给所述内网地址。
可选地,作为当前激活地址的公网地址为第七地址,那么在确定所述第二指令消息的目的地址与所标记的当前映射地址不同,且所述第二指令消息的目的地址与所标记的前一映射地址相同时,所述NAT设备将作为当前激活地址的第七地址标记为当前映射地址,并将所述第六地址标记为前一映射地址。
可选地,作为当前激活地址的公网地址为第七地址,那么在所述NAT设备确定所述第二指令消息的目的地址与所标记的当前映射地址不同,且所述第二指令消息的目的地址与所标记的前一映射地址相同后,所述NAT设备将作为当前激活地址的第七地址标记为当前映射地址,并将标记为当前映射地址的第六地址标记为前一映射地址,并向所述外网设备发送指示消息,所述指示消息用于指示所述内网设备映射的地址更改为作为当前激活地址的第七地址。具体可以将所述指示消息设置为空消息,且其源地址为第七地址。
第三方面,所述NAT设备接收到所述外网设备发送给所述内网设备的第三指令消息;所述第三指令消息的目的地址为第八地址,所标记的当前映射地址为第九地址,所标记的前一映射地址为第十地址;
所述NAT设备确定所述第三指令消息的目的地址与所标记的当前映射地址不同,且所述第二指令消息的目的地址与所标记的前一映射地址不同;
所述NAT设备将所述第三指令消息的源地址添加到告警列表中,并丢弃所述第三指令消息。
从而在告警列表存在时,所述NAT设备接收到所述外网设备发送给所述内网设备的第四指令消息;所述NAT设备优先确定所述第一指令消息的源地址与所述告警列表包括的其中一个地址相同时,则直接丢弃所述第四指令消息。
可选地,NAT设备接收到内网设备或者外网设备发送的用于指示所述内网设备与所述外网设备之间的会话结束的结束消息时,所述NAT设备释放分配给所述内网设备的至少两个公网地址,并且释放所述内网设备的内网地址与所述至少两个公网地址的映射关系。
下面结合具体应用场景对本发明实施例作进一步说明。
内网设备为资源受限节点(Constrained Node),外网设备为云服务器(CloudServer)。资源受限节点与云服务器之间通信需要通过NAT设备。资源受限节点的私网地址为A:a,其中A表示资源受限节点在内网中的IP地址,a表示端口号。
场景一
资源受限节点需要访问云服务器,则具体流程如图4所示:
P1,资源受限节点向NAT设备发送探测请求。所述探测请求携带资源受限节点的私网地址为A:a。
P2,NAT设备收到所述资源受限节点的探测请求,为该资源受限节点分配至少两个公网地址,并向所述资源受限节点发送探测响应,所述探测响应携带指示信息,所述指示信息用于指示所述资源受限节点不主动发起心跳消息来维持网络地址转换映射保活。
本发明实施例中,以NAT设备按照预定规则从资源池中为所述资源受限节点分配四个公网地址为例。分配的四个公网地址以地址链表的形式存储。例如存储顺序如表4所示。
表4
Y1:y1 | Y2:y2 | Y3:y3 | Y4:y4 |
P3,资源受限节点向NAT设备发送上报数据消息。
P4,NAT设备收到所述资源受限节点发送的上报数据消息后,启动地址链表的循环激活机制,并使用选择的当前激活地址Y1:y1替换掉所述上报数据消息中的所述资源受限节点的私网地址后发送给云服务器。
本发明实施例以每个公网地址对应的超时时长均为timeout为例。
因此,NAT设备在接收到所述上报数据消息后,启动定时器,从第一次启动到第一次定时器超时的这段时间中,当前激活地址为Y1:y1,即资源受限节点的私网地址为A:a所映射的公网地址为Y1:y1。依此类推,每个时间段对应的当前激活地址如表5所示。
表5
可选地,所述NAT设备在使用选择的当前激活地址Y1:y1替换掉所述上报数据消息中的所述资源受限节点的私网地址后发送给云服务器时,还将所述当前激活地址Y1:y1标记为当前映射地址。
还可以包括如下步骤:
P5,在第一个timeout时间段中,所述云服务器向所述NAT设备发送指令消息,所述指令消息的目的地址为Y1:y1。
P6,所述NAT设备在第一个timeout时间段中,接收到所述云服务器发送的指令消息。所述NAT设备确定所述指令消息的目的地址与所标记的当前映射地址相同,则将所述指令消息中的目的地址更改为所述Y1:y1映射的A:a后发送给资源受限节点。
P7,在第一个timeout时间段中,所述资源受限节点向所述NAT设备发送用于指示所述资源受限节点与所述云服务器之间的会话结束的结束消息。
P8,所述NAT设备接收到所述资源受限节点发送的所述结束消息,将所述结束消息的源地址更改为Y1:y1后发送给所述云服务器,并释放为所述资源受限节点分配的四个公网地址。
假设在步骤P4后,在第二个timeout时间段中,资源受限节点向NAT设备发送上报数据消息。则NAT设备收到所述资源受限节点发送的上报数据消息后,并使用选择的当前激活地址Y2:y2替换掉所述上报数据消息中的所述资源受限节点的私网地址后发送给云服务器。并将标记为当前映射地址的Y1:y1标记为前一映射地址,将当前激活地址Y2:y2标记为当前映射地址。
场景二
场景二在场景一的步骤P1~P4的基础上,在第二个timeout时间段中,资源受限节点向NAT设备发送上报数据消息。此时,所标记的前一映射地址为Y1:y1,所标记的当前映射地址为Y2:y2。
NAT设备在经过第二个timeout时间段后,经过N个timeout中未收到资源受限节点以及云服务器发送的消息,在第N+3个timeout中收到云服务器发送的指令消息,N为正整数,本发明实施例以N等于2为例进行说明。则第1个timeout到第4个timeout中所标记的前一映射地址与所标记的当前映射地址的关系如表6所示的为例进行说明。
表6
具体流程如图5所示:
S1~S4与P1~P4所述相同,在此不再赘述。
S5,第二个timeout时间段,资源受限节点向NAT设备发送上报数据消息。
S6,NAT设备收到所述资源受限节点发送的上报数据消息后,使用选择的当前激活地址Y2:y2替换掉所述上报数据消息中的所述资源受限节点的私网地址后发送给云服务器。并将标记为当前映射地址的Y1:y1标记为前一映射地址,将当前激活地址Y2:y2标记为当前映射地址。
S7,在第3个timeout中,云服务器向所述NAT设备发送指令消息,所述指令消息的目的地址为Y1:y1。
S8,所述NAT设备接收到所述云服务器发送的指令消息,确定所述指令消息的目的地址与当前映射地址Y2:y2不同,但与前一映射地址Y1:y1相同。所述NAT设备将当前激活地址Y1:y1标记为当前映射地址,将Y2:y2标记为前一映射地址。更改后的所标记的前一映射地址与所标记的当前映射地址的关系如表7所示。
表7
S9,所述NAT设备向所述云服务器发送指示消息,所述指示消息用于通知所述云服务器所述资源受限节点映射的地址更改为当前激活地址Y1:y1。具体可以将所述指示消息设置为空消息,且其源地址为Y1:y1。
场景三
在场景一所对应的实施例的基础上,本场景中在资源受限节点与云服务器的会话过程中,服务器C窃取了资源受限节点所映射的地址来向所述资源受限节点发送伪消息。具体流程如图6所示。
假设服务器C窃取了资源受限节点在第一个timeout中所映射的地址Y1:y1。其在第三个timeout中向资源受限节点发送伪消息。在第一个timeout到第三个timeout中,资源受限节点与云服务器中持续会话,则第三个timeout中,当前映射地址为Y3:y3,前一映射地址为Y2:y2。
W1~W6与P1~P6相同。
W7,所述NAT设备接收到服务器C发送的伪造的指令消息,所述伪造的指令消息中的目的地址为Y1:y1。所述NAT设备确定所述指令消息的源地址是否与告警列表保存的地址相同,若相同,则直接丢弃该指令消息。若源地址与告警列表包括的所有地址均不相同,则确定所述目的地址与当前映射地址不,且所述目的地址与前一映射地址不同,将源地址保存在所述告警列表中。同时丢弃该指令消息。
基于与方法实施例同样的发明构思,本发明实施例还提供了一种网络地址转换映射保活装置,所述装置应用于网络地址转换NAT设备。如图7所示,所述装置包括:
接收模块701,用于接收内网设备发送的探测请求,所述探测请求包括所述内网设备的私网地址。
发送模块702,用于在所述接收模块701接收到所述探测请求后,向所述内网设备发送探测响应,所述探测响应携带指示信息,所述指示信息用于指示所述内网设备不主动发起心跳消息来维持网络地址转换映射保活。
处理模块703,用于从地址资源池中包括的空闲的公网地址中为所述内网设备分配至少两个公网地址,在后续所述内网设备与外网设备的会话过程的每一时间段,将所述至少两个公网地址中的一个公网地址,作为在所述每一时间段内的当前激活地址,用于将所述内网设备的私网地址映射为所述当前激活地址。
可选地,所述装置还可以包括:
计时模块704,用于对所述处理模块703选择每一个公网地址作为当前激活地址的时长进行计时;
所述处理模块703,具体用于:按照所述至少两个公网地址的配置顺序,针对所述至少两个公网地址循环依次执行如下操作:
指示所述计时模块704从选择当前次对应的一个公网地址起开始计时,直到所述计时模块704的计时时长达到所述一个公网地址对应的超时时长时为止,在所述计时模块704当前次计时过程中,将当前次选择的一个公网地址作为当前激活地址;
其中,一个公网地址对应一个超时时长,所述计时模块704预先被设置有每个公网地址对应的计时时长。
可选地,所述装置还包括至少两个计时模块704,一个计时模块704对应一个公网地址;
计时模块704,用于对所述处理模块703选择的计时模块704对应的公网地址作为当前激活地址的时长进行计时;
所述处理模块703,具体用于:按照所述至少两个公网地址的配置顺序,针对所述至少两个公网地址循环依次执行如下操作:
指示当前次选择的公网地址对应的计时模块704从所述处理模块703选择当前次对应的一个公网地址起开始计时,直到所述计时模块704的计时时长达到所述一个公网地址对应的超时时长时为止,在所述计时模块704当前次计时过程中,将当前次选择的一个公网地址作为当前激活地址;
其中,一个公网地址对应一个超时时长。
可选地,所述接收模块701,还用于:接收所述内网设备发送给外网设备的第一上报数据消息,所述第一上报数据消息中的源地址为所述内网设备的私网地址;
所述处理模块703,还用于将所述接收模块701接收到的所述上报数据消息中的所述内网设备的私网地址替换为作为当前激活地址的第一地址;
所述发送模块702,还用于将所述处理模块703处理后的上报数据消息发送给所述外网设备。
可选地,所述处理模块703,还用于:
在所述接收模块701接收到所述内网设备发送给外网设备的第一上报数据消息时,将作为当前激活地址的第一地址标记为当前映射地址。
可选地,所述接收模块701,还用于:
接收所述外网设备发给所述内网设备的第一指令消息,所述第一指令消息的目的地址为第二地址;所标记的当前映射地址为第二地址;
所述处理模块703,在确定所述接收模块701接收到的所述第一指令消息的目的地址与所标记的当前映射地址相同,将所述第一指令消息中的目的地址更改为所述第二地址所映射的所述内网设备的私网地址;
所述发送模块702,还用于将所述处理模块703处理后的第一指令消息发送给所述内网设备。
可选地,所述接收模块701,还用于:
接收所述内网设备发送给外网设备的第二上报数据消息,其中,所述第二上报数据消息中的源地址为所述内网设备的私网地址,作为当前激活地址的公网地址为第三地址,所标记的当前映射地址为第四地址;
所述处理模块703,还用于将所述接收模块701接收到的所述上报数据消息中的所述内网设备的私网地址替换为所述第三地址后发送给所述外网设备,将标记为当前映射地址的第四地址标记为前一映射地址;并将作为当前激活地址的第三地址标记为当前映射地址;
其中,所述前一映射地址以及所述当前映射地址均与所述内网设备的私网地址存在映射关系。
可选地,所述接收模块701,还用于:
接收所述外网设备发送给所述内网设备的第二指令消息;所述第二指令消息的目的地址为第五地址,所标记的当前映射地址为第六地址,所标记的前一映射地址为第五地址;
所述处理模块703,在确定所述接收模块701接收到的所述第二指令消息的目的地址与所标记的当前映射地址不同,且所述第二指令消息的目的地址与所标记的前一映射地址相同;将所述第二指令消息的目的地址更改为所述第五地址所映射的所述内网设备的私网地址;
所述发送模块702,还用于将所述处理模块703处理后的第二指令消息发送给所述内网设备。
可选地,作为当前激活地址的公网地址为第七地址,所述处理模块703,还用于:
在确定所述第二指令消息的目的地址与所标记的当前映射地址不同,且所述第二指令消息的目的地址与所标记的前一映射地址相同时,所述NAT设备将作为当前激活地址的第七地址标记为当前映射地址,并将标记为当前映射地址的第六地址标记为前一映射地址。
可选地,所述发送模块702,还用于:
在所述处理模块703确定所述第二指令消息的目的地址与所标记的当前映射地址不同,且所述第二指令消息的目的地址与所标记的前一映射地址相同后,向所述外网设备发送指示消息,所述指示消息用于指示所述内网设备映射的地址更改为作为当前激活地址的第七地址。
可选地,所述接收模块701,还用于接收所述外网设备发送给所述内网设备的第三指令消息;所述第三指令消息的目的地址为第八地址,所标记的当前映射地址为第九地址,所标记的前一映射地址为第十地址;
所述处理模块703,还用于确定所述第三指令消息的目的地址与所标记的当前映射地址不同,且所述第二指令消息的目的地址与所标记的前一映射地址不同;将所述第三指令消息的源地址添加到告警列表中,并丢弃所述第三指令消息。
可选地,所述接收模块701,还用于:
接收所述外网设备发送给所述内网设备的第四指令消息;
所述处理模块703,还用于在确定所述第一指令消息的源地址与所述告警列表包括的其中一个地址相同时,丢弃所述第四指令消息。
本发明实施例中,NAT设备在首次接收到内网设备发送的请求时,针对内网地址分配至少两个公网地址,并将所述至少两个公网地址循环激活并将激活的地址作为内网设备的私网地址所映射的公网地址,从而内网设备不需要发送心跳消息来维持网络地址映射保活,达到了减少内网设备的能源消耗,由于采用循环激活,使得在内网设备与外网设备的会话过程中,内网设备的私网地址所映射的公网地址不固定,降低了外部网络设备获取私网地址所映射的公网地址的安全风险。
本发明实施例中对单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,另外,在本申请各个实施例中的各功能单元可以集成在一个处理器中,也可以是单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
其中,集成的单元既可以采用硬件的形式实现时,接收模块701以及发送模块702通过如图8所示的通信接口801实现,处理模块703通过处理器802实现,计时模块704也可以由处理器802实现,当然也可以由一个定时器803实现,还可以通过多个定时器实现,每个公网地址对应一个定时器。如图8所示的一种网络地址转换映射保活装置应用于NAT设备,即网络地址转换映射保活装置设置于NAT设备内部,或者直接由NAT设备实现。
处理器802,可以是一个中央处理单元(英文:central processing unit,简称CPU),或者为数字处理单元等等。其中,网络地址转换映射保活装置中还包括存储器804,用于存储处理器802执行的程序,处理器802用于执行存储器804存储的程序。
存储器804可以设置于网络地址转换映射保活装置内部,也可以设置于网络地址转换映射保活装置外部。
其中,通信接口801、存储器804、处理器802、以及定时器803可以通过总线805连接。其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图8中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器804可以是易失性存储器,例如RAM;存储器804也可以是非易失性存储器,例如ROM,快闪存储器,HDD或SSD、或者存储器804是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器804可以是上述存储器的组合。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (23)
1.一种网络地址转换映射保活方法,其特征在于,包括:
网络地址转换NAT设备接收内网设备发送的探测请求,所述探测请求包括所述内网设备的私网地址;
所述NAT设备在接收到所述探测请求后,向所述内网设备发送探测响应,所述探测响应携带指示信息,所述指示信息用于指示所述内网设备不主动发起心跳消息来维持网络地址转换映射保活;并
从地址资源池中包括的空闲的公网地址中为所述内网设备分配至少两个公网地址,在后续所述内网设备与外网设备的会话过程的每一时间段,所述NAT设备将所述至少两个公网地址中的一个公网地址,作为在所述每一时间段内的当前激活地址,用于将所述内网设备的私网地址映射为所述当前激活地址。
2.如权利要求1所述的方法,其特征在于,在后续所述内网设备与外网设备的会话过程的每一时间段,所述NAT设备将所述至少两个公网地址中的一个公网地址,作为在所述每一时间段内的当前激活地址,包括:
所述NAT设备按照所述至少两个公网地址的配置顺序,针对所述至少两个公网地址循环依次执行如下操作:
从选择当前次对应的一个公网地址起开始计时,直到计时时长达到所述一个公网地址对应的超时时长时为止,在所述当前次计时过程中,将当前次选择的一个公网地址作为当前激活地址;
其中,一个公网地址对应一个超时时长。
3.如权利要求2所述的方法,其特征在于,还包括:
所述NAT设备接收到所述内网设备发送给外网设备的第一上报数据消息,所述第一上报数据消息中的源地址为所述内网设备的私网地址;
所述NAT设备将所述上报数据消息中的所述内网设备的私网地址替换为作为当前激活地址的第一地址后发送给所述外网设备。
4.如权利要求3所述的方法,其特征在于,还包括:
在接收到所述内网设备发送给外网设备的第一上报数据消息时,所述NAT设备将作为当前激活地址的第一地址标记为当前映射地址。
5.如权利要求4所述的方法,其特征在于,还包括:
所述NAT设备接收到所述外网设备发给所述内网设备的第一指令消息,所述第一指令消息的目的地址为第二地址;所标记的当前映射地址为第二地址;
所述NAT设备确定所述第一指令消息的目的地址与所标记的当前映射地址相同,将所述第一指令消息中的目的地址更改为所述第二地址所映射的所述内网设备的私网地址后,发送给所述内网设备。
6.如权利要求4所述的方法,其特征在于,还包括:
所述NAT设备接收到所述内网设备发送给外网设备的第二上报数据消息,其中,所述第二上报数据消息中的源地址为所述内网设备的私网地址,作为当前激活地址的公网地址为第三地址,所标记的当前映射地址为第四地址;
所述NAT设备将所述上报数据消息中的所述内网设备的私网地址替换为所述第三地址后发送给所述外网设备,将标记为当前映射地址的第四地址标记为前一映射地址;并将作为当前激活地址的第三地址标记为当前映射地址;
其中,所述前一映射地址以及所述当前映射地址均与所述内网设备的私网地址存在映射关系。
7.如权利要求6所述的方法,其特征在于,还包括:
所述NAT设备接收到所述外网设备发送给所述内网设备的第二指令消息;所述第二指令消息的目的地址为第五地址,所标记的当前映射地址为第六地址,所标记的前一映射地址为第五地址;
所述NAT设备确定所述第二指令消息的目的地址与所标记的当前映射地址不同,且所述第二指令消息的目的地址与所标记的前一映射地址相同;
所述NAT设备将所述第二指令消息的目的地址更改为所述第五地址所映射的所述内网设备的私网地址后,发送给所述内网设备。
8.如权利要求7所述的方法,其特征在于,作为当前激活地址的公网地址为第七地址,还包括:
在确定所述第二指令消息的目的地址与所标记的当前映射地址不同,且所述第二指令消息的目的地址与所标记的前一映射地址相同时,所述NAT设备将作为当前激活地址的第七地址标记为当前映射地址,并将标记为当前映射地址的第六地址标记为前一映射地址。
9.如权利要求8所述的方法,其特征在于,在所述NAT设备确定所述第二指令消息的目的地址与所标记的当前映射地址不同,且所述第二指令消息的目的地址与所标记的前一映射地址相同后,还包括:
所述NAT设备向所述外网设备发送指示消息,所述指示消息用于指示所述内网设备映射的地址更改为作为当前激活地址的第七地址。
10.如权利要求6~9任一项所述的方法,其特征在于,还包括:
所述NAT设备接收到所述外网设备发送给所述内网设备的第三指令消息;所述第三指令消息的目的地址为第八地址,所标记的当前映射地址为第九地址,所标记的前一映射地址为第十地址;
所述NAT设备确定所述第三指令消息的目的地址与所标记的当前映射地址不同,且所述第三指令消息的目的地址与所标记的前一映射地址不同;
所述NAT设备将所述第三指令消息的源地址添加到告警列表中,并丢弃所述第三指令消息。
11.如权利要求10所述的方法,其特征在于,还包括:
所述NAT设备接收到所述外网设备发送给所述内网设备的第四指令消息;
所述NAT设备确定所述第四指令消息的源地址与所述告警列表包括的其中一个地址相同,则丢弃所述第四指令消息。
12.一种网络地址转换映射保活装置,其特征在于,所述装置应用于网络地址转换NAT设备,包括:
接收模块,用于接收内网设备发送的探测请求,所述探测请求包括所述内网设备的私网地址;
发送模块,用于在所述接收模块接收到所述探测请求后,向所述内网设备发送探测响应,所述探测响应携带指示信息,所述指示信息用于指示所述内网设备不主动发起心跳消息来维持网络地址转换映射保活;
处理模块,用于从地址资源池中包括的空闲的公网地址中为所述内网设备分配至少两个公网地址,在后续所述内网设备与外网设备的会话过程的每一时间段,将所述至少两个公网地址中的一个公网地址,作为在所述每一时间段内的当前激活地址,用于将所述内网设备的私网地址映射为所述当前激活地址。
13.如权利要求12所述的装置,其特征在于,所述装置还包括:
计时模块,用于对所述处理模块选择每一个公网地址作为当前激活地址的时长进行计时;
所述处理模块,具体用于:按照所述至少两个公网地址的配置顺序,针对所述至少两个公网地址循环依次执行如下操作:
指示所述计时模块从选择当前次对应的一个公网地址起开始计时,直到所述计时模块的计时时长达到所述一个公网地址对应的超时时长时为止,在所述计时模块当前次计时过程中,将当前次选择的一个公网地址作为当前激活地址;
其中,一个公网地址对应一个超时时长,所述计时模块预先被设置有每个公网地址对应的计时时长。
14.如权利要求12所述的装置,其特征在于,所述装置还包括至少两个计时模块,一个计时模块对应一个公网地址;
计时模块,用于对所述处理模块选择的计时模块对应的公网地址作为当前激活地址的时长进行计时;
所述处理模块,具体用于:按照所述至少两个公网地址的配置顺序,针对所述至少两个公网地址循环依次执行如下操作:
指示当前次选择的公网地址对应的计时模块从所述处理模块选择当前次对应的一个公网地址起开始计时,直到所述计时模块的计时时长达到所述一个公网地址对应的超时时长时为止,在所述计时模块当前次计时过程中,将当前次选择的一个公网地址作为当前激活地址;
其中,一个公网地址对应一个超时时长。
15.如权利要求13所述的装置,其特征在于,所述接收模块,还用于:接收所述内网设备发送给外网设备的第一上报数据消息,所述第一上报数据消息中的源地址为所述内网设备的私网地址;
所述处理模块,还用于将所述接收模块接收到的所述上报数据消息中的所述内网设备的私网地址替换为作为当前激活地址的第一地址;
所述发送模块,还用于将所述处理模块处理后的上报数据消息发送给所述外网设备。
16.如权利要求15所述的装置,其特征在于,所述处理模块,还用于:
在所述接收模块接收到所述内网设备发送给外网设备的第一上报数据消息时,将作为当前激活地址的第一地址标记为当前映射地址。
17.如权利要求16所述的装置,其特征在于,所述接收模块,还用于:
接收所述外网设备发给所述内网设备的第一指令消息,所述第一指令消息的目的地址为第二地址;所标记的当前映射地址为第二地址;
所述处理模块,在确定所述接收模块接收到的所述第一指令消息的目的地址与所标记的当前映射地址相同,将所述第一指令消息中的目的地址更改为所述第二地址所映射的所述内网设备的私网地址;
所述发送模块,还用于将所述处理模块处理后的第一指令消息发送给所述内网设备。
18.如权利要求16所述的装置,其特征在于,所述接收模块,还用于:
接收所述内网设备发送给外网设备的第二上报数据消息,其中,所述第二上报数据消息中的源地址为所述内网设备的私网地址,作为当前激活地址的公网地址为第三地址,所标记的当前映射地址为第四地址;
所述处理模块,还用于将所述接收模块接收到的所述上报数据消息中的所述内网设备的私网地址替换为所述第三地址后发送给所述外网设备,将标记为当前映射地址的第四地址标记为前一映射地址;并将作为当前激活地址的第三地址标记为当前映射地址;
其中,所述前一映射地址以及所述当前映射地址均与所述内网设备的私网地址存在映射关系。
19.如权利要求18所述的装置,其特征在于,所述接收模块,还用于:
接收所述外网设备发送给所述内网设备的第二指令消息;所述第二指令消息的目的地址为第五地址,所标记的当前映射地址为第六地址,所标记的前一映射地址为第五地址;
所述处理模块,在确定所述接收模块接收到的所述第二指令消息的目的地址与所标记的当前映射地址不同,且所述第二指令消息的目的地址与所标记的前一映射地址相同;将所述第二指令消息的目的地址更改为所述第五地址所映射的所述内网设备的私网地址;
所述发送模块,还用于将所述处理模块处理后的第二指令消息发送给所述内网设备。
20.如权利要求19所述的装置,其特征在于,作为当前激活地址的公网地址为第七地址,所述处理模块,还用于:
在确定所述第二指令消息的目的地址与所标记的当前映射地址不同,且所述第二指令消息的目的地址与所标记的前一映射地址相同时,所述NAT设备将作为当前激活地址的第七地址标记为当前映射地址,并将标记为当前映射地址的第六地址标记为前一映射地址。
21.如权利要求20所述的装置,其特征在于,所述发送模块,还用于:
在所述处理模块确定所述第二指令消息的目的地址与所标记的当前映射地址不同,且所述第二指令消息的目的地址与所标记的前一映射地址相同后,向所述外网设备发送指示消息,所述指示消息用于指示所述内网设备映射的地址更改为作为当前激活地址的第七地址。
22.如权利要求12~21任一项所述的装置,其特征在于,所述接收模块,还用于接收所述外网设备发送给所述内网设备的第三指令消息;所述第三指令消息的目的地址为第八地址,所标记的当前映射地址为第九地址,所标记的前一映射地址为第十地址;
所述处理模块,还用于确定所述第三指令消息的目的地址与所标记的当前映射地址不同,且所述第三指令消息的目的地址与所标记的前一映射地址不同;将所述第三指令消息的源地址添加到告警列表中,并丢弃所述第三指令消息。
23.如权利要求22所述的装置,其特征在于,所述接收模块,还用于:
接收所述外网设备发送给所述内网设备的第四指令消息;
所述处理模块,还用于在确定所述第四指令消息的源地址与所述告警列表包括的其中一个地址相同时,丢弃所述第四指令消息。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610184480.0A CN107241453B (zh) | 2016-03-28 | 2016-03-28 | 一种网络地址转换映射保活方法及装置 |
EP17773048.8A EP3425884B1 (en) | 2016-03-28 | 2017-03-15 | Mapping keepalive method and apparatus for network address translation |
PCT/CN2017/076829 WO2017167018A1 (zh) | 2016-03-28 | 2017-03-15 | 一种网络地址转换映射保活方法及装置 |
US16/142,978 US10764243B2 (en) | 2016-03-28 | 2018-09-26 | Method and apparatus for keeping network address translation mapping alive |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610184480.0A CN107241453B (zh) | 2016-03-28 | 2016-03-28 | 一种网络地址转换映射保活方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107241453A CN107241453A (zh) | 2017-10-10 |
CN107241453B true CN107241453B (zh) | 2020-07-24 |
Family
ID=59962592
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610184480.0A Active CN107241453B (zh) | 2016-03-28 | 2016-03-28 | 一种网络地址转换映射保活方法及装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10764243B2 (zh) |
EP (1) | EP3425884B1 (zh) |
CN (1) | CN107241453B (zh) |
WO (1) | WO2017167018A1 (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109756401B (zh) * | 2019-03-25 | 2020-11-27 | 新华三信息安全技术有限公司 | 一种测试方法、装置、电子设备及存储介质 |
CN112929457B (zh) * | 2019-12-05 | 2022-11-01 | 中国移动通信集团设计院有限公司 | Nat地址映射分时段保持方法、辅助服务器及设备 |
CN112422646B (zh) * | 2020-11-05 | 2023-04-18 | 杭州萤石软件有限公司 | 一种udp动态心跳的实现方法、装置及存储介质 |
CN112887187B (zh) * | 2021-01-19 | 2022-09-06 | 海尔数字科技(青岛)有限公司 | 一种设备间通信建立方法、系统、装置、设备及介质 |
CN114553965B (zh) * | 2022-01-04 | 2024-05-03 | 网宿科技股份有限公司 | 内网设备的调度方法、网络设备及存储介质 |
CN115278804B (zh) * | 2022-06-25 | 2023-07-11 | 荣耀终端有限公司 | 一种网络选择方法及相关设备 |
CN115150557A (zh) * | 2022-08-30 | 2022-10-04 | 杭州萤石软件有限公司 | 一种物联网相机、报文处理方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7272148B2 (en) * | 2002-06-27 | 2007-09-18 | Hewlett-Packard Development Company, L.P. | Non-ALG approach for application layer session traversal of IPv6/IPv4 NAT-PT gateway |
CN101064625A (zh) * | 2006-04-27 | 2007-10-31 | 中兴通讯股份有限公司 | 一种穿越网络地址翻译网关对用户侧设备进行管理的方法 |
WO2012110103A1 (en) * | 2011-02-18 | 2012-08-23 | Birdstep Technology | Method, gateway, and client for optimizing keep-alive message handling |
CN104601738A (zh) * | 2014-12-09 | 2015-05-06 | 国家计算机网络与信息安全管理中心 | 一种分布式网络地址转换系统 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100628112B1 (ko) * | 2004-12-30 | 2006-09-26 | 엘지전자 주식회사 | 다중 도약 접속 방식이 적용되는 네트워크 영역에서,이동통신 단말기를 이용한 아이피 주소 설정 제어 방법 |
CN101094171B (zh) * | 2006-06-22 | 2011-02-16 | 华为技术有限公司 | 实现媒体流交互方法和系统及媒体网关控制器和媒体网关 |
CN101119299A (zh) * | 2006-08-02 | 2008-02-06 | 华为技术有限公司 | 导通媒体流的方法、导通检测方法及其系统 |
CN1946062A (zh) * | 2006-10-10 | 2007-04-11 | 华为数字技术有限公司 | 保活nat设备中会话表项的方法和系统 |
CN100558081C (zh) * | 2007-01-29 | 2009-11-04 | 华为技术有限公司 | 地址转发表项的保活方法及系统 |
US8023432B2 (en) * | 2007-03-12 | 2011-09-20 | Microsoft Corporation | Cost reduction of NAT connection state keep-alive |
CN101159738A (zh) * | 2007-08-06 | 2008-04-09 | 中兴通讯股份有限公司 | 网络地址转换的时间限制系统及方法 |
US20090240824A1 (en) * | 2008-03-11 | 2009-09-24 | Boris Rekhtman | UDP Hole Punch Timeout Discovery Algorithm Over Network Address Translation Connection |
CN101552745A (zh) * | 2008-03-31 | 2009-10-07 | 华为技术有限公司 | 一种实现nat的方法及装置 |
CN102281335A (zh) * | 2010-06-09 | 2011-12-14 | 北京和信锐智科技有限公司 | 保持网络nat绑定的方法 |
US10237236B2 (en) * | 2015-06-25 | 2019-03-19 | Microsoft Technology Licensing, Llc | Media Session |
-
2016
- 2016-03-28 CN CN201610184480.0A patent/CN107241453B/zh active Active
-
2017
- 2017-03-15 WO PCT/CN2017/076829 patent/WO2017167018A1/zh active Application Filing
- 2017-03-15 EP EP17773048.8A patent/EP3425884B1/en active Active
-
2018
- 2018-09-26 US US16/142,978 patent/US10764243B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7272148B2 (en) * | 2002-06-27 | 2007-09-18 | Hewlett-Packard Development Company, L.P. | Non-ALG approach for application layer session traversal of IPv6/IPv4 NAT-PT gateway |
CN101064625A (zh) * | 2006-04-27 | 2007-10-31 | 中兴通讯股份有限公司 | 一种穿越网络地址翻译网关对用户侧设备进行管理的方法 |
WO2012110103A1 (en) * | 2011-02-18 | 2012-08-23 | Birdstep Technology | Method, gateway, and client for optimizing keep-alive message handling |
CN104601738A (zh) * | 2014-12-09 | 2015-05-06 | 国家计算机网络与信息安全管理中心 | 一种分布式网络地址转换系统 |
Also Published As
Publication number | Publication date |
---|---|
CN107241453A (zh) | 2017-10-10 |
US20190028429A1 (en) | 2019-01-24 |
EP3425884A4 (en) | 2019-03-06 |
WO2017167018A1 (zh) | 2017-10-05 |
EP3425884B1 (en) | 2021-03-03 |
EP3425884A1 (en) | 2019-01-09 |
US10764243B2 (en) | 2020-09-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107241453B (zh) | 一种网络地址转换映射保活方法及装置 | |
EP3793144A1 (en) | Multipath data transmission method and device | |
CN107948076B (zh) | 一种转发报文的方法及装置 | |
CN110611723B (zh) | 一种服务资源的调度方法及装置 | |
EP3595271A1 (en) | Packet transmission method and apparatus | |
EP3026872A1 (en) | Packet forwarding method, apparatus, and system | |
JP2015515177A5 (zh) | ||
ES2719541T3 (es) | Procedimiento y aparato de modificación de reglas de procesamiento | |
JP2018518867A5 (zh) | ||
RU2016105083A (ru) | Обнаружение сети и соединение с использованием адресов устройства, не коррелированных с устройством | |
CN108512714B (zh) | 一种报文传输方法、相关设备和系统 | |
CN113810512A (zh) | 物联网终端接入系统、方法、装置及存储介质 | |
CN111193756B (zh) | 一种vxlan隧道负载均衡方法及相关设备 | |
JP2020500374A5 (zh) | ||
CN106507414B (zh) | 报文转发方法及装置 | |
US9755833B2 (en) | Identification information management system, method of generating and managing identification information, terminal, and generation and management programs | |
US8799514B1 (en) | Allocating port ranges | |
CN106027354B (zh) | Vpn客户端的回流方法及装置 | |
EP3267648B1 (en) | Data processing methods and device | |
CN112351115A (zh) | 对称型nat设备的端口预测方法及装置 | |
CN106953849B (zh) | 一种基于IPv6地址的数据报文匹配方法及装置 | |
CN106789666B (zh) | 一种确定转换后端口的方法和装置 | |
CN107612831B (zh) | 一种访问源站的数据报文的传输方法及装置 | |
US10142126B2 (en) | Scalable dynamic overlay tunnel management | |
WO2014169590A1 (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |