CN108881519A - 一种nat穿透方法及装置 - Google Patents
一种nat穿透方法及装置 Download PDFInfo
- Publication number
- CN108881519A CN108881519A CN201810895662.8A CN201810895662A CN108881519A CN 108881519 A CN108881519 A CN 108881519A CN 201810895662 A CN201810895662 A CN 201810895662A CN 108881519 A CN108881519 A CN 108881519A
- Authority
- CN
- China
- Prior art keywords
- source
- host
- address
- routing iinformation
- port number
- 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.)
- Pending
Links
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/2592—Translation of Internet protocol [IP] addresses using tunnelling or encapsulation
-
- 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/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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例提供一种NAT穿透方法及装置。所述方法包括:获取第一主机发送的第一通信报文,第一通信报文包括第一源IP地址和第一源端口号;根据第一源IP地址和第一源端口号从预先生成的路由信息表中进行查询获得对应的目标路由信息;根据目标路由信息进行路由替换获得替换后路由信息;根据替换后路由信息进行网络地址转换NAT并将第二通信报文发送至第二主机。所述装置用于执行所述方法。本发明实施例通过第一源IP地址和第一源端口号从路由信息表中获得对应的目标路由信息,并进行路由替换,保证了第一主机与第二主机之间的通信报文转发路由和打洞报文与服务器之间的通信报文转发路由一致,提高第一主机和第二主机之间通信的成功率。
Description
技术领域
本发明涉及通信技术领域,具体而言,涉及一种NAT穿透方法及装置。
背景技术
很多游戏都采用P2P方式进行组队和语音,玩家的主机就充当服务器,这种方式可以有效降低游戏服务商的服务器压力,从而达到更好的游戏体验。
P2P即点对点通信,P2P打洞是建立点对点通信的过程,即NAT穿透过程,不管通信双方是否在同一个局域网络中,只要是P2P通信,都需要先打洞,然后再进行通讯。
目前由于IPV4不足,国内的宽带运营商为缓解IP的紧缺,大范围使用NAT技术进行IP地址的分配。国内宽带用户基本分配到的是运营商的私网地址。如果采用光猫拨号再接路由器,则主机、P2P数据要经过多级NAT网关的转换才能进入对端用户。这极大的降低了游戏P2P数据打洞的成功率。如果链路中存在Symmetric类型的NAT网关将直接导致P2P打洞的失败。
目前大多数家庭路由器采用了UPnP或者DMZ的技术来解决NAT的穿透问题。内网主机的应用程序在需要进行内网穿透前,对路由器进行一次UPnP请求,该请求映射一个外网端口(UDP或TCP)到内网主机的端口,映射成功后,该内网主机使用申请的内网端口进行通信时是Full Cone(完全锥形)的。
UPnP有较大的局限性:一次UPnP请求只能进行一级NAT的映射,这意味着如果你的数据经过多级NAT网关联上网,仅通过UPnP是无法实现内网P2P穿透的。
发明内容
有鉴于此,本发明实施例的目的在于提供一种NAT穿透方法及装置,以解决上述技术问题。
第一方面,本发明实施例提供了一种NAT穿透方法,包括:
获取第一主机发送的第一通信报文,所述第一通信报文包括第一源IP地址和第一源端口号;
根据所述第一源IP地址和所述第一源端口号,从预先生成的路由信息表中进行查询,获得所述第一源IP地址和所述第一源端口号对应的目标路由信息;
根据所述目标路由信息进行路由替换,获得替换后路由信息;
根据所述替换后路由信息进行网络地址转换NAT,并将第二通信报文发送至第二主机。
进一步地,所述方法,还包括:
获取满足预设条件的目的端口的报文;
对所述报文进行信息提取,获得对应的第二源IP地址、第二源端口号和第二路由信息,并将所述第二源IP地址、所述第二源端口号和所述第二路由信息生成路由信息表。
进一步地,在获得替换后路由信息之后,所述方法,还包括:
根据连接跟踪表对所述第一源端口号进行冲突检查。
进一步地,所述方法,还包括:
建立虚拟专用网络VPN隧道,以使所述第一主机通过所述VPN隧道将所述报文进行发送。
第二方面,本发明实施例提供了一种NAT穿透装置,包括:
第一获取模块,用于获取第一主机发送的第一通信报文,所述第一通信报文包括源第一IP地址和第一源端口号;
查询模块,用于根据所述第一源IP地址和所述第一源端口号,从预先生成的路由信息表中进行查询,获得所述第一源IP地址和所述第一源端口号对应的目标路由信息;
路由替换模块,用于根据所述目标路由信息进行路由替换,获得替换后路由信息;
NAT穿透模块,用于根据所述替换后路由信息进行网络地址转换NAT,并将第二通信报文发送至第二主机。
进一步地,所述装置,还包括:
第二获取模块,用于获取满足预设条件的目的端口的报文;
表生成模块,用于对所述报文进行信息提取,获得对应的源IP地址、源端口号和路由信息,并将所述源IP地址、所述源端口号和所述路由信息生成路由信息表。
进一步地,所述装置,还包括:
冲突检查模块,用于根据连接跟踪表对所述第一源端口号进行冲突检查。
进一步地,所述装置,还包括:
隧道建立模块,用于建立虚拟专用网络VPN隧道,以使所述第一主机通过所述VPN隧道将所述报文进行发送。
第三方面,本发明实施例提供一种电子设备,包括:处理器、存储器和总线,其中,
所述处理器和所述存储器通过所述总线完成相互间的通信;
所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行第一方面的方法步骤。
第四方面,本发明实施例提供一种非暂态计算机可读存储介质,包括:
所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行第一方面的方法步骤。
本发明实施例提供的一种NAT穿透方法及装置,通过根据第一源IP地址和第一源端口号,从路由信息表中获得对应的目标路由信息,并进行路由替换,保证了第一主机和第二主机之间通信时的转发路由与打洞时与服务器通信的转发路由一致,提高第一主机和第二主机之间通信的成功率。
本发明的其他特征和优点将在随后的说明书阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明实施例了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本发明实施例提供的一种NAT穿透方法流程示意图;
图2为本发明实施例提供的一种NAT穿透装置结构示意图;
图3为本发明实施例提供的用户终端与服务器进行交互的示意图;
图4为本发明实施例提供的电子设备的结构框图。
具体实施方式
下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本发明的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
图1为本发明实施例提供的一种NAT穿透方法流程示意图,如图1所示,所述方法,包括:
步骤101:获取第一主机发送的第一通信报文,所述第一通信报文包括第一源IP地址和第一源端口号;
在具体的实施过程中,若要在第一主机和第二主机之间打洞以实现第一主机和第二主机之间的通信,需要第一主机和第二主机分别与穿透装置建立通信连接,其中,应当说明的是,第一主机和第二主机为P2P两端的对等端设备。在第一主机和第二主机中应当有至少一个位于NAT设备之后,当第一主机与第二主机均位于NAT设备之后时,其可以位于同一个NAT设备后面,也可以位于不同的NAT设备后面。穿透装置获取第一主机发送的通信报文,并获取通信报文中包括的第一源IP地址和第一源端口号。应当说明的是,第一通信报文中还可以包括路由信息、出接口信息等,本发明实施例对此不作具体限定。
步骤102:根据所述第一源IP地址和所述第一源端口号,从预先生成的路由信息表中进行查询,获得所述第一源IP地址和所述第一源端口号对应的目标路由信息;
在具体的实施过程中,穿透装置根据第一主机对应的第一源IP地址和第一源端口号从预先生成的路由信息表中进行查询,应当说明的是路由信息表中包括了至少一条信息,每条信息中都包括源IP地址、源端口号和路由信息,因此,可以从路由信息表中获取到与第一源IP地址和第一源端口号相匹配的那条信息,并将相匹配的这条信息中包括的路由信息作为目标路由信息。
步骤103:根据所述目标路由信息进行路由替换,获得替换后路由信息;
在具体的实施过程中,由于P2P打洞成功后对等端IP地址的不确定性,数据在经过路由信息表时可能被路由到不同的网络出口,造成对等者(Peer)之间的通信数据路径不一致最终导致对等者(Peer)之间不能正常通信,可以理解的是,对等者即第一主机和第二主机,因此,穿透装置记录P2P打洞时的目标路由信息,并根据目标路由信息将P2P对等者通信时的路由信息进行替换,即通过目标路由信息替换第一主机与第二主机(P2P对端节点主机)通信的路由,得到替换后路由信息,保证P2P打洞时与服务器通信的由于与对等者之前的通信路由一致。
步骤104:根据所述替换后路由信息进行网络地址转换NAT,并将所述第二通信报文发送至第二主机。
在具体的实施过程中,在对连接跟踪表中的路由信息进行修改,获得替换后路由信息后,根据替换后路由信息进行网络地址转换(Network Address Translation,简称NAT),应当说明的是,网络地址转换的方法与现有技术中的方法一致,此处不再赘述。网络地址转换完成后,将第一主机发出的第二通信报文发送至第二主机,从而实现了NAT穿透。
本发明实施例通过根据第一源IP地址和第一源端口号,从路由信息表中获得对应的目标路由信息,并进行路由替换,保证了第一主机与第二主机之间的通信报文转发路由和打洞报文与服务器之间的通信报文转发路由一致,提高第一主机和第二主机之间通信的成功率。
在上述实施例的基础上,所述方法,还包括:
获取满足预设条件的目的端口的报文;
对所述报文进行信息提取,获得对应的第二源IP地址、第二源端口号和第二路由信息,并将所述第二源IP地址、所述第二源端口号和所述第二路由信息生成路由信息表。
具体的,第一主机和第二主机要想实现通信,首先需要在两个主机之间打洞,因此,穿透装置获取满足预设条件的报文,应当说明的是,在STUN协议中规定了一些端口,穿透装置可以获取所有的STUN协议规定的端口产生的报文,可以理解的是,也可以获取其他协议中获取的端口作为目的端口。二报文中包括有第二IP地址、第二源端口号和第二路由信息,对该报文进行信息提取,获得对应的第二IP地址、第二源端口号和第二路由信息。应当说明的是,该报文为打洞报文。
本发明实施例通过建立路由信息表,根据路由信息表获取目标路由信息,并根据目标路由信息对连接跟踪表中的路由信息进行替换修改,从而保证了第一主机与第二主机之间的通信报文转发路由和打洞报文与服务器之间的通信报文转发路由一致,从而提高了第一主机和第二主机之间通信的成功率。
在上述实施例的基础上,在获得替换后路由信息之后,所述方法,还包括:
根据连接跟踪表对所述第一源端口号进行冲突检查。
在具体的实施过程中,由于linux内核所实现的NAT机制,在做NAT地址转换时会尽量的不替换源端口,如果多台主机接入同一个加速节点,在源端口相同而五元组不冲突的情况下映射到公网IP的相同端口,导致互相不能打洞。因此,在进行网络地址转换之前,需要针对第一源端口号进行端口冲突检查保证NAT映射端口的唯一性。当第一、第二主机分别与第三方服务器通信获取自身公网IP及端口信息时,当第三方服务器不为同一台主机(IP地址不一致时),第一、第二主机映射到的公网IP及端口完全一样时,即为冲突;当第三方服务器为同一主机时不冲突。
在上述实施例的基础上,所述方法,还包括:
建立虚拟专用网络VPN隧道,以使所述第一主机通过所述VPN隧道将所述报文进行发送。
在具体的实施过程中,穿透装置利用加速节点的公网IP,在第一主机发送的打洞报文流量时,穿透装置通过建立虚拟专用网络(Virtual Private Network,简称VPN)隧道,使得第一主机能够通过建立的VPN隧道将打洞报文发送至穿透装置的出口,这样做的好处是打洞报文只需要经过两次NAT网管的地址转换即可转换到公网IP,确定NAT转换网关的可控性。
图2为本发明实施例提供的一种NAT穿透装置结构示意图,如图2所示,所述装置,包括:第一获取模块201、查询模块202、路由替换模块203和NAT穿透模块204,其中,
第一获取模块201用于获取第一主机发送的第一通信报文,所述第一通信报文包括第一源IP地址和第一源端口号;查询模块202用于根据所述第一源IP地址和所述第一源端口号,从预先生成的路由信息表中进行查询,获得所述第一源IP地址和所述第一源端口号对应的目标路由信息;路由替换模块203用于根据所述目标路由信息进行路由替换,获得替换后路由信息;NAT穿透模块204用于根据所述替换后路由信息进行网络地址转换NAT,并将第二通信报文发送至第二主机。
在具体的实施过程中,第一获取模块201获取第一主机发送的第一通信报文,并获取第一通信报文中包括的第一源IP地址和第一源端口号。应当说明的是,第一通信报文中还可以包括路由信息、出接口信息等,本发明实施例对此不作具体限定。查询模块202根据第一主机对应的第一源IP地址和第一源端口号从预先生成的路由信息表中进行查询,将获取到与第一源IP地址和第一源端口号相匹配的信息中包括的路由信息作为目标路由信息。路由替换模块203记录P2P打洞时的目标路由信息,并根据目标路由信息将P2P对等者通信时的路由信息进行替换,得到替换后路由信息。在对连接跟踪表中的路由信息进行修改,获得替换后路由信息后,NAT穿透模块204根据替换后路由信息进行网络地址转换,网络地址转换完成后,将第一主机发出的第二通信报文发送至第二主机,从而实现了NAT穿透。
本发明实施例通过根据第一源IP地址和第一源端口号,从路由信息表中获得对应的目标路由信息,并进行路由替换,保证了第一主机与第二主机之间的通信报文转发路由和打洞报文与服务器之间的通信报文转发路由一致,提高第一主机和第二主机之间通信的成功率。
在上述实施例的基础上,所述装置,还包括:
第二获取模块,用于获取满足预设条件的目的端口的报文;
表生成模块,用于对所述报文进行信息提取,获得对应的第二源IP地址、第二源端口号和第二路由信息,并将所述第二源IP地址、所述第二源端口号和所述第二路由信息生成路由信息表。
在具体的实施过程中,第一主机和第二主机要想实现通信,首先需要在两个主机之间打洞,因此,第二获取模块获取满足预设条件的报文,应当说明的是,在STUN协议中规定了一些端口,第二获取模块可以获取所有的STUN协议规定的端口产生的报文,可以理解的是,也可以获取其他协议中获取的端口作为目的端口。报文中包括有第二IP地址、第二源端口号和第二路由信息,应当说明的是,该报文为打洞报文。
本发明实施例通过建立路由信息表,根据路由信息表获取目标路由信息,并根据目标路由信息对连接跟踪表中的路由信息进行替换修改,从而保证了在打洞时的路由与服务器通信时的路由的一致性,从而提高了第一主机和第二主机之间通信的成功率。
在上述实施例的基础上,所述装置,还包括:
冲突检查模块,用于根据连接跟踪表对所述第一源端口号进行冲突检查。
在具体的实施过程中,由于linux内核所实现的NAT机制,在做NAT地址转换时会尽量的不替换源端口,如果多台主机接入同一个加速节点,在源端口相同而五元组不冲突的情况下映射到公网IP的相同端口,导致互相不能打洞。因此,在进行网络地址转换之前,冲突检查模块需要针对第一源端口号进行端口冲突检查保证NAT映射端口的唯一性。当第一、第二主机分别与第三方服务器通信获取自身公网IP及端口信息时,当第三方服务器不为同一台主机(IP地址不一致时),第一、第二主机映射到的公网IP及端口完全一样时,即为冲突;当第三方服务器为同一主机时不冲突。
在上述实施例的基础上,所述装置,还包括:
隧道建立模块,用于建立虚拟专用网络VPN隧道,以使所述第一主机通过所述VPN隧道将所述报文进行发送。
在具体的实施过程中,穿透装置利用加速节点的公网IP,在第一主机发送的打洞报文流量时,隧道建立模块通过建立虚拟专用网络(Virtual Private Network,简称VPN)隧道,使得第一主机能够通过建立的VPN隧道将打洞报文发送至穿透装置的出口,这样做的好处是打洞报文只需要经过两次NAT网管的地址转换即可转换到公网IP,确定NAT转换网关的可控性。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置的具体工作过程,可以参考前述方法中的对应过程,在此不再过多赘述。
综上所述,本发明实施例通过根据第一源IP地址和第一源端口号,从路由信息表中获得对应的目标路由信息,并进行路由替换,保证了第一主机和第二主机之间的转发路由与打洞是与服务器通信的转发路由一致,提高第一主机和第二主机之间通信的成功率。
图3为本发明实施例提供的用户终端与服务器进行交互的示意图,所述服务器302通过网络303与一个或多个用户终端301进行通信连接,以进行数据通信或交互。所述服务器302可以是网络服务器、数据库服务器等。所述用户终端301可以是个人电脑(personalcomputer,PC)、平板电脑、智能手机、个人数字助理(personal digital assistant,PDA)、可穿戴设备等终端。
请参照图4,图4为本发明实施例提供的电子设备的结构框图。电子设备可以包括穿透装置401、存储器402、存储控制器403、处理器404、外设接口405、输入输出单元406、音频单元407、显示单元408。
所述存储器402、存储控制器403、处理器404、外设接口405、输入输出单元406、音频单元407、显示单元408各元件相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。所述穿透装置401包括至少一个可以软件或固件(firmware)的形式存储于所述存储器402中或固化在穿透装置401的操作***(operating system,OS)中的软件功能模块。所述处理器404用于执行存储器402中存储的可执行模块,例如所述穿透装置401包括的软件功能模块或计算机程序。
其中,存储器402可以是,但不限于,随机存取存储器(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)等。其中,存储器402用于存储程序,所述处理器404在接收到执行指令后,执行所述程序,前述本发明实施例任一实施例揭示的流过程定义的服务器所执行的方法可以应用于处理器404中,或者由处理器404实现。
处理器404可以是一种集成电路芯片,具有信号的处理能力。上述的处理器404可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器404也可以是任何常规的处理器等。
所述外设接口405将各种输入/输出装置耦合至处理器404以及存储器402。在一些实施例中,外设接口405,处理器404以及存储控制器403可以在单个芯片中实现。在其他一些实例中,他们可以分别由独立的芯片实现。
输入输出单元406用于提供给用户输入数据实现用户与所述服务器(或本地终端)的交互。所述输入输出单元406可以是,但不限于,鼠标和键盘等。
音频单元407向用户提供音频接口,其可包括一个或多个麦克风、一个或者多个扬声器以及音频电路。
显示单元408在所述电子设备与用户之间提供一个交互界面(例如用户操作界面)或用于显示图像数据给用户参考。在本实施例中,所述显示单元408可以是液晶显示器或触控显示器。若为触控显示器,其可为支持单点和多点触控操作的电容式触控屏或电阻式触控屏等。支持单点和多点触控操作是指触控显示器能感应到来自该触控显示器上一个或多个位置处同时产生的触控操作,并将该感应到的触控操作交由处理器404进行计算和处理。
所述外设接口405将各种输入/输入装置耦合至处理器404以及存储器402。在一些实施例中,外设接口405,处理器404以及存储控制器403可以在单个芯片中实现。在其他一些实例中,他们可以分别由独立的芯片实现。
输入输出单元406用于提供给用户输入数据实现用户与处理终端的交互。所述输入输出单元406可以是,但不限于,鼠标和键盘等。
可以理解,图4所示的结构仅为示意,所述电子设备还可包括比图4中所示更多或者更少的组件,或者具有与图4所示不同的配置。图4中所示的各组件可以采用硬件、软件或其组合实现。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本发明各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
Claims (10)
1.一种NAT穿透方法,其特征在于,包括:
获取第一主机发送的第一通信报文,所述第一通信报文包括第一源IP地址和第一源端口号;
根据所述第一源IP地址和所述第一源端口号,从预先生成的路由信息表中进行查询,获得所述第一源IP地址和所述第一源端口号对应的目标路由信息;
根据所述目标路由信息进行路由替换,获得替换后路由信息;
根据所述替换后路由信息进行网络地址转换NAT,并将第二通信报文发送至第二主机。
2.根据权利要求1所述的方法,其特征在于,所述方法,还包括:
获取满足预设条件的目的端口的报文;
对所述报文进行信息提取,获得对应的第二源IP地址、第二源端口号和第二路由信息,并将所述第二源IP地址、所述第二源端口号和所述第二路由信息生成路由信息表。
3.根据权利要求1所述的方法,其特征在于,在获得替换后路由信息之后,所述方法,还包括:
根据连接跟踪表对所述第一源端口号进行冲突检查。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述方法,还包括:
建立虚拟专用网络VPN隧道,以使所述第一主机通过所述VPN隧道将所述报文进行发送。
5.一种NAT穿透装置,其特征在于,包括:
第一获取模块,用于获取第一主机发送的第一通信报文,所述第一通信报文包括第一源IP地址和第一源端口号;
查询模块,用于根据所述第一源IP地址和所述第一源端口号,从预先生成的路由信息表中进行查询,获得所述第一源IP地址和所述第一源端口号对应的目标路由信息;
路由替换模块,用于根据所述目标路由信息进行路由替换,获得替换后路由信息;
NAT穿透模块,用于根据所述替换后路由信息进行网络地址转换NAT,并将第二通信报文发送至第二主机。
6.根据权利要求5所述的装置,其特征在于,所述装置,还包括:
第二获取模块,用于获取满足预设条件的目的端口的报文;
表生成模块,用于对所述报文进行信息提取,获得对应的第二源IP地址、第二源端口号和第二路由信息,并将所述第二源IP地址、所述第二源端口号和所述第二路由信息生成路由信息表。
7.根据权利要求5所述的装置,其特征在于,所述装置,还包括:
冲突检查模块,用于根据连接跟踪表对所述第一源端口号进行冲突检查。
8.根据权利要求5-7任一项所述的装置,其特征在于,所述装置,还包括:
隧道建立模块,用于建立虚拟专用网络VPN隧道,以使所述第一主机通过所述VPN隧道将所述报文进行发送。
9.一种电子设备,其特征在于,包括:处理器、存储器和总线,其中,
所述处理器和所述存储器通过所述总线完成相互间的通信;
所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行如权利要求1-4任一项所述的方法。
10.一种非暂态计算机可读存储介质,其特征在于,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行如权利要求1-4任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810895662.8A CN108881519A (zh) | 2018-08-08 | 2018-08-08 | 一种nat穿透方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810895662.8A CN108881519A (zh) | 2018-08-08 | 2018-08-08 | 一种nat穿透方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108881519A true CN108881519A (zh) | 2018-11-23 |
Family
ID=64318350
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810895662.8A Pending CN108881519A (zh) | 2018-08-08 | 2018-08-08 | 一种nat穿透方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108881519A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109361590A (zh) * | 2018-12-25 | 2019-02-19 | 杭州迪普科技股份有限公司 | 一种解决业务访问不通的方法和装置 |
CN110380947A (zh) * | 2019-07-23 | 2019-10-25 | 深圳市启博科创有限公司 | 一种基于p2p技术的二级网络架构vpn组网方法 |
CN110855810A (zh) * | 2019-11-07 | 2020-02-28 | 北京天融信网络安全技术有限公司 | 一种nat转换方法、装置、网络安全设备及存储介质 |
CN114040029A (zh) * | 2021-11-11 | 2022-02-11 | 锐捷网络股份有限公司 | 报文压缩方法、装置、设备和存储介质 |
WO2024066757A1 (zh) * | 2022-09-29 | 2024-04-04 | 歌尔股份有限公司 | 数据帧传输方法、装置及可读存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101068212A (zh) * | 2007-06-11 | 2007-11-07 | 中兴通讯股份有限公司 | 一种网络地址转换转发的装置及方法 |
CN101335770A (zh) * | 2008-08-06 | 2008-12-31 | 杭州华三通信技术有限公司 | 一种网络地址端口转换方法和装置 |
CN101771732A (zh) * | 2010-01-06 | 2010-07-07 | 福建星网锐捷网络有限公司 | 报文处理方法、装置和网络设备 |
US20150120897A1 (en) * | 2012-05-22 | 2015-04-30 | Sagemcom Broadband Sas | Device and method for interconnecting two subnetworks |
CN105933198A (zh) * | 2016-04-21 | 2016-09-07 | 浙江宇视科技有限公司 | 一种建立直连vpn隧道的装置 |
-
2018
- 2018-08-08 CN CN201810895662.8A patent/CN108881519A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101068212A (zh) * | 2007-06-11 | 2007-11-07 | 中兴通讯股份有限公司 | 一种网络地址转换转发的装置及方法 |
CN101335770A (zh) * | 2008-08-06 | 2008-12-31 | 杭州华三通信技术有限公司 | 一种网络地址端口转换方法和装置 |
CN101771732A (zh) * | 2010-01-06 | 2010-07-07 | 福建星网锐捷网络有限公司 | 报文处理方法、装置和网络设备 |
US20150120897A1 (en) * | 2012-05-22 | 2015-04-30 | Sagemcom Broadband Sas | Device and method for interconnecting two subnetworks |
CN105933198A (zh) * | 2016-04-21 | 2016-09-07 | 浙江宇视科技有限公司 | 一种建立直连vpn隧道的装置 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109361590A (zh) * | 2018-12-25 | 2019-02-19 | 杭州迪普科技股份有限公司 | 一种解决业务访问不通的方法和装置 |
CN110380947A (zh) * | 2019-07-23 | 2019-10-25 | 深圳市启博科创有限公司 | 一种基于p2p技术的二级网络架构vpn组网方法 |
CN110855810A (zh) * | 2019-11-07 | 2020-02-28 | 北京天融信网络安全技术有限公司 | 一种nat转换方法、装置、网络安全设备及存储介质 |
CN110855810B (zh) * | 2019-11-07 | 2022-07-12 | 北京天融信网络安全技术有限公司 | 一种nat转换方法、装置、网络安全设备及存储介质 |
CN114040029A (zh) * | 2021-11-11 | 2022-02-11 | 锐捷网络股份有限公司 | 报文压缩方法、装置、设备和存储介质 |
WO2024066757A1 (zh) * | 2022-09-29 | 2024-04-04 | 歌尔股份有限公司 | 数据帧传输方法、装置及可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108881519A (zh) | 一种nat穿透方法及装置 | |
CN102334111B (zh) | 为受管计算机网络提供逻辑联网功能 | |
CN101252509B (zh) | 双-nat方法在动态虚拟专用网络(vpn)的数据包处理及路由中的应用 | |
CN103346900B (zh) | 大二层网络中虚拟机热迁移后的路由配置方法和网关 | |
US20160226815A1 (en) | System and method for communicating in an ssl vpn | |
CN109547349B (zh) | 基于虚拟路由的流量管理方法、装置、终端及存储介质 | |
CN105323310B (zh) | 网络通信方法、设备及网络附属存储设备 | |
CN105684376A (zh) | 数据交换层上的位置服务 | |
CN103444149A (zh) | 网络拓扑发现 | |
CN108141409A (zh) | 通信***、地址通知装置、通信控制装置、终端、通信方法以及程序 | |
CN108449272A (zh) | 一种基于OpenStack架构提供端口转发服务的实现方法 | |
CN106649476A (zh) | 一种 ip 地址信息查询*** | |
CN105072213A (zh) | 一种IPSec NAT双向穿越方法、***及VPN网关 | |
US20240113951A1 (en) | Data network analysis system and method for a communication network | |
CN106507414A (zh) | 报文转发方法及装置 | |
CN103347099B (zh) | 一种数据交互的方法、装置及*** | |
CN110392066A (zh) | 一种访问服务的方法和装置 | |
CN104506405B (zh) | 跨域访问的方法及装置 | |
CN108351798A (zh) | 用于虚拟机的可扩展寻址机制 | |
CN104065688B (zh) | 一种调用底层服务的方法及装置 | |
CN107360275A (zh) | 一种对称型nat端口的预测方法及装置 | |
CN106506375B (zh) | 一种路由更新方法及装置 | |
CN107659436A (zh) | 一种防止业务中断的方法及装置 | |
CN105656744B (zh) | 服务链路径的标识方法、设备和服务链 | |
US8855015B2 (en) | Techniques for generic pruning in a trill network |
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 | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20181123 |
|
WD01 | Invention patent application deemed withdrawn after publication |