CN112040029B - Nat转换方法、装置、计算机设备及存储介质 - Google Patents
Nat转换方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN112040029B CN112040029B CN202011214041.2A CN202011214041A CN112040029B CN 112040029 B CN112040029 B CN 112040029B CN 202011214041 A CN202011214041 A CN 202011214041A CN 112040029 B CN112040029 B CN 112040029B
- Authority
- CN
- China
- Prior art keywords
- address
- public network
- network
- local area
- nat
- 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/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/5046—Resolving address allocation conflicts; Testing of addresses
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转换方法包括:根据第一用户终端所属的第一局域网的第一IP地址,获取对应的第一公网IP地址段;从第一公网IP地址段中获取第一公网IP地址,并将第一公网IP地址和第一公网端口分配给第一用户终端;接收第一用户终端发送的第一正向报文;将第一正向报文的源IP地址转换为第一公网IP地址,以及将第一正向报文的源端口转换为第一公网端口,并将NAT转换后的第一正向报文发送给服务器。本申请中通过将局域网的IP地址与公网IP地址段对应,每一局域网分配对应的公网IP地址段,局域网内的用户终端可以使用对应的公网IP地址段对外网的服务器进行访问,从而可以解决多局域网之间IP冲突的问题。
Description
技术领域
本申请涉及通信技术领域,具体涉及一种NAT转换方法、装置、计算机设备及存储介质。
背景技术
随着接入因特网的计算机数量的不断猛增,公网IP地址资源也就愈加显得捉襟见肘。一般即使是拥有几百台计算机的大型局域网用户,当他们申请公网IP地址时,所分配的公网IP地址也不过只有几个或十几个。显然,这样少的公网IP地址根本无法满足网络用户的需求,于是也就产生了网络地址转换技术(Network Address Translation,NAT)。
NAT是将数据包头中的IP地址转换为另一个IP地址的过程,目前利用NAT技术进行报文传输时,多局域网之间容易发生IP冲突。
发明内容
本申请实施例提供一种NAT转换方法、装置、计算机设备及存储介质,以解决利用NAT技术进行报文传输时,多局域网之间容易发生IP冲突的技术问题。
为解决上述问题,本发明提供的技术方案如下:
第一方面,本申请提供一种NAT转换方法,应用于NAT转换设备,所述NAT转换方法包括:
获取处于上线状态的第一用户终端的IP地址,根据所述第一用户终端的IP地址,确定所述第一用户终端所属的第一局域网的第一IP地址,并根据所述第一IP地址获取对应的第一公网IP地址段;
获取第一公网端口,以及从所述第一公网IP地址段中获取第一公网IP地址,并将所述第一公网IP地址和所述第一公网端口分配给所述第一用户终端;
接收所述第一用户终端发送的第一正向报文,并根据所述第一正向报文的五元组信息、所述第一公网IP地址以及第一公网端口生成第一流表;
对所述第一正向报文进行NAT转换,以将所述第一正向报文的源IP地址转换为所述第一公网IP地址,以及将所述第一正向报文的源端口转换为第一公网端口,并将NAT转换后的第一正向报文发送给服务器;
接收所述服务器根据NAT转换后的第一正向报文发送的第一反向报文,并根据所述第一反向报文的源IP地址,从所述第一流表中获取所述第一用户终端的第一私网IP地址和第一私网端口;
对所述第一反向报文进行NAT转换,以将所述第一反向报文的目的IP地址转换为所述第一私网IP地址,以及将所述第一反向报文的目的端口转换为所述第一私网端口,并将NAT转换后的第一反向报文发送给所述第一用户终端。
在一些实施例中,所述NAT转换方法还包括:
获取处于上线状态的第二用户终端的IP地址,根据所述第二用户终端的IP地址,确定所述第二用户终端所属的第二局域网的第二IP地址,并根据所述第二IP地址获取对应的第二公网IP地址段,所述第二公网IP地址段与所述第一公网IP地址段无交集;
获取第二公网端口,以及从所述第二公网IP地址段中获取第二公网IP地址,并将所述第二公网IP地址和所述第二公网端口分配给所述第二用户终端;
接收所述第二用户终端发送的第二正向报文,并根据所述第二正向报文的五元组信息、所述第二公网IP地址以及第二公网端口生成第二流表;
对所述第二正向报文进行NAT转换,以将所述第二正向报文的源IP地址转换为所述第二公网IP地址,以及将所述第二正向报文的源端口转换为第二公网端口,并将NAT转换后的第二正向报文发送给服务器;
接收所述服务器根据NAT转换后的第二正向报文发送的第二反向报文,并根据所述第二反向报文的源IP地址,从所述第二流表中获取所述第二用户终端的第二私网IP地址和第二私网端口;
对所述第二反向报文进行NAT转换,以将所述第二反向报文的目的IP地址转换为所述第二私网IP地址,以及将所述第二反向报文的目的端口转换为所述第二私网端口,并将NAT转换后的第二反向报文发送给所述第二用户终端。
在一些实施例中,所述获取处于上线状态的第一用户终端的IP地址,根据所述第一用户终端的IP地址,确定所述第一用户终端所属的第一局域网的第一IP地址,并根据所述第一IP地址获取对应的第一公网IP地址段的步骤之前,所述NAT转换方法还包括:
根据预置的NAT资源池中的公网IP地址资源,为各上线的局域网分配对应的公网IP地址段,局域网内存在用户终端处于上线状态的局域网为上线的局域网;
根据各局域网的IP地址和与各局域网对应的公网IP地址段,生成与各局域网对应的关联信息;
将所述关联信息存放于所述NAT转换设备的内存池中;
在所述根据所述第一IP地址获取对应的第一公网IP地址段的步骤中,根据所述第一IP地址从所述第一局域网的关联信息中获取所述第一公网IP地址段。
在一些实施例中,所述将所述关联信息存放于所述NAT转换设备的内存池中的步骤包括:
从所述内存池中申请用于存放所述关联信息的存储空间,并将所述关联信息存放于对应的存储空间中;
为各局域网分配对应的子接口地址,以所述子接口地址作为哈希值,将所述各局域网的关联信息在所述存储空间中的存储地址存放到哈希表中。
在一些实施例中,所述根据所述第一IP地址获取对应的第一公网IP地址段的步骤包括:
根据所述第一IP地址确定所述第一局域网的第一子接口地址,将所述第一子接口地址作为哈希值查询哈希表,以确定所述第一局域网的关联信息在所述存储空间中的存储地址;
根据所述第一局域网的关联信息在所述存储空间中的存储地址,从所述存储空间中提取所述第一局域网的关联信息,并从所述第一局域网的关联信息中提取第一公网IP地址段。
在一些实施例中,所述根据NAT资源池中的公网IP地址资源,为各上线的局域网分配对应的公网IP地址段的步骤包括:
根据NAT资源池中的公网IP地址资源、上线的局域网的数量以及各上线的局域网中用户终端的数量,或/和,各上线的局域网中处于上线状态的用户终端的数量,确定为各上线的局域网分配的公网IP地址段的长度范围。
在一些实施例中,所述获取第一公网端口,以及从所述第一公网IP地址段中获取第一公网IP地址,并将所述第一公网IP地址和第一公网端口分配给所述第一用户终端的步骤包括;
从预置的NAT资源池中随机获取第一公网端口,并从所述第一公网IP地址段中随机获取第一公网IP地址。
第二方面,本申请还提供一种NAT转换装置,应用于NAT转换设备,所述NAT转换装置包括用户上网单元、网络服务单元以及NAT服务单元,其中:
所述用户上网单元用于获取处于上线状态的第一用户终端的IP地址,根据所述第一用户终端的IP地址,确定所述第一用户终端所属的第一局域网的第一IP地址,并根据所述第一IP地址获取对应的第一公网IP地址段;
所述用户上网单元还用于获取第一公网端口,以及从所述第一公网IP地址段中获取第一公网IP地址和第一公网端口,并将所述第一公网IP地址和所述第一公网端口分配给所述第一用户终端;
所述网络服务单元用于接收所述第一用户终端发送的第一正向报文,并根据所述第一正向报文的五元组信息、所述第一公网IP地址以及第一公网端口生成第一流表;
所述NAT服务单元用于对所述第一正向报文进行NAT转换,以将所述第一正向报文的源IP地址转换为所述第一公网IP地址,以及将所述第一正向报文的源端口转换为第一公网端口,并将NAT转换后的第一正向报文发送给服务器;
所述网络服务单元还用于接收所述服务器根据NAT转换后的第一正向报文发送的第一反向报文,并根据所述第一反向报文的源IP地址,从所述第一流表中获取所述第一用户终端的第一私网IP地址和第一私网端口;
所述NAT服务单元还用于对所述第一反向报文进行NAT转换,以将所述第一反向报文的目的IP地址转换为所述第一私网IP地址,以及将所述第一反向报文的目的端口转换为所述第一私网端口,并将NAT转换后的第一反向报文发送给所述第一用户终端。
第三方面,本申请还提供一种计算机设备,所述计算机设备包括:
一个或多个处理器;
存储器;以及
一个或多个应用程序;
其中所述一个或多个应用程序被存储于所述存储器中,并配置为由所述处理器执行以实现上述任一种NAT转换方法。
第四方面,本申请还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器进行加载,以执行上述任一种NAT转换方法中的步骤。
本申请中通过将局域网的IP地址与公网IP地址段对应,每一局域网分配对应的公网IP地址段,局域网内的用户终端可以使用对应的公网IP地址段对外网的服务器进行访问,从而可以解决多局域网之间IP冲突的问题,同时利用公网IP地址+公网端口的形式,可以使得同一局域网中的不同用户终端使用不同的公网IP地址或/和不同的公网端口对外网的服务器进行访问,从而可以解决局域网内IP冲突的问题。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请一实施方式中报文传输系统的场景示意图;
图2为本申请一实施方式中NAT转换方法的流程示意图;
图3为本申请一实施方式中NAT转换方法的流程示意图;
图4为本申请一实施方式中NAT转换方法的流程示意图;
图5为本申请一实施方式中获取第一公网IP地址段的流程示意图;
图6为本申请一实施方式中NAT转换装置的结构示意图;
图7是本申请一实施方式中提供的计算机设备的结构示意图。
附图标记:
101、第一用户终端;102、第二用户终端;200、NAT转换设备;300、服务器;400、NAT转换装置;401、用户上网单元;402、网络服务单元;403、NAT服务单元;501、处理器;502、存储器;503、电源;504、输入单元。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在本申请的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“长度”、“宽度”、“厚度”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本申请和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本申请的限制。此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个所述特征。在本申请的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
下面首先对本发明实施例中涉及到的一些基本概念进行介绍:
在实际应用中,NAT 技术主要用于实现私有网络访问公共网络的功能。这种通过使用少量的公网IP地址代表较多的私网IP地址的方式,将有助于减缓可用公网IP地址的枯竭。私网IP地址是指内部网络或主机的IP地址,公网IP地址是指在因特网上全球唯一的IP地址。
局域网(Local Area Network,LAN)是在一个局部的地理范围内(如一个学校、工厂和机关内),将各种计算机、外部设备和数据库等互相联接起来组成的计算机通信网,局域网为私网(内网)。
本申请实施例提供一种NAT转换方法、装置、计算机设备及存储介质,以下分别进行详细说明。
如图1所示,图1为本发明一实施方式中报文传输系统的场景示意图,该报文传输系统可以包括用户终端、用于网络地址转换的NAT转换设备200以及服务器300。
本申请实施例中,用户终端为位于私网(内网)的终端,用户终端可以是一个通用计算机设备或者是一个专用计算机设备。在具体实现中用户终端可以是台式机、便携式电脑、网络服务器、掌上电脑(Personal Digital Assistant,PDA)、移动手机、平板电脑、无线终端设备、通信设备、嵌入式设备等,本实施例不限定用户终端的类型。
本申请实施例中的NAT转换设备200主要用于获取用户终端发送的正向报文,并对正向报文进行NAT转换后转发给服务器300,以及用于接收服务器300发送的反向报文,并对反向报文进行NAT转换后发送给用户终端,以实现用户终端与服务器300之间的报文传输。
可以理解的是,服务器300接收到NAT转换设备200传送的正向报文后,服务器300会根据接收的正向报文作出相应回应,以发送与正向报文对应的反向报文给NAT转换设备200,NAT转换设备200对反向报文进行NAT转换后,根据NAT转换后的反向报文的目的地址将NAT转换后的反向报文转发至对应的用户终端。
需要说明的是,NAT转换设备200可以为路由器或防火墙等设备。从实现从转换模式的角度而言,NAT可分为PAT(Port Address Translation,带端口的地址转换)和NO-PAT(Not Port Address Translation,不带端口的地址转换)。其中,NO-PAT模式下,一个公网IP地址同一时间只能分给一个私网IP地址进行转换;而PAT模式下,一个公网IP地址可以同时分配给多个私网IP地址共用。本申请所出现的NAT指PAT模式。
本申请实施例中,服务器300为外网(公网)的服务器300,服务器300可以是独立的服务器300,也可以是多个服务器300组成的服务器网络或服务器集群,例如,本发明实施例中所描述的服务器300,其包括但不限于计算机、网络主机、单个网络服务器、多个网络服务器集或多个服务器构成的云服务器。其中,云服务器由基于云计算(Cloud Computing)的大量计算机或网络服务器构成。
本领域技术人员可以理解,图1中示出的应用场景,仅仅是本申请方案的一种应用场景,并不构成对本申请方案应用场景的限定,其他的应用环境还可以包括比图1中所示更多或更少的用户终端,例如图1中仅示出一个局域网中包含两个用户终端,可以理解的,一个局域网还可以包括一个或更多个可访问服务器300的其他用户终端,具体此处不作限定。
需要说明的是,图1所示的报文传输系统的场景示意图仅仅是一个示例,本发明实施例描述的报文传输系统以及场景是为了更加清楚的说明本发明实施例的技术方案,并不构成对于本发明实施例提供的技术方案的限定,本领域普通技术人员可知,随着报文传输系统的演变和新业务场景的出现,本发明实施例提供的技术方案对于类似的技术问题,同样适用。
首先,本发明实施例中提供一种NAT转换方法,该NAT转换方法的执行主体为NAT转换装置400,应用于NAT转换设备200。
如图1和图2所示,图2为本发明一实施方式中NAT转换方法的流程示意图,NAT转换方法包括:
S101、获取处于上线状态的第一用户终端101的IP地址,根据所述第一用户终端101的IP地址,确定所述第一用户终端101所属的第一局域网的第一IP地址,并根据所述第一IP地址获取对应的第一公网IP地址段。
需要说明的是,在本申请中,用户终端处于上线状态是指用户终端处于正常工作的状态。局域网的IP地址是指网络通信中局域网被分配的通信地址。
举例说明,如表1所示,其意义是,一个IP地址为192.168.1.1的用户终端通过源端口10000,利用TCP协议,与目的IP地址为121.14.88.76,目的端口为80的终端进行连接,该用户终端所在的局域网的IP地址为192.168.1。
需要说明的是,在本申请中,公网IP地址段是指由多个公网IP地址形成的集合,公网IP地址段包含有多个公网IP地址,如公网IP地址段为224.0.0.0~224.255.0.0,该公网IP地址段包含有224.220.0、0224.250.0.0以及224.251.0.0等公网IP地址。
S102、获取第一公网端口,以及从所述第一公网IP地址段中获取第一公网IP地址,并将所述第一公网IP地址和所述第一公网端口分配给所述第一用户终端101。
需要说明的是,公网端口是指用户终端访问外网的服务器300时分配到的端口,公网端口资源和公网IP地址资源可以均存储于预置的NAT资源池中。
需要说明的是,第一局域网可以包括多个用户终端,第一用户终端101可以为第一局域网内的任意一个用户终端。
可以理解的是,第一公网IP地址是指第一用户终端101访问外网的服务器300时分配到的公网IP地址,第一公网IP地址为第一公网IP地址段中的一个公网IP地址;第一公网端口是指第一用户终端101访问外网的服务器300时分配到的公网端口,所述第一用户终端101通过所述第一公网端口对外网的服务器300进行访问。
需要说明的是,同一局域网内不同的两个用户终端分配到相同的公网IP地址时,该两个用户终端分配到的公网端口不相同;同一局域网内不同的两个用户终端分别分配到不同的公网IP地址时,该两个用户终端分配到的公网端口可以相同或不同。
S103、接收所述第一用户终端101发送的第一正向报文,并根据所述第一正向报文的五元组信息、所述第一公网IP地址以及第一公网端口生成第一流表。
需要说明的是,在本申请中,五元组是通信术语,正向报文的五元组信息是指正向报文的源IP地址、源端口、目的IP地址、目的端口和传输层协议,用户终端发出的正向报文的源IP地址是指发出正向报文的用户终端的IP地址,源端口是指用户终端发出正向报文的端口,正向报文的目的IP地址是指正向报文需要访问的服务器300的IP地址,正向报文的目的端口是指正向报文需要访问的服务器300的端口,传输层协议是指TCP/IP协议族(TCP/IPProtocol Suite,TCP/IP)或用户数据报协议(User Datagram Protocol,UDP)等通信协议。
需要说明的是,第一正向报文可以为第一用户终端101发送的报文中的任意一个报文,所述第一流表中记录有第一正向报文的五元组信息、第一公网IP地址和第一公网端口,以及第一公网IP地址与第一正向报文的源IP地址的对应信息等信息。
S104、对所述第一正向报文进行NAT转换,以将所述第一正向报文的源IP地址转换为所述第一公网IP地址,以及将所述第一正向报文的源端口转换为第一公网端口,并将NAT转换后的第一正向报文发送给服务器300。
可以理解的是,NAT转换装置400接收到第一正向报文后,对第一正向报文的源IP地址和源端口进行NAT转换,根据第一正向报文的目的IP地址和目的端口,将第一正向报文转发至对应的服务器300,以对服务器300进行访问。
如表2所示,例如第一正向报文的源IP地址为192.168.1.1,第一正向报文的源端口为10000,第一正向报文需要访问的服务器300的IP地址为121.14.88.76,第一正向报文需要访问的服务器300的端口为80,第一正向报文被分配到的公网IP地址为61.159.62.130,第一正向报文被分配到的公网端口为30。
如表3所示,对第一正向报文进行NAT转换后,将第一正向报文的源IP地址转换为所述第一公网IP地址,以及将所述第一正向报文的源端口转换为所述第一公网端口后,此时第一正向报文的源IP地址为61.159.62.130,第一正向报文的源端口为30,第一正向报文的目的IP地址为121.14.88.76,第一正向报文的目的端口为80。
S105、接收所述服务器300根据NAT转换后的第一正向报文发送的第一反向报文,并根据所述第一反向报文的源IP地址,从所述第一流表中获取所述第一用户终端101的第一私网IP地址和第一私网端口。
需要说明的是,第一反向报文是服务器300接收到第一用户终端101发送的第一正向报文后发出的回复报文,接收第一正向报文的服务器300根据第一正向报文中的数据回复第一用户终端101的访问请求;第一反向报文的源IP地址是指发出第一反向报文的服务器300的IP地址,与第一正向报文的目的IP地址相同;第一流表中的第一私网IP地址是指第一用户终端101的IP地址,即第一正向报文的源IP地址;第一流表中的第一私网端口是指第一用户终端101发出第一正向报文的端口,即第一正向报文的源端口。
可以理解的是,可以根据第一反向报文的源IP地址查询到对应的第一流表,第一流表中记录有第一正向报文的NAT转换信息,从而可以从所述第一流表中获取所述第一用户终端101的第一私网IP地址和第一私网端口。
S106、对所述第一反向报文进行NAT转换,以将所述第一反向报文的目的IP地址转换为所述第一私网IP地址,以及将所述第一反向报文的目的端口转换为所述第一私网端口,并将NAT转换后的第一反向报文发送给所述第一用户终端101。
如表4所示,例如第一反向报文的源IP地址为121.14.88.76,第一反向报文的源端口为80,第一反向报文的目的IP地址为第一公网IP地址,即为61.159.62.130,第一反向报文的目的端口为第一公网端口,即为30,第一反向报文需要访问的用户终端100的IP地址为第一用户终端101的IP地址,即为192.168.1.1,第一反向报文需要访问的用户终端100的端口为第一用户终端101的端口,即为1000。
如表5所示,对第一反向报文进行NAT转换后,将所述第一反向报文的目的IP地址转换为第一私网IP地址,以及将所述第一反向报文的目的端口转换为第一私网端口后,此时第一反向报文的源IP地址为121.14.88.76,第一反向报文的源端口为80,第一反向报文的目的IP地址为192.168.1.1,第一正向报文的目的端口为1000。
本申请中通过将局域网的IP地址与公网IP地址段对应,每一局域网分配对应的公网IP地址段,局域网内的用户终端可以使用对应的公网IP地址段对外网的服务器300进行访问,从而可以解决多局域网之间IP冲突的问题,同时利用公网IP地址+公网端口的形式,可以使得同一局域网中的不同用户终端使用不同的公网IP地址或/和不同的公网端口对外网的服务器300进行访问,从而可以解决局域网内IP冲突的问题。
如图3所示,图3为本发明一实施方式中NAT转换方法的流程示意图,所述NAT转换方法还包括:
S201、获取处于上线状态的第二用户终端102的IP地址,根据所述第二用户终端102的IP地址,确定所述第二用户终端102所属的第二局域网的第二IP地址,并根据所述第二IP地址获取对应的第二公网IP地址段,所述第二公网IP地址段与所述第一公网IP地址段无交集。
需要说明的是,第二局域网为与第一局域网相互独立的局域网,且第二局域网的第二IP地址与第一局域网的第一IP地址不同,如第一用户终端101的IP地址为192.168.1.1,第一局域网的第一IP地址为192.168.1,第二用户终端102的IP地址为192.168.2.2,第二局域网的第一IP地址为192.168.2。第二局域网包括多个用户终端,第二用户终端102可以为第二局域网内的任意一个用户终端。
需要说明的是,第二公网IP地址段与第一公网IP地址段无交集是指第二公网IP地址段中的所有公网IP地址与第一公网IP地址中的所有公网IP地址均不相同,第一公网IP地址中的公网IP地址的数量与第二公网IP地址中的公网IP地址的数量相同或不同,如第一公网IP地址段为224.0.0.0~224.200.0.0,第二公网IP地址段为224.201.0.0~224.224.0.0。
可以理解的是,通过预先为不同的局域网分配不同的公网IP地址段,从而使得不同的局域网只能使用完全不同的公网IP地址对外网的服务器300进行访问,从而可以避免局域网之间IP冲突的问题。
S202、获取第二公网端口,以及从所述第二公网IP地址段中获取第二公网IP地址,并将所述第二公网IP地址和所述第二公网端口分配给所述第二用户终端102。
S203、接收所述第二用户终端102发送的第二正向报文,并根据所述第二正向报文的五元组信息、所述第二公网IP地址以及第二公网端口生成第二流表。
可以理解的是,第二正向报文为所述第二用户终端102发送的报文中的任意一个报文。
S204、对所述第二正向报文进行NAT转换,以将所述第二正向报文的源IP地址转换为所述第二公网IP地址,以及将所述第二正向报文的源端口转换为第二公网端口,并将NAT转换后的第二正向报文发送给服务器300。
需要说明的是,第一公网端口可以与第二公网端口相同或不同。
可以理解的是,第二正向报文的发送过程与第一正向报文的发送过程相同,但分配给第二正向报文的第二公网IP地址与分配给第一正向报文的第一公网IP地址不相同,即不同的局域网内的两个用户终端使用不同的公网IP地址访问服务器300,同时由于同一局域网内的用户终端可以使用不同的公网端口访问服务器300,从而可以减少所需公网IP地址的数量,以缓解公网IP地址不足,可用的公网IP地址枯竭的问题。
S205、接收所述服务器300根据NAT转换后的第二正向报文发送的第二反向报文,并根据所述第二反向报文的源IP地址,从所述第二流表中获取所述第二用户终端102的第二私网IP地址和第二私网端口。
S206、对所述第二反向报文进行NAT转换,以将所述第二反向报文的目的IP地址转换为所述第二私网IP地址,以及将所述第二反向报文的目的端口转换为所述第二私网端口,并将NAT转换后的第二反向报文发送给所述第二用户终端102。
可以理解的是,第二反向报文的发送过程与第一反向报文的发送过程相同,但第二反向报文是服务器300接收到第二用户终端102发送的第二正向报文后发出的回复报文,接收第二正向报文的服务器300根据第二正向报文中的数据回复第二用户终端102的访问请求。
如图4所示,图4为本发明一实施方式中NAT转换方法的流程示意图,在所述步骤S101之前,所述NAT转换方法还包括:
S301、根据预置的NAT资源池中的公网IP地址资源,为各上线的局域网分配对应的公网IP地址段,局域网内存在用户终端处于上线状态的局域网为上线的局域网。
可以理解的是,为各局域网分配的公网IP地址段来自于NAT资源池中;NAT转换设备200中存储有一个或多个NAT资源池,以应对不同类型的IP地址,并且,NAT资源池包括公网IP地址池及公网端口池,以用于分别存储公网IP地址和公网端口。
S302、根据各局域网的IP地址和与各局域网对应的公网IP地址段,生成与各局域网对应的关联信息。
可以理解的是,各关联信息中包含有对应的局域网的IP地址以及分配给对应的局域网的公网IP地址段等信息。
S303、将所述关联信息存放于所述NAT转换设备200的内存池中。
其中,在所述根据所述第一IP地址获取对应的第一公网IP地址段的步骤中,根据所述第一IP地址从所述第一局域网的关联信息中获取所述第一公网IP地址段。
需要说明的是,用户终端上线时即为各上线的局域网分配对应的公网IP地址段,并将各局域网的关联信息存放于内存池中,用户终端发送报文时,根据第一局域网的第一IP地址从所述第一局域网的关联信息中获取分配给所述第一局域网的第一公网IP地址段。
在一实施方式中,所述步骤S303包括:
从所述内存池中申请用于存放所述关联信息的存储空间,并将所述关联信息存放于对应的存储空间中;
为各局域网分配对应的子接口地址,以所述子接口地址作为哈希值,将所述各局域网的关联信息在所述存储空间中的存储地址存放到哈希表中。
如图5所示,图5为本发明一实施方式中获取第一公网IP地址段的流程示意图,根据所述第一IP地址获取对应的第一公网IP地址段的步骤包括:
S1011、根据所述第一IP地址确定所述第一局域网的第一子接口地址,将所述第一子接口地址作为哈希值查询哈希表,以确定所述第一局域网的关联信息在所述存储空间中的存储地址;
S1012、根据所述第一局域网的关联信息在所述存储空间中的存储地址,从所述存储空间中提取所述第一局域网的关联信息,并从所述第一局域网的关联信息中提取第一公网IP地址段。
可以理解的是,利用哈希表存储关联信息在存储空间中的存储地址,同时利用与局域网一一对应的子接口地址作为查询哈希表的哈希值,利用对应的哈希值即可从哈希表中获取与局域网对应的关联信息在所述存储空间中的存储地址,根据关联信息在所述存储空间中的存储地址即可从存储空间中提取对应的关联信息,从而可以从对应的关联信息中获取分配给对应的局域网的公网IP地址段。
需要说明的时,根据所述第二IP地址获取对应的第二公网IP地址段的过程与根据所述第一IP地址获取对应的第一公网IP地址段的过程相同。
在一实施方式中,在所述S302中,也可以根据各局域网的IP地址和子网掩码,以及与各局域网对应的公网IP地址段,生成与各局域网对应的关联信息。
此时,各关联信息中包含有对应的局域网的IP地址、网络标识、子网掩码以及分配给对应的局域网的公网IP地址段等信息。
需要说明的是,子网掩码(Subnet Mask)又叫网络掩码、地址掩码以及子网络遮罩等,子网掩码是一种用来指明一个IP地址的哪些位标识的是主机所在的子网,以及哪些位标识的是主机的位掩码。子网掩码不能单独存在,它必须结合IP地址一起使用。子网掩码只有一个作用,就是将某个IP地址划分成网络地址和主机地址两部分,而局域网的子网掩码用于将局域网的IP地址划分成网络标识和主机标识两部分,以区别网络标识和主机标识,并说明该IP地址是在局域网上,还是在公网上;比如为局域网申请到的IP地址为210.73.a.b,其中,该局域网的网络地址为c类IP地址,网络标识为210.73.a,主机标识为b。
此时,从所述存储空间中提取所述第一局域网的关联信息时,可以通过将第一局域网的IP地址与第一局域网的子网掩码作与操作后,获得第一局域网的IP地址的网络标识,将第一局域网的网络标识与提取的关联信息中的网络标识作比对,以确定提取的关联信息为第一局域网的关联信息,避免出现提取错误。
在一实施方式中,所述步骤S301包括:
根据NAT资源池中的公网IP地址资源、上线的局域网的数量以及各上线的局域网中用户终端的数量,或/和,各上线的局域网中处于上线状态的用户终端的数量,确定为各上线的局域网分配的公网IP地址段的长度范围。
可以理解的是,公网IP地址段的长度范围是指公网IP地址段包含的公网IP地址的数量,分配给局域网的公网IP地址段的长度范围可以取决于公网IP地址资源和上线的局域网的数量等多个因素,在公网IP地址资源和上线的局域网的数量一定时,分配给局域网的公网IP地址段的长度范围还需要根据局域网中用户终端的数量或/和各上线的局域网中处于上线状态的用户终端的数量来决定。
一般而言,公网IP地址资源越多,并且上线的局域网的数量越少,则分配给局域网的公网IP地址段的长度范围越大;局域网的用户终端的数量越多,则分配给局域网的公网IP地址段的长度范围越大;局域网中处于上线状态的用户终端的数量,则分配给局域网的公网IP地址段的长度范围越大。
在一实施方式中,所述步骤S102包括:
从预置的NAT资源池中随机获取第一公网端口,并从所述第一公网IP地址段中随机获取第一公网IP地址。
可以理解的是,预先为各局域网分配对应的公网IP地址段后,局域网内的用户终端进行报文发送时,可以从对应的公网IP地址段中随机获取公网IP地址,即各局域网内的用户终端可以分配并使用对应的公网IP地址段中的任一公网IP地址对服务器300进行访问。
需要说明的是,同一局域网内的两个用户终端可以使用同一个公网IP地址对服务器300进行访问,但此时两个用户终端使用不同的公网端口,以避免产生局域网内IP冲突。
为了更好实施本发明实施例中的NAT转换方法,在NAT转换方法的基础之上,本发明实施例中还提供一种NAT转换装置400,NAT转换装置400应用于NAT转换设备200。
如图6所示,所述NAT转换装置400包括用户上网单元401、网络服务单元402以及NAT服务单元403,其中:
所述用户上网单元401用于获取处于上线状态的第一用户终端101的IP地址,根据所述第一用户终端101的IP地址,确定所述第一用户终端101所属的第一局域网的第一IP地址,并根据所述第一IP地址获取对应的第一公网IP地址段;
所述用户上网单元401还用于获取第一公网端口,以及从所述第一公网IP地址段中获取第一公网IP地址和第一公网端口,并将所述第一公网IP地址和所述第一公网端口分配给所述第一用户终端101;
所述网络服务单元402用于接收所述第一用户终端101发送的第一正向报文,并根据所述第一正向报文的五元组信息、所述第一公网IP地址以及第一公网端口生成第一流表;
所述NAT服务单元403用于对所述第一正向报文进行NAT转换,以将所述第一正向报文的源IP地址转换为所述第一公网IP地址,以及将所述第一正向报文的源端口转换为第一公网端口,并将NAT转换后的第一正向报文发送给服务器300;
所述网络服务单元402还用于接收所述服务器300根据NAT转换后的第一正向报文发送的第一反向报文,并根据所述第一反向报文的源IP地址,从所述第一流表中获取所述第一用户终端101的第一私网IP地址和第一私网端口;
所述NAT服务单元403还用于对所述第一反向报文进行NAT转换,以将所述第一反向报文的目的IP地址转换为所述第一私网IP地址,以及将所述第一反向报文的目的端口转换为所述第一私网端口,并将NAT转换后的第一反向报文发送给所述第一用户终端101。
在一实施方式中,所述用户上网单元401还用于获取处于上线状态的第二用户终端102的IP地址,根据所述第二用户终端102的IP地址,确定所述第二用户终端102所属的第二局域网的第二IP地址,并根据所述第二IP地址获取对应的第二公网IP地址段,所述第二公网IP地址段与所述第一公网IP地址段无交集;
所述用户上网单元401还用于获取第二公网端口,以及从所述第二公网IP地址段中获取第二公网IP地址,并将所述第二公网IP地址和所述第二公网端口分配给所述第二用户终端102;
所述网络服务单元402还用于接收所述第二用户终端102发送的第二正向报文,并根据所述第二正向报文的五元组信息、所述第二公网IP地址以及第二公网端口生成第二流表;
所述NAT服务单元403还用于对所述第二正向报文进行NAT转换,以将所述第二正向报文的源IP地址转换为所述第二公网IP地址,以及将所述第二正向报文的源端口转换为第二公网端口,并将NAT转换后的第二正向报文发送给服务器300;
所述网络服务单元402还用于接收所述服务器300根据NAT转换后的第二正向报文发送的第二反向报文,并根据所述第二反向报文的源IP地址,从所述第二流表中获取所述第二用户终端102的第二私网IP地址和第二私网端口;
所述NAT服务单元403还用于对所述第二反向报文进行NAT转换,以将所述第二反向报文的目的IP地址转换为所述第二私网IP地址,以及将所述第二反向报文的目的端口转换为所述第二私网端口,并将NAT转换后的第二反向报文发送给所述第二用户终端102。
在一实施方式中,所述NAT服务单元403还用于:根据预置的NAT资源池中的公网IP地址资源,为各上线的局域网分配对应的公网IP地址段,局域网内存在用户终端处于上线状态的局域网为上线的局域网;根据各局域网的IP地址和与各局域网对应的公网IP地址段,生成与各局域网对应的关联信息;将所述关联信息存放于所述NAT转换设备200的内存池中。
其中,在所述根据所述第一IP地址获取对应的第一公网IP地址段的步骤中,所述用户上网单元401还用于根据所述第一IP地址从所述第一局域网的关联信息中获取所述第一公网IP地址段。
在一实施方式中,所述NAT服务单元403还用于:从所述内存池中申请用于存放所述关联信息的存储空间,并将所述关联信息存放于对应的存储空间中;为各局域网分配对应的子接口地址,以所述子接口地址作为哈希值,将所述各局域网的关联信息在所述存储空间中的存储地址存放到哈希表中。
在一实施方式中,所述NAT服务单元403还用于:根据所述第一IP地址确定所述第一局域网的第一子接口地址,将所述第一子接口地址作为哈希值查询哈希表,以确定所述第一局域网的关联信息在所述存储空间中的存储地址;根据所述第一局域网的关联信息在所述存储空间中的存储地址,从所述存储空间中提取所述第一局域网的关联信息,并从所述第一局域网的关联信息中提取第一公网IP地址段。
在一实施方式中,所述NAT服务单元403还用于根据NAT资源池中的公网IP地址资源、上线的局域网的数量以及各上线的局域网中用户终端的数量,或/和,各上线的局域网中处于上线状态的用户终端的数量,确定为各上线的局域网分配的公网IP地址段的长度范围。
在一实施方式中,所述用户上网单元401还用于从预置的NAT资源池中随机获取第一公网端口,并从所述第一公网IP地址段中随机获取第一公网IP地址。
在一实施方式中,本申请中的NAT转换方法和NAT转换装置400可以应用于家庭宽带业务中的NAT转换设备200。
本申请实施例还提供一种计算机设备,其集成了本申请实施例所提供的任一种NAT转换装置400,所述计算机设备包括:
一个或多个处理器501;
存储器502;以及
一个或多个应用程序;
其中所述一个或多个应用程序被存储于所述存储器502中,并配置为由所述处理器501执行上述NAT转换方法实施例中任一实施例中所述的NAT转换方法。
本申请实施例还提供一种计算机设备,其集成了本申请实施例所提供的任一种NAT转换装置。如图7所示,其示出了本申请实施例所涉及的计算机设备的结构示意图,具体来讲:
该计算机设备可以包括一个或者一个以上处理核心的处理器501、一个或一个以上计算机可读存储介质的存储器502、电源503和输入单元504等部件。本领域技术人员可以理解,图7中示出的计算机设备结构并不构成对计算机设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
处理器501是该计算机设备的控制中心,利用各种接口和线路连接整个计算机设备的各个部分,通过运行或执行存储在存储器502内的软件程序和/或模块,以及调用存储在存储器502内的数据,执行计算机设备的各种功能和处理数据,从而对计算机设备进行整体监控。
可选的,处理器501可包括一个或多个处理核心;优选的,处理器501可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器501中。
存储器502可用于存储软件程序以及模块,处理器501通过运行存储在存储器502的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器502可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据计算机设备的使用所创建的数据等。此外,存储器502可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器502还可以包括存储器控制器,以提供处理器501对存储器502的访问。
计算机设备还包括给各个部件供电的电源503,优选的,电源503可以通过电源管理系统与处理器逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源503还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
该计算机设备还可包括输入单元504,该输入单元504可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。
尽管未示出,计算机设备还可以包括显示单元等,在此不再赘述。具体在本实施例中,计算机设备中的处理器501会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行文件加载到存储器502中,并由处理器501来运行存储在存储器502中的应用程序,从而实现各种功能,如下:
获取处于上线状态的第一用户终端101的源IP地址,根据所述第一用户终端101的IP地址,确定所述第一用户终端101所属的第一局域网的第一IP地址,并根据所述第一IP地址获取对应的第一公网IP地址段;
获取第一公网端口,以及从所述第一公网IP地址段中获取第一公网IP地址,并将所述第一公网IP地址和所述第一公网端口分配给所述第一用户终端101;
接收所述第一用户终端101发送的第一正向报文,并根据所述第一正向报文的五元组信息、所述第一公网IP地址以及第一公网端口生成第一流表;
对所述第一正向报文进行NAT转换,以将所述第一正向报文的源IP地址转换为所述第一公网IP地址,以及将所述第一正向报文的源端口转换为第一公网端口,并将NAT转换后的第一正向报文发送给服务器300;
接收所述服务器300根据NAT转换后的第一正向报文发送的第一反向报文,并根据所述第一反向报文的源IP地址,从所述第一流表中获取所述第一用户终端101的第一私网IP地址和第一私网端口;
对所述第一反向报文进行NAT转换,以将所述第一反向报文的目的IP地址转换为所述第一私网IP地址,以及将所述第一反向报文的目的端口转换为所述第一私网端口,并将NAT转换后的第一反向报文发送给所述第一用户终端101。
本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于一计算机可读存储介质中,并由处理器501进行加载和执行。
为此,本申请实施例提供一种计算机可读存储介质,该存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random AcceS Memory)、磁盘或光盘等。其上存储有计算机程序,所述计算机程序被处理器501进行加载,以执行本申请实施例所提供的任一种NAT转换方法中的步骤。例如,所述计算机程序被处理器501进行加载可以执行如下步骤:
获取处于上线状态的第一用户终端101的源IP地址,根据所述第一用户终端101的IP地址,确定所述第一用户终端101所属的第一局域网的第一IP地址,并根据所述第一IP地址获取对应的第一公网IP地址段;
获取第一公网端口,以及从所述第一公网IP地址段中获取第一公网IP地址,并将所述第一公网IP地址和所述第一公网端口分配给所述第一用户终端101;
接收所述第一用户终端101发送的第一正向报文,并根据所述第一正向报文的五元组信息、所述第一公网IP地址以及第一公网端口生成第一流表;
对所述第一正向报文进行NAT转换,以将所述第一正向报文的源IP地址转换为所述第一公网IP地址,以及将所述第一正向报文的源端口转换为第一公网端口,并将NAT转换后的第一正向报文发送给服务器300;
接收所述服务器300根据NAT转换后的第一正向报文发送的第一反向报文,并根据所述第一反向报文的源IP地址,从所述第一流表中获取所述第一用户终端101的第一私网IP地址和第一私网端口;
对所述第一反向报文进行NAT转换,以将所述第一反向报文的目的IP地址转换为所述第一私网IP地址,以及将所述第一反向报文的目的端口转换为所述第一私网端口,并将NAT转换后的第一反向报文发送给所述第一用户终端101。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见上文针对其他实施例的详细描述,此处不再赘述。
具体实施时,以上各个单元或结构可以作为独立的实体来实现,也可以进行任意组合,作为同一或若干个实体来实现,以上各个单元或结构的具体实施可参见前面的方法实施例,在此不再赘述。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
以上对本申请实施例所提供的一种NAT转换方法、装置、计算机设备及存储介质进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (9)
1.一种NAT转换方法,其特征在于,应用于NAT转换设备,所述NAT转换方法包括:
根据预置的NAT资源池中的公网IP地址资源,为各上线的局域网分配对应的公网IP地址段,局域网内存在用户终端处于上线状态的局域网为上线的局域网;
获取处于上线状态的第一用户终端的IP地址和处于上线状态的第二用户终端的IP地址,根据所述第一用户终端的IP地址,确定所述第一用户终端所属的第一局域网的第一IP地址,并根据所述第一IP地址获取对应的第一公网IP地址段;根据所述第二用户终端的IP地址,确定所述第二用户终端所属的第二局域网的第二IP地址,并根据所述第二IP地址获取对应的第二公网IP地址段,所述第二公网IP地址段与所述第一公网IP地址段无交集;
获取第一公网端口,以及从所述第一公网IP地址段中获取第一公网IP地址,并将所述第一公网IP地址和所述第一公网端口分配给所述第一用户终端;
接收所述第一用户终端发送的第一正向报文,并根据所述第一正向报文的五元组信息、所述第一公网IP地址以及第一公网端口生成第一流表;
对所述第一正向报文进行NAT转换,以将所述第一正向报文的源IP地址转换为所述第一公网IP地址,以及将所述第一正向报文的源端口转换为第一公网端口,并将NAT转换后的第一正向报文发送给服务器;
接收所述服务器根据NAT转换后的第一正向报文发送的第一反向报文,并根据所述第一反向报文的源IP地址,从所述第一流表中获取所述第一用户终端的第一私网IP地址和第一私网端口;
对所述第一反向报文进行NAT转换,以将所述第一反向报文的目的IP地址转换为所述第一私网IP地址,以及将所述第一反向报文的目的端口转换为所述第一私网端口,并将NAT转换后的第一反向报文发送给所述第一用户终端;
其中,所述根据预置的NAT资源池中的公网IP地址资源,为各上线的局域网分配对应的公网IP地址段的步骤包括:
根据NAT资源池中的公网IP地址资源、上线的局域网的数量以及各上线的局域网中用户终端的数量,或/和,各上线的局域网中处于上线状态的用户终端的数量,确定为各上线的局域网分配的公网IP地址段的长度范围。
2.根据权利要求1所述的NAT转换方法,其特征在于,所述NAT转换方法还包括:
获取第二公网端口,以及从所述第二公网IP地址段中获取第二公网IP地址,并将所述第二公网IP地址和所述第二公网端口分配给所述第二用户终端;
接收所述第二用户终端发送的第二正向报文,并根据所述第二正向报文的五元组信息、所述第二公网IP地址以及第二公网端口生成第二流表;
对所述第二正向报文进行NAT转换,以将所述第二正向报文的源IP地址转换为所述第二公网IP地址,以及将所述第二正向报文的源端口转换为第二公网端口,并将NAT转换后的第二正向报文发送给服务器;
接收所述服务器根据NAT转换后的第二正向报文发送的第二反向报文,并根据所述第二反向报文的源IP地址,从所述第二流表中获取所述第二用户终端的第二私网IP地址和第二私网端口;
对所述第二反向报文进行NAT转换,以将所述第二反向报文的目的IP地址转换为所述第二私网IP地址,以及将所述第二反向报文的目的端口转换为所述第二私网端口,并将NAT转换后的第二反向报文发送给所述第二用户终端。
3.根据权利要求1所述的NAT转换方法,其特征在于,在所述根据预置的NAT资源池中的公网IP地址资源,为各上线的局域网分配对应的公网IP地址段,局域网内存在用户终端处于上线状态的局域网为上线的局域网的步骤之后,并且所述获取处于上线状态的第一用户终端的IP地址,根据所述第一用户终端的IP地址,确定所述第一用户终端所属的第一局域网的第一IP地址,并根据所述第一IP地址获取对应的第一公网IP地址段的步骤之前,所述NAT转换方法还包括:
根据各局域网的IP地址和与各局域网对应的公网IP地址段,生成与各局域网对应的关联信息;
将所述关联信息存放于所述NAT转换设备的内存池中;
在所述根据所述第一IP地址获取对应的第一公网IP地址段的步骤中,根据所述第一IP地址从所述第一局域网的关联信息中获取所述第一公网IP地址段。
4.根据权利要求3所述的NAT转换方法,其特征在于,所述将所述关联信息存放于所述NAT转换设备的内存池中的步骤包括:
从所述内存池中申请用于存放所述关联信息的存储空间,并将所述关联信息存放于对应的存储空间中;
为各局域网分配对应的子接口地址,以所述子接口地址作为哈希值,将所述各局域网的关联信息在所述存储空间中的存储地址存放到哈希表中。
5.根据权利要求4所述的NAT转换方法,其特征在于,所述根据所述第一IP地址获取对应的第一公网IP地址段的步骤包括:
根据所述第一IP地址确定所述第一局域网的第一子接口地址,将所述第一子接口地址作为哈希值查询哈希表,以确定所述第一局域网的关联信息在所述存储空间中的存储地址;
根据所述第一局域网的关联信息在所述存储空间中的存储地址,从所述存储空间中提取所述第一局域网的关联信息,并从所述第一局域网的关联信息中提取第一公网IP地址段。
6.根据权利要求1至5中任一项所述的NAT转换方法,其特征在于,所述获取第一公网端口,以及从所述第一公网IP地址段中获取第一公网IP地址,并将所述第一公网IP地址和第一公网端口分配给所述第一用户终端的步骤包括;
从预置的NAT资源池中随机获取第一公网端口,并从所述第一公网IP地址段中随机获取第一公网IP地址。
7.一种NAT转换装置,其特征在于,应用于NAT转换设备,所述NAT转换装置包括用户上网单元、网络服务单元以及NAT服务单元,其中:
所述NAT服务单元用于根据预置的NAT资源池中的公网IP地址资源,为各上线的局域网分配对应的公网IP地址段,局域网内存在用户终端处于上线状态的局域网为上线的局域网;
所述用户上网单元用于获取处于上线状态的第一用户终端的IP地址和处于上线状态的第二用户终端的IP地址,根据所述第一用户终端的IP地址,确定所述第一用户终端所属的第一局域网的第一IP地址,并根据所述第一IP地址获取对应的第一公网IP地址段;所述用户上网单元还用于根据所述第二用户终端的IP地址,确定所述第二用户终端所属的第二局域网的第二IP地址,并根据所述第二IP地址获取对应的第二公网IP地址段,所述第二公网IP地址段与所述第一公网IP地址段无交集;
所述用户上网单元还用于获取第一公网端口,以及从所述第一公网IP地址段中获取第一公网IP地址和第一公网端口,并将所述第一公网IP地址和所述第一公网端口分配给所述第一用户终端;
所述网络服务单元用于接收所述第一用户终端发送的第一正向报文,并根据所述第一正向报文的五元组信息、所述第一公网IP地址以及第一公网端口生成第一流表;
所述NAT服务单元用于对所述第一正向报文进行NAT转换,以将所述第一正向报文的源IP地址转换为所述第一公网IP地址,以及将所述第一正向报文的源端口转换为第一公网端口,并将NAT转换后的第一正向报文发送给服务器;
所述网络服务单元还用于接收所述服务器根据NAT转换后的第一正向报文发送的第一反向报文,并根据所述第一反向报文的源IP地址,从所述第一流表中获取所述第一用户终端的第一私网IP地址和第一私网端口;
所述NAT服务单元还用于对所述第一反向报文进行NAT转换,以将所述第一反向报文的目的IP地址转换为所述第一私网IP地址,以及将所述第一反向报文的目的端口转换为所述第一私网端口,并将NAT转换后的第一反向报文发送给所述第一用户终端;
其中,所述NAT服务单元还用于根据NAT资源池中的公网IP地址资源、上线的局域网的数量以及各上线的局域网中用户终端的数量,或/和,各上线的局域网中处于上线状态的用户终端的数量,确定为各上线的局域网分配的公网IP地址段的长度范围。
8.一种计算机设备,其特征在于,所述计算机设备包括:
一个或多个处理器;
存储器;以及
一个或多个应用程序;
其中所述一个或多个应用程序被存储于所述存储器中,并配置为由所述处理器执行以实现权利要求1至6中任一项所述的NAT转换方法。
9.一种计算机可读存储介质,其特征在于,其上存储有计算机程序,所述计算机程序被处理器进行加载,以执行权利要求1至6中任一项所述的NAT转换方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011214041.2A CN112040029B (zh) | 2020-11-04 | 2020-11-04 | Nat转换方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011214041.2A CN112040029B (zh) | 2020-11-04 | 2020-11-04 | Nat转换方法、装置、计算机设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112040029A CN112040029A (zh) | 2020-12-04 |
CN112040029B true CN112040029B (zh) | 2021-02-02 |
Family
ID=73573683
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011214041.2A Active CN112040029B (zh) | 2020-11-04 | 2020-11-04 | Nat转换方法、装置、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112040029B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113572868B (zh) * | 2021-09-28 | 2021-11-26 | 武汉绿色网络信息服务有限责任公司 | 动态拨号上网方法及系统 |
CN115442328B (zh) * | 2022-08-03 | 2023-06-02 | 天翼云科技有限公司 | 一种网络地址转换方法、装置、网关、介质和设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101141494A (zh) * | 2007-10-12 | 2008-03-12 | 杭州华三通信技术有限公司 | 一种解决负载分担情况下资源分配冲突的方法 |
CN101442443A (zh) * | 2009-01-13 | 2009-05-27 | 武汉烽火网络有限责任公司 | Snmp穿越nat的网络管理系统及实现方法 |
CN103067534A (zh) * | 2012-12-26 | 2013-04-24 | 中兴通讯股份有限公司 | 一种NAT实现系统、方法及Openflow交换机 |
CN103535015A (zh) * | 2013-05-24 | 2014-01-22 | 华为技术有限公司 | 公网地址资源的管理方法、端口控制协议服务器及客户端 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101175029A (zh) * | 2006-10-31 | 2008-05-07 | 中兴通讯股份有限公司 | 对多个同构子网实现代理的装置 |
-
2020
- 2020-11-04 CN CN202011214041.2A patent/CN112040029B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101141494A (zh) * | 2007-10-12 | 2008-03-12 | 杭州华三通信技术有限公司 | 一种解决负载分担情况下资源分配冲突的方法 |
CN101442443A (zh) * | 2009-01-13 | 2009-05-27 | 武汉烽火网络有限责任公司 | Snmp穿越nat的网络管理系统及实现方法 |
CN103067534A (zh) * | 2012-12-26 | 2013-04-24 | 中兴通讯股份有限公司 | 一种NAT实现系统、方法及Openflow交换机 |
CN103535015A (zh) * | 2013-05-24 | 2014-01-22 | 华为技术有限公司 | 公网地址资源的管理方法、端口控制协议服务器及客户端 |
Also Published As
Publication number | Publication date |
---|---|
CN112040029A (zh) | 2020-12-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112333298B (zh) | 报文传输方法、装置、计算机设备及存储介质 | |
CN112040030B (zh) | 报文传输方法、装置、计算机设备及存储介质 | |
EP2608491B1 (en) | Method, apparatus and system for allocating public IP address | |
CN106559451B (zh) | 用户迁移方法和装置 | |
CN108924274B (zh) | 域名系统dns处理方法、装置、存储介质及电子设备 | |
CN112040029B (zh) | Nat转换方法、装置、计算机设备及存储介质 | |
CN109981493B (zh) | 一种用于配置虚拟机网络的方法和装置 | |
CN111212134A (zh) | 一种请求报文处理方法、装置、边缘计算系统和电子设备 | |
US10212126B2 (en) | System for mediating connection | |
US8149840B2 (en) | Method, system and processor for processing network address translation service | |
WO2020181735A1 (zh) | 一种提供网络地址转换nat服务的方法及控制器 | |
WO2014183417A1 (zh) | 管理内存的方法、装置和系统 | |
KR20120132206A (ko) | 디바이스의 서버 연결 방법, 정보 제공 방법 및 이를 적용한 디바이스 및, 클라우딩 컴퓨팅 네트워크 시스템 및 그 동작 방법 | |
WO2022116849A1 (zh) | 服务分配方法、装置、电子设备及存储介质 | |
CN105872048B (zh) | 一种控制方法及电子设备 | |
WO2021121040A1 (zh) | 一种宽带接入的方法、装置、设备和存储介质 | |
CN113098776B (zh) | 一种网络拓扑的确定方法、装置、设备及存储介质 | |
CN110636149B (zh) | 远程访问方法、装置、路由器及存储介质 | |
CN115987915A (zh) | 针对虚拟交换机的报文转发方法及相关设备 | |
US8260942B2 (en) | Cluster view performance | |
US11675510B2 (en) | Systems and methods for scalable shared memory among networked devices comprising IP addressable memory blocks | |
CN108650337B (zh) | 一种服务器探测方法、系统及存储介质 | |
CN112019641B (zh) | 数据传输方法和装置 | |
CN112511440B (zh) | 报文转发方法、系统、存储介质和电子设备 | |
CN115225606A (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 |