CN110855810B - 一种nat转换方法、装置、网络安全设备及存储介质 - Google Patents
一种nat转换方法、装置、网络安全设备及存储介质 Download PDFInfo
- Publication number
- CN110855810B CN110855810B CN201911086334.4A CN201911086334A CN110855810B CN 110855810 B CN110855810 B CN 110855810B CN 201911086334 A CN201911086334 A CN 201911086334A CN 110855810 B CN110855810 B CN 110855810B
- Authority
- CN
- China
- Prior art keywords
- port
- conversion
- address
- nat
- request packet
- 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/256—NAT traversal
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请涉及一种NAT转换方法、装置、网络安全设备及存储介质,属于网络安全技术领域。该方法应用于网络安全设备,所述方法包括:接收来自第一网络的第一设备发送的需要作NAT转换的请求包;获取所述请求包中的源地址对应的转换地址;获取所述请求包中的源端口对应的转换端口;基于所述转换地址和所述转换端口对所述请求包中的源地址和源端口进行NAT转换,将转换后的所述请求包发送给第二网络中的第二设备,并在连接信息表中记录转换前后的对应关系。该方法直接基于设备已有连接信息表来排除端口冲突,由于不需要记录NAT转发信息映射表,大大减少内存使用。
Description
技术领域
本申请属于网络安全技术领域,具体涉及一种NAT转换方法、装置、网络安全设备及存储介质。
背景技术
随着网络攻击越来越多,网络安全设备被大量开发出来并应用到实际的环境中,由于当前应用的丰富多样及网络的普及,对网络安全设备的性能和安全性要求也越来越高。其中,NAT(Network Address Translation,网络地址转换)功能是网络安全设备必须的功能。
现有技术中,当网络安全设备在接收到需要进行NAT转换的请求包时,需要先查找NAT转发信息映射表中的NAT表项,看看端口是否被占用,再根据规则去转换,然后将转换前的五元组信息(源IP地址、目的IP地址、协议号、源端口、目的端口)和转换后的五元组信息记录在该NAT转发信息映射表中。其中,NAT转发信息映射表,记录有所有转换前的五元组信息和转换后的五元组信息。
随着NAT策略规模的扩大,由于记录NAT转发信息映射表和匹配映射表,NAT功能会消耗大量系统内存和CPU(central processing unit,中央处理器)使用率,当前的NAT实现方式越来越难以满足大规模网络NAT策略的需求。
发明内容
鉴于此,本申请的目的在于提供一种NAT转换方法、装置、网络安全设备及存储介质,以改善当前基于NAT转发信息映射表进行NAT转换时,会消耗大量系统内存和CPU使用率的问题。
本申请的实施例是这样实现的:
第一方面,本申请实施例提供了一种NAT转换方法,应用于网络安全设备,所述方法包括:接收来自第一网络的第一设备发送的需要作NAT转换的请求包;获取所述请求包中的源地址对应的转换地址;获取所述请求包中的源端口对应的转换端口;基于所述转换地址和所述转换端口对所述请求包中的源地址和源端口进行NAT转换,将转换后的所述请求包发送给第二网络中的第二设备,并在连接信息表中记录转换前后的对应关系。本申请实施例中,当网络安全设备在对来自第一网络的第一设备发送的请求包中的源地址和源端口进行NAT转换时,不再像现有方式那样,将转换前的五元组信息和转换后的五元组信息记录在NAT转发信息映射表中,而是直接在设备已有连接信息表中记录转换前后的对应关系,由于不需要记录NAT转发信息映射表,大大减少内存使用,进而后续在匹配表项时,提高了NAT匹配表项的速度。
结合第一方面实施例的一种可能的实施方式,获取所述请求包中的源地址对应的转换地址,包括:获取NAT资源池中的地址个数;将所述源地址和所述地址个数作哈希计算,得到哈希值;基于预设的哈希值与公网地址的对应关系确定所述哈希值对应的公网地址为所述转换地址。本申请实施例中,通过将源地址和NAT资源池中的地址个数一起作哈希计算,再基于预设的哈希值与公网地址的对应关系来获取计算得到的哈希值对应的公网地址,相比于直接基于私网地址与公网地址的对应关系来确定源地址的转换地址的方式来说,可以减少CPU的计算量。
结合第一方面实施例的一种可能的实施方式,获取所述请求包中的源端口对应的转换端口,包括:获取NAT资源池中的端口个数;将所述源端口和所述端口个数作哈希计算,得到端口值;判断所述连接信息表中是否存在所述端口值;在为否时,确定所述端口值对应的端口为所述转换端口。本申请实施例中,通过将源端口和NAT资源池中的端口个数一起作哈希计算,然后再查找连接信息表,判断该端口值是否被占用,若没有被占用,则确定该端口值对应的端口为转换端口,这种直接基于连接信息表的方式来排除端口冲突,不仅可以减少存储NAT转发信息映射表的所需的空间,而且通过哈希运算,还可以节约CPU的计算资源。
结合第一方面实施例的一种可能的实施方式,在判断所述连接信息表中是否存在所述端口值之后,所述方法还包括:在为是时,调整所述端口值;确定所述连接信息表中不存在调整后的端口值时,确定所述调整后的端口值对应的端口为所述转换端口。本申请实施例中,但连接信息表中存在该端口值时,通过调整端口值,直到连接信息表中不存在调整后的端口值为止,可以快速的排除端口冲突。
结合第一方面实施例的一种可能的实施方式,将转换后的所述请求包发送给第二网络中的第二设备,并在连接信息表中记录转换前后的对应关系之后,所述方法还包括:在接收到所述第二设备响应所述请求包而发送的响应包时,基于记录有转换前后的对应关系的连接信息表对所述响应包中的目的地址和目的端口进行NAT转换;将转换后的所述响应包发送给所述第一设备。本申请实施例中,当接收到第二设备返回的响应包后,基于记录有转换前后的对应关系的连接信息表来确定转发目标,不再是匹配NAT转发信息映射表来确定转发目标,进而可以大大减少CPU资源消耗。
第二方面,本申请实施例还提供了一种NAT转换装置,应用于网络安全设备,所述装置包括:接收模块、第一获取模块、第二获取模块以及转换模块;接收模块,用于接收来自第一网络的第一设备发送的需要作NAT转换的请求包;第一获取模块,用于获取所述请求包中的源地址对应的转换地址;第二获取模块,用于获取所述请求包中的源端口对应的转换端口;转换模块,用于基于所述转换地址和所述转换端口对所述请求包中的源地址和源端口进行NAT转换,将所述请求包发送给第二网络中的第二设备,并在连接信息表中记录转换前后的对应关系。
结合第二方面实施例的一种可能的实施方式,所述第一获取模块,具体用于:获取NAT资源池中的地址个数;将所述源地址和所述地址个数作哈希计算,得到哈希值;基于预设的哈希值与公网地址的对应关系确定所述哈希值对应的公网地址为所述转换地址。
结合第二方面实施例的一种可能的实施方式,所述第二获取模块,具体用于:获取NAT资源池中的端口个数;将所述源端口和所述端口个数作哈希计算,得到端口值;判断所述连接信息表中是否存在所述端口值;在为否时,确定所述端口值对应的端口为所述转换端口;在为是时,调整所述端口值;确定所述连接信息表中不存在调整后的端口值时,确定所述调整后的端口值对应的端口为所述转换端口。
第三方面,本申请实施例还提供了一种网络安全设备,包括:存储器和处理器,所述存储器和所述处理器连接;所述存储器,用于存储程序;所述处理器,用于调用存储于所述存储器中的程序,以执行上述第一方面实施例和/或结合第一方面实施例的任一种可能的实施方式提供的方法。
第四方面,本申请实施例还提供了一种存储介质,其上存储有计算机程序,所述计算机程序被处理器运行时执行上述第一方面实施例和/或结合第一方面实施例的任一种可能的实施方式提供的方法。
本申请的其他特征和优点将在随后的说明书阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请实施例而了解。本申请的目的和其他优点可通过在所写的说明书以及附图中所特别指出的结构来实现和获得。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。通过附图所示,本申请的上述及其它目的、特征和优势将更加清晰。在全部附图中相同的附图标记指示相同的部分。并未刻意按实际尺寸等比例缩放绘制附图,重点在于示出本申请的主旨。
图1示出了本申请实施例提供的一种网络系统的结构示意图。
图2示出了本申请实施例提供的一种NAT转换方法的流程示意图。
图3示出了本申请实施例提供的一种NAT转换的原理示意图。
图4示出了本申请实施例提供的一种NAT转换装置的流程示意图。
图5示出了本申请实施例提供的一种网络安全设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中诸如“第一”、“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
再者,本申请中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。
为了便于理解本方案,本申请示例性地给出了一种适用于本申请所提供的方法的网络系统,该网络系统的结构示意图可以参阅图1。如图1所示,该网络系统包括:位于第一网络的主机(图中仅示出了主机A和主机B)、网络安全设备和位于第二网络的服务器。由于主机A和主机B与服务器属于不同的网络,即主机A和主机B属于第一网络(局域网,也即内网或私网),而服务器属于第二网络(广域网,也即外网或者公网),因此,当来自第一网络的主机(例如主机A)向服务器发送请求包(报文)时,网络安全设备需要对主机A发送的请求包进行NAT处理,然后将经过NAT处理后的请求包发送给服务器;相应地,当服务器响应该请求包向主机A发送响应包(报文)时,网络安全设备需要对服务器发送的响应包进行NAT处理,然后将经过NAT处理后的响应包发送给主机A。
鉴于现有方案中,每当网络安全设备在接收到需要进行NAT转换的请求包时,需要先查找NAT转发信息映射表中的NAT表项,看看端口是否被占用,再根据规则去转换。由于网络安全设备已有连接信息表,再记录NAT转发信息映射表,会占用大量内存,表项匹配会消耗大量CPU计算资源。鉴于此,本申请实施例提供了一种NAT转换方法,在已有连接信息表的网络安全设备上,实现NAT功能的同时降低对内存占用和对CPU资源的消耗。其中,已有连接信息表中记录有建立会话连接双方的地址和端口以及所建立连接的协议,例如,针对主机A与网络安全设备这一会话连接来说,该会话连接表中会记录主机A的地址和端口,以及对端(网络安全设备)的地址和端口以及两者之间的连接协议,如TCP连接。请参阅图2,为本申请实施例提供的一种应用于网络安全设备的NAT转换方法,下面将结合图2对其所包含的步骤进行说明。
步骤S101:接收来自第一网络的第一设备发送的需要作NAT转换的请求包。
需要说明的是,该请求包中携带有源地址(私网IP地址)、源端口、目的地址(公网IP地址)、目的端口和协议号。
步骤S102:获取所述请求包中的源地址对应的转换地址。
当网络安全设备接收到来自第一网络(例如,局域网)的第一设备(例如主机A)发送的需要作NAT转换的请求包时,获取该请求包中的源地址(私网IP地址)对应的转换地址(网络安全设备的公网IP地址),以便于在进行NAT转换时,用该公网IP地址替换私网IP地址。该转换地址为NAT资源池中的一个IP地址。其中,NAT资源池中包括至少一个公网IP地址。
作为一种实施方式,可以通过以下方式获取请求包中的源地址对应的转换地址:基于预设私网地址与公网地址的对应关系来确定源地址的转换地址。该种实施方式中,网络安全设备存储有私网地址与公网地址的对应关系表,不同的私网地址对应的公网地址可以不同。
作为又一种实施方式,可以通过以下方式获取请求包中的源地址对应的转换地址:将所述源地址作哈希计算,得到哈希值;基于预设的哈希值与公网地址的对应关系确定所述哈希值对应的公网地址为所述转换地址。由于一个网络安全设备可能具有多个公网地址,为了快速获得该源地址对应的转换地址,通过对该源地址作哈希计算,得到对应的哈希值后,再基于预设的哈希值与公网地址的对应关系获得该哈希值对应的转换地址。通过哈希值的方式可以减少CPU的计算量。
作为又一种实施方式,可以通过以下方式获取请求包中的源地址对应的转换地址:获取NAT资源池中的地址个数;将所述源地址和所述地址个数作哈希计算,得到哈希值;基于预设的哈希值与公网地址的对应关系确定所述哈希值对应的公网地址为所述转换地址。该种实施方式中,将NAT资源池中的地址个数和待转换的源地址一起作哈希计算,得到对应的哈希值后,再基于预设的哈希值与公网地址的对应关系获得该哈希值对应的转化地址。该种实施方式,相比于直接作哈希计算的方式来说,在后续排除端口冲突时,可以更快的找到没有冲突的端口,也即找到没有被使用的端口。由于直接作哈希,不同的源地址所计算出的哈希值相同的概率会相对大一些,这样在后续排除端口冲突时会相对慢一些(更耗时)。
其中,网络安全设备存储有预设的哈希值与公网地址的对应关系表,在该关系表中记录有多个哈希值中每个哈希值与至少一个公网地址的对应关系。不同的哈希值可以对应相同的公网地址,也可以对应不同的公网地址。
步骤S103:获取所述请求包中的源端口对应的转换端口。
当仅有一台主机,例如主机A访问服务器时,网络安全设备只须更改请求包的源地址或目的地址,即可正常正确通讯。但是如果主机A和主机B同时访问服务器时,那么当网络安全设备在接收到服务器返回的响应包时,就无法判断将数据包转发给哪台主机。此时,可以根据端口信息进行区分,因此,在获取到请求包中的源地址对应的转换地址后,还需要进一步地获取该请求包中的源端口对应的转换端口,以便于如果主机A和主机B同时访问服务器时,那么当网络安全设备在接收到服务器返回的响应包时,就可以根据端口信息进行区分,将响应包转发给对应的主机。
作为一种实施方式,可以通过以下方式获取该请求包中的源端口对应的转换端口:随机从NAT资源池中获取一端口,然后查询连接信息表,看该端口是否被占用,若没有被占用,则该端口即为转换端口,若该端口已经被占用,则重复上述操作,直到找到没有冲突的端口为止。
作为又一种实施方式,可以通过以下方式获取该请求包中的源端口对应的转换端口:将该源端口作哈希计算,得到端口值;判断连接信息表中是否存在该端口值;若不存在,也即确定该端口值对应的端口没有被使用,则确定该端口值对应的端口为转换端口,若存在,则通过自变量f调整该端口值,即在该端口值的基础上增加f,得到调整后的端口值,然后再判断连接信息表中是否存在调整后的端口值,以此类推,直至找到没有冲突的端口为止。该种实施方式,通过哈希值的计算方式可以减少CPU的计算量。
作为又一种实施方式,可以通过以下方式获取该请求包中的源端口对应的转换端口:获取NAT资源池中的端口个数;将所述源端口和所述端口个数作哈希计算,得到端口值;判断所述连接信息表中是否存在所述端口值;在为否时,确定所述端口值对应的端口为所述转换端口;在为是时,调整所述端口值,例如在该端口值的基础上增加一个值;确定所述连接信息表中不存在调整后的端口值时,确定所述调整后的端口值对应的端口为所述转换端口。该种实施方式,相比于直接作哈希计算的方式来说,可以更快的找到没有冲突的端口,也即找到没有被使用的端口。由于直接作哈希,不同的源端口所计算出的哈希值相同的概率会相对大一些,这样在后续排除端口冲突时会相对慢一些(更耗时)。
其中,通过自变量f调整该端口值,可以是在原端口值的基础上加上自变量f,也可以是原端口值的基础上减去自变量f。需要说明的是,在调整的过程中,需要保证调整后的端口值不得超过NAT资源池中的最大端口值,例如,假设NAT资源池中有500个端口,其值依次从1-500,则调整后的端口值不能超过最大端口值,即500。
其中,上述的端口被占用是指在当前获得的转换地址与连接信息表中记录的转换地址相同的前提下,若当前获得的转换端口与连接信息表中记录的转换端口相同时,则当前获得的转换端口已经被占用。若转换地址不同,转换端口相同,则表征端口未被占用。
其中,在获取转换地址时所使用的哈希算法与在获取转换端口时所使用的哈希算法可以是目前常用的哈希算法,如,MD(Message Digest Algorithm,消息摘要算法)或SHA(Secure Hash Algorithm,安全哈希算法)等。在获取转换地址时所使用的哈希算法与在获取转换端口时所使用的哈希算法可以相同,也可以不同。
步骤S104:基于所述转换地址和所述转换端口对所述请求包中的源地址和源端口进行NAT转换,将转换后的所述请求包发送给第二网络中的第二设备,并在连接信息表中记录转换前后的对应关系。
在获取到对应的转换地址和转换端口后,基于该转换地址和转换端口对请求包中的源地址和源端口进行NAT转换,也即将请求包中的源地址替换为该转换地址,将该源端口替换为转换端口,然后将该进行NAT转换后的请求包发送给第二网络中的第二设备,也即发送给请求包中的目的地址对应的设备,并在连接信息表中记录转换前后的对应关系,使得后续在接收到第二设备返回的响应包时,基于记录有转换前后的对应关系的连接信息表,确定转发目标,并对该响应包中的目的地址和目的端口进行NAT转换,转换为第一设备的目的地址和目的端口,并将转换后的响应包发送给第一设备。
本申请实施例提供的NAT转换方法,由于不需要向现有方式那样,需要记录NAT转发信息映射表,而是基于设备已有连接信息表,通过对该连接信息表稍作改进(也即在连接信息表中记录转换前后的对应关系),以此来排除端口冲突。由于不需要记录数据流的NAT转换记录(每条连接的转换关系),即不需要记录NAT转发信息映射表,大大减少内存使用。其次,使用哈希算法,并且借用网络安全设备中的连接表排除端口冲突,大大减少CPU计算量。
为了便于理解上述的NAT转换过程,下面以图1所示的网络系统为例,网络安全设备对主机A和主机B同时向服务器发送的请求包进行NAT转换的过程可以参阅图3所示的示意图。当主机A和主机B同时访问服务器时,网络安全设备在接收到主机A发送的请求包后,作源地址和源端口转换,并且在连接信息表中,记录该连接记录,也即记录转换地址和转换端口与源地址和源端口的对应关系,如192.168.1.3/400:410—1.1.1.5。当网络安全设备接收到服务器发来的响应包后,查找该连接信息表中的连接记录(192.168.1.3/400:410—1.1.1.5)确定转发目标为主机A,做目的地址和目的端口转换,并将转换后的响应包发送给主机A。同理,当网络安全设备在接收到主机B发送的请求包后,作源地址和源端口转换,并且在连接信息表中,记录该连接记录,也即记录转换地址和转换端口与源地址和源端口的对应关系,如192.168.1.3/400:411—1.1.1.5。当网络安全设备接收到服务器发来的响应包后,查找该连接信息表中的连接记录(192.168.1.3/400:411—1.1.1.5)确定转发目标为主机B,做目的地址和目的端口转换,并将转换后的响应包发送给主机B。
本申请实施例还提供了一种应用于网络安全设备中的NAT转换装置100,如图4所示。该NAT转换装置100包括:接收模块110、第一获取模块120、第二获取模块130以及转换模块140。
接收模块110,用于接收来自第一网络的第一设备发送的需要作NAT转换的请求包。
第一获取模块120,用于获取所述请求包中的源地址对应的转换地址。可选地,所述第一获取模块120,具体用于:获取NAT资源池中的地址个数;将所述源地址和所述地址个数作哈希计算,得到哈希值;基于预设的哈希值与公网地址的对应关系确定所述哈希值对应的公网地址为所述转换地址。
第二获取模块130,用于获取所述请求包中的源端口对应的转换端口。可选地,所述第二获取模块,具体用于:获取NAT资源池中的端口个数;将所述源端口和所述端口个数作哈希计算,得到端口值;判断所述连接信息表中是否存在所述端口值;在为否时,确定所述端口值对应的端口为所述转换端口;在为是时,调整所述端口值;确定所述连接信息表中不存在调整后的端口值时,确定所述调整后的端口值对应的端口为所述转换端口。
转换模块140,用于基于所述转换地址和所述转换端口对所述请求包中的源地址和源端口进行NAT转换,将所述请求包发送给第二网络中的第二设备,并在连接信息表中记录转换前后的对应关系。
可选地,所述转换模块140,还用于在接收到所述第二设备响应所述请求包而发送的响应包时,基于记录有转换前后的对应关系的连接信息表对所述响应包中的目的地址和目的端口进行NAT转换;将转换后的所述响应包发送给所述第一设备。
本申请实施例所提供的NAT转换装置100,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。
如图5所示,图5示出了本申请实施例提供的一种网络安全设备200的结构框图。所述网络安全设备200包括:通信模块210、存储器220、通讯总线230以及处理器240。
所述通信模块210、所述存储器220、处理器240各元件相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线230或信号线实现电性连接。其中,通信模块210用于收发数据。存储器220用于存储计算机程序,如存储有图4中所示的软件功能模块,即NAT转换装置100。其中,NAT转换装置100包括至少一个可以软件或固件(firmware)的形式存储于所述存储器220中或固化在所述网络安全设备200的操作系统(operating system,OS)中的软件功能模块。所述处理器240,用于执行存储器220中存储的可执行模块,例如NAT转换装置100包括的软件功能模块或计算机程序。例如,处理器240,用于获取所述请求包中的源地址对应的转换地址;以及还用于获取所述请求包中的源端口对应的转换端口;以及还用于基于所述转换地址和所述转换端口对所述请求包中的源地址和源端口进行NAT转换,将所述请求包发送给第二网络中的第二设备,并在连接信息表中记录转换前后的对应关系。
其中,存储器220可以是,但不限于,随机存取存储器(Random Access Memory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(Programmable Read-OnlyMemory,PROM),可擦除只读存储器(Erasable Programmable Read-Only Memory,EPROM),电可擦除只读存储器(Electric Erasable Programmable Read-Only Memory,EEPROM)等。
处理器240可能是一种集成电路芯片,具有信号的处理能力。上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(NetworkProcessor,NP)等;还可以是数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(FieldProgrammable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器240也可以是任何常规的处理器等。
其中,上述的网络安全设备200,包括但不限于防火墙、NAT网关(如路由器)等。
本申请实施例还提供了一种非易失性计算机可读取存储介质(以下简称存储介质),该存储介质上存储有计算机程序,该计算机程序被计算机如上述的网络安全设备运行时,执行上述示例的NAT转换方法所包含的步骤。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,笔记本电脑,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。
Claims (8)
1.一种NAT转换方法,其特征在于,应用于网络安全设备,所述方法包括:
接收来自第一网络的第一设备发送的需要作NAT转换的请求包;
获取所述请求包中的源地址对应的转换地址;
获取所述请求包中的源端口对应的转换端口;
基于所述转换地址和所述转换端口对所述请求包中的源地址和源端口进行NAT转换,将转换后的所述请求包发送给第二网络中的第二设备,并在已有的连接信息表中记录转换前后的对应关系,所述已有的连接信息表中记录有建立会话连接双方的地址和端口以及所建立连接的协议;
其中,获取所述请求包中的源地址对应的转换地址,包括:
获取NAT资源池中的地址个数;
将所述源地址和所述地址个数作哈希计算,得到哈希值;
基于预设的哈希值与公网地址的对应关系确定所述哈希值对应的公网地址为所述转换地址。
2.根据权利要求1所述的方法,其特征在于,获取所述请求包中的源端口对应的转换端口,包括:
获取NAT资源池中的端口个数;
将所述源端口和所述端口个数作哈希计算,得到端口值;
判断所述连接信息表中是否存在所述端口值;
在为否时,确定所述端口值对应的端口为所述转换端口。
3.根据权利要求2所述的方法,其特征在于,在判断所述连接信息表中是否存在所述端口值之后,所述方法还包括:
在为是时,调整所述端口值;
确定所述连接信息表中不存在调整后的端口值时,确定所述调整后的端口值对应的端口为所述转换端口。
4.根据权利要求1-3中任一项所述的方法,其特征在于,将转换后的所述请求包发送给第二网络中的第二设备,并在已有的连接信息表中记录转换前后的对应关系之后,所述方法还包括:
在接收到所述第二设备响应所述请求包而发送的响应包时,基于记录有转换前后的对应关系的连接信息表对所述响应包中的目的地址和目的端口进行NAT转换;
将转换后的所述响应包发送给所述第一设备。
5.一种NAT转换装置,其特征在于,应用于网络安全设备,所述装置包括:
接收模块,用于接收来自第一网络的第一设备发送的需要作NAT转换的请求包;
第一获取模块,用于获取所述请求包中的源地址对应的转换地址;
第二获取模块,用于获取所述请求包中的源端口对应的转换端口;
转换模块,用于基于所述转换地址和所述转换端口对所述请求包中的源地址和源端口进行NAT转换,将所述请求包发送给第二网络中的第二设备,并在已有的连接信息表中记录转换前后的对应关系,所述已有的连接信息表中记录有建立会话连接双方的地址和端口以及所建立连接的协议;
其中,所述第一获取模块,具体用于:
获取NAT资源池中的地址个数;
将所述源地址和所述地址个数作哈希计算,得到哈希值;
基于预设的哈希值与公网地址的对应关系确定所述哈希值对应的公网地址为所述转换地址。
6.根据权利要求5所述的装置,其特征在于,所述第二获取模块,具体用于:
获取NAT资源池中的端口个数;
将所述源端口和所述端口个数作哈希计算,得到端口值;
判断所述连接信息表中是否存在所述端口值;
在为否时,确定所述端口值对应的端口为所述转换端口;
在为是时,调整所述端口值;
确定所述连接信息表中不存在调整后的端口值时,确定所述调整后的端口值对应的端口为所述转换端口。
7.一种网络安全设备,其特征在于,包括:存储器和处理器,所述存储器和所述处理器连接;
所述存储器,用于存储程序;
所述处理器,用于调用存储于所述存储器中的程序,以执行如权利要求1-4中任一项所述的方法。
8.一种存储介质,其特征在于,其上存储有计算机程序,所述计算机程序被处理器运行时执行如权利要求1-4中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911086334.4A CN110855810B (zh) | 2019-11-07 | 2019-11-07 | 一种nat转换方法、装置、网络安全设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911086334.4A CN110855810B (zh) | 2019-11-07 | 2019-11-07 | 一种nat转换方法、装置、网络安全设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110855810A CN110855810A (zh) | 2020-02-28 |
CN110855810B true CN110855810B (zh) | 2022-07-12 |
Family
ID=69599147
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911086334.4A Active CN110855810B (zh) | 2019-11-07 | 2019-11-07 | 一种nat转换方法、装置、网络安全设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110855810B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112187549B (zh) * | 2020-10-12 | 2023-07-18 | 深圳康佳电子科技有限公司 | 一种网络共享方法、终端及存储介质 |
CN114374666A (zh) * | 2021-12-30 | 2022-04-19 | 中国电信股份有限公司 | 一种报文转发方法、装置、电子设备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1777194A (zh) * | 2005-12-16 | 2006-05-24 | 中国科学院计算技术研究所 | Pat模式下支持多会话应用层协议的网络地址转换方法 |
CN101610296A (zh) * | 2009-07-21 | 2009-12-23 | 杭州华三通信技术有限公司 | 一种网络地址转换出接口均衡方法和装置 |
CN104243631A (zh) * | 2014-10-13 | 2014-12-24 | 北京太一星晨信息技术有限公司 | 一种IPv4地址与IPv6地址有状态转换的方法及设备 |
CN104601738A (zh) * | 2014-12-09 | 2015-05-06 | 国家计算机网络与信息安全管理中心 | 一种分布式网络地址转换系统 |
CN108881519A (zh) * | 2018-08-08 | 2018-11-23 | 成都俊云科技有限公司 | 一种nat穿透方法及装置 |
CN109819070A (zh) * | 2019-04-12 | 2019-05-28 | 苏州浪潮智能科技有限公司 | 一种网络地址转换方法 |
-
2019
- 2019-11-07 CN CN201911086334.4A patent/CN110855810B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1777194A (zh) * | 2005-12-16 | 2006-05-24 | 中国科学院计算技术研究所 | Pat模式下支持多会话应用层协议的网络地址转换方法 |
CN101610296A (zh) * | 2009-07-21 | 2009-12-23 | 杭州华三通信技术有限公司 | 一种网络地址转换出接口均衡方法和装置 |
CN104243631A (zh) * | 2014-10-13 | 2014-12-24 | 北京太一星晨信息技术有限公司 | 一种IPv4地址与IPv6地址有状态转换的方法及设备 |
CN104601738A (zh) * | 2014-12-09 | 2015-05-06 | 国家计算机网络与信息安全管理中心 | 一种分布式网络地址转换系统 |
CN108881519A (zh) * | 2018-08-08 | 2018-11-23 | 成都俊云科技有限公司 | 一种nat穿透方法及装置 |
CN109819070A (zh) * | 2019-04-12 | 2019-05-28 | 苏州浪潮智能科技有限公司 | 一种网络地址转换方法 |
Also Published As
Publication number | Publication date |
---|---|
CN110855810A (zh) | 2020-02-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3170091B1 (en) | Method and server of remote information query | |
US8156249B2 (en) | Using server type to obtain network address | |
US20190222656A1 (en) | Communication Method and Apparatus | |
CN109802951B (zh) | 一种报文转发方法、设备及存储设备 | |
CN110855810B (zh) | 一种nat转换方法、装置、网络安全设备及存储介质 | |
WO2017036305A1 (zh) | 数据连接的建立方法、服务端及移动终端 | |
US20210377211A1 (en) | Cross protocol association for internet addresses for metadata association systems and methods | |
CN112261094A (zh) | 一种报文处理方法及代理服务器 | |
CN111010460A (zh) | 域名解析方法和装置 | |
WO2022237569A1 (zh) | 一种交易验重方法、装置、设备以及介质 | |
WO2023050933A1 (zh) | 确定失陷主机的方法及装置 | |
CN113542292A (zh) | 基于dns和ip信誉数据的内网安全防护方法及系统 | |
CN109413224B (zh) | 报文转发方法和装置 | |
CN109561172B (zh) | 一种dns透明代理方法、装置、设备及存储介质 | |
CN110708309A (zh) | 反爬虫系统及方法 | |
CN114157633B (zh) | 一种报文转发方法及装置 | |
CN114070637B (zh) | 基于属性标签的访问控制方法、系统、电子设备及存储介质 | |
US11063869B2 (en) | ARP table management system | |
CN115277884A (zh) | 一种子网替换方法、装置、交换芯片、电子设备及存储介质 | |
CN114338809A (zh) | 访问控制方法、装置、电子设备和存储介质 | |
US20190312822A1 (en) | Outbound Request Management | |
CN111865976A (zh) | 一种访问控制方法、装置及网关 | |
CN110677417A (zh) | 反爬虫系统及方法 | |
US20240015134A1 (en) | System and method of discovering a network asset from a network sample | |
WO2024146293A1 (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 |