CN101465844A - 一种防火墙穿越方法、系统和设备 - Google Patents

一种防火墙穿越方法、系统和设备 Download PDF

Info

Publication number
CN101465844A
CN101465844A CNA2007101797995A CN200710179799A CN101465844A CN 101465844 A CN101465844 A CN 101465844A CN A2007101797995 A CNA2007101797995 A CN A2007101797995A CN 200710179799 A CN200710179799 A CN 200710179799A CN 101465844 A CN101465844 A CN 101465844A
Authority
CN
China
Prior art keywords
node
address
port numbers
data
tunnel
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.)
Granted
Application number
CNA2007101797995A
Other languages
English (en)
Other versions
CN101465844B (zh
Inventor
周世杰
李峰
梁丽娟
秦志光
罗嘉庆
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
University of Electronic Science and Technology of China
Original Assignee
Huawei Technologies Co Ltd
University of Electronic Science and Technology of China
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd, University of Electronic Science and Technology of China filed Critical Huawei Technologies Co Ltd
Priority to CN2007101797995A priority Critical patent/CN101465844B/zh
Publication of CN101465844A publication Critical patent/CN101465844A/zh
Application granted granted Critical
Publication of CN101465844B publication Critical patent/CN101465844B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种防火墙穿越方法、系统和设备,属于通信领域。所述方法包括获取对端节点的IP地址和端口号;根据所述对端节点的IP地址和端口号将待发送的数据封装为IP隧道包,使所述IP隧道包穿越对端节点的防火墙;向所述对端节点发送所述IP隧道包。所述系统包括第一节点和第二节点;或第一节点、第一节点代理客户端、第二节点和第二节点代理服务器。节点设备包括:获取模块、封装模块和发送模块。本发明对待发送的数据进行封装,添加IP头和UDP头得到IP隧道包,该IP隧道包将能够穿越对端的防火墙,从而完成通信节点间的连接和通信。

Description

一种防火墙穿越方法、系统和设备
技术领域
本发明涉及通信领域,特别涉及一种防火墙穿越方法、系统和设备。
背景技术
P2P(Peer to Peer,对等网络)中,当需要进行相互通信的节点均位于各自的防火墙之后,且防火墙采用了状态检测等数据包深层分析技术对进出防火墙的数据包的内容进行检测时,例如很多防火墙会限制防火墙外的SYN(Synchronize,一种非常小的数据包)的主动进入,此时上述网络拓扑结构中通信的访问方和通信的被访问方之间由于无法完成TCP(Transmission Control Protocol,传输控制协议)的三次握手导致无法建立TCP连接,从而影响了通信。因此,必须要解决P2P网络节点穿越防火墙建立端到端连接的问题。
目前,现有技术提供了一种VoIP(Voice over IP,以数据包的方式传输语音的IP协议)应用穿越防火墙的方法,该方法采用了TCP隧道技术,即利用部署在Internet上的代理服务器,将VoIP客户端的UDP(User Datagram Protocol,用户数据报协议)数据包转换为TCP数据包后发送给VoIP服务器。在Internet服务器旁设置代理服务器;当客户端和服务器都在Internet上时,直接通过VoIP实现网络数据的传送;当VoIP服务器在Internet上而VoIP客户端是通过NAT(Network Address Translation,网络地址转换)或防火墙联入Internet时,首先在VoIP客户端与代理服务器之间建立TCP隧道,然后由代理服务器代理发送和接收VoIP客户端的UDP数据包,从而实现VoIP服务器和代理服务器之间直接收发数据。
发明人在实现本发明的过程中发现,该方法没有解决通信的节点之间建立TCP连接的问题。当VoIP客户端和代理服务器均在NAT或防火墙之后时,利用该方法无法建立VoIP客户端和Internet服务器通信双方之间的TCP连接。
现有技术还提供了一种利用UDP隧道穿越防火墙的方法,该方法在防火墙或NAT设备端部署UDP隧道客户端UTC(UDP Tunnel Client)、UDP隧道服务器UTS(UDP Tunnel Server),以及用户数据包协议,并利用UDP隧道客户端UTC和UDP隧道服务器UTS在终端之间建立UDP隧道。终端发送应用层数据(协议数据),UTC接收应用层数据,将应用层数据封装成UDP数据包,然后通过UDP隧道进行发送;当UTS接收到UDP数据包后,对接收到的UDP数据包进行解封装,将解封装得到的应用层数据发送给服务器。
发明人在实现本发明的过程中发现,该方法当终端和服务器通信双方都位于防火墙(尤其是状态检测防火墙)之后时,无法实现相互通信。
发明内容
为了使位于状态检测防火墙后的通信节点间能够实现相互通信,本发明实施例提供了一种防火墙穿越方法、系统和设备。所述技术方案如下:
其中,一种防火墙穿越方法,所述方法包括:
获取对端节点的IP地址和端口号;
根据所述对端节点的IP地址和端口号将待发送的数据封装为IP隧道包,使所述IP隧道包穿越对端节点的防火墙;
向所述对端节点发送所述IP隧道包。
本发明实施例还提供了一种防火墙穿越系统,所述系统包括:第一节点和第二节点;
所述第一节点用于获取所述第二节点的IP地址和端口号;根据所述对端节点的IP地址和端口号将待发送的数据封装为IP隧道包,发送所述IP隧道包;
所述第二节点用于接收所述第一节点发送的IP隧道包,对所述IP隧道包解封装得到所述待发送的数据。
本发明实施例还提供了一种防火墙穿越系统,所述系统包括:
第一节点、第一节点代理客户端、第二节点代理服务器和第二节点
第一节点,用于获取所述第二节点的IP地址和端口号,以及发送数据,所述数据携带所述IP地址和端口号;
第一节点代理客户端,用于接收所述第一节点发送的数据,将所述数据封装为IP隧道包,发送所述IP隧道包;
第二节点代理服务器,用于接收所述第一节点代理客户端发送的IP隧道包,对所述IP隧道包解封装,得到所述第一节点发送的数据,发送所述解封装后的数据;
第二节点,用于接收所述第二节点代理服务器解封装后的数据,得到所述第一节点发送的数据。
本发明实施例还提供了一种节点设备,所述节点设备包括:
获取模块,用于获取对端节点的IP地址和端口号;
封装模块,用于根据所述获取模块获取的IP地址和端口号将待发送的数据封装为IP隧道包,使所述IP隧道包穿越对端节点的防火墙;
发送模块,用于发送所述封装模块封装的IP隧道包。
本发明实施例提供的技术方案的有益效果是:
通过对待发送的数据进行封装,添加IP头和UDP头得到IP隧道包,该IP隧道包将能够穿越对端的防火墙,使位于防火墙之后的通信节点也可以完成双向连接和通信。
附图说明
图1是本发明实施例1提供的防火墙穿越的组网示意图;
图2是本发明实施例1提供的防火墙穿越的方法流程图;
图3是本发明实施例2提供的防火墙穿越的组网示意图;
图4是本发明实施例2提供的防火墙穿越的方法流程图;
图5是本发明实施例3提供的防火墙穿越的系统示意图;
图6是本发明实施例4提供的防火墙穿越的系统示意图;
图7是本发明实施例5提供的节点设备示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述.
本发明实施例通过获取对端节点的IP地址和端口号;根据对端节点的IP地址和端口号将待发送的数据封装为IP隧道包,使IP隧道包穿越对端节点的防火墙,从而实现在P2P网络中位于防火墙后的通信节点间的通信。
其中,将待发送的数据封装为IP隧道包时采用在待发送的数据中添加IP头和UDP头方式进行封装,得到IP隧道包,其中,IP头和UDP头为预先开通UDP通道的UDP报文的协议头(包括:源端口、目的端口、校验和、长度等字段),该IP隧道包能够穿越对端节点的防火墙。
实施例1
参见图1,为本发明实施例提供的防火墙穿越的组网示意图。以图1中,作为访问方的节点A和作为被访问方的节点B进行相互通信为例,为了实现方便,本实施例在节点A和节点B之间预先设置防火墙穿越代理(FTP,Firewall Traversal Proxy),节点A和节点B通过FTP获取对端的IP地址和端口号,其中,FTP只需要拥有一个静态、全局IP地址,可以具体为一个具有公网IP地址的单独的服务器或路由器等设备;也可以将其功能集成在网络中现有的服务器或路由器等设备上,但是要保证和访问方、被访问方之间能够进行无障碍通信。参见图2,本实施例以IP请求数据包作为待发送的数据为例,该方法具体步骤如下:
步骤101:节点A和节点B分别向FTP上报自身的IP地址和端口号。
步骤102:FTP收到节点A和节点B上报的IP地址和端口号后,进行保存,并分别向节点A和节点B返回对端的IP地址和端口号。
步骤103:节点A和节点B收到对端的IP地址和端口号后,通过UDP掘孔技术开通双向UDP通道,开通双向通道的具体步骤如下:
节点A和节点B同时向对端发送UDP报文;例如,可以通过FTP相互通知发送UDP报文的时间,实现双方几乎同时发送UDP报文;
以节点A向节点B发送UDP报文为例,其中该UDP报文中的源IP地址和端口号为节点A的IP地址和端口号,目的IP地址和端口号为节点B的IP地址和端口号;
当节点A的防火墙收到由节点A发送来的UDP报文时,记录UDP报文中携带的节点B的IP地址和端口号,然后向节点B发送该UDP报文;
当节点B的防火墙收到由节点A发送来的UDP报文时,检查自身是否记录过该UDP报文中携带的源IP地址和端口号,即节点A的IP地址和端口号,如果有,则允许该UDP报文通过,将该UDP报文发送到节点B。
同理,以节点B向节点A发送UDP报文的过程也类似,如果节点A的防火墙在收到由节点B发送来的UDP报文时,检查自身是否记录过该UDP报文中携带的节点B的IP地址和端口号,如果有,则允许该UDP报文通过,将该UDP报文发送到节点A。
如果当前节点A或节点B的防火墙没有记录对端的IP地址和端口号,将不会开通UDP双向通道,将会通过下一次发送的UDP报文开通。
所述的UDP掘孔技术(UDP Hole Punching)开通双向UDP通道的原理为:如果想从防火墙外部发送一个数据包给内网的计算机时,首先,必须在内网的防火墙上打上一个“洞”(也就是说在防火墙上建立一个会话Session),这个洞不能由外部来打,只能由内网内的主机来打。而且这个洞是有方向的,比如从内部某台主机(比如:192.168.0.10)向外部的某个IP(比如:219.237.60.1)发送一个UDP包,那么就在这个内网的防火墙上打了一个方向为219.237.60.1的“洞”,这就是称为UDP Hole Punching的技术;以后219.237.60.1就可以通过这个洞与内网的192.168.0.10联系了,但是具有其他IP地址的数据包不能利用这个洞。
通过上述步骤101至步骤103后,在节点A和节点B各自的防火墙上建立了节点A和节点B的通信关系,当节点A和节点B进行通信时,可以直接利用UDP通道实现穿越防火墙,本实施例以节点A向节点B发送IP请求数据包为例,具体过程参见步骤104至步骤106。
步骤104:节点A通过将待发送的IP请求数据包添加IP头和UDP协议头后,封装得到IP隧道包。
其中,该IP隧道包的IP头和UDP协议头为已开通的UDP通道的UDP报文的协议头。
步骤105:节点A将IP隧道包向节点B发送,节点A的防火墙收到来自节点A的IP隧道包后,将该IP隧道包转发。
步骤106:节点B的防火墙收到来自节点A的IP隧道包后,检查自身记录有该IP隧道包的协议头中携带的源IP地址和端口号后,将该IP隧道包转发到节点B。
如果节点B的防火墙检查自身没有记录该IP隧道包的协议头中携带的源IP地址和端口号,则该IP隧道包不合法,直接将该IP隧道包丢弃;本实施例以检查通过为例进行说明。
步骤107:节点B收到通过自身防火墙的IP隧道包后,进行解封装得到IP请求数据包。
上述步骤成功完成了节点A向节点B发送IP请求数据包的通信,同理,节点B也可以通过开通的UDP通道完成向节点A返回IP响应数据包的通信,这里不再赘述。
其中,本发明实施例节点A和节点B获取对端IP地址和端口号的方式不限制于通过FTP获取,还可以是通过现有技术中提供的其他获取方式实现,例如节点A和节点B向网管获取等。
本发明实施例中开通UDP通道时,节点A和节点B同时向对端发送UDP报文时,也不限制于通过FTP相互通知发送UDP报文的时间,实现双方几乎同时发送UDP报文的方式,还可以是通过现有技术中提供的其他方式实现,例如通过网管控制节点A和节点B,实现双方几乎同时发送UDP报文等。
本领域技术人员可以知道,通过本发明实施例提供的防火墙穿越方法同样适用于穿越NAT,对网络拓扑及部署没有任何要求。
本发明实施例提供的方法通过对待发送的数据进行封装,添加IP头和UDP头得到IP隧道包,该IP隧道包通过添加的UDP头隐藏了原来的传输层协议信息,将能够穿越对端的防火墙,即使该防火墙开通了状态检测,使位于防火墙之后的通信节点也可以完成双向连接和通信;同时,封装后的IP隧道包保持了原来应用程序的特性,因而应用程序无需额外操作,简化了解封装时的操作过程。
实施例2
参见图3,为本发明实施例提供的防火墙穿越的组网示意图。与图1提供的组网结构相比,图3中的节点A和节点B的附近分别部署了IPC(IP Tunnel Client,IP隧道代理客户)和IPS(IP Tunnel Server,IP隧道代理服务器),以节点A和节点B进行相互通信为例,参见图4,本实施例以IP请求数据包作为待发送的数据为例,该方法具体步骤如下:
步骤201:节点A和节点B分别向FTP上报自身的IP地址和端口号。
步骤202:FTP收到节点A和节点B上报的IP地址和端口号后,进行保存,并分别向节点A和节点B返回对端的IP地址、端口号以及会话标识SID。
其中,该会话标识SID为FTP预先保存的,用于节点A和节点B进行相互通信。
步骤203:节点A和节点B收到对端的IP地址和端口号后,通过UDP掘孔技术开通双向UDP通道。具体步骤如下:
节点A的IPC和节点B的IPC同时向对端发送UDP报文;例如,可以通过FTP相互通知发送UDP报文的时间,实现双方几乎同时发送UDP报文;
以节点A的IPC向节点B发送UDP报文为例,其中该UDP报文中的源IP地址和端口号为节点A的IP地址和端口号,目的IP地址和端口号为节点B的IP地址和端口号;
当节点A的防火墙收到由节点A的IPC发送来的UDP报文时,记录UDP报文中携带的节点B的IP地址和端口号,然后向节点B发送该UDP报文;
当节点B的防火墙收到由节点A发送来的UDP报文时,检查自身是否记录过该UDP报文中携带的源IP地址和端口号,即节点A的IP地址和端口号,如果有,则允许该UDP报文通过,将该UDP报文发送到节点B的IPS。
同理,节点B向节点A发送UDP报文的过程也类似,如果节点A的防火墙在收到由节点B的IPC发送来的UDP报文时,检查自身是否记录过该UDP报文中携带的节点B的IP地址和端口号,如果有,则允许该UDP报文通过,将该UDP报文发送到节点A的IPS。
该过程是在节点A和节点B各自的IPC和IPS之间进行的,即穿越防火墙的是IPC和IPS,而对于节点A和节点B的应用程序来说是完全透明。
其中,上述通过UDP掘孔技术开通双向UDP通道是以节点A的IPC和节点B的IPC相互发送UDP报文为例的,开通双向UDP通道的过程也可以与实施例1提供的方法一样:由节点A和节点B互相发送UDP报文实现,这里不再详述。
通过上述步骤201至步骤203后,在节点A和节点B各自的防火墙上建立了节点A和节点B的通信关系,当节点A和节点B间进行通信时,可以直接利用UDP通道实现穿越防火墙,本实施例以节点A向节点B发送IP请求数据包为例,具体过程参见步骤204至步骤209。
步骤204:节点A通过将待发送的IP请求数据包发送到节点A的IPC,节点A的IPC将该IP请求数据包添加IP头和UDP协议头,封装得到IP隧道包,并在该IP隧道包中标记会话标识SID。
其中,该IP隧道包的IP头和UDP协议头为已开通的UDP通道的UDP的协议头。
步骤205:节点A的IPC将IP隧道包向节点B发送,节点A的防火墙收到来自节点A的IPC的IP隧道包后,转发该IP隧道包。
步骤206:节点B的防火墙收到来自节点A的IP隧道包后,检查通过后,将该IP隧道包转发到节点B的IPS。
此处,节点B的防火墙收到来自节点A的IP隧道包后,检查自身是否记录过该IP隧道包中的源IP地址和端口号,即节点A的IP地址和端口号,如果记录过,则检查通过;将该IP隧道包转发到节点B的IPS;否则,检查不通过,丢弃该将该IP隧道包。本实施例以检查通过为例进行说明。
步骤207:节点B的IPS收到通过自身防火墙的IP隧道包后,判断是否能查找到会话标识SID,如果能够查找到会话标识SID,则执行步骤208;否则,执行步骤209。
步骤208:节点B的IPS解封装IP隧道包,得到节点A发送的IP请求数据包,并将该IP请求数据包发送到节点B。
步骤209:节点B的IPS根据自身配置处理该IP隧道包。
其中,节点B的IPS根据自身的配置,对于没有携带会话标识的IP隧道包可以进行如下处理:
当IPS自身的配置为将接收到的所有数据包转发到节点B时,将没有携带会话标识的IP隧道包转发给节点B;
当IPS自身的配置为只转发携带会话标识的IP隧道包时,将丢弃没有携带会话标识的IP隧道包。
上述步骤成功完成了节点A向节点B发送IP请求数据包的通信,同理,节点B也可以通过开通的UDP通道完成向节点A返回IP响应数据包的通信。
其中,本发明实施例节点A和节点B获取对端IP地址和端口号的方式不限制于通过FTP获取,还可以是通过现有技术中提供的其他获取方式实现,例如节点A和节点B向网管获取等。
并且本发明实施例中,获取会话标识SID的方式,不限制于通过FTP获取的方式,还可以是通过由数据发送方的节点添加预先与数据接收方协商的会话标识SID实现。
本发明实施例提供的技术方案由于是对整个IP数据包进行封装,因此在网络中通信节点的各自IPC和IPS仅需要对添加的IP头和UDP头进行处理,无需关注原IP数据包,通过添加会话标识SID使得接收方的IPS能够很容易判断出该数据包的内容:是封装后的IP隧道包还是原始IP数据包,使得解封装的开销大大减小;通过开通UDP通道,当对等网络中通信节点均位于防火墙之后时,也可以实现穿越防火墙,从而完成通信节点间的双向连接和通信。
实施例3
参见图5,为本发明实施例提供的防火墙穿越系统,系统包括:
第一节点,用于获取第二节点的IP地址和端口号;根据对端节点的IP地址和端口号将待发送的数据封装为IP隧道包,发送IP隧道包;
第二节点,用于接收第一节点发送的IP隧道包,对IP隧道包解封装得到待发送的数据。
其中,第一节点包括:
获取模块,用于获取第二节点的IP地址和端口号;
封装模块,用于根据获取模块获取的IP地址和端口号为待发送的数据添加IP头和用户数据报协议头,封装为IP隧道包,IP头和用户数据报协议头为预先开通用户数据报协议通道的用户数据报协议报文的协议头;
会话标识添加模块,用于在封装模块封装的IP隧道包中添加会话标识;
相应地,第二节点具体包括:
接收模块,用于接收IP隧道包;
判断模块,用于判断接收模块接收到的IP隧道包中是否携带会话标识;
处理模块,用于当判断模块判断的结果是IP隧道包中携带会话标识时,去掉IP隧道包中的IP头和用户数据报协议头,得到待发送的数据。
本发明实施例提供的防火墙穿越系统还包括:
防火墙穿越代理,用于保存第一节点和第二节点上报的IP地址和端口号;
相应地;
第一节点还用于向防火墙穿越代理上报自身的IP地址和端口号,以及通过防火墙穿越代理获取第二节点的IP地址和端口号;
第二节点还用于向防火墙穿越代理上报自身的IP地址和端口号,以及通过防火墙穿越代理获取第一节点的IP地址和端口号。
同理,第二节点也可以穿越防火墙向第一节点发送数据,从而实现两节点间的双向连接和通信。
本发明实施例提供的系统中的第一节点通过预先开通的UDP通道封装数据,得到IP隧道包,当对端节点(即第二节点)位于防火墙之后时,该IP隧道包也可以穿越对端节点的防火墙,从而实现第一节点与第二节点连接和通信;同时,当IP隧道包携带会话标识时,可以使第二节点能够容易地判断出该IP隧道包是否为封装后的数据包,进而进行解封装,减小了解封装的开销。
实施例4
参见图6,为本发明实施例提供的防火墙穿越系统,系统包括:
第一节点,用于获取第二节点的IP地址和端口号,以及发送数据,数据携带IP地址和端口号;
第一节点代理客户端,用于接收第一节点发送的数据,将数据封装为IP隧道包,发送IP隧道包;
第二节点代理服务器,用于接收第一节点代理客户端发送的IP隧道包,对IP隧道包解封装,得到第一节点发送的数据,发送解封装后的数据;
第二节点,用于接收第二节点代理服务器解封装后的数据,得到第一节点发送的数据。
其中,第一节点代理客户端包括:
封装模块,用于接收第一节点发送的数据,根据数据中的IP地址和端口号为数据添加IP头和用户数据报协议头,封装为IP隧道包,IP头和用户数据报协议头为预先开通用户数据报协议通道的用户数据报协议报文的协议头;
会话标识添加模块,用于在封装模块封装的IP隧道包中添加会话标识;
相应地,第二节点代理服务器具体包括:
接收模块,用于接收第一节点代理客户端发送的IP隧道包;
判断模块,用于判断接收模块接收到的IP隧道包中是否携带会话标识;
处理模块,用于当判断模块判断的结果是IP隧道包中携带会话标识时,去掉IP隧道包中的IP头和用户数据报协议头,得到第一节点发送的数据,发送所得到的数据。
本发明实施例提供的防火墙穿越系统还包括:
防火墙穿越代理,用于保存第一节点和第二节点上报的IP地址和端口号;
相应地;
第一节点还用于向防火墙穿越代理上报自身的IP地址和端口号,以及通过防火墙穿越代理获取第二节点的IP地址和端口号;
第二节点还用于向防火墙穿越代理上报自身的IP地址和端口号,以及通过防火墙穿越代理获取第一节点的IP地址和端口号。
同理,第二节点也可以穿越防火墙向第一节点发送数据,从而实现两节点间的双向连接和通信。
本发明实施例提供的系统中的第一节点通过预先开通的UDP通道中使用的UDP报文的协议头进行数据封装,得到IP隧道包,第二节点代理服务器仅需要对封装的IP头和UDP头进行解封装处理,无需关注原IP数据包,使得解封装的开销大大减小。当对等网络中通信节点均位于防火墙之后时,通过将数据包封装成IP隧道包,也可以实现穿越防火墙,从而完成通信节点间的双向连接和通信。
实施例5
参见图7,为本发明实施例提供的一种节点设备,设备包括:
获取模块,用于获取对端节点的IP地址和端口号;
封装模块,用于根据获取模块获取的IP地址和端口号将待发送的数据封装为IP隧道包,使IP隧道包穿越对端节点的防火墙;
发送模块,用于发送封装模块封装的IP隧道包。
进一步地,封装模块包括:
封装单元,根据获取模块获取的IP地址和端口号为待发送的数据添加IP头和用户数据报协议头,封装为IP隧道包,IP头和用户数据报协议头为预先开通用户数据报协议通道的用户数据报协议报文的协议头;
会话标识添加单元,用于在封装单元封装的IP隧道包中添加会话标识。
节点设备还包括:
接收模块,用于接收对端节点发送的IP隧道包;
解封装模块,用于将接收模块接收的IP隧道包解封装,得到对端节点发送的数据。
本发明实施例提供的节点设备,通过预先开通的UDP通道中使用的UDP报文的协议头进行数据封装,得到IP隧道包,当对端节点位于防火墙之后时,IP隧道包也可以穿越防火墙,完成对端节点间的连接和通信;同时,当收到对端节点发送的IP隧道包时,通过解封装获取IP隧道包中的数据。
以上实施例提供的技术方案通过对待发送的数据进行封装,添加IP头和UDP头得到IP隧道包,该IP隧道包能够穿越对端的防火墙,使位于防火墙之后的通信节点也可以完成双向连接和通信。
本发明实施例提供的技术方案中的全部或部分内容可以通过软件编程实现,其软件程序存储在可读取的存储介质中,存储介质例如:计算机中的硬盘、光盘或软盘。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (16)

1.一种防火墙穿越方法,其特征在于,所述方法包括:
获取对端节点的IP地址和端口号;
根据所述对端节点的IP地址和端口号将待发送的数据封装为IP隧道包,使所述IP隧道包穿越对端节点的防火墙;
向所述对端节点发送所述IP隧道包。
2.如权利要求1所述的防火墙穿越方法,其特征在于,所述根据所述对端节点的IP地址和端口号将待发送的数据封装为IP隧道包的步骤之前还包括:本端节点开通与对端节点间的用户数据报协议通道。
3.如权利要求2所述的防火墙穿越方法,其特征在于,所述本端节点开通与对端节点间的用户数据报协议通道的步骤包括:
所述本端节点发送用户数据报协议报文,所述用户数据报协议报文的源IP地址和源端口为本端节点的IP地址和端口号,目的IP地址和目的端口号为所述对端节点的IP地址和端口号;
所述本端节点的防火墙收到所述用户数据报协议报文后,记录所述用户数据报协议报文的目的IP地址和目的端口号,向所述对端节点的防火墙发送用户数据报协议报文;
所述对端节点的防火墙收到所述用户数据报协议报文后,检查自身是否记录过所述用户数据报协议报文的源IP地址和源端口号,如果是,允许所述用户数据报协议报文通过。
4.如权利要求1所述的防火墙穿越方法,其特征在于,所述获取对端节点的IP地址和端口号的步骤之前还包括:
本端节点和对端节点预先向防火墙穿越代理上报自身的IP地址和端口号;
相应地,所述获取对端节点的IP地址和端口号是从所述防火墙穿越代理获取的。
5.如权利要求1所述的防火墙穿越方法,其特征在于,所述方法还包括:
所述对端节点收到所述IP隧道包后,对所述IP隧道包解封装得到所述待发送的数据。
6.如权利要求5所述的防火墙穿越方法,其特征在于,所述IP隧道包携带会话标识;
相应地,所述对所述IP隧道包解封装得到所述待发送的数据的步骤具体包括:
所述对端节点根据所述会话标识判断出所述IP隧道包为封装后的IP包,去掉所述IP隧道包中的IP头和用户数据报协议头,得到所述待发送的数据,所述IP头和用户数据报协议头为封装IP隧道包时添加的,为预先开通用户数据报协议通道的用户数据报协议报文的协议头。
7.如权利要求6所述的防火墙穿越方法,其特征在于,所述会话标识为所述本端节点预先与所述对端节点协商的标识,或者,所述会话标识为所述本端节点预先向防火墙穿越代理获取的标识。
8.一种防火墙穿越系统,其特征在于,所述系统包括:第一节点和第二节点;
所述第一节点用于获取所述第二节点的IP地址和端口号;根据所述对端节点的IP地址和端口号将待发送的数据封装为IP隧道包,发送所述IP隧道包;
所述第二节点用于接收所述第一节点发送的IP隧道包,对所述IP隧道包解封装得到所述待发送的数据。
9.如权利要求8所述的防火墙穿越系统,其特征在于,所述第一节点包括:
获取模块,用于获取所述第二节点的IP地址和端口号;
封装模块,用于根据所述获取模块获取的IP地址和端口号为待发送的数据添加IP头和用户数据报协议头,封装为IP隧道包,所述IP头和用户数据报协议头为预先开通用户数据报协议通道的用户数据报协议报文的协议头;
会话标识添加模块,用于在所述封装模块封装的IP隧道包中添加会话标识;
相应地,所述第二节点包括:
接收模块,用于接收所述IP隧道包;
判断模块,用于判断所述接收模块接收到的所述IP隧道包中是否携带所述会话标识;
处理模块,用于当所述判断模块判断的结果是所述IP隧道包中携带所述会话标识时,去掉所述IP隧道包中的IP头和用户数据报协议头,得到所述待发送的数据。
10.如权利要求8所述的防火墙穿越系统,其特征在于,所述系统还包括:
防火墙穿越代理,用于保存所述第一节点和所述第二节点上报的IP地址和端口号;
相应地,
所述第一节点还用于向所述防火墙穿越代理上报自身的IP地址和端口号,以及通过所述防火墙穿越代理获取所述第二节点的IP地址和端口号;
所述第二节点还用于向所述防火墙穿越代理上报自身的IP地址和端口号,以及通过所述防火墙穿越代理获取所述第一节点的IP地址和端口号。
11.一种防火墙穿越系统,其特征在于,所述系统包括:第一节点、第一节点代理客户端、第二节点代理服务器和第二节点,
所述第一节点用于获取所述第二节点的IP地址和端口号,以及发送数据,所述数据携带所述IP地址和端口号;
所述第一节点代理客户端用于接收所述第一节点发送的数据,将所述数据封装为IP隧道包,发送所述IP隧道包;
所述第二节点代理服务器用于接收所述第一节点代理客户端发送的IP隧道包,对所述IP隧道包解封装,得到所述第一节点发送的数据,发送所述解封装后的数据;
所述第二节点用于接收所述第二节点代理服务器解封装后的数据,得到所述第一节点发送的数据。
12.如权利要求11所述的防火墙穿越系统,其特征在于,所述第一节点代理客户端包括:
封装模块,用于接收所述第一节点发送的数据,根据所述数据中的IP地址和端口号为所述数据添加IP头和用户数据报协议头,封装为IP隧道包,所述IP头和用户数据报协议头为预先开通用户数据报协议通道的用户数据报协议报文的协议头;
会话标识添加模块,用于在所述封装模块封装的IP隧道包中添加会话标识;
相应地,所述第二节点代理服务器具体包括:
接收模块,用于接收所述第一节点代理客户端发送的IP隧道包;
判断模块,用于判断所述接收模块接收到的所述IP隧道包中是否携带所述会话标识;
处理模块,用于当所述判断模块判断的结果是所述IP隧道包中携带所述会话标识时,去掉所述IP隧道包中的IP头和用户数据报协议头,得到所述第一节点发送的数据,发送所得到的数据。
13.如权利要求11所述的防火墙穿越系统,其特征在于,所述系统还包括:
防火墙穿越代理,用于保存所述第一节点和所述第二节点上报的IP地址和端口号;
相应地,
所述第一节点还用于向所述防火墙穿越代理上报自身的IP地址和端口号,以及通过所述防火墙穿越代理获取所述第二节点的IP地址和端口号;
所述第二节点还用于向所述防火墙穿越代理上报自身的IP地址和端口号,以及通过所述防火墙穿越代理获取所述第一节点的IP地址和端口号。
14.一种节点设备,其特征在于,所述节点设备包括:
获取模块,用于获取对端节点的IP地址和端口号;
封装模块,用于根据所述获取模块获取的IP地址和端口号将待发送的数据封装为IP隧道包,使所述IP隧道包穿越对端节点的防火墙;
发送模块,用于发送所述封装模块封装的IP隧道包。
15.如权利要求14所述的节点设备,其特征在于,所述封装模块包括:
封装单元,根据所述获取模块获取的IP地址和端口号为待发送的数据添加IP头和用户数据报协议头,封装为IP隧道包,所述IP头和用户数据报协议头为预先开通用户数据报协议通道的用户数据报协议报文的协议头;
会话标识添加单元,用于在所述封装单元封装的IP隧道包中添加会话标识。
16.如权利要求14所述的节点设备,其特征在于,所述节点设备还包括:
接收模块,用于接收对端节点发送的IP隧道包;
解封装模块,用于将所述接收模块接收的IP隧道包解封装,得到所述对端节点发送的数据。
CN2007101797995A 2007-12-18 2007-12-18 一种防火墙穿越方法、系统和设备 Expired - Fee Related CN101465844B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2007101797995A CN101465844B (zh) 2007-12-18 2007-12-18 一种防火墙穿越方法、系统和设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2007101797995A CN101465844B (zh) 2007-12-18 2007-12-18 一种防火墙穿越方法、系统和设备

Publications (2)

Publication Number Publication Date
CN101465844A true CN101465844A (zh) 2009-06-24
CN101465844B CN101465844B (zh) 2012-07-04

Family

ID=40806209

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2007101797995A Expired - Fee Related CN101465844B (zh) 2007-12-18 2007-12-18 一种防火墙穿越方法、系统和设备

Country Status (1)

Country Link
CN (1) CN101465844B (zh)

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101783804A (zh) * 2010-02-22 2010-07-21 建汉科技股份有限公司 可提高安全协定封包处理效能的方法
CN102387157A (zh) * 2011-12-02 2012-03-21 杭州华三通信技术有限公司 一种数据传输方法和设备
CN102932487A (zh) * 2012-11-26 2013-02-13 福建伊时代信息科技股份有限公司 数据处理方法及系统
WO2013117154A1 (zh) * 2012-02-10 2013-08-15 浙江宇视科技有限公司 穿越监控网络中隔离设备的方法和设备
CN103259773A (zh) * 2012-02-21 2013-08-21 精品科技股份有限公司 一种因特网的数据封包防护系统及其方法
CN103259764A (zh) * 2012-02-17 2013-08-21 精品科技股份有限公司 一种局域网络防护系统与方法
CN103392316A (zh) * 2013-01-11 2013-11-13 华为技术有限公司 穿越防火墙的方法、客户端和媒体穿越服务器
CN103428097A (zh) * 2012-05-23 2013-12-04 正文科技股份有限公司 路由装置
CN103392316B (zh) * 2013-01-11 2016-11-30 华为技术有限公司 穿越防火墙的方法、客户端和媒体穿越服务器
WO2017054446A1 (zh) * 2015-09-30 2017-04-06 深圳市先河系统技术有限公司 网络通信方法、设备及网络附属存储设备
CN107800699A (zh) * 2017-10-27 2018-03-13 安徽兆尹信息科技股份有限公司 一种用于金融安防环境的移动终端与网关服务器传输方法
CN111901364A (zh) * 2020-08-17 2020-11-06 扬州网桥软件技术有限公司 一种防火墙穿透方法及系统
CN112039801A (zh) * 2020-07-20 2020-12-04 厦门网宿有限公司 设置ip信息的方法、系统和代理服务器
CN113472666A (zh) * 2021-06-29 2021-10-01 新华三信息安全技术有限公司 报文转发方法及设备
CN114301968A (zh) * 2021-12-31 2022-04-08 苏州科达特种视讯有限公司 服务端的访问方法、系统、设备及存储介质
CN114338153A (zh) * 2021-12-28 2022-04-12 杭州迪普科技股份有限公司 一种IPSec的协商方法及装置
CN114978643A (zh) * 2022-05-13 2022-08-30 北京天融信网络安全技术有限公司 一种通信方法、网络设备及存储介质

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1466344A (zh) * 2002-06-21 2004-01-07 南京北极星软件有限公司 VoIP应用穿越防火墙的方法
CN100440850C (zh) * 2003-12-24 2008-12-03 华为技术有限公司 多媒体业务网络地址转换穿越的方法及其系统

Cited By (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101783804A (zh) * 2010-02-22 2010-07-21 建汉科技股份有限公司 可提高安全协定封包处理效能的方法
CN102387157A (zh) * 2011-12-02 2012-03-21 杭州华三通信技术有限公司 一种数据传输方法和设备
US9215215B2 (en) 2012-02-10 2015-12-15 Zhejiang Uniview Technologies Co., Ltd Method and device for passing through isolation device in surveillance network
WO2013117154A1 (zh) * 2012-02-10 2013-08-15 浙江宇视科技有限公司 穿越监控网络中隔离设备的方法和设备
CN103259764A (zh) * 2012-02-17 2013-08-21 精品科技股份有限公司 一种局域网络防护系统与方法
CN103259764B (zh) * 2012-02-17 2017-12-15 精品科技股份有限公司 一种局域网络防护系统与方法
CN103259773A (zh) * 2012-02-21 2013-08-21 精品科技股份有限公司 一种因特网的数据封包防护系统及其方法
CN103428097A (zh) * 2012-05-23 2013-12-04 正文科技股份有限公司 路由装置
CN102932487B (zh) * 2012-11-26 2016-09-14 福建伊时代信息科技股份有限公司 数据处理方法及系统
CN102932487A (zh) * 2012-11-26 2013-02-13 福建伊时代信息科技股份有限公司 数据处理方法及系统
CN103392316A (zh) * 2013-01-11 2013-11-13 华为技术有限公司 穿越防火墙的方法、客户端和媒体穿越服务器
WO2014107894A1 (zh) * 2013-01-11 2014-07-17 华为技术有限公司 穿越防火墙的方法、客户端和媒体穿越服务器
CN103392316B (zh) * 2013-01-11 2016-11-30 华为技术有限公司 穿越防火墙的方法、客户端和媒体穿越服务器
WO2017054446A1 (zh) * 2015-09-30 2017-04-06 深圳市先河系统技术有限公司 网络通信方法、设备及网络附属存储设备
CN107800699A (zh) * 2017-10-27 2018-03-13 安徽兆尹信息科技股份有限公司 一种用于金融安防环境的移动终端与网关服务器传输方法
CN112039801A (zh) * 2020-07-20 2020-12-04 厦门网宿有限公司 设置ip信息的方法、系统和代理服务器
CN112039801B (zh) * 2020-07-20 2022-12-20 厦门网宿有限公司 设置ip信息的方法、系统和代理服务器
CN111901364A (zh) * 2020-08-17 2020-11-06 扬州网桥软件技术有限公司 一种防火墙穿透方法及系统
CN113472666A (zh) * 2021-06-29 2021-10-01 新华三信息安全技术有限公司 报文转发方法及设备
CN113472666B (zh) * 2021-06-29 2023-08-18 新华三信息安全技术有限公司 报文转发方法及设备
CN114338153A (zh) * 2021-12-28 2022-04-12 杭州迪普科技股份有限公司 一种IPSec的协商方法及装置
CN114338153B (zh) * 2021-12-28 2023-07-25 杭州迪普科技股份有限公司 一种IPSec的协商方法及装置
CN114301968A (zh) * 2021-12-31 2022-04-08 苏州科达特种视讯有限公司 服务端的访问方法、系统、设备及存储介质
CN114301968B (zh) * 2021-12-31 2024-03-08 苏州科达特种视讯有限公司 服务端的访问方法、系统、设备及存储介质
CN114978643A (zh) * 2022-05-13 2022-08-30 北京天融信网络安全技术有限公司 一种通信方法、网络设备及存储介质
CN114978643B (zh) * 2022-05-13 2023-08-29 北京天融信网络安全技术有限公司 一种通信方法、网络设备及存储介质

Also Published As

Publication number Publication date
CN101465844B (zh) 2012-07-04

Similar Documents

Publication Publication Date Title
CN101465844B (zh) 一种防火墙穿越方法、系统和设备
US10110714B2 (en) Methods for exchanging network management messages using UDP over HTTP protocol
US7716369B2 (en) Data transmission system with a mechanism enabling any application to run transparently over a network address translation device
US20040057430A1 (en) Transmission of broadcast packets in secure communication connections between computers
US20030188001A1 (en) System and method for traversing firewalls, NATs, and proxies with rich media communications and other application protocols
US20030051045A1 (en) Methods and apparatus for reducing frame overhead on local area networks
WO2022104869A1 (zh) 基于芯片级加密的以太网和现场总线融合网关及传输方法
KR100333530B1 (ko) 네트워크 주소 변환(nat) 기능을 이용한 가상 사설망(vpn) 구성 방법 및 이를 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체
EP1156626A3 (en) Mobile communication network, terminal equipment, packet communication control method, and gateway
US8724630B2 (en) Method and system for implementing network intercommunication
US20060209830A1 (en) Packet processing system including control device and packet forwarding device
CN107453861B (zh) 一种基于ssh2协议的数据采集方法
WO2006097031A1 (fr) Procede de transmission de message dans le reseau du protocole internet mobile
CN104184646A (zh) Vpn网络数据交互方法和系统及其网络数据交互设备
US20060280175A1 (en) Method and system for tunneling data using a management protocol
Punithavathani et al. IPv4/IPv6 transition mechanisms
CN101465858B (zh) 监控业务中实现私网穿越的方法、网络设备和服务器
CN102984167B (zh) 一种基于Socks5协议的通用防火墙穿越方法
CN111917621A (zh) 通信设备的网管服务器与网元的通信方法及系统
JP3790140B2 (ja) マルチホップネットワークの中継方法および無線ノード
CN105591929B (zh) 轻量级双协议栈组网下的认证方法及装置
CN100370782C (zh) 一种实现园区网接入IPv6网的方法
CN113794715A (zh) 一种虚拟点对点网络数据发送、接收、应答方法及其系统
CN108259294A (zh) 报文处理方法及装置
CN113067910A (zh) 一种nat穿越方法、装置、电子设备和存储介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20120704

Termination date: 20171218