用于在不同的专用网的网络设备之间支持通信的网关的制作方法

文档序号:7589013阅读:144来源:国知局
专利名称:用于在不同的专用网的网络设备之间支持通信的网关的制作方法
技术领域
本发明涉及一种网关,特别涉及一种用于在连接到不同的网络的网络设备之间支持通信的网关。
背景技术
随着通信技术的最新发展,高速数据服务网络被广泛普及。面对这样的背景,越来越多的公司开发和制造具有联网功能的数字信息家用器具,诸如冰箱、数字TV和可连接到该因特网的机顶盒。由于这些家用器具能够起具有增加其网络功能的信息终端的作用,所以已经开发了一种新的形式的网络,即本地网络。
在家庭中,形成一个本地网络的电动/电子产品以有线/无线方式连接到因特网,使得无论他/她位于何处,诸如本地,远程位置等等,用户都可以经由因特网发送与接收信息和控制电动/电子产品。
为了连接电动/电子产品到因特网,新型的网络设备在家庭中借助于必要的嵌入式程序而建立。在网络设备中,一个本地网关起连接本地网络与因特网的作用,并且控制网络数据分组的流量。
当前,每个家庭通过使用基本的本地网关,诸如ADSL和电缆调制解调器,得到从一个连接到因特网的因特网服务提供者(ISP)给出一个公用的网际协议(IP)地址。
这些常规的本地网关提供一种简单的连接服务,其连接一个本地网络到因特网。同时,近来的趋势要求经由本地网关提供的各种各样的服务,因为多个网络设备能够在家庭中使用,小型办公室本地交易(SOHO)和室内工作的广泛普及,以及装置自动化与远程控制被积极地开发。但是,该常规的本地网关不能满足当前的需要。
为了满足用户的需要,已经提出了一种本地网络使用专用IP地址的方法。这种方法将网络地址端口变换(NAPT)技术应用到一个本地网关,以便本地网络的多个网络设备以一个共享IP地址访问该因特网。
问题是本地网关的IP地址频繁地变化,因此每当他/她想要连接到与因特网相连接的本地网络时,需要用户去查找当前的IP地址。为了解决这个问题,已经提出了一种技术,其中一个本地网关被从ISP给出一个IP地址,然后该本地网关的域名和分配的IP地址被注册到因特网上的一个动态的DNS服务器中。据此,该用户可以经由域名而不是IP地址访问在他或者她的家庭中的设备。
一个本地网关被从ISP给出一个IP地址,但是,由于多个信息设备在家庭中在本地网络环境下使用,所以存在一个问题,即,设备不能同时以共享的IP地址连接到因特网。因此,专用IP地址在本地被使用,并且通过使用一个共享的IP地址连接信息设备到因特网的NAPT技术也被使用。
如果存在从本地到因特网的数据分组,则该NAPT变换一个数据分组源的专用IP地址和一个源端口编号为一个分配的IP地址和一个不同的端口编号,其被记录在一个NAPT变换表中。如果响应上述的数据分组被从该因特网发送到一个本地网络,则该本地网关参考该NAPT表,变换一个数据分组目标的IP地址和一个目标端口编号为一个专用IP地址和一个端口编号,并且转发该响应数据分组到最后的目标。如果从因特网转发给本地网络的数据分组没有被记录在该NAPT表中,则该数据分组被丢弃。
该NAPT技术的使用使从本地网络能够访问因特网。也就是说,在一个专用网上的多个网络设备可以通过共享一个IP地址来访问因特网。但是,如果对于网络设备从因特网访问本地网络则不可能,这是因为不能预先知道诸如专用IP地址和端口,本地网关端口编号,IP地址和端口,以及IP协议的信息,这些信息被记录在该NAPT表中,以便由一个接入到因特网的外部用户发送的数据分组经由一个本地网关被变换并路由到专用网之内。
该VPN是一种应用于本地网关的技术,用于使一个接入到因特网的用户能够从外界访问网络设备。VPN可以取决于环境和施加的网络分级结构而改变,但是,在本地网络环境中,2层隧道协议,诸如PPTP和L2TP被广泛地使用。每个本地网关具有一个VPN服务器,并且一个连接到因特网的远程用户起一个VPN客户机的作用。每个本地网络的本地网关可以在每个本地网络中起一个VPN服务器或者一个VPN客户机的作用。首先,一个VPN客户机请求VPN服务器通过使用一个IP地址在因特网上建立一个隧道。如果该隧道被建立起来,则该VPN服务器验证VPN客户机,并且分配给该VPN客户机一个该客户机可以在本地网络之内使用的专用IP地址。该VPN客户机通过使用分配的专用IP地址生成一个虚拟网络接口,并且该接口被连接到该本地网络,并且起一个网络的作用。该VPN客户机的IP地址被用于去建立一个到该VPN服务器的隧道,并且该专用IP地址在经由隧道被连接的本地网络中使用。
如上所述,应用到本地网关的NAPT和VPN技术使得能够经由在家庭处的多个网络设备连接到因特网,以及能够将在因特网上的远程用户连接到本地网络。
但是,以上所述的技术,诸如NAPT和VPN连接本地网络与因特网,有一个问题,即它们无法在一个任意的本地网络和另一个本地网络之间提供连接。因为一个本地网络使用专用IP地址,使用不同的IP地址的多个本地网络可以同时使用相同的专用IP地址。如果一个连接到本地网络的主机传送数据,并且属于该本地网络的主机与属于远程本地网络的主机一样具有相同的IP地址,那么当数据传输时,由于不能判定数据是否被传送到属于哪一个本地网络的一个设备,所以会出现错误。

发明内容
为了解决上述的缺点及其他与常规配置有关的问题,已经开发了本发明。本发明的一个方面是提供一种支持在连接到不同的专用网的网络设备之间通信的网关。
本发明的上述的方面和/或其他的特点实际上是通过提供一种网关实现的,该网关包括至少一个或多个连接到公共网络的公共网络接口;至少一个或多个连接到专用网的本地网接口;和一个控制单元。如果一个隧道建立请求被从一个连接到第一专用网的主机接收,去建立一个到正连接公共网络的第二专用网的隧道,则控制单元通过与第二专用网的网关通信来建立一个VPN隧道。如果第二专用网和第一专用网具有相同的网络地址,或者如果该第一专用网的网络地址被包括在第二专用网的网络地址中,或者反之亦然,则该控制单元会生成一个新的网络地址表,以便该第一和第二专用网在VPN隧道中可以使用不同的网络地址,并且基于新的网络地址表变换地址,而转发从第一专用网或者从连接到第二专用网的主机发送的数据分组。
控制单元包括一个web服务器,用于提供一个隧道建立请求页,以便连接到第二专用网的主机请求建立该隧道;一个专用网域名服务器(DNS)处理器,用于对于由连接到第二专用网的主机请求的到第一专用网的隧道建立,从连接到公共网络的DNS获得一个第一专用网的网关的网际协议(IP)地址;一个虚拟本地网(VPN)处理器,按照经由公共网络接口,或者经由本地网接口传送的隧道建立请求,起一个服务器或者客户机的作用,并生成一个到第一专用网的隧道;和一个NAT/NAPT处理器,用于相对于从第一专用网发送到公共网络的数据分组,或者反之亦然,通过使用一个网络地址端口变换(NAPT)协议,变换一个专用IP地址为一个IP地址,或者变换一个IP地址为一个专用IP地址。如果一个VPN隧道在第一专用网和第二专用网之间被建立,则控制单元在VPN隧道中通过使用一个网络地址变换(NAT)协议来变换专用IP地址。该web服务器可以用一个中间件服务器替换。
如果隧道建立请求是从连接到该第一专用网的主机发送到第二专用网的,则该VPN处理器将该隧道建立请求消息发送给第二专用网的网关,该隧道建立请求消息包括第一专用网的网络地址和在VPN隧道中被作为第一专用网的网络地址使用的第二网络地址。如果一个对于隧道建立请求的响应从第二专用网的网关被接收到,其包括该第二专用网的网络地址、第二网络地址和在VPN隧道中被作为第二专用网的网络地址使用的第三网络地址,则该VPN处理器发送一个确认(ACK)给该第二专用网的网关,该确认(ACK)包括第一专用网的网络地址,第二专用网的网络地址,第二网络地址和第三网络地址。VPN处理器通过从到第二专用网的隧道建立请求消息的产生直到发送该ACK消息为止过程,生成一个专用网连接管理表。该专用网连接管理表包括第一专用网的网络地址,第二专用网的网络地址,第二网络地址,和第三网络地址,并且可以进一步包括第二专用网的网关的域名,和按照第二专用网的网关的VPN操作的服务器/客户机状态显示项目。
如果该VPN处理器产生专用网连接管理表,则该NAT/NAPT处理器为连接到专用网的主机建立网络地址变换(NAT)。
如果一个对连接到第二专用网的第二主机的通信请求,在建立了到第二专用网的VPN隧道的状态中,从连接到第一专用网的第一主机传送,则该DNS处理器向第二专用网的网关询问有关该第二主机的第三网络地址。如果对于有关第二主机的第三网络地址的询问的一个响应从第二专用网的网关接收到,则该DNS处理器发送一个第二主机的第三网络地址到第一主机。
如果将以第二主机的第三网络地址作为目的地的地址的数据分组从第一主机传送,则该控制单元经由VPN隧道转发该数据分组到第二专用网的网关。
如果包括第二专用网的网络地址和作为在VPN隧道中第二专用网的网络地址使用的第二网络地址的隧道建立消息被接收,则该VPN处理器发送给第二专用网一个响应消息,该响应消息包括一个第一专用网的网络地址,第二网络地址,和作为在VPN隧道中第一专用网的网络地址使用的第三网络地址。VPN处理器通过从接收来自第二专用网的隧道建立请求消息,直到接收到一个响应该响应消息的ACK消息为止的处理过程,生成一个专用网连接管理表。该专用网连接管理表包括该第一专用网的网络地址,第二专用网的网络地址,第二网络地址和第三网络地址,并且可以进一步包括一个第二专用网的网关的域名,和一个按照第二专用网的网关的VPN操作的服务器/客户机状态显示项目。
如上所述,当VPN处理器生成专用网连接管理表时,NAT/NAPT处理器参考该专用网连接管理表,为连接到专用网的主机建立一个网络地址变换(NAT)。
如果一个进入连接到第二专用网的主机之内的询问从第一专用网被接收,作为响应,DNS处理器发送一个在VPN隧道中使用的主机的网络地址。
如果具有主机的第三网络地址作为目的地地址的数据分组从第二专用网被传送,则该控制单元参考NAT,将已接收的数据分组发送到该主机。
控制单元包括一个web服务器,用于提供一个隧道建立请求页,以便为连接到第一专用网的主机请求建立该隧道;一个专用网域名服务器(DNS)处理器,用于对连接到第一专用网的主机的隧道建立请求;从连接到公共网络的域名服务器(DNS)获得第二专用网的网关的网际协议(IP)地址;一个本地到本地隧道启动协议(HTIP)处理器,用于按照经由公共网络接口发送的或者经由本地网接口发送的隧道建立请求,发送和接收一个隧道建立请求消息,该隧道建立请求消息包含用于在第一和第二专用网之间建立隧道必需的参数;一个虚拟本地网(VPN)处理器,起一个服务器或者客户机的作用,并且处理使得隧道能够在第一和第二专用网之间被建立;和一个NAT/NAPT处理器,用于对从专用网发送到公共网络的数据分组,或者反之亦然,通过使用网络地址端口变换(NAPT)协议,变换一个专用IP地址为一个IP地址,或者变换一个IP地址为一个专用IP地址。如果一个VPN隧道在第一专用网和第二专用网之间被建立,并且如果地址变换是需要的,则该NAT/NAPT处理器通过使用一个网络地址变换(NAT)协议变换在该VPN隧道中的专用IP地址。该web服务器可以由一个中间件服务器替换。
如果对第二专用网隧道建立请求是从连接到第一专用网的主机接收到的,则该HTIP处理器发送该隧道建立请求消息给第二专用网的网关。该隧道建立请求消息可以包括一个在隧道中使用的VPN协议,第一专用网的网络地址和在VPN隧道中使用的第二网络地址,而不是第一专用网的网络地址。当HTIP处理器从第二专用网的网关接收一个对于该隧道建立请求的响应的时候,该HTIP处理器发送给第二专用网的网关一个确认(ACK)。该响应可以包括一个在隧道中使用的VPN协议,第二专用网的网络地址,在VPN隧道中使用的第三网络地址,而不是第二专用网的网络地址,第一专用网的地址,和在VPN隧道中使用的第二网络地址,而不是第一专用网的网络地址,并且该ACK可以包括VPN协议,第一专用网的网络地址,第二专用网的网络地址,第二网络地址,和第三网络地址。当接收到一个READY消息的时候,HTIP处理器设置VPN处理为一个VPN客户机,并且使该VPN客户机被驱动,该READY消息包括一个在隧道中使用的VPN协议,在该VPN隧道中使用的第三网络地址,而不是第二专用网的网络地址,第一专用网的地址,和在VPN隧道中使用的第二网络地址,而不是第一专用网的网络地址。
通过经历从对第二专用网的隧道建立请求消息生成的,直到接收到READY消息为止的处理过程,该HTIP处理器产生一个专用网连接管理表。该专用网连接管理表可以包括第一专用网的网络地址,隧道的VPN协议,隧道的ID,第二专用网的网络地址,第二网络地址和第三网络地址,并且可以进一步包括第二专用网的网关的域名,和按照第二专用网的网关的VPN操作,显示服务器/客户机状态的服务器/客户机状态显示项目。
VPN隧道在第一和第二专用网之间被形成,并且如果在该VPN隧道的两端上都需要地址变换,则该HTIP处理器控制该NAT/NAPT处理器,使得可以参考专用网连接管理表,在该VPN隧道的两端上设置地址变换。
在VPN隧道在第一和第二专用网之间被建立的状态下,如果一个通信请求从第一专用网的第一主机被发送到第二专用网的第二主机,则该DNS处理器询问第二专用网的网关有关对应于该第二主机的域名的IP地址。如果从第二专用网的网关接收一个响应,则该DNS处理器发送该接收的响应给第一主机。
如果指定给第二主机的IP地址的数据分组被从第一主机发送,则控制单元经由VPN隧道转发该数据分组到第二专用网的网关。
如果从该第二专用网接收一个隧道建立请求消息,则该HTIP处理器发送一个响应消息给第二专用网。隧道建立请求消息可以包括一个隧道的VPN协议,一个第二专用网的网络地址,和在VPN隧道中使用的第二网络地址,而不是第二专用网的网络地址,而响应消息可以包括该隧道的VPN协议,第一专用网的网络地址,在VPN隧道中使用的第三网络地址,而不是第一专用网的网络地址,第二专用网的网络地址和第二网络地址。
如果从第二专用网接收ACK消息,则该HTIP处理器设置VPN处理器为一个VPN服务器,并且发送一个READY消息给第二专用网的网关。该READY消息可以包括一个隧道的VPN协议,一个第一专用网的网络地址,一个在VPN隧道中使用的第三网络地址,而不是第一专用网的网络地址,一个第二专用网的网络地址,和一个在VPN隧道中使用的第二网络地址,而不是第二专用网的网络地址。
通过经历从第二专用网接收隧道建立请求消息,直到响应该响应消息的READY消息的传输为止的处理过程,该HTIP处理器产生一个专用网连接管理表。该专用网连接管理表可以包括一个隧道的VPN协议,一个隧道的ID,一个第一专用网的网络地址,一个第二专用网的网络地址,第二网络地址和第三网络地址,并且可以进一步包括一个第二专用网的网关的域名,和按照第二专用网的网关的VPN操作,去显示服务器/客户机状态的服务器/客户机状态显示项目。
如果在第一和该第二专用网之间形成一个VPN隧道,并且在VPN隧道的两端都需要一个地址变换,则该HTIP处理器控制NAT/NAPT处理器,使得可以参考该专用网连接管理表,在VPN隧道的两端设置地址变换。
如果从第二专用网接收到一个关于连接到第一专用网的主机的询问,则该DNS处理器作为响应发送一个在VPN隧道中使用的主机的网络地址。
如果去往该主机的第三网络地址的数据分组从第二专用网被发送,则该控制单元参考NAT/NAPT处理器的变换表,变换该数据分组的目的地地址,并且发送该数据分组给该主机。
按照如上所述的本发明的某个实施例的网关能够使从专用网到公共网络(因特网)联网,以及使从因特网到专用网联网,包括使从一个专用网到不同的专用网联网,因此用户可以更大的扩展网络范围。


通过参考附图描述本发明的某些实施例,本发明上述的方面和特点将更加清楚,其中图1是一个示出按照本发明的一个实施例的包括网关的网络结构图;图2是一个图1的网关的示意性方框图;图3是一个用于解释在二个具有不同的扩展网络ID的专用网之间建立一个VPN隧道的信号流程图;图4是一个信号流程图,用于解释通过图3的处理过程,经由一个在专用网A和专用网B之间的隧道,在主机A和B之间数据分组的传送过程;图5是一个用于解释具有相同的扩展网络ID的二个专用网的VPN隧道建立过程的信号流程图;图6是一个信号流程图,用于解释通过图5的处理过程,经由一个在专用网A和专用网B之间建立的隧道,在主机A和主机B之间数据分组的传送过程;图7是一个信号流程图,用于解释当专用网A的扩展网络ID被包括在专用网B的扩展网络ID中时,在二个专用网之间的VPN隧道建立过程;图8是一个按照本发明另一个实施例的网关的示意性方框图;图9是一个用于解释具有不同的扩展网络ID的两个专用网之间VPN隧道建立过程的信号流程图;图10是一个信号流程图,用于解释通过在图9中示出的过程,经由在其间建立的隧道,在主机A和主机B之间数据分组的传送过程;图11是一个用于解释在具有彼此相配的扩展网络ID的两个专用网之间的VPN隧道建立过程的信号流程图;图12是一个信号流程图,用于解释通过在图11中示出的过程,经由在其间建立的隧道,在主机A和主机B之间数据分组的传送过程;和图13是一个信号流程图,用于解释当专用网A的扩展网络ID被包括在专用网B的扩展网络ID中时,在二个专用网A和B之间的VPN隧道建立过程。
具体实施例方式
参考附图将更详细地描述本发明的某些实施例。
在下面的说明中,甚至在不同的附图中,相同的附图参考数字被用于相同的单元。在说明书中定义的内容,诸如详细的结构和单元只是提供帮助全面地理解本发明。因此,很明显,无需那些限定的内容也可以实现本发明。此外,公知的功能或者结构不做详细描述,因为多余的详述将使本发明难以理解。
另外,在该说明书中,单个的参考数字可用于表示多个单元。
图1是一个示出按照本发明一个实施例的包括本地网关的网络结构图。该网络包括专用网200A和200B、接入网络和因特网300。该专用网200A和200B分别地具有连接在其中的专用网主机210A和210C以及专用的主机210B和210D,和一个DNS服务器330以及多个连接到因特网300的公共网络主机310和320。该专用网200A和200B和因特网300经由包括ISP 150和本地网关100A和100B的接入网络而相互连接。
连接专用网A和B(200A和200B)和因特网300的本地网关A和B(100A和100B)的每一个分别从每个的ISP 150分配一个IP地址,并且登记该分配的IP地址到连接因特网的DNS服务器330。每个本地网关A和B(100A和100B)通过一个NAPT协议和一个VPN提供服务,使得在每个专用网上的主机A、B、C和D(210A、210B、210C和210D)可以和连接到因特网300的主机310和320相互通信。此外,本地网关100提供服务,以便在专用网A和B(200A和200B)的其中一个上的主机A和C(210A和210C)与连接到专用网A和B(200A和200B)的另一个上的主机B和D(210B和210D)相互通信。因此,一旦当一个连接请求从在专用网A(例如,200A)上的一个主机(例如,主机A)传送到专用网B(例如,200B)的另一个主机(例如,主机B)时,本地网关A(100A)建立一个用于通信的到对方本地网关B(100B)的VPN隧道,用于VPN隧道的不同的专用IP地址被分配给连接到相应的专用网A和B(200A和200B)的主机210,使得在该隧道的两端,连接到专用网A(例如,200A)的主机A(例如,210A)或者主机C(例如,210C)可以经由NAT与连接到专用网B(例如200B)的主机B(例如,210B)或者主机D(例如,210D)相互通信。
图2是一个用于示出按照本发明一个实施例的网关的方框图。每个网关100包括一个公共网络接口110,一个本地网接口120,一个存储单元130和一个控制单元140。
如上所述提供至少两个或更多的接口,并且它们中的至少一个是公共网络接口,以及它们中的至少一个是本地网接口。该公共网络接口110实际上通过ADSL、电缆调制解调器或者以太网物理上连接到因特网300,并且具有一个从ISP 150分配的IP地址。本地网接口120可以借助于以太网、无线局域网或者本地PNA以有线和/或无线方式配置,并且该控制单元140具有专用IP地址。用于一个专用网的网络地址是随机地从由因特网号码分配管理组(IANA)允许使用的地址当中选择的。
存储单元130存储与系统操作相关的程序和新近产生和更新的数据。
控制单元140具有一个NAT/NAPT处理器141,一个网际协议(IP)处理器142,一个域名服务(DNS)处理器143,一个动态主机配置协议(DHCP)处理器144,一个路由器145,一个VPN处理器146,一个web/中间件服务器147,一个加密处理器148,和一个用户验证处理器149。
NAT/NAPT处理器141变换一个专用IP地址为一个用于从专用网到因特网,或者从因特网到专用网传送数据分组的IP地址,或者变换一个IP地址为一个专用的地址。此外,在那些专用网通过使用VPN隧道被相互连接的情况下,该NAT/NAPT处理器141使用该NAT协议,变换在一个VPN隧道中的地址。NAT/NAPT处理器141连续地产生和更新存储单元130的NAT和NAPT表。
IP处理器142处理一个从公共接口110和本地网接口120传送的IP数据包(或者一个IP信息包)。
路由器145在一个连接到公共网络的外部主机和连接到专用网的主机之间建立一个最佳的路径。该路由器145连续地产生和更新存储单元130的路由选择表。
DNS处理器146管理用于在专用网之内的主机的域名和专用IP地址。此外,如果发生从专用网之内的主机到专用网之外的主机的询问,则该DNS处理器146从在因特网上的DNS服务器330,或者位于另一个专用网的上一级上的本地网关获得答复以用于响应。该NDS处理器146管理一个与专用网之内的主机相关的DNS表。
当专用网之内的网络设备启动的时候,DHCP处理器144响应专用网之内的主机对于可利用的专用IP地址、网关地址、DNS处理器地址等等的请求。该DHCP处理器144作为响应主机的请求的一部分,获得一个主机的域名,并且传送该获得的域名给该DNS处理器146,以便产生和更新该DNS表。
web/中间件服务器147提供了一种方式,即,专用网的用户可以请求建立一个到不同的专用网的隧道。该用户可以通过使用一个web浏览器或者一个中间件客户机来请求该服务。
VPN处理器146相对于在因特网上的主机起一个VPN服务器的作用,或者起能够连接到不同的专用网的一个VPN服务器或者一个VPN客户机的作用。此外,如果一个在专用网之内的主机请求经由web/中间件服务器147连接到不同的专用网,则该VPN处理器146通过与不同的专用网通信而建立一个VPN隧道,并且基于专用网的一个网络地址,在VPN隧道的末端建立一个NAT。为连接到其他的专用网所需的信息是通过产生一个专用网连接管理表来管理的,并且在表中产生的数据被存储在存储单元130中。专用网连接管理表包括自身专用网(self-private)的网络地址,其他的专用网的网络地址,在VPN隧道中使用的自身专用网的网络地址,和在VPN隧道中使用的其他的专用网的网络地址,并且可以进一步包括按照对方专用网网关的域名和对方专用网网关的VPN操作的服务器/客户机状态显示项目。
加密处理器148加密在专用网和公共网络之间或者在专用网和另一个专用网之间通信的数据分组。
用户验证处理器149对于想要从公共网络访问专用网的外部用户,或者对于进入到专用网网关用于配置改变等等的用户执行一个验证处理。
当对不同的专用网建立一个VPN隧道的时候,上述的网关执行对应于如下三个情况中的每一个的操作。下面将参考图1描述各种情况。
第一,存在一种情况即专用网A(例如,200A)和专用网B(例如,200B)的扩展网络ID(网络ID和子网掩码相乘)相互不同。例如,当专用网A(例如,200A)的网络ID被设置为10.0.0.0/24和专用网B(例如,200B)的网络ID被设置为10.0.1.0/24(情况1)时,专用网A(例如,200A)的扩展网络ID变为10.0.0.x,并且专用网B的扩展网络地址变为10.0.1.x,因此它们变得彼此不同。在这种情况下,专用网A和专用网B可以仅借助于VPN隧道的建立互相通信。
第二,存在一种情况即专用网A和专用网B的扩展网络ID彼此相同(情况2)。例如,当专用网A和专用网B的网络ID都被设置为10.0.0.0/24时,专用网A(例如,200A)和专用网B(例如,200B)的所有扩展网络ID变为10.0.0.x,因此它们是彼此相同的。在这种情况下,当在专用网A(200A)上的主机A(例如,210A)试着发送数据分组到在专用网B(200B)上的主机B(例如,210B)时,如果主机C(210C)具有与主机B(210B)相同的IP地址,由于其不知道从主机A(210A)传送的数据分组发送到哪里,主机B(210B)还是主机C(210C),所以本地网关A(100A)会产生一个传输差错,使得在二个专用网之间无法通信。因此,在这种情况下,一个新的IP地址被分配,其可以在一个在专用网A(200A)和专用网B(200B)之间建立的隧道中使用。例如,专用网A被分配一个网络地址10.0.1.0/24,以及专用网B被分配一个网络地址10.0.2.0/24,以及NAT在VPN隧道的两个末端上被执行。因此,从专用网A(200A)观察在专用网B(200B)上的主机210B和210D,在专用网B(200B)上的主机被判定具有网络地址10.0.2.x,并且,当从专用网B(200B)观察的时候,在专用网A(200A)上的主机210A和210C被判定具有网络地址10.0.2.y,使得可以在专用网A(200A)的主机210A和210C和专用网B(200B)的主机210B和210D之间进行相互通信。
第三,可能存在一种情况,即专用网A的网络ID被包括在专用网B的网络ID中。例如,当专用网A(200A)被给定10.0.0.0/24,而专用网B(200B)被给定10.0.0.0/16(情况3)时,专用网A(200A)的扩展网络ID变为10.0.0.x,而专用网B(200B)的扩展网络ID变为10.0.x.x,因此它们是彼此不同的,但是该10.0.0.x作为10.0.x.x的一部分而被包括。甚至在这种情况下,一个VPN隧道在专用网A(200A)和专用网B(200B)之间被建立,网络地址被分别以10.0.1.0/24和10.1.0.0/16分配给专用网A(200A)和专用网B(200B),并且NAT在隧道的两个末端上被执行。因此,当从专用网A(200A)观察的时候,看到在专用网B(200B)上的主机具有地址10.1.x.y,并且,当从专用网B(200B)观察的时候,看到在专用网A(200A)上的主机具有地址10.0.1.z,以便专用网A(200A)的主机可以与专用网B(200B)的主机通信。
在上述三种情况中,专用网A(200A)和专用网B(200B)的不同扩展网络ID无需另外的配置,就能够仅经由在其间建立的VPN隧道进行通信。
下文中,将根据上述的三种情况来描述VPN隧道的生成和在两个专用网之间的数据分组传送过程。
图3是用于解释在两个具有不同的扩展网络ID的专用网之间建立VPN隧道的过程的一个信号流程图。首先,专用网A(200A)的用户在由网关A的web服务器147提供的一个隧道建立请求页上,通过主机A(210A)处的web浏览器212来请求建立到专用网B(200B)的隧道,请求在专用网A(200A)和专用网B(200B)之间建立隧道的网关A(100A)在因特网上经由DNS处理器143,从DNS服务器330获取网关B(100B)的IP地址(211.32.119.136)。接下来,网关A(100A)在VPN处理器146中运行一个客户机程序,并且请求网关B(100B)的VPN处理器146生成一个隧道。在请求在专用网之间建立隧道的消息中,包括专用网A(200A)的网络地址10.0.0.0/24,以及在VPN隧道中将被用于替代专用网A(200A)的网络地址的网络地址(10.0.0.0/24,10.0.1.0/24,10.0.2.0/24,...)。同时,由于如果专用网A(200A)和专用网B(200B)的网络地址不同,则NAT在VPN隧道中就不是必需的,所以按照原状选择了专用网A(200A)的地址10.0.0.0/24,并且在专用网A和专用网B的扩展网络地址彼此相同的情况下,则从10.0.1.0/24,10.0.2.0/24中选择一个可用的网络地址。
如果来自网关A(100A)的消息请求在专用网之间的生成隧道,则网关B(100B)从VPN处理器146将在专用网之间隧道生成的响应消息传送到网关A(100A)。在该响应消息中,包括专用网B(200B)的网络地址10.0.1.0/24,在VPN隧道中将被用于替代专用网A(200A)的网络地址的网络地址10.0.0.0/24,以及在VPN隧道中将被用于替代专用网B(200B)的网络地址的网络地址10.0.1.0/24,10.0.2.0/24,10.0.3.0/24等。
接收响应消息的网关A(100A)将一个专用网之间隧道建立的确认(ACK)传送到网关B(100B)。该ACK包括专用网A(200A)的网络地址10.0.0.0/24,专用网B(200B)的网络地址10.0.1.0/24,在VPN隧道中用于专用网A(200A)的网络地址的网络地址10.0.0.0/24,以及在VPN隧道中用于专用网B(200B)的网络地址的网络地址10.0.1.0/24。这时,如果专用网A(200A)的地址与在VPN隧道中用作专用网A(200A)的网络地址的网络地址相同,则意味着在VPN隧道中没有出现NAT,如果不相同,则意味着出现了NAT。
在接收并传送ACK消息之后,分别在网关A(100A)和网关B(100B)中产生专用网连接管理表132和132′。专用网连接管理表132包括对应网关的域名,一个表明对应网关是否是VPN服务器或VPN客户机的项目,专用网A(200A)的网络地址,专用网B(200B)的网络地址,在VPN隧道中将被用于专用网A(200A)的网络地址的网络地址,在VPN隧道中将被用于专用网B(200B)的网络地址的网络地址,等等。
网关A(100A)产生的表包括网关B(100B)的域名(网关B),表明网关B是VPN服务器的一个项目(服务器),专用网A的网络地址(10.0.0.0/24),专用网A的网络地址(10.0.0.0/24),专用网B的网络地址(10.0.1.0/24),在VPN隧道中将被用于专用网A的网络地址的网络地址(10.0.0.0/24),在VPN隧道中将被用于专用网B的网络地址的网络地址(10.0.1.0/24)等等。
如上所述,如果一个ACK信号在两个专用网之间被交换,则在网关A(100A)和网关B(100B)之间生成VPN隧道,以及在隧道中建立一个PPP连接。之后,从主机A(210A)传送到网关A(100A)的VPN隧道末端的数据分组经由PPP连接被传送到网关B(100B)的VPN隧道的末端。
图4是用于解释通过一个隧道在主机A(210A)和主机B(210B)之间的数据分组传送方法的信号流程图,该隧道在专用网A(200A)和专用网B(200B)之间通过图3的过程建立。首先,专用网A(200A)的用户知道主机B(210A)的域名,以及安装到主机A(210A)中的应用程序将一个DNS询问传送到网关A(100A),以获知对应于主机B(210B)域名的IP地址。相应地,网关A(100A)的DNS处理器143查询专用网连接管理表132。如果一个VPN隧道在专用网A(200A)和专用网B(200B)之间被建立,则DNS处理器143将到主机B(210B)的DNS询问发送到网关B(100B)。此后,网关A(100A)的DNS处理器143首先查询专用网连接管理表132。此外,如果存在专用网A(200A)和专用网B(200B)之间建立的VPN隧道,则到主机B(210B)的DNS询问被发送到网关B(100B)。
如上所述,如果DNS询问从网关A(100A)被传送到网关B(100B),则网关B(100B)的DNS处理器143′将具有表明在VPN隧道中主机B(210B)的网络地址10.0.1.5的响应消息传送到网关A(100A),以代替主机B(210B)的网络地址。
网关A(100A)从网关B(100B)的DNS处理器143′将一个对应于主机B(210B)的专用IP地址10.0.1.5转送到主机A(210A)。
如果从网关A(100A)接收主机B(210B)的专用IP地址,则主机A(210A)通过写入用于目地的地址的已接收专用IP地址(10.0.1.5)和用于源地址的主机A(210A)的专用IP地址(10.0.0.4)而将数据分组传送到网关A(100A)。
如果从主机A(210A)接收到数据分组,则网关A(100A)参考路由表145和转发设置,将已接收的数据分组传送到网关A(100A)隧道的末端。由于PPP连接在网关A(100A)和网关B(100B)之间的VPN隧道中被设置,所以发送到网关A(100A)的隧道末端的数据分组被传送到网关B(100B)的隧道的末端。
如果数据分组经过VPN隧道被传送,则网关B(100B)参考路由表145′和转发设置将数据分组传送到主机B(210B)。
如果数据分组被接收,则主机B(210B)通过写入用于源地址的主机B(210B)的一个专用IP地址(10.0.1.5)和用于目的地地址的主机A(210A)的一个专用IP地址(10.0.0.4)来发送一个响应。
此后,主机A(210A)和主机B(210B)经过在专用网A(200A)和专用网B(200B)之间形成的隧道重复上述的数据分组传送过程。
图5是用于解释具有相同的扩展网络ID的两个专用网的VPN隧道建立过程的信号流程图。首先,如果专用网A(200A)的用户在由网关A(100A)的web服务器147提供的隧道建立请求页上,经过主机A(210A)中的web浏览器212来请求建立到专用网B(200B)的隧道,则接收用于在专用网A(200A)和专用网B(200B)之间建立隧道的一个请求的网关A(100A),通过DNS处理器143在因特网上从DNS服务器330获得网关B(100B)的IP地址(211.32.119.136)。接下来,具有获得的网关B(100B)的IP地址的网关A(100A)在VPN处理器146上运行一个客户机程序,并且请求网关B(100B)的VPN处理器146′在专用网之间生成一个隧道。请求在专用网之间建立隧道的消息包括专用网A(200A)的网络地址(10.0.0.0/24),以及在VPN隧道中将被用于专用网A的网络地址的网络地址(10.0.0.0/24,10.0.1.0/24,10.0.2.0/24,...)。
如果从网关A(100A)接收到一个隧道建立请求,则网关B(100B)的VPN处理器146′传送到网关A(100A)一个对在专用网之间隧道建立请求的响应消息。该响应消息包括专用网B(200B)的网络地址(10.0.0.0/24),以及在VPN隧道中用于专用网A(200A)的网络地址的网络地址(10.0.1.0/24),以及在VPN隧道中用于专用网B(200B)的网络地址的网络地址(10.0.2.0/24,10.0.3.0/24,10.0.4.0/24)。
如果接收到来自网关B(100B)的响应消息,则网关A(100A)就发送给网关B(100B)一个在专用网之间隧道建立的ACK。该ACK包括专用网A(200A)的网络地址(10.0.0.0/24),专用网B(200B)的网络地址(10.0.0.0/24),在VPN隧道中被用于专用网A(200A)的网络地址的网络地址(10.0.1.0/24),以及在VPN隧道中将被用于专用网B(200B)的网络地址的网络地址(10.0.2.0/24)。由于专用网A(200A)的地址与在VPN隧道中用于专用网A(200A)的网络地址的网络地址不一致,所以网关A(100A)认识到通过NAT协议使用了地址变换。
在接收和传送ACK消息之后,专用网连接管理表132和132′分别在网关A(100A)和网关B(100B)中产生。专用网连接管理表132包括对方网关100的域名,表明对应网关100是VPN服务器还是VPN客户机的一个项目,专用网A(200A)的网络地址,专用网B(200B)的网络地址,在VPN隧道中将被用于专用网A(200A)的网络地址的网络地址,在VPN隧道中将被用于专用网B(200B)的网络地址的网络地址,等等。
网关A(100A)产生的表包括网关B(100B)的域名(网关B),表明网关B是VPN服务器的一个项目(服务器),专用网A(200A)的网络地址(10.0.0.0/24),专用网B(200B)的网络地址(10.0.0.0/24),在VPN隧道中被用于专用网A(200A)的网络地址的网络地址(10.0.1.0/24),在VPN隧道中被用于专用网B(200B)的网络地址的网络地址(10.0.2.0/24),等等。
通过上述的过程,网关A(100A)和网关B(100B)之间的一条VPN隧道被生成,并且在隧道中建立了一个PPP连接。此后,被发送到网关A(100A)的VPN隧道末端的数据分组,通过PPP连接被传送到网关B(100B)的VPN隧道末端。
如果生成了VPN隧道并且完成了PPP连接,那么网关A(100A)就参考专用网连接管理表132来建立VPN隧道的网关A(100A)的NAT。如果NAT被建立,那么当数据分组通过网关A(100A)从专用网A(200A)被发送到VPN隧道时,源地址10.0.0.x被变换成10.0.1.x,以及当数据分组通过网关A(100A)从VPN隧道被发送到专用网A时,目的地地址10.0.1.y被变换成10.0.0.y。此外,网关B在VPN隧道的网关B处建立NAT。
图6是一个信号流程图,用于解释在主机A(210A)和主机B(210B)之间通过一个隧道的数据分组传送方法,这个隧道是通过图3的过程在专用网A和专用网B之间建立的。首先,专用网A(200A)的一个用户知道主机B(210B)的域名,并且,如果安装在主机A(210A)中的应用程序向网关A(100A)发送一个对主机B(210B)的DNS询问,则网关A(100A)的DNS处理器143就查询专用网连接管理表132。此外,如果在专用网A(210A)和专用网B(200B)之间建立一个VPN隧道,则为了获知在主机B(210B)的VPN隧道中使用的专用IP地址,DNS处理器143就向网关B(100B)发送DNS询问,因为认识到NAT对于通过隧道的数据分组来说是必需的。
如果接收到对主机B(210B)的询问,则网关B(100B)的DNS处理器143′向网关A(100A)传送一个响应消息,该消息具有用于主机B(210B)的VPN隧道中的IP地址,并且网关A(100A)将它送回主机A(210A)。
因此,为了将数据分组发送到主机B(200B),主机A(210A)将数据分组传送到网关A(100A)。数据分组的目的地地址被写为10.0.2.5,源地址被写为10.0.0.4。
如果到主机B(210B)的数据分组被从主机A(210A)接收到,则网关A(100A)参考路由表和转发设置将数据分组传送到网关A的隧道末端。因为在网关A(100A)的VPN隧道末端处建立了NAT,所以源地址10.0.0.4被变换成10.0.1.4。由于为在网关A(100A)和网关B(100B)之间的隧道建立了PPP连接,所以具有通过NAT变换的源地址的数据分组被传送到网关B(100B)的末端。
对于被传送到网关B(100B)的隧道末端的数据分组来说,该网关B(100B)具有通过上述NAT变换的源地址,网关B(100B)通过建立在网关B(100B)的VPN隧道末端上的NAT将目的地地址10.0.2.5变换成10.0.0.5。参照路由表和转发设置,具有通过上述NAT变换的目的地地址的数据分组被传送到主机B(210B)。
此后,主机B(210B)发送一个响应到主机A(210A),并且为了通信,重复上述的数据分组传送过程。
图7示出了一个信号流程图,用于解释在专用网A的扩展网络ID包括在专用网B的扩展网络ID中的情况下,在两个专用网之间的VPN隧道建立过程。首先,如果通过主机A(210A)中的web浏览器212,在由网关A(100A)的web服务器147提供的一个隧道建立请求页上,专用网A(200A)的一个用户向专用网B(200B)请求隧道的建立,则接收用于在专用网A(200A)和专用网B(200B)之间建立隧道的请求的网关A(100A),通过DNS处理器143从在因特网上的DNS服务器330获得网关B(100B)的IP地址(211.32.119.136)。接下来,具有网关B(100B)获得的IP地址的网关A(100A)在VPN处理器146上运行一个客户机程序,并且请求网关B(100B)的VPN处理器在专用网之间建立隧道。请求专用网之间建立隧道的消息包括专用网A的网络地址(10.0.0.0/24)和用于VPN隧道中专用网A的网络地址的网络地址(10.0.0.0/24,10.0.1.0/24,10.0.2.0/24,...)。
如果从网关A(100A)接收到隧道建立请求消息,则网关B(100B)的VPN处理器146′就传送一个响应消息到在专用网间建立的隧道。该响应消息包括专用网B(200B)的网络地址(10.0.0.0/16)和用于VPN隧道中本地网A的网络地址的网络地址(10.0.1.0/24),以及用于VPN隧道中专用网B的网络地址的网络地址(10.1.0.0/16,10.2.0.0/16,10.3.0.0/16,...)。
如果从网关B(100B)接收到响应消息,则网关A(100A)就向网关B(100B)发送在专用网间建立隧道的一个ACK。该ACK包括专用网A(200A)的网络地址(10.0.0.0/24),专用网B(200B)的网络地址(10.0.0.0/16),用于VPN隧道中专用网A的网络地址的网络地址(10.0.1.0/24),和用于在VPN隧道中专用网B网络地址的网络地址(10.1.0.0/24)。由于专用网A的地址与用于在VPN隧道中专用网A的网络地址的网络地址不一致,所以网关A(100A)认识到使用了NAT。
在接收和传送ACK消息后,专用网连接管理表132和132′分别在网关A(100A)和网关B(100B)中产生。网关A(100A)产生的表包括网关B(100B)的域名,表明网关B(100B)是VPN服务器的一个项目,专用网A的网络地址(10.0.0.0/24),专用网B的网络地址(10.0.0.0/16),用于VPN隧道中专用网A的网络地址的网络地址(10.0.1.0/24),用于VPN隧道中专用网B的网络地址的网络地址(10.1.0.0/16),等等。
通过上述过程,在网关A(100A)和网关B(100B)之间的VPN隧道中建立了PPP连接。此后,发送到网关A(100A)的VPN隧道末端的数据分组通过PPP连接被传送到网关B(100B)的VPN隧道的末端。
接下来,如果VPN隧道被生成和PPP连接被完成,那么网关A(100A)就参照专用网连接管理表132,在VPN隧道的网关A(100A)上建立NAT。如果NAT被建立,则当数据分组通过网关A(100A)被从专用网A发送到VPN隧道时,源地址10.0.0.X被变换成10.0.1.X,而当数据分组通过网关A(100A)从VPN隧道发送到专用网A时,目的地地址10.0.1.y被变换成10.0.0.y。同样地,专用网B(100B)也在VPN隧道的网关B上建立NAT。
如果在上述的网关A(100A)和网关B(100B)之间形成的VPN隧道的两端上都建立了NAT,则主机A(210A)和主机B(210B)就能通过图6所示的数据分组传送过程相互通信。
下面,将描述根据本发明的另一个实施例的网关。
图8是根据本发明另一个实施例的网关的框图。网关100包括公共网络接口110,专用网接口120,存储单元130和控制单元140。
接口110,专用网接口120和存储单元130具有与上面所描述的那些单元相同的操作和功能。控制单元140包括网络地址变换(NAT)/NAPT处理器141,网际协议(IP)处理器142,域名服务(DNS)处理器143,动态主机配置协议(DHCP)处理器144,路由器145,HTIP处理器146A,VPN处理器146B,web/中间件服务器147,加密处理器148和用户验证处理器149。
NAT/NAPT处理器141,IP处理器142,DNS处理器143,DHCP处理器144,路由器145,web/中间件服务器147,加密处理器148和用户验证处理器149具有与上面描述的那些部件相同的操作和功能。
HTIP处理器146A协商用于在其它专用网之间的隧道生成的参数,相应地利用这些参数控制VPN处理器146B和NAT/NAPT处理器141。有用的参数可能包括一种在VPN隧道生成中使用的VPN协议的类型,自专用网的网络地址,其它专用网的网络地址,在VPN隧道中使用的自专用网的网络地址,以及在VPN隧道中使用的其它专用网的网络地址。
HTIP处理器146A使得能够在不考虑专用IP地址或所使用的VPN协议的类型,而实现在多个专用网的通信设备之间的直接通信。从协商中导出的参数,或者在专用网中生成的VPN隧道的列表被存储在存储单元130中。换句话说,对于与其它专用网连接所必需的信息,被列入专用网连接管理表中,而该表格化的数据被存储在存储单元130中。
为了响应通过web/中间件服务器147从专用网的主机传送的用于连接到另外一个专用网的请求,HTIP处理器146A与其它的专用网通信,协商用于生成VPN隧道所必需的参数,根据已协商的参数来控制VPN处理器146B以生成VPN隧道,并控制NAT/NATPT处理器141,以便能够根据专用网的网络地址在VPN隧道的末端设置NAT。专用网连接管理表可以包括正被使用的VPN协议,自专用网的网络地址,另一个专用网的网络地址,在VPN隧道中被使用的自专用网的网络地址,在VPN隧道中被使用的另一个专用网的网络地址。另外,专用网连接管理表可以包括对方的专用网关的域名,以及根据对方的专用网关的VPN操作表明服务器/客户机状态的项目。
在作为VPN服务器或VPN客户机操作而使得能够与其它专用网连接的时候,VPN处理器146B对位于因特网中的主机来将,起到服务器的作用。如果完成与位于其它专用网的网关中的HTIP处理器146A′的协商,则HTIP处理器146A控制VPN处理器146B以便在不同的专用网间生成一个VPN隧道。
在其它专用网间形成VPN隧道的过程中,网关主要在三种情况中进行不同的操作,其包括,第一,当专用网A(200A)具有来自专用网B(200B)的不同扩展网络ID时,第二,当专用网A(200A)具有与专用网B(200B)相同的扩展网络ID时,以及第三,当专用网A(200A)的网络ID被包括在专用网B(200B)的网络ID中时。下面将参考上述三种情况详细描述生成VPN隧道和在两个专用网间传送数据分组的过程。
图9是一个信号流程图,其示出了在具有不同的扩展网络ID的两个专用网之间形成一个VPN隧道的过程。首先,专用网A(200A)的用户通过web浏览器212,在由网关A(100A)的web服务器147提供的隧道建立请求页上,向专用网B(200B)发送一个隧道建立请求。为了响应该请求,网关A(100A)通过DNS处理器143从位于因特网中的DNS服务器330获取网关B(100B)的一个公共IP地址211.32.119.136。
接下来,网关A(100A)在HTIP处理器146A上驱动HTIP程序,来请求网关B(100B)的HTIP处理器146A建立一个隧道。专用网间的隧道建立请求可以包括将被使用的VPN协议,如L2TP以及在VPN隧道中用于替代专用网A(200A)的网络地址的网络地址(10.0.0.0/24,10.0.1.0/24,10.0.2.0/24,...)。如果专用网A(200A)和专用网B(200B)具有不同的网络地址,并且如果专用网A(200A)的网络地址不是用于通过VPN隧道连接专用网B(200B)和第三个专用网,因为在VPN隧道中不需要NAT,所以直接选择专用网A的网络地址10.0.0.0/24。如果专用网A(200A)和专用网B(200B)的扩展网络地址彼此相同,那么在地址10.0.1.0/24,10.0.2.0/24,...中能够恰当地选择一个可用的地址。
一旦从网关A(100A)接收到在专用网间建立隧道的请求,网关B(100B)就通过HTIP处理器146A向网关A(100A)发送一个隧道建立响应消息。该响应消息可以包括将被使用的VPN协议,如L2TP,专用网B(200B)的网络地址10.0.1.0/24,在VPN隧道中用于替代专用网B(200B)的网络地址的网络地址(10.0.1.0/24,10.0.2.0/24,10.0.3.0/24,...),专用网A(200A)的网络地址10.0.0.0/24,在VPN隧道中用于替代专用网A(200A)的网络地址的网络地址10.0.0.0/24。
一旦接收到该响应消息,网关A(100A)就发送一个隧道建立ACK到网关B(100B)。该ACK消息可以包括专用网A(200A)的网络地址10.0.0.0/24,专用网B(200B)的网络地址10.0.1.0/24,以及在VPN隧道中用于替代专用网B(200B)的网络地址的网络地址10.0.0.0/24。如果专用网A(200A)的地址与VPN隧道中用于替代专用网A(200A)的网络地址的网络地址相同,则NAP在VPN隧道中不出现,然而当网络地址彼此不匹配时出现NAP。
在ACK消息被发送出去和接收到之后,专用网连接管理表132和132′在网关A(100A)和网关B(100B)处被生成。专用网连接管理表132可以包括对方的网关的域名,被使用的VPN协议,如L2TP,专用网之间的隧道ID,表明对方的网关是VPN服务器还是客户机的一个项目,专用网A(200A)的网络地址,专用网B(200B)的网络地址,在VPN隧道中用于替代专用网A(200A)的网络地址的网络地址,以及在VPN隧道中用于替代专用网B(200B)的网络地址的网络地址。
由网关A(100A)产生的表可以包括网关B(100B)的域名,如‘网关B’,表明网关B是VPN服务器的一个项目(服务器),专用网A(200A)的网络地址10.0.0.0/24,专用网B(200B)的网络地址10.0.1.0/24,在VPN隧道中用于替代专用网A(200A)的网络地址的网络地址10.0.0.0/24,以及在VPN隧道中用于替代专用网B(200B)的网络地址的网络地址10.0.1.0/24。
当接收到ACK消息时,根据将被使用的VPN协议,网关B(100B)将VPN处理器146B′设置成VPN服务器以便生成VPN隧道。如果隧道生成准备了包括将VPN处理器146B′设置成VPN服务器的所有工作,则网关B(100B)的HTIP的处理器146A′向网关A(100A)发送READY消息,从而通知在专用网之间的隧道生成的准备已经完成。READY消息可以包括使用中的VPN协议,如L2TP,专用网A(200A)的网络地址10.0.0.0/24,专用网B(200B)的网络地址10.0.1.0/24,在VPN隧道中使用的专用网A(200A)的网络地址,以及在VPN隧道中使用的专用网B(200B)的网络地址10.0.1.0/24。
当接收到READY消息时,根据将被使用的VPN协议,网关A(100A)将VPN处理器146B设置成网关B(100B)的VPN客户机。HTIP处理器146A驱动该VPN客户机,结果是在网关A(100A)和网关B(100B)之间建立了一个VPN(L2TP)隧道。
如上所述,在两个专用网之间交换了ACK信号和READY信号后,一个VPN隧道被生成,并且从主机A(210A)传送到网关A(100A)的VPN隧道末端的数据分组被传送到网关B(100B)的VPN隧道末端。
图10示出了通过在专用网A(200A)和专用网B(200B)之间形成的隧道,在主机A(210A)和主机B(210B)之间传送数据分组的过程的信号流程图。首先,专用网A(200A)的一个用户知道主机B(210B)的域名,并且安装在主机A(210A)中的应用程序向网关A(100A)发出一个DNS询问来找出与主机B(210B)的域名相应的IP地址。相应地,网关A(100A)的DSN处理器143查询专用网连接管理表132。如果存在专用网A(200A)和专用网B(200B)之间建立的VPN隧道,则网关A(100A)向网关B(100B)发出关于主机B(210B)的DSN询问。
当DSN询问从网关A(100A)被传送到网关B(100B)时,参照专用网连接管理表132′,网关B(100B)的DSN处理器143′向网关A(100A)发出一个响应消息。该响应消息包括表明VPN隧道中的主机B(210B)的网络地址10.0.1.5,而不是主机B(210B)的网络地址。为了简明,发送DSN请求以及响应该请求的过程在附图中略去了。
网关A(100A)向主机A(210A)转发专用IP地址10.0.1.5,其是从网关B(100B)的DNS处理器143′到主机B(210B)的响应。当从网关A(100A)接收到主机B(210B)的专用IP地址时,主机A(210A)在目的地地址中写入接收到的专用IP地址10.0.1.5,同时在源地址中写入主机A(210A)的专用IP地址10.0.0.4。据此,主机A(210A)向网关A(100A)发送数据分组。
当从主机A(210A)接收到数据分组时,参照路由表145和转发设置,网关A(100A)将接收到的数据分组传送到网关A(100A)和网关B(100B)之间形成的VPN的末端,以及发送到在网关A(100A)的隧道末端的数据分组被传送到网关B(100B)的隧道末端。
当通过VPN隧道传送该数据分组时,网关B(100B)参照路由表145′和转送设置将数据分组转送到主机B(210B)。
当接收到该数据分组时,主机B(210B)通过将主机B(210B)的专用IP地址10.0.1.5写在目的地地址中,以及将主机A(210A)的专用IP地址10.0.0.4写在目的地地址中,来处理所接收的数据分组和发出一个响应。
主机A(210A)和主机B(210B)连续重复上述的在本地网A(200A)和本地网B(200B)之间的数据分组传送过程。
图11示出了一个信号流程图,其中解释了在具有相同的扩展网络ID的两个专用网之间形成VPN隧道的过程。
首先,专用网A(200A)的用户通过Web浏览器212从主机A(210A)发送一个隧道建立请求页,其由网关A(100A)的Web服务器147来提供,从而请求在专用网A(200A)和专用网B(200B)之间生成一个隧道。为了响应该请求以便在专用网A(200A)和专用网B(200B)之间形成一个隧道,网关A(100A)通过DNS处理器143从位于因特网中的DNS服务器330获得网关B(100B)的一个公共IP地址211.32.119.136。为了简明,发送DNS询问和响应该询问的过程在附图中被忽略。
当网关A(100A)获得网关B(100B)的公共IP地址时,网关A(100A)驱动在HTIP处理器146A中的HTIP程序,并且请求网关B(100B)的HTIP处理器146A′在专用网之间生成一个隧道。专用网之间的隧道建立请求可以包括将被使用的VPN协议,诸如L2TP,专用网A(200A)的网络地址10.0.0.0/24,以及将在VPN隧道中用于代替专用网A(200A)的网络地址的网络地址(10.0.0.0/24,10.0.1.0/24,10.0.2.0/24,...)。
当网关B(100B)的HTIP处理器146A′从网关A(100A)接收一个隧道建立请求时,网关B(100B)将一个对隧道建立请求的响应消息传送到网关A(100A)。该响应消息可以包括将被使用的诸如L2TP这样的VPN协议,专用网B(200B)的网络地址(10.0.0.0/24),将在VPN隧道中代替专用网B(200B)的网络地址的网络地址(10.0.2.0/24,10.0.3.0/24,10.0.4.0/24,...),专用网A(200A)的网络地址(10.0.0.0/24)以及将在VPN隧道中代替专用网A(200A)的网络地址的网络地址10.0.1.0/24。
当网关A(100A)从网关B(100B)接收一个响应消息时,网关A(100A)将一个ACK消息发送到网关B(100B)。该ACK消息可以包括将被使用的诸如L2TP这样的VPN协议,专用网A(200A)的网络地址10.0.0.0/24,专用网B(200B)的网络地址10.0.0.0/24,将在VPN隧道中用于代替专用网A(100A)的网络地址的网络地址10.0.1.0/24,以及将在VPN隧道中用于代替专用网B(200B)的网络地址的网络地址10.0.2.0/24。因为在VPN隧道中代替专用网A(200A)的网络地址使用的网络地址是不同的,所以网关A(100A)认识到在VPN隧道的两端根据NAT协议进行了地址转换。
在交换了ACK消息之后,分别在网关A(100A)和网关B(100B)处生成专用网连接管理表132和132`。每个专用网连接管理表132和132`可能包括诸如L2TP这样的使用中的VPN协议,在专用网之间的隧道ID,对方网关100A和100B的域名,表明对方的网关100A和100B是VPN服务器还是客户机的一个项目,专用网A(200A)的网络地址,专用网B(200B)的网络地址,将在VPN隧道中用于代替专用网A(200A)的网络地址的网络地址,以及将在VPN隧道中代替专用网B(200B)的网络地址的网络地址。
由网关A(100A)产生的表可以包括诸如L2TP这样的使用中的VPN协议,诸如“网关B”这样的网关B(100B)的域名,表明网关B是VPN服务器的一个项目(一个服务器),专用网A(200A)的网络地址10.0.0.0/24,专用网B(200B)的网络地址10.0.0.0/24,将在VPN隧道中用于代替专用网A(200A)的网络地址的网络地址10.0.1.0/24,以及将在VPN隧道中用于代替专用网B(200B)的网络地址的网络地址10.0.2.0/24。
当网关B(100B)接收ACK消息时,网关B(100B)设置VPN处理器146B`为一个VPN服务器,以便根据使用中的VPN协议生成VPN隧道。当完成在专用网之间的生成隧道的准备时,包括将VPN处理器146B`设置为VPN服务器,网关B(100B)的HTIP处理器146A`发送READY消息到网关A(100A),通知已经完成了在专用网之间的隧道生成的准备。READY消息可以包括诸如L2TP这样的使用中的VPN协议,本地网A(200A)的网络地址10.0.0.0/24,专用网B(200B)的网络地址10.0.0.0/24,将在VPN隧道中用于专用网A(200A)的网络地址10.0.1.0/24,以及将在VPN隧道中用于专用网B(200B)的网络地址10.0.2.0/24。
当网关A(100A)接收READY消息时,网关A(100A)根据将被使用的VPN协议设置VPN处理器146B为网关B(100B)的VPN客户机。当HTIP处理器146A`驱动VPN客户机时,在网关A(100A)和网关B(100B)之间生成VPN(L2TP)隧道。
根据上述方法,在网关A(100A)和网关B(100B)之间生成VPN隧道,以及被传送到网关A(100A)的VPN隧道的末端的数据分组被传送到网关B(100B)的VPN隧道的末端。
当完成VPN隧道的生成和链接时,以及在PPP连接之后,网关A(100A)参考专用网连接管理表132,在朝着网关A(100A)的VPN隧道处设置NAT。由于NAT被设置,所以当数据分组从专用网A(200A)通过网关A(100A)被传送到VPN隧道时,源地址10.0.0.X被变换为10.0.1.X。当数据分组从VPN隧道通过网关A(100A)被传送到专用网A时,目的地地址10.0.1.y被变换为10.0.0.y。网关B同样在朝着网关B(100B)的方向的VPN隧道上设置NAT。
图12示出了一个信号流程图,其解释了通过一个隧道在主机A(210A)和主机B(210B)之间的数据分组传送的过程,该隧道在专用网A和专用网B之间通过图11所示的方法而建立。
首先,专用网A(200A)的用户知道主机B(210B)的域名。当安装在主机A(210A)中的应用程序214将一个DNS询问发送到网关A(100A)时,询问对应于主机B(210B)域名的IP地址,网关A(100A)的DNS处理器143查询该专用网连接管理表132。如果存在专用网A(200A)和专用网B(200B)之间建立的VPN隧道,则当识别了NAT被要求用于通过隧道的数据分组传送时,询问将被用于主机B(210B)的VPN隧道的专用IP地址的DNS询问被发送到网关B(100B)。
当网关B(100B)的DSN处理器143`接收有关主机B(210B)的询问时,该DSN处理器143`发送一个IP地址10.0.2.5,该IP地址将在主机B(210B)的VPN隧道中作为对网关A(100A)的响应消息而被使用,以及网关A(100A)重新发送该响应消息给主机A(210A)。为了简明,在附图中忽略了发送DNS询问和响应该询问的过程。之后,主机A(210A)传送一个数据分组给网关A(100A),以便发送该数据分组到主机B(210B)。地址10.0.2.5作为数据分组的目的地地址被写入,而地址10.0.0.4作为源地址被写入。
当网关A(100A)从主机A(210A)接收一个目的地是主机B(210B)的数据分组时,网关A(100A)参考路由表和转发设置,将该数据分组传送到网关A(100A)的隧道的末端。因为NAT在网关A(100A)的VPN隧道的末端处被设置,源地址10.0.0.4被变换为10.0.1.4,以及具有已变换源地址的数据分组被传送到网关B(100B)的隧道末端。
当源地址通过NAT被变换,从而该具有已变换源地址的数据分组被传送到网关B(100B)的末端时,网关B(100B)通过在VPN隧道的末端中设置的NAT将目的地地址10.0.2.5变换成10.0.0.5。在目的地地址通过NAT被转换之后,参考路由表和转发设置,将具有已变换目的地地址的数据分组传送到主机B(210B)。
主机B(210B)发送一个响应到主机A(210A),因此,随着重复数据分组传送过程来执行通信。
图13示出一个信号流程图,其解释了在两个专用网A和B之间形成VPN隧道的过程,其中专用网A的扩展网络ID被包括在专用网B的扩展网络ID中。
首先,专用网A(200A)的用户通过Web浏览器212在主机A(210A)处读取隧道建立请求页,其由网关A(100A)的Web服务器147来提供。因此,为了响应隧道建立的用户请求,网关A(100A)通过DNS处理器143从位于因特网中的DNS服务器330获取一个网关B(100B)的公共IP地址211.32.119.136。为了简明,在附图中忽略了发送DNS询问和响应该询问的过程。
当网关A(100A)获得网关B(100B)的公共IP地址时,HTIP处理器146A驱动HTIP程序,以及网关B(100B)请求网关B(100B)的HTIP处理器146A`在专用网之间生成隧道。该隧道建立请求消息可以包括诸如L2TP这样的将被使用的VPN协议,专用网A(200A)的网络地址10.0.0.0/24,以及在VPN隧道中用于代替专用网A(200A)的网络地址的网络地址(10.0.0.0/24,10.0.1.0/24,10.0.2.0/24,...)。
网关B(100B)的HTIP处理器(146A`)从网关A(100A)接收隧道建立请求消息,并分析该已接收的消息。因为在VPN隧道中用于代替专用网A(200A)的网络地址的网络地址(10.0.0.0/24,10.0.1.0/24,...)被包括在专用网B(200B)的网络地址中,所以网关B(100B)的HTIP处理器146A′发送一个NAK消息到网关A(100A)。该NAK消息可以包括从网关A(100A)到网关B(100B)的用于重协商的隧道建立请求消息的一部分,诸如在VPN隧道中将被用于替代专用网A(200A)的网络地址的网络地址,以及专用网B(200B)的网络地址10.0.0.0/16。
当网关A(100A)的HTIP处理器146A从网关B(100B)接收NAK消息时,HTIP处理器146分析NAK消息的内容,同时重新发送一个隧道建立请求。第二个隧道建立请求消息可以包括诸如L2TP这样的将被使用的VPN协议,专用网A(200A)的网络地址10.0.0.0/24,以及在VPN隧道中用于替代专用网A(200A)的网络地址的网络地址(10.2.0.0/24,10.2.1.0/24,...)。
当从网关A(100A)接收到该隧道建立请求消息时,网关B(100B)的HTIP处理器146A′分析所接收的请求,以及如果确定其合适,则发送一个响应消息给该请求。该响应消息可以包括将被使用的诸如L2TP这样的VPN协议,专用网B(200B)的网络地址10.0.0.0/16,在VPN隧道中将用于替代专用网B(200B)的网络地址的网络地址(10.1.0.0/16,10.2.0.0/16,...),专用网A(200A)的网络地址10.0.0.0/24,以及将在VPN隧道中用于替代专用网A(200A)的网络地址的网络地址10.2.0.0/24。
当从网关B(100B)接收到一个响应消息时,网关A(100A)的HTIP处理器146A分析已接收的消息并且如果确定其合适,则发送ACK消息给网关B(100B)。该ACK消息可以包括将被使用的诸如L2TP这样的VPN协议,专用网A(200A)的网络地址10.0.0.0/24,在VPN隧道中将用于替代专用网A(100A)的网络地址的网络地址10.2.0.0/24,专用网B(200B)的网络地址10.0.0.0/16,以及将在VPN隧道中代替专用网B(200B)的网络地址的网络地址10.1.0.0/16。因为将在VPN隧道中使用的用于代替专用网A(200A)的网络地址的网络地址是不同的,所以认识到网关A(100A)需要NAT。
在发送和接收ACK消息之后,在网关A(100A)和网关B(100B)处生成专用网连接管理表132和132′。由网关A(100A)产生的表可以包括使用中的诸如L2TP这样的VPN协议,在专用网之间的隧道的ID,网关B(100B)的域名,表明网关B(100B)是VPN服务器的一个项目,网关A(200A)的网络地址10.0.0.0/24,以及专用网B(200B)的网络地址10.0.0.0/16,将在VPN隧道中代替专用网A(200A)的网络地址的网络地址10.2.0.0/24,以及将在VPN隧道中用于代替专用网B(200B)的网络地址的网络地址10.1.0.0/16。
当网关B(100B)接收ACK消息时,网关B(100B)将VPN处理器146B′设置成VPN服务器,以便根据将被使用的VPN协议生成VPN隧道。当完成准备在专用网之间的隧道建立时,该准备包括将VPN处理器146B′设置为VPN服务器,网关B(100B)的HTIP处理器146A′发送READY消息到网关A(100A),相应地通知已经完成在专用网之间建立隧道的准备。READY消息可以包括使用中的诸如L2TP这样的VPN协议,专用网A(200A)的网络地址10.0.0.0/24,专用网B(200B)的网络地址10.0.0.0/16,在VPN隧道中用于专用网A(200A)的网络地址10.2.0.0/24,以及在VPN隧道中用于专用网B(200B)的网络地址10.1.0.0/16。
当接收了READY消息时,网关A(100A)的HTIP处理器146A根据将被使用的VPN协议将VPN处理器146B设置为网关B(100B)的VPN客户机。当HTIP处理器146A驱动VPN客户机时,在网关A(100A)和网关B(100B)之间生成VPN(L2TP)隧道。
如上所述,VPN隧道在网关A(100A)和网关B(100B)之间被生成。被传送到网关A(100A)的VPN隧道的末端的数据分组被传送到网关B(100B)的VPN隧道的末端。
当VPN隧道被生成并连接时,参考专用网连接管理表132,网关A(100A)的HTIP处理器146A在朝着网关A(100A)的VPN隧道处设置NAT。当NAT被设置后,从专用网A(200A)通过网关A(100A)将数据分组传送到VPN隧道时,源地址10.0.0.x被变换成10.2.0.x。当数据分组通过VPN隧道和网关A(100A)被传送到专用网A(200A)时,目的地地址10.2.0.y被变换成10.0.0.y。同样的,网关B(100B)的HTIP处理器146A′在朝着网关B(100B)的VPN隧道处设置NAT。
因为NAT在网关A(100A)和网关B(100B)之间的VPN隧道的两端被设置,所以通过图12所示的数据分组的传送,主机A(210A)和主机B(210B)能够进行相互通信。
根据参考本发明的一个实施例所述的网关,用户使用网络的范围被大大的扩展了,因为其能够连接专用网和公共网络,或者在专用网之间进行连接。因此,增加了用户的便利性,而且通过多种通信,本地网络的用户能够更加有效地与其它本地网络的用户通信。因此,在本地网络中的信息或者设备被更加积极地共享。此外,在当前的IPv4环境下能够解决公共IP地址的短缺的问题,因此,网络的整体性能改善了。
如上所述参考本发明第二个实施例的方法被称为“本地对本地隧道启动”协议(HTIP)。根据该HTIP,请求在专用网之间生成VPN隧道的信息能够被提前交换和协商,因此,能够最小化VPN隧道建立的提前设置的请求。同样,通过使用在VPN处理器和NAT/NAPT处理器的控制中的HTIP处理器的已协商信息,已有的诸如PPTP或L2TP这样的VPN协议能够被直接使用而不需要任何的修改。根据HTLP,提前做出协商,因此最新形成的VPN隧道的网络地址与已有的VPN隧道的网络地址不相互冲突。结果,能够在两个或多个专用网中建立交叉的VPN隧道。
上述的实施例和优点仅是示范性的,而不认为限制本发明。本发明能够容易地用于其它类型的设备。同样,本发明实施例的描述是示例性的,而没有限制权利要求的范围,并且对本领域的普遍技术人员来说多种替代,修改是清楚明了的。
权利要求
1.一个网关,包括至少一个或多个连接到一个公共网络的公共网络接口;至少一个或多个连接到一个专用网的本地网接口;和一个控制单元,用于如果一个隧道建立请求从第一专用网被接收,以建立一个到连接到所述公共网络的第二专用网的隧道,则通过与所述第二专用网的网关通信来建立一个VPN隧道,其中,如果所述第二专用网和所述第一专用网具有同样的网络地址,或者如果所述第一专用网的网络地址被包括在所述第二专用网的网络地址之内,或者反之亦然,则所述控制单元生成一个新的网络地址表,以便所述第一和所述第二专用网在所述VPN隧道中使用不同的网络地址,和基于所述新的网络地址表变换地址,并且转发从所述第一专用网或者从连接到所述第二专用网的主机发送的数据分组。
2.根据权利要求1的网关,其中所述控制单元包括一个web服务器,用于提供一个隧道建立请求页,以便连接到所述第一专用网的主机请求隧道的建立;一个专用网域名服务器(DNS)处理器,用于对由所述连接到所述第二专用网的主机提出的所述隧道建立请求,从连接到所述公共网络的域名服务器(DNS)获得一个所述第二专用网的网关的网际协议(IP)地址;一个虚拟本地网(VPN)处理器,按照经由所述至少一个或多个公共网络接口,或者经由所述至少一个或多个本地网接口传送的所述隧道建立请求作为服务器或者客户机而操作,并且生成一个到所述第二专用网的隧道;和一个NAT/NAPT处理器,用于对从所述专用网发送到所述公共网络的数据分组,或者反之亦然,通过使用一个网络地址端口变换(NAPT)协议,变换一个专用IP地址为一个IP地址,或者变换一个IP地址为一个专用IP地址,其中,如果一个VPN隧道在所述第一专用网和所述第二专用网之间被建立,则在所述VPN隧道中通过使用一个网络地址变换(NAT)协议变换专用IP地址。
3.根据权利要求2的网关,其中,如果所述隧道建立请求从连接到所述第一专用网的所述主机被发送,则所述VPN处理器发出所述隧道建立请求消息给所述第二专用网的网关,以及,如果一个对于所述隧道建立请求的响应从所述第二专用网的网关被接收,则所述VPN处理器发出一个确认(ACK)给所述第二专用网的网关。
4.根据权利要求3的网关,其中所述隧道建立请求消息包括一个所述第二专用网的网络地址,和一个在VPN隧道中将被用于所述第二专用网的网络地址的第二网络地址。
5.根据权利要求3的网关,其中,如果所述包括一个所述第二专用网的网络地址,以及一个在VPN隧道中作为所述第二专用网的网络地址使用的第二网络地址的隧道建立请求消息被接收,则所述VPN处理器发送给所述第二专用网一个响应消息,该响应消息包括所述第一专用网的网络地址,所述第二网络地址,和一个在VPN隧道中作为所述第二专用网的网络地址使用的第三网络地址。
6.根据权利要求2的网关,其中所述web服务器可以由一个中间件服务器来替换。
7.根据权利要求1的网关,其中所述控制单元包括一个web服务器,用于提供一个隧道建立请求页,以便让连接到所述第一专用网的主机请求隧道的建立;一个专用网域名服务器(DNS)处理器,用于对由连接到所述第一专用网的所述主机提出的所述隧道建立请求,从连接到公共网络的域名服务器(DNS)获得一个所述第二专用网的网关的网际协议(IP)地址;一个本地到本地隧道启动协议(HTIP)处理器,用于按照经由所述至少一个或多个公共网络接口发送的,或者经由所述至少一个或多个本地网接口发送的所述隧道建立请求,发送和接收一个隧道建立请求消息,所述隧道建立请求消息包含用于所述第一和所述第二专用网之间隧道建立所必要的参数;一个虚拟本地网(VPN)处理器,作为服务器或者客户机而操作,并且处理使得所述隧道可以在所述第一和所述第二专用网之间被建立;和一个NAT/NAPT处理器,用于对从所述专用网发送到所述公共网络的数据分组,或者反之亦然,通过使用一个网络地址端口变换(NAPT)协议,变换一个专用IP地址为一个IP地址,或者变换一个IP地址为一个专用IP地址,其中,如果一个VPN隧道被建立在所述第一专用网和所述第二专用网之间,并且如果需要地址变换,则所述NAT/NAPT处理器通过使用一个网络地址变换(NAT)协议在所述VPN隧道中变换专用IP地址。
8.根据权利要求7的网关,其中,如果到所述第二专用网的所述隧道建立请求被从连接到所述第一专用网的所述主机接收,则所述HTIP处理器发送所述隧道建立请求消息到所述第二专用网的网关,以及,如果一个对于所述隧道建立请求的响应从所述第二专用网的网关被接收,则所述HTIP处理器发送一个确认(ACK)消息给所述第二专用网的网关。
9.根据权利要求8的网关,其中包括在到所述第二专用网的所述隧道建立请求消息中的所述参数包括一个在建立隧道中使用的VPN协议;一个所述第一专用网的网络地址;和在所述VPN隧道中作为所述第一专用网的网络地址使用的第二网络地址。
10.根据权利要求8的网关,其中,如果所述隧道建立请求消息从所述第二专用网被接收,则所述HTIP处理器发出一个响应消息,所述隧道建立请求消息包括一个在建立隧道中使用的VPN协议,一个所述第二专用网的网络地址,和在所述VPN隧道中作为所述第二专用网的网络地址使用的第二网络地址,以及,所述响应消息包括一个在建立隧道中使用的VPN协议,一个所述第一专用网的网络地址,在所述VPN隧道中用于所述第一专用网的网络地址的第三网络地址,一个所述第二专用网的网络地址,和所述第二网络地址。
11.根据权利要求8的网关,其中,如果所述ACK消息被从所述第二专用网接收,则所述HTIP处理器设置所述VPN处理器为一个VPN服务器,并且发出一个READY消息,通知所述第二专用网所述VPN处理器的设置已经完成。
12.根据权利要求11的网关,其中,如果所述READY消息被从所述第二专用网接收,则所述HTIP处理器相对于所述第二专用网的VPN服务器设置所述VPN处理器为一个VPN客户机,并且驱动所述VPN客户机以在所述第一专用网和所述第二专用网之间建立一个VPN隧道。
13.根据权利要求8的网关,其中所述HTIP处理器分析来自所述第二专用网的所述隧道建立请求消息或者所述响应消息,并且如果确定所述消息是不合适的,则因此通过发出一个NAK消息给所述第二专用网来通知该同一情况。
14.根据权利要求13的网关,其中,如果响应所述隧道建立请求消息,或者被发送给所述第二专用网的所述响应消息的所述NAK消息被接收,则所述HTIP处理器重新设置包含在所述消息中的参数和参数值,并且重新发送所述重新设置的参数和参数值给所述第二专用网。
15.根据权利要求8的网关,其中所述HTIP处理器预先协商参数,该参数包括一个在建立隧道中使用的VPN协议,一个所述第一专用网的网络地址,一个在所述VPN隧道中用于所述第一专用网的网络地址的第二网络地址,一个所述第二专用网的网络地址,一个在所述VPN隧道中用于所述第二专用网的网络地址的第三网络地址,以便当在已有VPN隧道中使用的网络地址不和所述VPN隧道的网络地址相冲突时,VPN隧道在所述至少一个或多个专用网之中被同时建立。
16.根据权利要求7的网关,其中所述Web服务器可以由一个中间件服务器来替换。
全文摘要
公开了一种根据本地对本地隧道启动协议(HTIP),用于支持在连接到不同专用网的网络设备之间通信的网关。当从连接到第一专用网的主机接收到对连接到公共网络的第二专用网的隧道建立请求消息时,属于网关的控制单元的HTIP处理器与第二专用网的网关通信,协商必需的信息以建立VPN隧道。如果专用网具有相同的网络地址,或专用网的网络地址被包括在另一个的网络地址中,则生成新的网络地址表,使在VPN隧道中这两个专用网使用不同的网络地址。数据分组基于新的网络地址表来变换地址,从而转送该变换的地址。在本地网络中的用户可以利用更大范围的网络,可以经由各种各样的社区积极地参与。还解决了IPv4类型的公共IP地址短缺的问题。
文档编号H04L12/46GK1525711SQ20041000731
公开日2004年9月1日 申请日期2004年1月21日 优先权日2003年1月21日
发明者金俊亨 申请人:三星电子株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1