CN111711705B - 基于代理节点作双向nat实现网络连接的方法和装置 - Google Patents
基于代理节点作双向nat实现网络连接的方法和装置 Download PDFInfo
- Publication number
- CN111711705B CN111711705B CN202010318404.0A CN202010318404A CN111711705B CN 111711705 B CN111711705 B CN 111711705B CN 202010318404 A CN202010318404 A CN 202010318404A CN 111711705 B CN111711705 B CN 111711705B
- Authority
- CN
- China
- Prior art keywords
- address
- proxy
- conversion
- snat
- dnat
- 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
- H04L61/2528—Translation at a proxy
-
- 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
-
- 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/59—Network arrangements, protocols or services for addressing or naming using proxies for addressing
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实现网络连接的方法,包括:接收客户端发送的访问请求,获取访问请求中的初始源地址和代理目的地址;对访问请求进行DNAT转换和SNAT转换,将代理目的地址和初始源地址分别转换为实际目的地址和代理源地址;基于实际目的地址和代理源地址,发送访问请求至服务端;其中,代理源地址为代理服务器中与服务端进行数据交互的端口地址。其通过引入兼容DNAT和SNAT的代理服务器作为两个独立子网之间的连接桥梁,使得两个独立的子网中任一节点(即,客户端)都可以访问另一子网中的任一节点(即,服务端),这也就实现了两个内网多点对多点的组网方案。
Description
技术领域
本公开涉及互联网技术领域,尤其涉及一种基于代理节点作双向NAT实现网络连接的方法和装置。
背景技术
由于IPv6(Internet Protocol Version 6,互联网协议第6版)与目前主流的IPv4高度不兼容,因此该网络协议自诞生以来普及率只有30%左右。IPv4作为当前主流的网络协议,其网络地址基本上都已经分配殆尽。对于绝大多数的IPv4组网方案,都会使用NAT(Network Address Translation,网络地址转换)技术结合私网地址段来缓解IP地址分配不足的问题。但是,使用NAT技术进行组网时,仅能有效利用单个公网IP地址映射到多个私网地址。即,NAT技术只能实现一对多的网址映射,不能实现多对多的组网方案。
发明内容
有鉴于此,本申请提出了一种基于代理节点作双向NAT实现网络连接的方法,可以实现两个内网之间多点对多点的网络通信。
根据本申请的一方面,提供一种基于代理节点作双向NAT实现网络连接的方法,包括:
接收客户端发送的访问请求,获取所述访问请求中的初始源地址和代理目的地址;
其中,所述初始源地址为所述客户端的端口地址,所述代理目的地址为代理服务器中与所述客户端进行数据交互的端口的公网地址;
对所述访问请求进行DNAT转换和SNAT转换,将所述代理目的地址和所述初始源地址分别转换为实际目的地址和代理源地址;
基于所述实际目的地址和所述代理源地址,发送所述访问请求至服务端;
其中,所述代理源地址为所述代理服务器中与所述服务端进行数据交互的端口地址。
在一种可能的实现方式中,对所述访问请求进行DNAT转换和SNAT转换,将所述代理目的地址和所述初始源地址分别转换为实际目的地址和代理源地址,包括:
对所述访问请求进行DNAT转换,将所述代理目的地址转换为实际目的地址,得到经DNAT转换后的访问请求;
对经DNAT转换后的访问请求进行SNAT转换,将所述初始源地址转换为代理源地址,得到经SNAT转换后的访问请求。
在一种可能的实现方式中,对所述访问请求进行DNAT转换,将所述代理目的地址转换为实际目的地址,包括:
获取DNAT转换策略,基于所述DNAT转换策略对所述代理目的地址进行转换,转换为所述实际目的地址;
记录所述代理目的地址与转换后的所述实际目的地址之间的映射关系至DNAT表中;
其中,所述DNAT转换策略中制定有所述代理目的地址的转换方式。
在一种可能的实现方式中,对经DNAT转换后的访问请求进行SNAT转换,将所述初始源地址转换为代理源地址,包括:
获取SNAT转换策略,基于所述SNAT转换策略对所述初始源地址进行转换,转换为所述代理源地址;
记录所述初始源地址与所述代理源地址之间的映射关系至SNAT表中;
其中,所述SNAT转换策略中制定有所述初始源地址的转换方式。
在一种可能的实现方式中,还包括:
接收所述服务端基于所述访问请求回传的数据包,并获取所述数据包中的实际发送端地址和代理接收端地址;
对所述数据包进行SNAT逆转换和DNAT逆转换,将所述实际发送端地址和所述代理接收端地址分别转换为代理发送端地址和实际接收端地址;
根据所述代理发送端地址和所述实际接收端地址,发送所述数据包至所述客户端。
在一种可能的实现方式中,对所述数据包进行SNAT逆转换和DNAT逆转换,将所述实际发送端地址和所述代理接收端地址分别转换为代理发送端地址和实际接收端地址,包括:
对所述数据包进行SNAT逆转换,将所述代理接收端地址转换为实际接收端地址后,得到经SNAT逆转换后的数据包;
对经SNAT逆转换后的数据包进行DNAT逆转换,将所述实际发送端地址转换为代理发送端地址,得到经DNAT逆转换后的数据包。
基于相同的发明构思,本申请还提供了一种基于代理节点作双向NAT实现网络连接的装置,包括第一接收/发送模块、DNAT转换模块、SNAT转换模块和第二接收/发送模块;
所述第一接收/发送模块,被配置为接收客户端发送的访问请求,获取所述访问请求中的初始源地址和代理目的地址;
其中,所述初始源地址为所述客户端的端口地址,所述代理目的地址为代理服务器中与所述客户端进行数据交互的端口的公网地址;
所述DNAT转换模块,被配置为对所述访问请求进行DNAT转换,将所述代理目的地址转换为实际目的地址;
所述SNAT转换模块,被配置为对所述访问请求进行SNAT转换,将所述初始源地址转换为代理源地址;
所述第二接收/发送模块,被配置为根据所述实际目的地址和所述代理源地址,发送所述访问请求至服务端;
其中,所述代理源地址为所述代理服务器中与所述服务端进行数据交互的端口地址。
在一种可能的实现方式中,还包括SNAT逆转换模块和DNAT逆转换模块;
所述第二接收/发送模块,还被配置为接收所述服务端基于所述访问请求回传的数据包,并获取所述数据包中的实际发送端地址和代理接收端地址;
所述SNAT逆转换模块,被配置为对所述数据包分别进行SNAT逆转换,将所述代理接收端地址转换为实际接收端地址;
所述DNAT逆转换模块,被配置为对所述数据包进行DNAT逆转换,将所述实际发送端地址转换为代理发送端地址;
所述第一接收/发送模块,还被配置为根据所述代理发送端地址和所述实际接收端地址,发送所述数据包至所述客户端。
根据本申请的另一方面,还提供了一种基于代理节点作双向NAT实现网络连接的设备,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述可执行指令时实现前面任一所述的方法。
根据本申请的另一方面,还提供了一种非易失性计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现前面任一所述的方法。
本申请修改后的基于代理节点作双向NAT实现网络连接的方法,通过引入代理服务器,将客户端发送的访问请求中的实际目的地址设置为代理服务器所提供的公网地址(即,代理目的地址),并在代理服务器中部署DNAT技术和SNAT技术,将DNAT和SNAT兼容到同一代理服务器中,通过代理服务器对访问请求中的初始源地址和代理目的地址进行DNAT转换和SNAT转换,从而实现由代理服务器将访问请求转发给服务器的目的,进而也就实现了客户端与服务端之间的网络通信。其中,通过引入兼容DNAT技术和SNAT技术的代理服务器作为两个独立子网之间的连接桥梁,由代理服务器提供一个共享的公网地址,即可使得两个独立的子网中任一节点(即,客户端)都可以随意访问另一子网中的任一节点(即,服务端)。这也就最终实现了两个内网中多点对多点的组网方案。
根据下面参考附图对示例性实施例的详细说明,本公开的其它特征及方面将变得清楚。
附图说明
包含在说明书中并且构成说明书的一部分的附图与说明书一起示出了本公开的示例性实施例、特征和方面,并且用于解释本公开的原理。
图1示出本申请实施例的基于代理节点作双向NAT实现网络连接的方法的流程图;
图2示出本申请实施例的基于代理节点作双向NAT实现网络连接的方法中双向NAT示意图;
图3示出本申请实施例的基于代理节点作双向NAT实现网络连接的方法的示意图;
图4示出本申请实施例的基于代理节点作双向NAT实现网络连接的装置的结构框图;
图5示出本申请实施例的基于代理节点作双向NAT实现网络连接的设备的结构示意图。
具体实施方式
以下将参考附图详细说明本公开的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。
在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。
另外,为了更好的说明本公开,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本公开同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本公开的主旨。
图1示出根据本申请一实施例公开的基于代理节点作双向NAT实现网络连接的方法的流程图。图2示出本申请实施例的基于代理节点作双向NAT实现网络连接的方法中双向NAT示意图。
如图1和图2所示,该方法包括:步骤S100,接收客户端发送的访问请求,获取访问请求中的初始源地址和代理目的地址。此处,需要指出的是,初始源地址指的是客户端的端口地址。代理目的地址则指的是代理服务器中与客户端进行数据交互的端口地址。该端口地址为一个公有的公网地址。步骤S200,对访问请求进行DNAT转换和SNAT转换,将代理目的地址和初始源地址分别转换为实际目的地址和代理源地址。其中,需要说明的是,代理源地址为代理服务器中与服务端进行数据交互的端口地址。进而,再通过步骤S300,基于转换得到的实际目的地址和代理源地址,将访问请求发送至相应的服务端。
由此,本申请修改后的基于代理节点作双向NAT实现网络连接的方法,通过引入代理服务器,将客户端发送的访问请求中的实际目的地址设置为代理服务器所提供的公网地址(即,代理目的地址),并在代理服务器中部署DNAT技术和SNAT技术,将DNAT和SNAT兼容到同一代理服务器中,由代理服务器提供一个共享的公网地址(即,代理目的地址),通过代理服务器对访问请求中的初始源地址和代理目的地址进行DNAT转换和SNAT转换,从而实现由代理服务器将访问请求转发给服务器的目的,进而也就实现了客户端与服务端之间的网络通信。其中,通过引入兼容DNAT技术和SNAT技术的代理服务器作为两个独立子网之间的连接桥梁,使得两个独立的子网中任一节点(即,客户端)都可以随意访问另一子网中的任一节点(即,服务端)。这也就最终实现了两个内网中多点对多点的组网方案。
其中,在本申请实施例中,代理服务器对访问请求进行DNAT转换和SNAT转换,将代理目的地址和初始源地址分别转换为实际目的地址和代理源地址时,可以通过以下方式来实现。
首先,对访问请求进行DNAT转换,将代理目的地址转换为实际目的地址,得到经DNAT转换后的访问请求。然后,再对经DNAT转换后的访问请求进行SNAT转换,将初始源地址转换为代理源地址,得到经SNAT转换后的访问请求。此处,本领域技术人员可以理解的是,代理服务器对访问请求进行转换时,只转换访问请求中的IP,请求内容不会进行更改。
也就是说,在本申请实施例中,对访问请求进行DNAT转换和SNAT转换时,转换顺序按照先进行DNAT转换,再进行SNAT转换的顺序执行。其中,在进行SNAT转换时,基于DNAT转换后的访问请求中的网络地址进行转换。
举例来说,参阅图3,在客户端向服务端发送访问请求时,访问请求中的初始源地址为:1.1.1.1:123,代理目的地址为:2.2.2.2:8881。其中,客户端发送访问请求至代理服务器。代理服务器接收访问请求后,获取访问请求中的初始源地址和代理目的地址。
进而,代理服务器再对接收到的访问请求进行DNAT转换和SNAT转换。此处,需要指出的是,在一种可能的实现方式中,代理服务器对访问请求进行DNAT转换时,可以通过接收下发的DNAT转换策略,依据接收到的DNAT转换策略进行相应的DNAT转换。应当说明的是,DNAT转换策略中制定有代理目的地址的转换方式。同时,DNAT转换策略可以根据实际网络部署结构进行灵活设置,此处不进行具体限定。并且,DNAT转换策略可以采用映射表的方式来实现,还可以采用表格或其他格式来实现,此处也不进行具体限定。
此外,DNAT转换策略的下发可以通过设置配置服务器来实现。即,通过设置一配置服务器,该配置服务器中预先存储有DNAT转换策略,在代理服务器接收到客户端发送的访问请求后,即可由配置服务器将DNTA转换策略下发至代理服务器,从而使得代理服务器能够依据DNAT转换策略对访问请求中的代理目的地址进行转换。
同时,在一种可能的实现方式中,代理服务器将代理目的地址(2.2.2.2:8881)转换为实际目的地址(192.168.1.2:80)后,还可以包括同步记录转换信息的步骤。
即,参阅图3,记录代理目的地址与转换后的实际目的地址之间的映射关系至DNAT表中,以便于后续进行数据回传至客户端时能够有效获取相应的客户端地址。此处,本领域技术人员可以理解的是,DNAT表的形式可以采用任一格式,本申请中不进行具体限定。
在代理服务器对访问请求进行DNAT转换之后,即可对访问请求进行SNAT转换。其中,在对访问请求进行SNAT转换时,其转换原理与过程与DNAT转换的原理和过程相类似。即,首先,获取SNAT转换策略,基于SNAT转换策略对初始源地址进行转换,转换为代理源地址。
参阅图3,获取访问请求中的初始源地址(1.1.1.1:123),并基于获取到的SNAT转换策略对初始源地址进行转换,转换为代理源地址(192.168.1.1:123)。其中,SNAT转换策略中制定有初始源地址的转换方式。此处,本领域技术人员可以理解的是,SNAT转换策略同样可以根据实际网络部署结构进行灵活设置。同时,SNAT转换策略的下发方式与前面所述的DNAT转换策略的下发方式相同或相似,此处不再进行赘述。
同时,在对访问请求进行SNAT转换之后,还可以包括同步记录的过程。即,记录初始源地址与代理源地址之间的映射关系至SNAT表中。
由此,即可完成通过代理服务器实现客户端向服务端的访问过程。通过设置代理服务器作为中转桥梁,使得多个客户端均可以顺利发送访问请求至任一服务端,实现了多对多的组网方式。
进一步的,在本申请实施例的基于代理节点作双向NAT实现网络连接的方法中,还包括服务端向客户端回传数据的过程。即,客户端通过代理服务器发送访问请求至服务端后,服务端根据接收到的访问请求回传相应的数据给客户端。
其中,在服务端回传数据至客户端时,其回传数据的过程可以理解为客户端发送访问请求的过程的逆过程。
具体的,首先,接收服务端基于访问请求回传的数据包,并获取数据包中的实际发送端地址和代理接收端地址。然后,由代理服务器对数据包进行SNAT逆转换和DNAT逆转换,将实际发送端地址和代理接收端地址分别转换为代理发送端地址和实际接收端地址。最后,再根据代理发送端地址和实际接收端地址,发送数据包至客户端。
其中,在一种可能的实现方式中,代理服务器对数据包进行SNAT逆转换和DNAT逆转换,将实际发送端地址和代理接收端地址分别转换为代理发送端地址和实际接收端地址,可以通过以下方式来实现。
即,首先对数据包进行SNAT逆转换,将代理接收端地址转换为实际接收端地址后,得到经SNAT逆转换后的数据包。然后,对经SNAT逆转换后的数据包进行DNAT逆转换,将实际发送端地址转换为代理发送端地址,得到经DNAT逆转换后的数据包。
也就是说,代理服务器在将接收到的数据回传给客户端时,其数据处理过程与将访问请求发送至服务端的处理过程是一个反过程。
举例来说,参阅图3,服务端将当前需要回传的数据发送至代理服务器。当前所回传的数据中的实际发送端地址为服务端的端口地址,数据中的代理接收端地址则为代理服务器与服务端进行数据交互的端口地址。也就是说,服务器所回传的数据中的目的地址也是设置为代理服务器的端口地址。
代理服务器接收到回传的数据后,通过对回传数据中的代理接收端地址(即,192.168.1.1:123)进行SNAT逆转换,转换为实际接收端地址(1.1.1.1:123)。
此处,需要指出的是,代理服务器在对回传数据中的代理接收端地址进行SNAT逆转换时,可以基于对访问请求进行SNAT转换时所生成的SNAT表来实现。即,通过读取发送访问请求过程中所生成的SNAT表,由SNAT表中获取代理接收端地址所对应的实际接收端地址。
同理,在对数据包进行完SNAT逆转换之后,即可对数据包中的实际发送端地址进行DNAT逆转换,转换为代理发送端地址,从而实现代理服务器将数据回传至客户端。
即,参阅图3,代理服务器将实际发送端地址(192.168.1.2:80)通过DNAT逆转换为代理发送端地址(2.2.2.2:8881),使得客户端能够接收到代理服务器所发送的数据。此处,应当指出的是,代理服务器在进行实际发送端地址的DNAT逆转换时,同样也可以通过解析检查DNAT表的方式来实现。其原理与SNAT表的解析原理相同或相似,因此此处不再进行赘述。
由此,本申请实施例的基于代理节点作双向NAT实现网络连接的方法,通过引入代理服务器,由代理服务器进行SNAT和DNAT的兼容,从而通过DNAT和SNAT之间的匹配实现了多对多的组网方案。
此外,还需要说明的是,在本申请实施例中,当一张网络中需要配置多个代理服务器来实现多对多的数据交互时,还可以通过设置配置服务器,由该配置服务器不仅能够进行DNAT转换策略和SNAT转换策略的下发,同时还可以通过该配置服务器作为一个集中式管理服务器,对所有的代理服务器下发相应的转换策略。这也就实现了利用配置服务器进行集中式管理的目的,通过配置服务器实现了简单地将所有当前需要连接的目的地址下发给代理服务器的功能。
需要说明的是,尽管以图3作为示例介绍了如上所述的基于代理节点作双向NAT实现网络连接的方法,但本领域技术人员能够理解,本公开应不限于此。事实上,用户完全可根据个人喜好和/或实际应用场景灵活设定代理服务器,只要能够实现两个内网之间多点对多点的通信即可。
相应的,基于前面任一所述的基于代理节点作双向NAT实现网络连接的方法,本申请还提供了一种基于代理节点作双向NAT实现网络连接的装置。由于本申请提供的装置的工作原理与本申请提供的方法原理相同或相似,因此重复之处不再赘述。
参阅图4,本申请提供的基于代理节点作双向NAT实现网络连接的装置100,包括第一接收/发送模块110、DNAT转换模块120、SNAT转换模块130和第二接收/发送模块140。其中,第一接收/发送模块110,被配置为接收客户端发送的访问请求,获取访问请求中的初始源地址和代理目的地址;其中,初始源地址为客户端的端口地址,代理目的地址为代理服务器中与客户端进行数据交互的端口的公网地址;DNAT转换模块120,被配置为对访问请求进行DNAT转换,将代理目的地址转换为实际目的地址;SNAT转换模块130,被配置为对访问请求进行SNAT转换,将初始源地址转换为代理源地址;第二接收/发送模块140,被配置为根据实际目的地址和代理源地址,发送访问请求至服务端;其中,代理源地址为代理服务器中与服务端进行数据交互的端口地址。
在一种可能的实现方式中,还包括SNAT逆转换模块和DNAT逆转换模块;第二接收/发送模块140,还被配置为接收服务端基于访问请求回传的数据包,并获取数据包中的实际发送端地址和代理接收端地址;SNAT逆转换模块,被配置为对数据包分别进行SNAT逆转换,将代理接收端地址转换为实际接收端地址;DNAT逆转换模块,被配置为对数据包进行DNAT逆转换,将实际发送端地址转换为代理发送端地址;第一接收/发送模块110,还被配置为根据代理发送端地址和实际接收端地址,发送数据包至客户端。
更进一步地,根据本公开的另一方面,还提供了一种基于代理节点作双向NAT实现网络连接的设备200。参阅图5,本公开实施例基于代理节点作双向NAT实现网络连接的设备200包括处理器210以及用于存储处理器210可执行指令的存储器220。其中,处理器210被配置为执行可执行指令时实现前面任一所述的基于代理节点作双向NAT实现网络连接的方法。
此处,应当指出的是,处理器210的个数可以为一个或多个。同时,在本公开实施例的基于代理节点作双向NAT实现网络连接的设备200中,还可以包括输入装置230和输出装置240。其中,处理器210、存储器220、输入装置230和输出装置240之间可以通过总线连接,也可以通过其他方式连接,此处不进行具体限定。
存储器220作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序和各种模块,如:本公开实施例的基于代理节点作双向NAT实现网络连接的方法所对应的程序或模块。处理器210通过运行存储在存储器220中的软件程序或模块,从而执行基于代理节点作双向NAT实现网络连接的设备200的各种功能应用及数据处理。
输入装置230可用于接收输入的数字或信号。其中,信号可以为产生与设备/终端/服务器的用户设置以及功能控制有关的键信号。输出装置240可以包括显示屏等显示设备。
根据本公开的另一方面,还提供了一种非易失性计算机可读存储介质,其上存储有计算机程序指令,计算机程序指令被处理器210执行时实现前面任一所述的基于代理节点作双向NAT实现网络连接的方法。
以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
Claims (7)
1.一种基于代理节点作双向NAT实现网络连接的方法,其特征在于,包括:
接收客户端发送的访问请求,获取所述访问请求中的初始源地址和代理目的地址;
其中,所述初始源地址为所述客户端的端口地址,所述代理目的地址为代理服务器中与所述客户端进行数据交互的公网地址;
对所述访问请求进行DNAT转换和SNAT转换,将所述代理目的地址和所述初始源地址分别转换为实际目的地址和代理源地址;
基于所述实际目的地址和所述代理源地址,发送所述访问请求至服务端;
其中,所述代理源地址为所述代理服务器中与所述服务端进行数据交互的端口地址;
其中,所述代理服务器中部署DNAT技术和SNAT技术,将DNAT和SNAT兼容到同一代理服务器中,由所述代理服务器提供一个共享的公网地址,所述共享的公网地址为所述代理目的地址;
对应的,对所述访问请求进行DNAT转换和SNAT转换,将所述代理目的地址和所述初始源地址分别转换为实际目的地址和代理源地址,包括:
对所述访问请求进行DNAT转换,将所述代理目的地址转换为实际目的地址,得到经DNAT转换后的访问请求;
对经DNAT转换后的访问请求进行SNAT转换,将所述初始源地址转换为代理源地址,得到经SNAT转换后的访问请求;
还包括:
接收所述服务端基于所述访问请求回传的数据包,并获取所述数据包中的实际发送端地址和代理接收端地址;
对所述数据包进行SNAT逆转换和DNAT逆转换,将所述实际发送端地址和所述代理接收端地址分别转换为代理发送端地址和实际接收端地址;
根据所述代理发送端地址和所述实际接收端地址,发送所述数据包至所述客户端;
其中,所述代理服务器将代理目的地址转换为实际目的地址后,还包括同步记录代理目的地址与转换后的实际目的地址之间的映射关系至DNAT表中的步骤,以及
对访问请求进行SNAT转换之后,还包括同步记录初始源地址与代理源地址之间的映射关系至SNAT表中的步骤;
对所述数据包进行SNAT逆转换和DNAT逆转换时,分别基于所述DNAT表和所述SNAT表进行。
2.根据权利要求1所述的方法,其特征在于,对所述访问请求进行DNAT转换,将所述代理目的地址转换为实际目的地址,包括:
获取DNAT转换策略,基于所述DNAT转换策略对所述代理目的地址进行转换,转换为所述实际目的地址;
记录所述代理目的地址与转换后的所述实际目的地址之间的映射关系至DNAT表中;
其中,所述DNAT转换策略中制定有所述代理目的地址的转换方式。
3.根据权利要求1所述的方法,其特征在于,对经DNAT转换后的访问请求进行SNAT转换,将所述初始源地址转换为代理源地址,包括:
获取SNAT转换策略,基于所述SNAT转换策略对所述初始源地址进行转换,转换为所述代理源地址;
记录所述初始源地址与所述代理源地址之间的映射关系至SNAT表中;
其中,所述SNAT转换策略中制定有所述初始源地址的转换方式。
4.根据权利要求1所述的方法,其特征在于,对所述数据包进行SNAT逆转换和DNAT逆转换,将所述实际发送端地址和所述代理接收端地址分别转换为代理发送端地址和实际接收端地址,包括:
对所述数据包进行SNAT逆转换,将所述代理接收端地址转换为实际接收端地址后,得到经SNAT逆转换后的数据包;
对经SNAT逆转换后的数据包进行DNAT逆转换,将所述实际发送端地址转换为代理发送端地址,得到经DNAT逆转换后的数据包。
5.一种基于代理节点作双向NAT实现网络连接的装置,其特征在于,包括第一接收/发送模块、DNAT转换模块、SNAT转换模块和第二接收/发送模块;
所述第一接收/发送模块,被配置为接收客户端发送的访问请求,获取所述访问请求中的初始源地址和代理目的地址;
其中,所述初始源地址为所述客户端的端口地址,所述代理目的地址为代理服务器中与所述客户端进行数据交互的公网地址;
所述DNAT转换模块,被配置为对所述访问请求进行DNAT转换,将所述代理目的地址转换为实际目的地址;
所述SNAT转换模块,被配置为对所述访问请求进行SNAT转换,将所述初始源地址转换为代理源地址;
所述第二接收/发送模块,被配置为根据所述实际目的地址和所述代理源地址,发送所述访问请求至服务端;
其中,所述代理源地址为所述代理服务器中与所述服务端进行数据交互的端口地址;
其中,所述代理服务器中部署DNAT技术和SNAT技术,将DNAT和SNAT兼容到同一代理服务器中,由所述代理服务器提供一个共享的公网地址,所述共享的公网地址为所述代理目的地址;
对应的,所述DNAT转换模块对所述访问请求进行DNAT转换和所述SNAT转换模块对所述访问请求进行SNAT转换时,转换顺序按照先进行DNAT转换,再进行SNAT转换的顺序执行;
其中,在进行SNAT转换时,基于DNAT转换后的访问请求中的网络地址进行转换;
还包括SNAT逆转换模块和DNAT逆转换模块;
所述第二接收/发送模块,还被配置为接收所述服务端基于所述访问请求回传的数据包,并获取所述数据包中的实际发送端地址和代理接收端地址;
所述SNAT逆转换模块,被配置为对所述数据包分别进行SNAT逆转换,将所述代理接收端地址转换为实际接收端地址;
所述DNAT逆转换模块,被配置为对所述数据包进行DNAT逆转换,将所述实际发送端地址转换为代理发送端地址;
所述第一接收/发送模块,还被配置为根据所述代理发送端地址和所述实际接收端地址,发送所述数据包至所述客户端;
其中,所述代理服务器将代理目的地址转换为实际目的地址后,还包括同步记录代理目的地址与转换后的实际目的地址之间的映射关系至DNAT表中的步骤,以及
对访问请求进行SNAT转换之后,还包括同步记录初始源地址与代理源地址之间的映射关系至SNAT表中的步骤;
对所述数据包进行SNAT逆转换和DNAT逆转换时,分别基于所述DNAT表和所述SNAT表进行。
6.一种基于代理节点作双向NAT实现网络连接的设备,其特征在于,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述可执行指令时实现权利要求1至4中任意一项所述的方法。
7.一种非易失性计算机可读存储介质,其上存储有计算机程序指令,其特征在于,所述计算机程序指令被处理器执行时实现权利要求1至4中任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010318404.0A CN111711705B (zh) | 2020-04-21 | 2020-04-21 | 基于代理节点作双向nat实现网络连接的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010318404.0A CN111711705B (zh) | 2020-04-21 | 2020-04-21 | 基于代理节点作双向nat实现网络连接的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111711705A CN111711705A (zh) | 2020-09-25 |
CN111711705B true CN111711705B (zh) | 2022-03-18 |
Family
ID=72536260
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010318404.0A Active CN111711705B (zh) | 2020-04-21 | 2020-04-21 | 基于代理节点作双向nat实现网络连接的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111711705B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114697388B (zh) * | 2020-12-11 | 2024-01-30 | 成都鼎桥通信技术有限公司 | 数据传输方法及装置 |
CN114205328B (zh) * | 2021-12-11 | 2023-06-02 | 英赛克科技(北京)有限公司 | 一种opc数据转发方法及装置 |
CN114244602B (zh) * | 2021-12-15 | 2023-04-25 | 腾讯科技(深圳)有限公司 | 多用户在线的网络服务系统、方法、装置及介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101043447A (zh) * | 2007-04-23 | 2007-09-26 | 重庆大学 | 基于ddns和nat的服务器内外网动态映射方法 |
CN102055755A (zh) * | 2009-10-29 | 2011-05-11 | 杭州华三通信技术有限公司 | 一种公网与私网进行数据通信的方法和安全插卡 |
WO2012116616A1 (en) * | 2011-02-28 | 2012-09-07 | Hangzhou H3C Technologies Co., Ltd | Load balancing methods and devices |
CN105430117A (zh) * | 2015-12-24 | 2016-03-23 | 北京航天科工世纪卫星科技有限公司 | 一种采用nat转换实现卫星网接入本地网的方法 |
CN105847460A (zh) * | 2016-03-15 | 2016-08-10 | 迈普通信技术股份有限公司 | 一种实现双向转发检测的方法及设备 |
CN106375493A (zh) * | 2016-10-10 | 2017-02-01 | 腾讯科技(深圳)有限公司 | 一种跨网络通信的方法以及代理服务器 |
CN107819889A (zh) * | 2016-09-14 | 2018-03-20 | 华为技术有限公司 | 一种网络地址转换nat的方法、设备及系统 |
CN111031020A (zh) * | 2019-12-04 | 2020-04-17 | 紫光云(南京)数字技术有限公司 | 一种基于端口映射的管理网络和租户网络通信的方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3742390B2 (ja) * | 2003-01-17 | 2006-02-01 | 株式会社東芝 | Httpトンネリングサーバを用いた通信方法および通信装置、プログラム |
US11394804B2 (en) * | 2015-09-30 | 2022-07-19 | Radware, Ltd. | System and method for stateless distribution of bidirectional flows with network address translation |
CN105871740B (zh) * | 2016-06-27 | 2019-04-23 | 联想(北京)有限公司 | 一种分布式网络的通信方法、系统和控制节点 |
CN110351233A (zh) * | 2018-04-08 | 2019-10-18 | 蓝盾信息安全技术有限公司 | 一种基于安全隔离网闸的双向透明传输技术 |
-
2020
- 2020-04-21 CN CN202010318404.0A patent/CN111711705B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101043447A (zh) * | 2007-04-23 | 2007-09-26 | 重庆大学 | 基于ddns和nat的服务器内外网动态映射方法 |
CN102055755A (zh) * | 2009-10-29 | 2011-05-11 | 杭州华三通信技术有限公司 | 一种公网与私网进行数据通信的方法和安全插卡 |
WO2012116616A1 (en) * | 2011-02-28 | 2012-09-07 | Hangzhou H3C Technologies Co., Ltd | Load balancing methods and devices |
CN105430117A (zh) * | 2015-12-24 | 2016-03-23 | 北京航天科工世纪卫星科技有限公司 | 一种采用nat转换实现卫星网接入本地网的方法 |
CN105847460A (zh) * | 2016-03-15 | 2016-08-10 | 迈普通信技术股份有限公司 | 一种实现双向转发检测的方法及设备 |
CN107819889A (zh) * | 2016-09-14 | 2018-03-20 | 华为技术有限公司 | 一种网络地址转换nat的方法、设备及系统 |
CN106375493A (zh) * | 2016-10-10 | 2017-02-01 | 腾讯科技(深圳)有限公司 | 一种跨网络通信的方法以及代理服务器 |
CN111031020A (zh) * | 2019-12-04 | 2020-04-17 | 紫光云(南京)数字技术有限公司 | 一种基于端口映射的管理网络和租户网络通信的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111711705A (zh) | 2020-09-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7830878B2 (en) | Virtual network connection system, virtual network connection apparatus, and computer-readable medium | |
CN111711705B (zh) | 基于代理节点作双向nat实现网络连接的方法和装置 | |
US8909812B2 (en) | Method and device for communication for host device with IPv4 application | |
US11146666B2 (en) | IPv4/IPv6 bridge | |
TWI441493B (zh) | 網路位址轉換的系統與方法 | |
US8549286B2 (en) | Method and system for forwarding data between private networks | |
EP2536092A1 (en) | Method and device for port mapping, and communications system | |
JP2006050626A (ja) | ネットワークアドレス変換方法および装置 | |
TW200409500A (en) | Dynamic network address translation system and method of transparent private network device | |
JP2003249942A (ja) | インターネットプロトコルアドレス変換装置及びこれを用いたホームネットワークシステム並びにその通信方法 | |
JP5640092B2 (ja) | Ipv4ネットワークと新しいネットワークとの相互通信の実現方法及びシステム | |
WO2011147353A1 (zh) | 一种报文发送方法及装置 | |
US8194683B2 (en) | Teredo connectivity between clients behind symmetric NATs | |
CN110691150A (zh) | 一种基于SDN的IPv4与IPv6互联方法及系统 | |
WO2011157126A2 (zh) | 一种报文转发方法和网间路由装置 | |
JP2015095904A (ja) | 外部アドレス空間の圧縮 | |
US9413590B2 (en) | Method for management of a secured transfer session through an address translation device, corresponding server and computer program | |
EP3395049B1 (en) | Router and method for connecting an ipv4 network and an ipv6 network | |
JP3635223B2 (ja) | IPv4−IPv6アドレス置換方法、およびIPv4−IPv6通信方法 | |
WO2016078235A1 (zh) | 基于PNAT向IPv6过渡的网络转换实现方法、装置 | |
JP2019050628A5 (zh) | ||
WO2022089412A1 (zh) | 一种通信方法及装置 | |
JP5054666B2 (ja) | Vpn接続装置、パケット制御方法、及びプログラム | |
JPH1155319A (ja) | IPv4−IPv6通信方法およびIPv4−IPv6変換装置 | |
CN114268604B (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 |