CN102065111A - 一种反向代理方法和反向代理服务器 - Google Patents

一种反向代理方法和反向代理服务器 Download PDF

Info

Publication number
CN102065111A
CN102065111A CN2009102380288A CN200910238028A CN102065111A CN 102065111 A CN102065111 A CN 102065111A CN 2009102380288 A CN2009102380288 A CN 2009102380288A CN 200910238028 A CN200910238028 A CN 200910238028A CN 102065111 A CN102065111 A CN 102065111A
Authority
CN
China
Prior art keywords
packet
reverse proxy
mouth
internal server
address
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
CN2009102380288A
Other languages
English (en)
Other versions
CN102065111B (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.)
Nsfocus Technologies Group Co Ltd
Original Assignee
Beijing NSFocus Information Security Technology Co Ltd
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 Beijing NSFocus Information Security Technology Co Ltd filed Critical Beijing NSFocus Information Security Technology Co Ltd
Priority to CN200910238028.8A priority Critical patent/CN102065111B/zh
Publication of CN102065111A publication Critical patent/CN102065111A/zh
Application granted granted Critical
Publication of CN102065111B publication Critical patent/CN102065111B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种适用于反向代理服务器的反向代理方法,该反向代理服务器适于布置在外部客户机和内部服务器之间以便为外部客户机访问内部服务器提供反向代理服务,所述反向代理方法包括接收反向代理服务器的通信端口所截获的数据包;解除所截获数据包的MAC层封装、IP层或者更高层封装;对解除了封装的数据包进行处理,并随后对经处理的数据包进行重新封装,并且从对应的通信接口发送该数据包,其中重新封装后的数据包的源IP地址和目的IP地址和在解除封装之前的数据包一致。

Description

一种反向代理方法和反向代理服务器
技术领域
本发明涉及计算机网络上的代理服务领域,尤其涉及为网络上的客户机和服务器提供反向代理的反向代理服务器和反向代理方法。
背景技术
随着计算机网络的不断发展,许多公司、组织和团体等内部形成了内部局域网,而且通常内部局域网又需要和国际互联网Internet进行连接以便方便地从Internet上获得信息。为了公司信息安全起见,通常采用了代理服务器来代理内部局域网络对Internet的连接请求,此时局域网中客户机必须指定代理服务器,并将本来要直接发送到Internet上的目标服务器的连接请求发送到代理服务器中,由代理服务器访问目标服务器。代理服务器被设计为在Internet上搜寻多个不确定的服务器,而不是针对Internet上多个客户机的请求访问某一个固定的服务器,因此普通的代理服务器不支持外部对内部网络的访问请求。
如果一个代理服务器能够代理外部网络上的客户机访问内部网络,那么这种代理服务的方式称为反向代理服务,而且该代理服务器被称为反向代理服务器。此时该反向代理服务器对外就表现为普通的服务器,外部网络上的客户机可以把该反向代理服务器当成客户机要访问的服务器进行访问而不需要特定的配置。但是该反向代理服务器并不会真正处理来自外部网络的客户机请求,而是将该请求转发到内部网络上的实际服务器进行处理。例如,当反向代理的服务是WEB服务时,反向代理服务器没有保存任何网页的真实数据,所有的静态网页或者动态网络应用程序都保存在内部网络中的WEB服务器上。因此对反向代理服务器的攻击并不会使得网页信息遭到破坏,这样就增强了内部WEB服务器的安全性。
现有的反向代理技术虽然能对内部网络服务器的安全性起到一定的保护作用,但是它与生俱来的技术特点导致了一些固有的缺陷。
图1示出了在现有技术中的反向代理服务器的工作原理。如图1所示,现有反向代理服务器120扮演了两个角色,即对真实的访问者如外部网络中的客户机110来说,它扮演了提供服务者;而对真实的提供服务者如内网中的内部服务器130来说,它扮演了访问者。为了实现反向代理功能,现有的反向代理服务120器必须拥有内部服务器130对外的IP地址,以使得从外部客户机110看来,就如同在跟内部服务器130直接进行通信一样(这也即传统意义上的的透明特性)。由于反向代理服务器120占用了内部服务器130的对外IP地址,内部服务器应当更换其IP地址,这相当于IP地址前置到了反向代理服务器120上。如图1所示,客户机110具有IP地址1.1.1.2,而内部服务器130原先具有IP地址1.1.1.1。然而为了实现反向代理,该内部服务器130将其IP地址修改为另一个IP地址2.2.2.1,而反向代理服务器占用了内部服务器原先的IP地址1.1.1.1,并且还使用了另一个IP地址2.2.2.2来和内部服务器进行通信。
另外,由于现有反向代理服务器120在扮演访问者来代理访问内部服务器时,它使用自己的IP地址(即2.2.2.2)而不是外部客户机110的真实IP地址。因此,从内部服务器130来看,来访者是反向代理服务器,而不是真实的外部客户机,由此导致内部服务器130不能获得外部客户机的真实访问情况。
综上所述,传统的反向代理技术具有如下缺点:
1.在部署时须将内部服务器的IP地址前置到反向代理服务器上;
2.内部服务器需修改其IP地址;
3.反向代理服务器需配置新的IP地址与内部服务器进行通信;
以及
4.内部服务器无法获取真实的来访者IP,因而无法进行进一步的分析。
所需要的是一种可以解决现有反向代理服务器和反向代理服务方法的上述缺点的改进的反向代理方法和服务器。
发明内容
本发明提供了一种可以解决上述现有反向代理服务器和反向代理方法的反向代理方法和服务器。
根据本发明的一个方面,提供了一种反向代理服务器,其适于布置在外部客户机和内部服务器之间,为外部客户机访问内部服务器提供反向代理服务,该反向代理服务器包括:用于和外部客户机进行数据通信的通信接口WAN口;用于和内部服务器进行数据通信的通信接口LAN口;数据收发装置,解除从所述WAN口和LAN口接收的数据包的MAC层封装;数据包解封装装置,用于解除所述数据包的IP层和更高层的封装;数据包处理装置,用于对由所述数据包解封装装置解封装的数据包进行处理;以及数据包封装装置,用于参考所述数据包解封装装置对所述数据包解封装时的封装信息,对经处理的数据包进行重新封装,其中被重新封装的数据包的源IP地址和目的IP地址和在解除封装之前的数据包一致;其中所述数据收发装置复原由所述数据包封装装置重新封装的数据包的MAC层封装,并且经由所述WAN口或者LAN口发送该数据包。
根据本发明的另一方面,提供了一种适用于根据本发明的反向代理服务器的反向代理方法,包括步骤:接收反向代理服务器的通信端口所截获的数据包;解除所截获数据包的MAC层封装;解除数据包的IP层或者更高层封装,并存储封装信息;对解除了封装的数据包进行处理;参考所存储的封装信息,对经处理的数据包进行重新封装,其中重新封装后的数据包的源IP地址和目的IP地址和在解除封装之前的数据包一致;以及复原该重新封装后的数据包的MAC层封装,并且从对应的通信接口发送该数据包。
本发明通过使代理服务器以内部服务器的身份和外部客户机建立IP连接,并以外部客户机的身份与内部服务器建立IP连接(反之亦然),从而通过这两个IP连接建立了外部客户机和内部服务器之间的虚拟连接。内部服务器和外部客户机都不需要任何额外设置,而且内部服务器可以获得有关对其进行访问的外部客户机的IP信息,从而解决了上述所提及的传统反向代理服务器所存在的问题。
另外,由于可以不需要对内部服务器进行任何设置就可以在内部服务器和外部客户机之间部署根据本发明的反向代理服务器,因此,根据本发明的反向代理服务器特别适于在已有的网络中部署。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。其中在附图中,参考数字之后的字母标记指示多个相同的部件,当泛指这些部件时,将省略其最后的字母标记。在附图中:
图1示意性地示出了在现有技术中的反向代理服务器的工作原理;
图2示意性地示出了根据本发明一个实施例的反向代理服务器的工作原理;
图3示意性地示出了根据本发明一个实施例的反向代理服务器对ARP协议的处理方式;
图4示意性地示出了根据本发明一个实施例的反向代理服务器中的包解码和封装方式;
图5示意性地示出了根据本发明一个实施例的反向代理服务器的结构框图;以及
图6示意性地示出了根据本发明一个实施例的反向代理方法的流程图。
具体实施例
下面结合附图和具体的实施方式对本发明作进一步的描述。
图2示意性地示出了根据本发明一个实施例的反向代理服务器220的工作原理。如图2所示,和图1中的现有反向代理服务器120的不同之处在于,反向代理服务器220并没有占用内部服务器的原IP地址,而是甚至都没有配置IP地址。反向代理服务器220以内部服务器230的身份和外部客户机210建立连接,并且同时以真实外部客户机210的身份与内部服务器建立连接。具体而言,在图2中,反向代理服务器和外部客户机之间的通信接口称为WAN口,则反向代理服务器和内部服务器之间的通信接口为LAN口。反向代理服务器220在WAN口处以虚拟IP地址1.1.1和外部客户机建立IP连接,同时在LAN口处以虚拟客户机IP地址1.1.1.2和内部服务器建立连接。利用这两个IP连接,反向代理服务器在外部客户机和内部服务器之间建立了虚拟的IP连接,其中外部客户机和内部服务器都不会意识到中间的反向代理服务器的存在,即反向代理服务器220是透明的,而且内部服务器230可以获得外部客户机的真实IP地址,以进而可以进行针对外部客户机的进一步分析。
下面将结合图2-图4来说明根据本发明实施例的反向代理方式的实现方式。具体而言,本发明的反向代理服务应用于IP通信领域,尤其是基于以太网的IP通信领域,为了使得外部客户机和内部服务器之间经由反向代理服务器进行通信,就必须解决以下几个方面的问题:
1.外部客户机和内部服务器之间的通信必须知道对方的MAC地址,而当外部客户机和内部服务器之间存在有反向代理服务器时,外部客户机和内部服务器如何才能学习到对方的MAC地址?
2.外部客户机和内部服务器之间的通信中的数据包目标MAC是对方的MAC,居于中间的反向代理服务器是如何将目标MAC不属于自己的数据包截获?
3.外部客户机与内部服务器之间的通信中的数据包的目标IP地址是对方的IP地址,反向代理服务器是如何将不属于自己的IP包进行解码并进行分析?
4.反向代理服务器和外部客户机以及内部服务器之间的通信接口都不配置IP地址,则应当如何来分别和内部服务器以及外部客户机建立IP连接?
如本领域技术人员早已知道的那样,IP通信协议通过分层来实现通信,其中IP层的通信依赖于其下面层的通信。对于以太网来说,通信双方需要知道对方的MAC地址才可以进行通信,而在IP协议簇中,ARP协议是用于学习MAC地址并将MAC地址和IP地址进行绑定的协议。图3示意性地示出了根据本发明一个实施例的反向代理服务器对ARP协议的处理方式。反向代理服务器220对所有IP层以下的数据包,例如与ARP协议相关的数据包一律放行,不做检测,因此外部客户机210和内部服务器220能成功学习到对方的MAC地址,从而解决了上面所提出的第一个问题。另外,根据以太网中对通信接口的相关规定,通信接口可以具有普通模式和混杂模式。当通信接口为混杂模式时,可以接收所有经网络传送的数据包。通过把反向代理服务器220和外部客户机210以及内部服务器230之间的通信接口设置为混杂模式,这样反向代理服务器可以截获目标MAC不是自身的外部客户机和内部服务器之间的通信数据包,从而解决了上面提出的第二个问题。
通过上述设置,反向代理服务器220已经可以截获在外部客户机和内部服务器之间的任何IP通信数据包。图4示意性地示出了根据本发明一个实施例的反向代理服务器中的包解码和封装方式。反向代理器在WAN口接收到数据包时,解除该数据包的MAC层封装,并判断该数据包的目标IP是否为内部服务器的IP。如果发现目标IP不是内部服务器的IP,则将数据包恢复原状从LAN口发送出去。相反,如果该数据包的目标IP是内部服务器的IP,则反向代理服务器220将数据包强行解码以送至IP层的上层协议,如TCP协议层进行处理,并且在处理之后,还原之前的数据包封装,从LAN口发送给内部服务器。
同理,反向代理服务器按照类似的方式来处理从内部服务器返回给外部客户机的数据包。具体而言,反向代理服务器在LAN口截获到数据包时,解除该数据包的MAC层封装,判断该数据包是否是反向代理服务器要进行处理的来自内部服务器的数据包。可以有多种方式来判断该数据包是否是反向代理服务器要进行处理的数据包,例如判断该数据包的源IP地址是否为内部服务器的IP地址。或者考虑到在一般情况下,通常是外部客户机发起到内部服务器的通信,而反向代理服务器通常会在处理从外部客户机到内部服务器的IP连接时保留相应的连接信息,因此当在LAN口收到数据包时,可以参考该保留的连接信息来判断该数据包是否为来自内部服务器的相应响应信息,并基于此确定该数据包是反向代理服务器要处理的数据包。此外,也可以结合上述两种方式来进行判断,所有这些都在本发明的保护范围之内。如果发现数据包不是反向代理服务器要处理的数据包,则将数据包恢复原状从WAN口发送出去。相反,如果该数据包是反向代理服务器要处理的数据包,则反向代理服务器220将数据包强行解码以送至IP层的上层协议,如TCP协议层进行处理,并且在处理之后,还原之前的数据包封装,从WAN口发送给外部客户机。
根据上述处理,就可以解决上面的第三个问题。此外,在反向代理服务器对来自外部客户机的数据包进行了处理并发送给内部服务器时,使用外部客户机的IP地址作为数据包的源I P地址。同样,在反向代理服务器对来自内部服务器的数据包进行了处理并发送给外部客户机时,使用内部服务器的IP地址作为数据包的源IP地址。因此,代理服务器虽然其WAN口和LAN都没有配置IP地址,但是分别以外部客户机和内部服务器的IP地址作为源IP地址和内部服务器和外部客户机建立IP连接,从而解决了上面的第四个问题。
如上所述,根据本发明的反向代理服务器和反向代理方法可以解决上面所提出的、使得外部客户机和内部服务器之间经由反向代理服务器进行通信所要解决的问题,从而可以通过外部客户机和反向代理服务器以及反向代理服务器和内部服务器之间的两个真实IP连接建立了外部客户机和内部服务器之间的虚拟连接。内部服务器和外部客户机都不需要任何额外设置,而且内部服务器可以获得有关对其进行访问的外部客户机的IP信息。
图5示意性地示出了根据本发明一个实施例的反向代理服务器220的结构框图。反向代理服务器包括和外部客户机210进行数据通信的通信接口WAN口221以及和内部服务器230进行数据通信的通信接口LAN口222。反向代理服务器220可以具有多个WAN口和多个LAN口。优选地,这些WAN口和LAN口成对出现,在反向代理服务器不具有IP路由功能的情况下,强制来自某个WAN口的数据包从配对的LAN口送出,并且强制来自相应LAN口的数据包从配对的WAN口送出,这样可以使得反向代理服务器220不需要IP路由的功能,使得反向代理服务器220的功能更加专一。
由于WAN口221和LAN口222都设置成混杂模式,因此WAN口221和LAN口222可以接收目标地址不是反向代理服务器220的数据包。从WAN口221和LAN口222接收的数据包由数据收发装置223进行处理。
数据收发装置223对于在IP协议簇中、处于IP层之下的数据包仅仅进行转发而不做其他处理,即将从WAN口221接收的二层数据包送至LAN口222送出,反之亦然,从而使得外部客户机和内部服务器可以经由ARP协议来学习相互的MAC地址。
对于I P层及其之上的数据包,数据收发装置223解除所接收的数据包的MAC层封装,并将解除了MAC层封装的数据包发送到包处理判断装置224来判断该数据包是否是反向代理服务器要进行进一步处理的数据包。例如如果数据包是从WAN口221接收的,则包处理判断装置224将目标IP地址为内部服务器的IP的数据包确定为是要进行进一步处理的数据包。而如果数据包在LAN口222接收的,则包处理判断装置224可以有多种方式来判断该数据包是否是反向代理服务器要进行进一步处理的数据包,例如将源IP地址为内部服务器的IP地址的数据包确定为是反向代理服务器要进行进一步处理的数据包。或者考虑到在一般情况下,通常是外部客户机发起到内部服务器的通信,而反向代理服务器通常会在处理从外部客户机到内部服务器的IP连接时保存相应的连接信息(例如,保留在IP连接存储器229中),因此当在LAN口222收到数据包时,可以参考该保存的连接信息来判断该数据包是否为来自内部服务器的对应响应信息,并基于此确定该数据包是反向代理服务器要处理的数据包。此外,也可以结合上述两种方式来进行判断,所有这些都在本发明的保护范围之内。
当包处理判断装置224确定数据包不是反向代理服务器要进一步处理的数据包时,则将该数据包送回到数据收发装置223,此时数据收发装置223将复原该数据包的MAC层封装,并且从对应的网络接口发送该数据包(例如,将来自WAN口221的数据包从LAN口222发出,反之亦然)。
当包处理判断装置224确定数据包是反向代理服务器要进一步处理的数据包时,则将该数据包发送至数据包解封装装置225。可选地,当数据包是从WAN口221接收的、来自外部客户机对内部服务器的IP连接请求时,还将相应的信息存储在IP连接存储器229中,以供反向代理服务器在对内部服务器的返回数据包进行处理时使用,或者根据IP协议而对数据包进行其他处理时使用。
数据包解封装装置225解除数据包的IP层乃至更高层的封装,将相应的封装信息存储在封装信息存储器228中,并随后将解除了封装的数据包送至数据包处理装置226进行处理,也就是说,将目的IP地址是内部服务器或者外部客户机的数据包送往反向代理服务器的数据包处理装置226进行处理。
数据包处理装置226中的处理可以是各种各样的,例如可以包括对包内容的检查、记录和检测等等,所有这些处理内容都在本发明的保护范围之内。
在数据包处理装置226对数据包进行了处理之后,将经处理的数据包发送给数据包封装装置227。数据包封装装置227参考封装信息存储器228中的相关内容,对经处理的数据包进行重新封装,并且将封装好的数据包发送给数据收发装置226。此时,被重新封装的数据包的源IP地址和目的IP地址和在解除封装之前的数据包一致,也就是说,此时,数据包封装装置227以内部服务器或者外部客户机的名义封装数据包,并将该数据包发送至相应的外部客户机或者内部服务器。
数据收发装置223复原该数据包的MAC层封装,并且从对应的网络接口发送该数据包(例如,将来自WAN端口的数据包从LAN端口发出,反之亦然)。
应当注意的是,数据包解封装装置225、数据包处理装置226和数据包封装装置227的处理从整体上看包括两个IP连接的处理过程,即首先以内部服务器或者外部客户机的名义对来自外部客户机或者内部服务器的IP数据包进行处理,并随后以外部客户机或者内部服务器的名义将经处理的IP数据包发送给内部服务器或者外部客户机。
由于数据包处理装置226在对数据包进行处理时,希望能够利用现有的遵循TCP/IP协议的各种数据包处理装置和方法,而所接收的数据包的目的IP地址并非本机、即反向代理服务器的IP地址,因而在利用现有数据包处理装置和方法直接处理这些数据包时可能会出现错误。为此,有利地是,数据包解封装装置225在解除数据包的IP层封装时,将数据包的目的IP地址和目的网络端口设置为127.0.0.1和本机的loopback(本地环回)端口。而数据包封装装置227在对处理后的IP地址进行封装时进行对应的操作,从而可以最大限度地利用现有的数据包处理方法。
还应当注意的是,上面根据反向代理服务器220所执行的功能对反向代理服务器220中的各个部件进行了划分,但是应当理解,这种划分仅仅是示意性的,这些部件中的一些可以进一步划分或者可以组合成一个部件,所有这些都在本发明的保护范围之内。
图6示出了根据本发明一个实施例的反向代理方法600的流程图。该方法适于在根据本发明的反向代理服务器上执行,用于提供外部客户机和内部服务器之间的透明反向代理服务。方法600始于步骤S610,在步骤S610处,反向代理服务器接收被反向代理服务器的通信端口所截获的数据包。在步骤S615处,判断所截获的数据包是否为IP层之下的数据包(例如,ARP协议相关的数据包),如果是,则不做任何处理,通过步骤S617从对应的通信端口送出该数据包,从而使得外部客户机和内部服务器可以经由ARP协议来学习相互的MAC地址。如果不是,则随后在步骤S620处,解除所截获数据包的MAC层封装,并判断是否要对该包进行进一步处理。如上参考根据本发明的反向代理服务器所述,如果数据包是从反向代理服务器的WAN端口接收的,则将目标IP地址为内部服务器的IP地址的数据包确定为是要进行进一步处理的数据包。而如果数据包在反向代理服务器的LAN端口接收的,则可以有多种方式来判断该数据包是否是反向代理服务器要进行进一步处理的数据包,例如将源IP地址为内部服务器的IP地址的数据包确定为是反向代理服务器要进行进一步处理的数据包。或者考虑到在一般情况下,通常是外部客户机发起到内部服务器的通信,而反向代理服务器通常会在处理从外部客户机到内部服务器的IP连接时保留相应的连接信息,因此当在LAN端口收到数据包时,可以参考该保留的连接信息来判断该数据包是否为来自内部服务器的对应响应信息,并基于此确定该数据包是反向代理服务器要进一步处理的数据包。此外,也可以结合上述两种方式来进行判断,所有这些都在本发明的保护范围之内。
当在步骤S620处确定该数据包不是要进一步处理的数据包时,则在步骤S630处,复原该数据包的MAC层封装,并且从对应的网络接口发送该数据包。在应用本方法的反向代理服务器不具有IP路由功能的情况下,可选地,可以配对使用反向代理服务器的LAN和WAN端口,即强制来自某个WAN端口的数据包从配对的LAN端口送出,并且强制来自相应LAN端口的数据包从配对的WAN端口送出。当然,在反向代理服务器具有IP路由功能时,可以经由IP路由来选择相对应的网络端口来发送数据包,所有这些都在本发明的保护范围之内。
当在步骤S620处确定该数据包是要进一步处理的数据包时,则在步骤S640处,解除数据包的IP层或者更高层封装,并存储封装信息。也就是说,解除目的IP地址是内部服务器或者外部客户机的数据包的封装,并在反向代理服务器中对其进行进一步处理。
步骤S650对在步骤S640中解除了封装的数据包进行处理,该处理可以是各种各样的,例如可以包括对包内容的检查、记录和检测等等,所有这些处理内容都在本发明的保护范围之内。
在步骤S650对数据包进行处理之后,在步骤S660处,参考步骤S640处所保存的封装信息,对经处理的数据包进行重新封装。重新封装后的数据包的源IP地址和目的IP地址和在解除封装之前的数据包一致,也就是说,该反向代理方法以内部服务器或者外部客户机的名义封装数据包以便将该数据包发送至相应的外部客户机或者内部服务器。
随后,在步骤S670处,复原该重新封装后的数据包的MAC层封装,并且从对应的通信接口发送该数据包(例如,将来自WAN端口的数据包从LAN端口发出,反之亦然),并结束本方法的反向代理处理。
在根据本发明的反向代理方法中,通过两个IP连接来建立外部客户机和内部服务器之间的虚拟连接,即通过首先以内部服务器或者外部客户机的名义与外部客户机或者内部服务器进行IP连接,并随后以外部客户机或者内部服务器的名义与内部服务器或者外部客户机建立连接来建立该虚拟连接。外部客户机和内部服务器都认为自己是IP连接的建立双方,其实是他们各自与反向代理服务器建立IP连接,反向代理服务器起到了中转数据的作用,因此可以将根据本发明的反向代理服务器放置在内部服务器前,以对内部服务器进行安全防护。
另外,应当指出的是,根据本发明的反向代理服务器与现有的二层透明防火墙也有着本质的不同。二层透明防火墙不分别与服务器和客户机建立IP连接,而且也不进行三层协议栈的解码。
根据本发明的反向代理服务器通过两个IP连接建立了外部客户机和内部服务器之间的虚拟连接。内部服务器和外部客户机都不需要任何额外设置,而且内部服务器可以获得有关对其进行访问的外部客户机的IP信息,从而解决了传统反向代理服务器所存在的问题。
另外,由于可以不需要对内部服务器进行任何设置就可以在内部服务器和外部客户机之间部署根据本发明的反向代理服务器,因此,根据本发明的反向代理服务器特别适于在已有的网络中部署。
应该注意的是,上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。

Claims (14)

1.一种反向代理服务器,适于布置在外部客户机和内部服务器之间,为外部客户机访问内部服务器提供反向代理服务,该反向代理服务器包括:
用于和外部客户机进行数据通信的通信接口WAN口;
用于和内部服务器进行数据通信的通信接口LAN口;
数据收发装置,解除从所述WAN口和LAN口接收的数据包的MAC层封装,
数据包解封装装置,用于解除所述数据包的IP层和更高层的封装;
数据包处理装置,用于对由所述数据包解封装装置解封装的数据包进行处理;以及
数据包封装装置,用于参考所述数据包解封装装置对所述数据包解封装时的封装信息,对经处理的数据包进行重新封装,其中被重新封装的数据包的源IP地址和目的IP地址和在解除封装之前的数据包一致;
其中所述数据收发装置复原由所述数据包封装装置重新封装的数据包的MAC层封装,并且经由所述WAN口或者LAN口发送该数据包。
2.如权利要求1所述的反向代理服务器,还包括:
包处理判断装置,用于确定是否要对所述解除了MAC层封装的数据包进行进一步处理,如果确定不需要对所述数据包进行进一步处理,则将该数据包送回到所述数据收发装置,所述数据收发装置将复原该数据包的MAC层封装,并且经由所述WAN口或者LAN口发送该数据包;以及所述包处理判断装置将确定要进行进一步处理的数据包送给所述数据包解封装装置。
3.如权利要求2所述的反向代理服务器,其中所述包处理判断装置将从WAN口接收的、目标IP地址为内部服务器的IP的数据包确定为是要进行进一步处理的数据包。
4.如权利要求2或者3所述的反向代理服务器,其中所述包处理判断装置将从LAN口接收的、源IP地址为内部服务器的IP的数据包确定为是要进行进一步处理的数据包。
5.如权利要求2-4中的任一个所述的反向代理服务器,其中所述包处理判断装置存储从WAN口接收的、从外部客户机到内部服务器的IP连接请求的数据包的IP连接信息,并且参考该IP连接信息来将从LAN口接收的、对应于该IP连接的响应数据包确定为是要进行进一步处理的数据包。
6.如权利要求1-5中的任一个所述的反向代理服务器,其中所述数据收发装置对于在IP协议簇中、处于IP层之下的数据包仅仅进行转发而不做其他处理。
7.如权利要求1-6中的任一个所述的反向代理服务器,其中所述WAN口和LAN口成对出现,其中来自某个WAN口的数据包从配对的LAN口送出,以及来自相应LAN口的数据包从配对的WAN口送出。
8.一种适用于反向代理服务器的反向代理方法,所述反向代理服务器,适于布置在外部客户机和内部服务器之间,为外部客户机访问内部服务器提供反向代理服务,所述反向代理服务器包括用于和外部客户机进行数据通信的通信接口WAN口以及用于和内部服务器进行数据通信的通信接口LAN口,而且所述反向代理方法包括步骤:
接收反向代理服务器的通信端口所截获的数据包;
解除所截获数据包的MAC层封装;
解除数据包的IP层或者更高层封装,并存储封装信息;
对解除了封装的数据包进行处理;
参考所存储的封装信息,对经处理的数据包进行重新封装,其中重新封装后的数据包的源IP地址和目的IP地址和在解除封装之前的数据包一致;以及
复原该重新封装后的数据包的MAC层封装,并且从对应的通信接口发送该数据包。
9.如权利要求8所述的反向代理方法,还包括步骤:
判断是否要对所述解除了MAC层封装的数据包进行进一步处理,如果不需要对所述数据包进行进一步处理,则复原所述数据包的MAC层封装,并从对应的通信接口发送该数据包。
10.如权利要求9所述的反向代理方法,其中将从WAN口接收的、目标IP地址为内部服务器的I P的数据包确定为是要进行进一步处理的数据包。
11.如权利要求9或者10所述的反向代理方法,其中将从LAN口接收的、源IP地址为内部服务器的IP的数据包确定为是要进行进一步处理的数据包。
12.如权利要求9-11中的任一个所述的反向代理方法,还包括步骤:
从WAN口接收的、从外部客户机到内部服务器的IP连接请求的数据包的IP连接信息;以及
参考该IP连接信息来将从LAN口接收的、对应于该IP连接的响应数据包确定为是要进行进一步处理的数据包。
13.如权利要求8-12中的任一个所述的反向代理方法,还包括步骤:
当从所述反向代理服务器的通信端口所截获的数据包为IP层之下的数据包时,则直接从对应的通信端口送出该数据包。
14.如权利要求8-13中的任一个所述的反向代理方法,其中所述WAN口和LAN口成对出现,该方法还包括步骤:
将来自WAN口的数据包从配对的LAN口送出;以及
将来自LAN口的数据包从配对的WAN口送出。
CN200910238028.8A 2009-11-13 2009-11-13 一种反向代理方法和反向代理服务器 Active CN102065111B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN200910238028.8A CN102065111B (zh) 2009-11-13 2009-11-13 一种反向代理方法和反向代理服务器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN200910238028.8A CN102065111B (zh) 2009-11-13 2009-11-13 一种反向代理方法和反向代理服务器

Publications (2)

Publication Number Publication Date
CN102065111A true CN102065111A (zh) 2011-05-18
CN102065111B CN102065111B (zh) 2015-02-25

Family

ID=44000212

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200910238028.8A Active CN102065111B (zh) 2009-11-13 2009-11-13 一种反向代理方法和反向代理服务器

Country Status (1)

Country Link
CN (1) CN102065111B (zh)

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102685094A (zh) * 2011-12-16 2012-09-19 河南科技大学 反转代理系统及方法
CN103607350A (zh) * 2013-12-10 2014-02-26 山东中创软件商用中间件股份有限公司 一种路由生成方法及装置
CN103634165A (zh) * 2013-12-05 2014-03-12 北京奇虎科技有限公司 一种基于反向代理实现网络测试的方法、终端设备和系统
CN103916415A (zh) * 2012-12-28 2014-07-09 中华电信股份有限公司 反向代理系统及其方法
CN104125243A (zh) * 2013-04-23 2014-10-29 浙江大学 一种穿透内网远程连接大规模虚拟机的方法
CN106230898A (zh) * 2016-07-21 2016-12-14 网宿科技股份有限公司 网络系统、代理服务器及其应用的数据处理方法及系统
CN106357732A (zh) * 2016-08-25 2017-01-25 珠海迈科智能科技股份有限公司 一种分布式反向代理服务端和客户端的方法、装置及系统
CN106537874A (zh) * 2014-07-28 2017-03-22 通用电气智能平台有限公司 用于工业控制网络的安全性的设备和方法
CN108183926A (zh) * 2018-03-14 2018-06-19 北京奇艺世纪科技有限公司 一种数据包处理方法和装置
CN109088844A (zh) * 2017-06-13 2018-12-25 腾讯科技(深圳)有限公司 信息拦截方法、终端、服务器及系统
CN109509358A (zh) * 2018-05-30 2019-03-22 首都经济贸易大学 基于大数据和vr的跨平台3d智能交通指挥方法及系统
CN109821235A (zh) * 2019-03-12 2019-05-31 深圳市腾讯信息技术有限公司 游戏录像方法、装置及服务器
CN110557383A (zh) * 2019-08-12 2019-12-10 中国南方电网有限责任公司 电力监控系统网络安全数据处理方法、装置、设备和介质
CN111147382A (zh) * 2019-12-31 2020-05-12 杭州迪普科技股份有限公司 报文转发方法和装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2442044B8 (en) * 2006-05-11 2011-02-23 Ericsson Telefon Ab L M Addressing and routing mechanism for web server clusters.
CN101262478A (zh) * 2008-04-10 2008-09-10 杭州华三通信技术有限公司 穿越网络地址转换nat的方法和设备

Cited By (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102685094A (zh) * 2011-12-16 2012-09-19 河南科技大学 反转代理系统及方法
CN103916415A (zh) * 2012-12-28 2014-07-09 中华电信股份有限公司 反向代理系统及其方法
CN104125243A (zh) * 2013-04-23 2014-10-29 浙江大学 一种穿透内网远程连接大规模虚拟机的方法
CN104125243B (zh) * 2013-04-23 2018-01-02 浙江大学 一种穿透内网远程连接大规模虚拟机的方法
CN103634165A (zh) * 2013-12-05 2014-03-12 北京奇虎科技有限公司 一种基于反向代理实现网络测试的方法、终端设备和系统
CN103634165B (zh) * 2013-12-05 2017-01-18 北京奇安信科技有限公司 一种基于反向代理实现网络测试的方法、终端设备和系统
CN103607350A (zh) * 2013-12-10 2014-02-26 山东中创软件商用中间件股份有限公司 一种路由生成方法及装置
CN103607350B (zh) * 2013-12-10 2017-02-01 山东中创软件商用中间件股份有限公司 一种路由生成方法及装置
CN112866427A (zh) * 2014-07-28 2021-05-28 智能平台有限责任公司 用于工业控制网络的安全性的设备和方法
CN112866427B (zh) * 2014-07-28 2024-04-09 智能平台有限责任公司 用于工业控制网络的安全性的设备和方法
CN106537874A (zh) * 2014-07-28 2017-03-22 通用电气智能平台有限公司 用于工业控制网络的安全性的设备和方法
CN106230898A (zh) * 2016-07-21 2016-12-14 网宿科技股份有限公司 网络系统、代理服务器及其应用的数据处理方法及系统
CN106230898B (zh) * 2016-07-21 2019-07-23 网宿科技股份有限公司 网络系统、代理服务器及其应用的数据处理方法及系统
CN106357732A (zh) * 2016-08-25 2017-01-25 珠海迈科智能科技股份有限公司 一种分布式反向代理服务端和客户端的方法、装置及系统
CN109088844A (zh) * 2017-06-13 2018-12-25 腾讯科技(深圳)有限公司 信息拦截方法、终端、服务器及系统
CN109088844B (zh) * 2017-06-13 2021-03-19 腾讯科技(深圳)有限公司 信息拦截方法、终端、服务器及系统
CN108183926A (zh) * 2018-03-14 2018-06-19 北京奇艺世纪科技有限公司 一种数据包处理方法和装置
CN109509358A (zh) * 2018-05-30 2019-03-22 首都经济贸易大学 基于大数据和vr的跨平台3d智能交通指挥方法及系统
CN109821235A (zh) * 2019-03-12 2019-05-31 深圳市腾讯信息技术有限公司 游戏录像方法、装置及服务器
CN109821235B (zh) * 2019-03-12 2022-08-19 深圳市腾讯信息技术有限公司 游戏录像方法、装置及服务器
CN110557383A (zh) * 2019-08-12 2019-12-10 中国南方电网有限责任公司 电力监控系统网络安全数据处理方法、装置、设备和介质
CN111147382A (zh) * 2019-12-31 2020-05-12 杭州迪普科技股份有限公司 报文转发方法和装置
CN111147382B (zh) * 2019-12-31 2021-09-21 杭州迪普科技股份有限公司 报文转发方法和装置

Also Published As

Publication number Publication date
CN102065111B (zh) 2015-02-25

Similar Documents

Publication Publication Date Title
CN102065111B (zh) 一种反向代理方法和反向代理服务器
CN102333110B (zh) 用于移动设备的具有动态翻译用户主页的vpn网络客户端
US9137334B2 (en) Interconnection method, apparatus, and system based on socket remote invocation
US6473406B1 (en) Method and apparatus for transparently proxying a connection
US6532493B1 (en) Methods and apparatus for redirecting network cache traffic
CA2718274C (en) System and method for creating a transparent data tunnel
US8108679B2 (en) Firewall system
CN101997768B (zh) 一种上送地址解析协议报文的方法和装置
US20170034174A1 (en) Method for providing access to a web server
US20090055930A1 (en) Content Security by Network Switch
KR20170005129A (ko) 네트워크 패킷 캡슐화 및 라우팅
US8171494B2 (en) Providing identity to a portal with a redirect
CN110020955B (zh) 在线医保信息处理方法及装置、服务器和用户终端
US8095599B2 (en) Mail-based web application and document delivery
US9602612B2 (en) Overlay networks for application groups
US9843514B2 (en) Packet processing method and background server
CN108243143A (zh) 一种基于web代理的网闸穿透方法及系统
CN104601550A (zh) 基于集群阵列的反向隔离文件传输系统及其方法
CN107147655A (zh) 一种网络双协议栈并行处理模型及其处理方法
US9137199B2 (en) Stateful NAT64 function in a distributed architecture
US7151780B1 (en) Arrangement for automated teller machine communications based on bisync to IP conversion
CN109076022A (zh) 网络地址转换装置、设置请求装置、通信系统、通信方法和存储程序的存储介质
CN116094828B (zh) 一种基于物理隔离的动态协议网关系统
CN108064441A (zh) 一种加速网络传输优化方法以及系统
JP2007537617A (ja) チェックポイントを介して実行ファイルの通過時間を高速化する方法

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
CP01 Change in the name or title of a patent holder

Address after: 100089 Beijing city Haidian District Road No. 4 North wa Yitai three storey building

Patentee after: NSFOCUS Technologies Group Co.,Ltd.

Address before: 100089 Beijing city Haidian District Road No. 4 North wa Yitai three storey building

Patentee before: NSFOCUS INFORMATION TECHNOLOGY Co.,Ltd.

CP01 Change in the name or title of a patent holder