CN107342991B - 动态vpn地址分配 - Google Patents

动态vpn地址分配 Download PDF

Info

Publication number
CN107342991B
CN107342991B CN201710493159.5A CN201710493159A CN107342991B CN 107342991 B CN107342991 B CN 107342991B CN 201710493159 A CN201710493159 A CN 201710493159A CN 107342991 B CN107342991 B CN 107342991B
Authority
CN
China
Prior art keywords
address
local
network
remote
local network
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201710493159.5A
Other languages
English (en)
Other versions
CN107342991A (zh
Inventor
R·D·肖特
V·拉森
M·威廉森
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.)
Virnetx Inc
Original Assignee
Virnetx Inc
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 Virnetx Inc filed Critical Virnetx Inc
Publication of CN107342991A publication Critical patent/CN107342991A/zh
Application granted granted Critical
Publication of CN107342991B publication Critical patent/CN107342991B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/2592Translation of Internet protocol [IP] addresses using tunnelling or encapsulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9017Indexing; Data structures therefor; Storage structures using directory or table look-up
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/2514Translation of Internet protocol [IP] addresses between local and global IP addresses
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/45Network directories; Name-to-address mapping
    • H04L61/4505Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols
    • H04L61/4511Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols using domain name system [DNS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/50Address allocation
    • H04L61/5046Resolving address allocation conflicts; Testing of addresses
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/50Address allocation
    • H04L61/5053Lease time; Renewal aspects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0272Virtual private networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/029Firewall traversal, e.g. tunnelling or, creating pinholes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2101/00Indexing scheme associated with group H04L61/00
    • H04L2101/60Types of network addresses
    • H04L2101/695Types of network addresses using masks or ranges of addresses

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Small-Scale Networks (AREA)

Abstract

提出了关于当通过公用网络在与本地网络相关联的本地计算机和位于本地网络之外的远程计算机间建立安全通信链路时自动避免地址冲突的方法和相关系统。为了避免地址冲突,所保留的由本地网络使用的地址和所保留的由远程网络使用的地址被确定。从有效本地地址中选择至少一个本地地址如此以使所选择的本地地址是不与本地网络的保留地址和远程网络的保留地址冲突的地址。所选择的地址被结合于本地计算机和远程计算机间的安全通信链路的建立而使用。

Description

动态VPN地址分配
本申请是申请日为2012年7月9日、申请号为:201280034033.7、发明名称为“动态VPN地址分配”的中国专利申请的分案申请。
相关申请
本申请根据35U.S.C.§119要求2011年7月8日递交的名称为“Dynamic VPNAddress Allocation”的美国临时专利申请序列No.61/505,754的优先权,出于所有目的该申请的全部内容通过引用的方式结合于此。
背景技术
虚拟专用网络(VPN)被广泛的应用于计算机(包括计算机化的设备)和/或不安全网络上的计算机网络间的安全连接。不安全的计算机网络可以是公用网络、专用网络或公用网络和专用网络的结合。为了在这些不安全的网络间安全地传输信息,计算机通常建立连接并且通过将信息分解成多个数据分组和通过网络将该数据分组从源传送到目标来进行通信。一旦被目标接收,通过以适当的方式合并所接收到的数据分组来还原信息。使用定义好的格式(也称为协议)来创建数据分组,以确保源计算机和目标计算机能成功地对信息打包和拆包。
网际协议(IP)是常用于通过大部分专用网络和公用互联网发送信息的标准协议。因特网社区对两个版本的IP协议进行了标准化,即版本4(IPv4)和版本6(IPv6)。IPv4和IPv6,这两个版本都需要用于指示源计算机和目标计算机的网络位置的数字地址,数字地址被置于每一个数据分组的头部分。这种数字地址被称为源地址和目标地址。
网际协议版本4,IPv4需要对源地址和目标地址中的每一者分配4个字节(byte),提供高达232个唯一地址。然而,这一地址大小不支持所需的网络地址和高效网络路由的最终数目的需求。这一地址限制常通过创建公用地址和专用地址这两个地址类别来解决。专用地址被留作在专用网络中使用并且可由任意数目的专用网络独立地复制和使用。
为了通过公用互联网将数据分组从具有专用地址的计算机发送至另一台计算机,网络地址转换(NAT)可用于将使用专用地址的分组转换为使用公用地址的分组。地址转换通常在充当公用互联网和专用网络间的网关的计算机上完成。
发明内容
此处公开的某些实施方式涉及一方法和实施该方法的相应系统或计算机,所述方法和系统或计算机用于当通过公用网络在与本地网络相关联的本地计算机和位于本地网络之外的并且与远程网络相关联的远程计算机之间建立安全通信链路时自动避免地址冲突。在一些实施方式中,至少一个处理器被配置和安排以(a)确定被保留用于本地网络使用的地址和被保留用于远程网络使用的地址;(b)从多个有效本地地址中选择至少一个本地地址,所选择的本地地址是不与本地网络的保留地址和远程网络的保留地址相冲突的地址;以及(c)将所选择的本地地址与在本地计算机和远程计算机间的安全通信链路的建立相关联结合。
此处公开的一些实施方式涉及方法和实施方法的相应系统或计算机,用于通过公用网络在与第一本地网络相关联的第一计算机和与第二本地网络相关联的第二计算机间建立虚拟专用网络。在一些实施方式中,至少一个处理器被配置和安排为针对共同建立安全通信链路的第一和第二计算机中的每一者自动生成新的本地网络地址,否则本地网络地址与在各自的本地网络上使用的其他地址将发生冲突。
在一些实施方式中,从多个有效远程地址中选择至少一个远程地址,如此以使所选择的远程地址是不与远程网络的保留地址冲突的地址。所选择的本地地址和所选择的远程地址可以结合安全通信链路的建立而被使用。在某些实施方式中,所选择的本地地址可能是不与所选择的远程地址相冲突的地址。在一些实施方式中,所选择的远程地址可能是不与所选择的本地地址相冲突的地址。在一些实施方式中,所选择的远程地址可以被添加至本地网络的保留地址中并且当安全连接断开时被从本地网络的保留地址中移除。在一些实施方式中,所选择的本地地址可以被添加至远程网络的保留地址中并且当安全连接断开时被从远程网络的保留地址中移除。
此处公开的一些实施方式涉及方法和实施方法的相应系统或计算机,用于给建立安全通信链路提供域名服务,如此以使通过公用网络在至少两个计算机间提供安全通信,至少两个计算机中的至少一个被连接至本地网络。在一些实施方式中,域名服务系统被配置为(a)被连接至通信网络;(b)指示域名服务是否支持建立安全通信网络;(c)给计算机中的每一者指定地址,以用于在两个计算机间建立安全通信链路;以及(d)当被指定的地址与计算机所附着的本地网络相关联的地址冲突或与第一两个计算机中的至少一者连接的现有安全通信链路上的第三计算机相关联的地址冲突时,将不同的地址用于计算机中的每一者以用于建立安全通信链路。
此处公开的某些实施方式涉及方法和实施方法的相应系统或计算机,用于向建立安全通信链路提供域名服务,如此以使在连接至本地网络的至少一个计算机和连接至第二本地网络的多个计算机中的每一者之间通过公用网络提供安全通信。在某些实施方式中,域名服务系统被配置为(a)被连接至通信网络;(b)指示域名服务是否支持建立安全通信链路;以及(c)给计算机中的每一者指定地址,以用于在一个计算机和多个计算机中的每一者间建立安全通信链路,如此使得每一个被指定的地址不与已关联于连接至每个计算机的本地网络的地址冲突。
此处公开的某些实施方式涉及方法和实施方法的相应系统或计算机,用于在本地计算机和远程计算机之间执行通信。在一些实施方式中,在本地计算机上,多个地址所选择以用于与远程计算机通信。所选择的地址是除了本地计算机和附着其上的设备当前正在使用的现有地址外的地址。对照远程计算机和附着其上的设备当前正在使用的现有地址,验证所选择的多个地址中的地址,并且在该地址没有被远程计算机使用的情况下,该地址被用于执行本地计算机和远程计算机间的通信。
在一些实施方式中,在建立安全通信链路时,所选择的本地地址可用于本地计算机的选址。在一些实施方式中,所选择的本地地址可包括网际协议(IP)地址。在某些实施方式中,所选择的本地地址可包括IP地址和网络掩码。所选择的本地地址可从被配置为包括多个有效本地地址的表格中生成。所选择的地址可以随机或伪随机地(pseudo-randomly)生成。
在一些实施方式中,从多个有效远程地址中选择至少一个远程地址。所选择的远程地址可以是不与远程网络的保留地址冲突的地址;以及所选择的本地地址和所选择的远程地址可结合安全通信链路的建立来使用。
进一步地,当建立安全通信链路时,所选择的本地和远程地址可分别用于本地和远程计算机的选址。在一些实施方式中,所选择的本地和远程地址可成对存储,并且每当在该本地和远程计算机间建立安全通信链路时被重复使用。
在一些实施方式中,安全通信链路可以是虚拟专用网络(VPN)链路。在某些实施方式中,安全通信链路可以是主机到主机的连接。在某些实施方式中,安全通信链路可以是主机到网络的连接。在某些实施方式中,安全通信链路可以是网络到网络的连接。
在一些实施方式中,多个有效本地地址可被配置为包括一系列未被使用的本地地址,并且可根据该一系列未被使用的本地地址来生成所选择的本地地址。
在一些实施方式中,处理器可被配置和安排为将每一个本地地址与用于在本地计算机和远程计算机间建立安全通信链路的会话发起协议相关联结合。在一些实施方式中,处理器被配置和安排为生成作为用于在本地计算机和远程计算机间建立安全通信链路的会话发起协议的一部分的本地地址。
在某些实施方式中,每一个所生成的本地地址和安全通信链路的建立间的关联可响应于对域名的请求。在某些实施方式中,每一个所生成的专用地址和安全通信链路的建立间的关联可响应于对安全域名的请求。
在某些实施方式中,远程计算机可与第二本地网络相关联并且可被分配不与第二本地网络已使用的本地地址相冲突的第二本地地址。分配给本地计算机的本地地址和分配给远程计算机的第二本地网络地址可用于允许在本地和远程计算机间通过安全通信链路进行通信的路由。
在一些实施方式中,处理器被配置和安排为针对与本地网络相关联的相应数目的本地计算机生成多个本地地址。在一些实施方式中,处理器可以被配置和安排为生成多个本地地址,该多个本地地址作为与在远程计算机和相应的本地计算机中的每一者间的安全通信链路的建立相关联的会话发起协议的一部分。
在某些实施方式中,安全通信链路可被建立以响应于对相应于域名的地址的请求。在某些实施方式中,安全通信链路可被建立以响应于对相应于安全域名的地址的请求。
在一些实施方式中,域名服务可被配置为通过对存在冲突的多个计算机中的计算机的每一者使用不同的地址,将不同地址用于在一个计算机和多个计算机中的至少那些计算机中的每一者间建立安全通信链路,其中,至少那些计算机中的每一者被指定的地址与已与计算机所附着的本地网络相关联的地址冲突。
在一些实施方式中,域名服务可被配置为当任意计算机被指定的地址与已与该计算机所附着的本地网络相关联的地址冲突时,通过给多个计算机中的全部计算机重新指定不同的地址,以将不同的地址用于多个计算机中的任意计算机。
附图说明
附图仅以示例而非限制的方式描述了根据本技术的一个或多个实施方式。在图中,类似的参考数字指代相同或相似的元素。
图1是许多现有虚拟专用网络为了使能自动化路由所使用的典型架构的图。
图2A是包括与此处所公开的一些实施方式一起使用的网络驱动地址指定的示例的表格。
图2B是图2A中所示的示例地址指定的路由表格。
图3A是包括三个示例专用地址块和其相应的网络掩码的表格。
图3B是使用图3A中所示的专用地址块并且根据此处公开的某些实施方式的协商专用VPN地址的程序的流程图。
图4是根据此处公开的某些实施方式的指定虚拟网络驱动IP地址参数的流程图。
图5是根据此处公开的某些实施方式的选择非冲突专用VPN地址对的流程图。
图6A是根据此处公开的某些实施方式的确定可在地址协商中使用的最大地址块大小的图。
图6B是根据此处公开的某些实施方式的确定可在地址协商中使用的最大地址块大小的流程图。
图7是根据此处公开的某些实施方式的生成非冲突专用地址对的流程图。
图8是使用网络地址转换设备的虚拟专用网络的框图。
图9A示出了在其中本地计算机的设备经由虚拟专用网络与远程计算机的设备通信的网络。
图9B示出了在其中本地计算机使用网络地址转换器设备的网络架构。
图9C示出了在其中本地计算机和远程计算机都采用相应的网络地址转换器设备的网络架构。
图10是根据此处公开的某些实施方式选择网络掩码地址的流程图。
图11是选择非冲突专用网络掩码地址块的程序的流程图。
图12是根据此处描述的某些实施方式的选择非冲突网络地址对的程序的流程图。
具体实施方式
在下面的详细描述中,许多具体细节将通过示例的方式阐述,以提供对相关技术的彻底地了解。然后,显而易见的对于本领域的技术人员可不需要这些细节来实现现有技术。在其他例子中,公知方法、程序、部件和/或电路已经在相对较高等级描述而没有细节,以避免对本技术的方面造成不必要的模糊。
可以理解的是本领域的技术人员根据下面的详细描述将易于理解主题技术的其他配置,下面的详细描述中该主题技术的多种配置被以说明的方式示出并描述。正如将认识到的,该主题技术能具有其他的和不同的配置并且其几个细节能在其他不同的方面被修改,所有这些都不偏离主题技术的范围。相应地,附图和详细描述本质上被认为是说明性的而非限制性的。
用于建立安全通信的技术和其相关的程序在2003年11月7日递交的美国专利申请序列No.10/702,522现在专利号6,839,759、2003年11月18日递交的美国专利申请序列No.10/714,849现在专利号7,418,504、2011年10月31日递交的美国专利申请序列No.13/285,962和2011年12月23日递交的美国专利申请序列No.13/336,790中进行了描述,这些专利申请中的技术整体通过引用结合至此。
虚拟专用网络(VPN)可用于通过在网络上传送数据前加密信息数据分组并在目标源处解密被传送的信息来提供通信安全性。进一步地,VPN可封装和加密专用源地址和目标地址以提供匿名性和允许专用地址被用在每个端,如此以使在各自的源本地网络和目标本地网络上的通信计算机可唯一地被识别。
虚拟专用网络分组常使用非加密的VPN分组源地址和目标地址来转发分组并且最终将其输送至预期目标计算机,该源地址和目标地址通常是公用网络上的外部可见的地址并且被外部网络路由器使用。
进一步地,VPN网络使用被封装的专用地址以使能实现设备到设备的VPN安全性。这提供了致使通过VPN的指向VPN连接的远端上的计算机的所有IP分组的自动化路由的设备级安全性,而不论计算机应用创建和使用IP插口。
协调能支持多个同步VPN连接的非冲突专用地址块分配对网络管理员造成重大挑战,因为这样的协调要求在每个VPN站点的网络管理员商定符合其现有网络配置并且与其他网络站点不冲突的专用地址范围。更复杂的情况是其他计算机可能使用相同的专用地址连接至不同的专用网络,造成分组寻址模糊不清。相应地,期望有更透明的自动化专用地址分配方法。
VPN常使用IP寻址以使得VPN上的计算机能够将分组在加密通道中从VPN上的一个计算机路由至VPN上的另一个计算机。在VPN连接建立前或建立时这些源IP地址必须被分配和指定给参与的计算机。必须完成地址分配以避免与已有或保留的网络地址的路由冲突。可在VPN服务器设备设置期间通过选择专用地址块来执行地址分配,该专用地址块是已知的或者至少被认为不会与参与的计算机的地址冲突。这可对半静态应用具有相当可信度地执行,例如员工旅行计算机的企业VPN服务器。
然而,在更加动态的场景中,其中计算机将VPN连接设置并装配至多个计算机和/或计算机网络,先前选择和管理非冲突安全IP地址变得困难。随着参与的计算机和同步连接的数目的增加,选择和管理的难度呈几何级数增加。本发明提供了一种独特的并且有效的途径来解决该难题而不需呈几何级数增加的计算。
图1示出了可用来使能实现自动化路由的架构。如图1所示,通过创建虚拟网络设备驱动器来实施VPN。如图1所示,包括应用层14和操作系统层16的本地计算机10被配置以运行程序。应用层14包括VPN模块20和用于创建通过VPN传送的数据分组的一个或多个应用22。操作系统层16包括操作系统IP栈24,操作系统IP栈24被配置以布置由应用22所生成的数据。
操作系统分组栈路由器26根据VPN模块20所建立的协议(未示出)通过虚拟网络驱动器28来收集和加密数据(未加密的数据分组A)。真实(real)网络驱动器30通过网络32在VPN连接上将被加密的数据分组(数据分组B)传送至远程计算机34。
例如,如图1所示,在某些实施方式中,未加密的数据分组A通过VPN模块20、应用22、操作系统IP栈24、操作系统分组路由器26和虚拟网络驱动器28被传送。所传送的未加密数据分组A在操作系统分组路由器26和真实网络驱动器30间被加密以形成被加密的数据分组B。真实网络驱动器30通过网络32将被加密的数据分组B传送至远程计算机34。未被加密的和被加密的数据分组A&B都在操作系统IP栈24和操作系统分组路由器26间被传送。
真实网络驱动器30的输出包括专用地址和路由地址块(未示出)。路由地址块包括与VPN相关联的目标地址。
在一些实施方式中,源于例如应用22的网络套接字代码的未加密的专用网络分组A被路由至虚拟网络驱动器28。虚拟网络驱动器28将这些分组转发至VPN模块20。VPN模块20加密这些分组并且创建具有公用地址的被加密的分组B。被加密的分组B经由操作系统分组路由器26被路由至真实网络驱动器30以通过网络32传输。
引入的来自远程计算机34的被加密的分组(未示出)经由真实网络驱动器30被路由至VPN模块20以解密,并且一旦被解密则最终被路由至应用22。
操作系统分组路由器26基于在来自操作系统IP栈24的分组A和B中发现的目标地址做出适当的路由决策。目标地址可对照路由表格被匹配。目标表格可以是基于针对每一个网络设备所规定的网络参数的。
在某些实施方式中,可通过配置VPN模块20以使不同的专用目标地址与不同的公有目标地址和相应的加密秘钥相关联来支持多个同步VPN。
使得所分配的地址不冲突来支持多个同步VPN连接的协调专用地址块的分配对于网络管理员是重大挑战。这要求每个VPN站点的网络管理员商定符合其现有网络配置并且与其他网络站点不冲突的专用地址范围。
图2A是包括可与此处公开的一些实施方式一起使用的网络驱动器地址指定的示例的表格。在图2A所示的示例中,一般由较小网络使用IP地址块,即192.168.0.0,被用于建立通信。例如,真实网络驱动器30(图1所示)使用192.168.0.21的IP地址,真实网络驱动器30的网关(未示出)使用192.168.0.1的IP地址,并且虚拟网络驱动器28(图1所示)使用192.168.3.23的IP地址。网络掩码255.255.255.0是一般与109.168.0.0块一起使用的网络掩码。
如果计算机请求使用该地址块(即192.168.0.0)来与两个或更多个其他计算机建立VPN连接,则可能发生路由冲突。如果连接至其他专用网络的其他计算机使用相同的专用地址块(即192.168.0.0),路由可变的更加复杂。
图2B是图2A中所示的示例地址指定的路由表格。如图2B所示,地址范围从192.168.3.0至192.168.3.255的分组被路由至虚拟网络驱动器28,以及地址范围从192.168.0.0至192.168.0.255的分组被路由至真实网络驱动器30。所有其他分组经由真实网络驱动器30被发送至在192.168.0.1处的本地网关计算机。
基于图2B中所示的地址范围,为了避免地址冲突,可被远程计算机34使用的专用VPN地址需要192.168.3.0至192.168.3.254的范围,将192.168.3.23排出在外。相应地,如果在远程计算机34的虚拟网络驱动器地址不与地址块192.168.3.*对应,则可能发生冲突。此外,如果远程计算机正在使用IP地址192.168.3.23或处于使用IP地址192.168.3.23的现有VPN中,则可能发生冲突。随着参与的计算机增加,这种冲突的可能性也增加了。
此处公开的某些实施方式通过分配不与本地计算机的本地专用地址块冲突的可用于本地计算机的专用地址的块以用于生成供虚拟网络驱动器28使用的可能的专用地址来防止地址冲突。例如,在一些实施方式中,不与本地计算机的本地专用地址块冲突的可用于本地计算机的专用地址的最大块可以被分配。从所分配的地址块中选择(例如,随机地)IP地址并且所选择的IP地址和其相应的网络掩码与虚拟网络驱动器28相关联。
在一些实施方式中,在本地计算机10和远程计算机34间的VPN设置协商期间,所选择的地址和网络掩码可被用于提出可能的专用地址。例如,具有相似的生成地址和其相应的网络掩码的集合的远程计算机34可选择地址/网络掩码的兼容对,该地址/网络掩码的兼容对允许两端(即本地计算机10和远程计算机34)经由各自的虚拟网络驱动器28路由专用地址而没有冲突。
图3A是包括三个示例专用地址块和其相应的网络掩码的表格。
典型地,每个IP地址包括4个八位字节并且IP地址中的每一个八位字节用8个比特来表示。例如,在IP地址192.168.0.0中,八位字节1被设置为192,八位字节2被设置为168,八位字节3被设置为0,以及八位字节4被设置为0。
每个八位字节值是用于表示二进制值的十进制数,并且每个二进制值可包括8个比特,8个比特中的每一个比特可被设置为0或1。如果比特被设置为1,该比特被认为是活跃的(active),并且如果其被设置为0,该比特被认为是不活跃的。在上面的示例中,八位字节1的值192可用下面的8个数:128、64、32、16、8、4、2、1和二进制值11000000来计算。因为二进制值11000000仅将前两个比特设置为活跃,用于定义第一个八位字节的8个值中的仅前两个值用于计算该八位字节的值,给出的八位字节的值是128+64=192。
为适应不同的网络大小,IP地址空间被分为三部分,即覆盖从(0.x.x.x)到(126.x.x.x)的IP地址范围的A类,覆盖从(128.x.x.x)到(191.x.x.x)的IP地址范围的B类,以及覆盖从(192.x.x.x)到(253.255.255.255)的IP地址范围的C类。
如图3A所示,分别具有网络掩码255.255.0.0、255.240.0.0和255.0.0.0的专用网络地址块192.168.0.0、172.16.0.0和10.0.0.0常被专用网络所使用。
图3B是根据此处公开的某些实施方式的用于协商专用VPN地址对的程序的流程图。在一些实施方式中,专用地址对可从图3A中所示的专用地址块中选出。
如图3B中所示,专用VPN地址对协商可以在计算机10端通过分配可用于本地计算机10并且不与本地计算机10的现有专用地址块冲突的专用地址的块而在305处开始。一旦被分配,专用地址块被用于生成多个专用地址,在305处该多个专用地址被指定给本地计算机10的虚拟网络驱动器28(图1所示)。类似地,在远程计算机侧34,可用于远程计算机34并且不与远程计算机34现有的专用地址块冲突的专用地址块被分配并且被用于生成多个专用地址,在310处该多个专用地址被指定给远程计算机34的虚拟网络驱动器(未示出)。
在某些实施方式中,被指定给虚拟网络驱动器的专用地址可以从所分配的地址范围中随机生成。在某些实施方式中,被指定给虚拟网络驱动器的专用地址可以以伪随机的方式生成。在一些实施方式中,被指定给虚拟网络驱动器的专用地址可从有效专用地址列表中选择。例如,在一些实施方式中,所分配的地址可顺序地排列并且编号服务(未示出)可选择序列中的第一个地址并将所选择的地址指定给虚拟网络驱动器。本地计算机10和远程计算机34可使用相似或不同的选择方案来选择指定给其各自的虚拟网络驱动器的地址。
地址协商在本地计算机10侧通过在325转发本地计算机的非冲突地址ip_randloc和其相应的网络掩码mask_maxloc至远程计算机34而在315处开始。如上面看到的,可使用本领域已知的多种选择方法从所分配的块中的地址间选择非冲突地址。例如,在某些实施方式中,非冲突地址被随机地生成。
在远程计算机34侧,在320,远程计算机等待地址协商程序的发起。一旦由本地计算机10转发的地址被远程计算机34收到,地址协商开始。一旦该地址被收到,远程主机34检查收到的地址以确定地址中的任意地址是否与已被远程主机34使用的地址冲突,并且在330处从不与其现有地址冲突的地址中选择非冲突地址对iploc and iprem
远程计算机34在340处将所选择的iploc and iprem转发至本地计算机10。本地计算机10在335处接受由远程计算机34所转发的地址对并在345处使用该地址对以创建和发起VPN对话。在350处,远程计算机34也使用所选择的地址对来创建和发起新的VPN对话。
图4是根据此处公开的某些实施方式的指定虚拟网络驱动器的IP地址参数的流程图。通过在420初始化与此处描述的实施方式一起使用的一个或多个地址向量对,指定虚拟网络驱动器的IP地址参数的程序在410处开始。该地址向量对可包括一个或多个专用地址块以及其相应的网络掩码。例如,在某些实施方式中,地址块对可用于初始化地址向量对,如此使得:
IPallocated={IP Block0,IP Block1,…,IP Blockk}
Maskallocated={Mask Block0,Mask Block1,…,MaskBlockk}。
举例来说,在某些实施方式中,图3A中所示的地址块对可用于初始化地址向量对,如此使得:
IPallocated={191.168.0.0,172.16.0.0,10.0.0.0}
Maskallocated={255.255.0.0,255.240.0.0,255.0.0.0}。
一旦在420处地址块被初始化,计算机(例如本地计算机10和/或远程计算机34)确定被初始化的地址向量中的任意地址是否与地址冲突。更具体地,在一些实施方式中,计算机可在430处确定所有本地使用的专用地址块并且保留的已被使用的专用地址块以由计算机本地使用。在某些实施方式中,计算机可保持保留的地址块和其相关联的网络掩码的向量。例如:
IPreserved={IPreserved_0,IPreserved_1,…,IPreserved_k-1}
Maskreserved={Maskreserved_0,Maskreserved_1,…,Maskreserved_k-1}。
在440处通过从被初始化的地址向量中的地址中发现最大地址块来确定可用在地址协商中的最大地址块大小,该被初始化的地址向量不包括任何与计算机已使用的那些地址冲突的地址。更具体地,当确保所选择的地址不与被包括在保留地址向量中的地址重叠的时,从被包括在被初始化的地址块中的每一者中的地址中选择地址。更具体地,选择地址以使得所选择的地址(IPselected)满足下面的格式:
Figure BDA0001331984060000151
Figure BDA0001331984060000152
例如,假设k=0,1,…,n,对于每一个k,其中n是有限数,IP地址和网络掩码字段的最大地址块大小IPselected_MAX_k和Maskselected_MAX_k可分别确定为:
Figure BDA0001331984060000153
Figure BDA0001331984060000154
Figure BDA0001331984060000155
Figure BDA0001331984060000156
Figure BDA0001331984060000157
相应地,Maskselected_k是的Maskallocated_k子集并且不与Maskreserved_k块重叠。类似地,IPselected_k是的IPallocated_k子集并且不与IPreserved_k块重叠。
在450处,多个地址(例如,专用地址)被从最大地址块中选出并且被指定给本地和远程计算机的虚拟网络驱动器。在某些实施方式中,地址可被随机地选择。在一些实施方式中,地址可被伪随机地选择。也可使用本领域已知的其他选择方案。
例如,在一些实施方式中,假设k=0,1,…,n,对于每个k,其中n是有限数,可根据下面的格式选择(例如,随机地)地址:
{IPselected_k&Maskselected_k}=(IPselected_MAX_k&Maskselected_MAX_k)|rand|~(IPselected_MAX_k&Maskselected_MAX_k),
其中rand是随机生成的32比特值,&是按位与(AND)操作符,|是按位或(OR)操作符,以及~是按位非(NOT)操作符。生成的{IPselected_k&Maskselected_k}地址块被指定给虚拟网络驱动器。
图5是根据此处的某些实施方式的选择非冲突专用VPN地址对的流程图。在一些实施方式中,在501处,可通过初始化索引值k,例如,通过将其值设置为零(即k=0),地址协商可开始。在510处,对照最大地址块大小kmax,对k值进行检查。
如果k≥kmax,在515处生成新的非冲突专用地址对。在520处生成的非冲突专用地址对被指定给本地计算机10的虚拟网络驱动器(用IPselected_local_k来标记)并且还被指定给远程计算机34的虚拟网络驱动器(用IPselected_remote_k来标记)。在530处,生成的地址,即IPselected_local_k和IPselected_remote_k,被指定作为可用于在本地计算机和远程计算机间建立通信的非冲突地址。
如果k≤kmax,在525处,此处描述的地址协商程序确定本地计算机的第k个所选择的IP地址块(即IPselected_local_k)是否在远程计算机的有效地址集合内(例如,如果该地址正在被远程计算机或与远程计算机相关联的设备使用,则该地址不是有效的)。更具体地,地址协商程序确定下面关系是否成立:
IPselected_local_k∈{IPrand_rem_k,Maskmax_rem}
其中{IPrand_rem_k,Maskmax_rem_k}是有效远程计算机地址中的第k块。
如果本地计算机的第k个所选择的IP地址块(即IPselected_local_k)被确定不在远程计算机的有效地址的集合内,索引k的值被重新设置,例如通过设置k=k+1,并且在510处再次对照最大地址块大小kmax对k值进行检查。一旦索引k的值被重新设置,程序继续进行以验证地址块中的下一个地址(即第k+1个地址块)的可能的冲突。
然而,在确定本地计算机的第k个所选择的IP地址块被包含在远程计算机的有效地址的集合内的情况下,在535处,此处描述的地址协议程序通过确定远程计算机的第k个所选择的IP地址块(即IPselected_remote_k)是否位于本地计算机的有效地址的集合内来继续进行(例如,如果地址正在被本地计算机或与本地计算机相关联的设备使用,则该地址不是有效的)。更具体地,地址协商程序确定下面关系是否成立:
IPselected_remote_k∈{IPrand_loc_k,Maskmax_loc_k},
其中{IPrand_loc_k,Maskmax_loc_k}是有效本地计算机地址的第k个块。
如果远程计算机的第k个所选择的IP地址块IPselected_remote_k被确定不在本地计算机的有效地址的集合内,索引k的值被重新设置,例如通过设置k=k+1,并且在510处再次对照最大地址块大小kmax对k值进行检查。一旦索引k的值被重新设置,程序继续进行以验证地址块中的下一个地址(即第k+1个地址块)的可能的冲突。
然而,在确定远程计算机的第k个所选择的IP地址块被包含在本地计算机的有效地址的集合内的情况下,在540处,此处描述的地址协商程序通过确定本地计算机的第k个所选择的IP地址块(即IPselected_local_k)和远程计算机的第k个所选择的IP地址块(即IPselected_remote_k)是否相同来继续执行。更具体地,在一些实施方式中,该程序可确定下面的关系是否成立:
IPselected_local_k!=IPselected_remote_k
其中操作符!是逻辑“非”操作符。
如果本地计算机的第k个所选择IP地址块IPselected_local_k被确定和远程计算机的第k个所选择的IP地址块IPselected_remote_k相同(即,IPselected_local_k!=IPselected_remote_k为假),则索引k的值被重新设置,例如通过设置k=k+1,并且在510处再次对照最大地址块大小kmax对k值进行检查。一旦索引k的值被重新设置,程序继续进行以验证地址块中的下一个地址(即第k+1个地址块)的可能的冲突。
然而,如果本地计算机的第k个所选择的IP地址块IPselected_local_k被确定与远程计算机的第k个所选择的IP地址块即IPselected_remote_k不相同(即,IPselected_local_k!=IPselected_remote_k为真),在550,此处描述的地址协商程序通过确定本地计算机的第k个所选择的IP地址块即IPselected_local_k是否属于由本地计算机的所有保留地址(即,正在被本地计算机或与本地计算机相关联的设备使用的地址)和远程计算机的所有保留地址(即,正在被远程计算机或与远程计算机相关联的设备使用的地址)所定义的集合来继续执行。此外,此处描述的地址协商程序通过确定远程计算机的第k个所选择的IP地址块即IPselected_remote_k是否属于由本地计算机的所有保留地址(即,正在被本地计算机或与本地计算机相关联的设备使用的地址)和远程计算机的所有保留地址(即,正在被远程计算机或与远程计算机相关联的设备使用的地址)所定义的集合来继续执行。更具体地,程序确定下面的关系是否成立:
Figure BDA0001331984060000181
以及
Figure BDA0001331984060000182
如果本地计算机的第k个所选择的IP地址Pselected_local_k被确定属于保留的VPN地址所定义的集合(即,集合{IPreserved_local,IPreserved_remote},由本地计算机的所有保留地址和远程计算机的所有保留地址所定义),即如果
Figure BDA0001331984060000183
被确定为假,或者如果远程计算机的第k个所选择的IP地址IPselected_remote_k被确定属于保留VPN地址所定义的集合(即,集合{IPreserved_local,IPreserved_remote},由本地计算机的所有保留地址和远程计算机的所有保留地址所定义),即如果
Figure BDA0001331984060000184
Figure BDA0001331984060000185
被确定为假,则索引k的值被重新设置,例如通过设置k=k+1,并且在510处再次对照最大地址块大小kmax对k值进行检查。一旦索引k的值被重新设置,程序继续进行以验证地址块中的下一个地址(即第k+1个地址块)的可能的冲突。
然而,如果本地计算机的第k个所选择的IP地址Pselected_local_k被确定不属于保留VPN地址所定义的集合(即,如果
Figure BDA0001331984060000186
Figure BDA0001331984060000187
被确定为真)并且远程计算机的第k个所选择的IP地址IPselected_remote_k被确定不属于保留VPN地址所定义的集合(即,如果
Figure BDA0001331984060000191
被确定为真),在530处,此处所描述的地址协商程序通过指定IPselected_local_k和IPselected_remote_k作为可用于在本地计算机和远程计算机间建立通信的非冲突地址来继续进行。
图6A是根据此处公开的某些实施方式的用于确定可用在地址协商中的最大地址块大小的流程图。如之前的说明,在610处,具有起始地址startk和结束地址endk的地址块可被分配以在建立VPN连接中使用。例如,在某些实施方式中,地址块192.168.0.0或255.255.0.0可被分配。所分配的地址块可包括当前正在被计算机(例如,本地计算机10或远程计算机34)或其相关联的设备使用的多个重叠地址。在620处,这些重叠地址被识别。在630处,剩余地址(即,非冲突地址)也被识别。在640处,可以从被识别的非冲突地址中识别最大的非冲突地址块。识别的最大块可被选为最大块。在一些实施方式中,识别的最大块的部分可被选择,条件是所选择的部分大于其他非冲突块。在一些实施方式中,可通过限制能由IP地址和相应的路由网络掩码定义的地址块来完成地址块的选择。该网络掩码通常是mask=~(2n-1)的形式,其中2≤n≤32,其中~操作符是对32比特整数取反。在此情况下start=ip&mask并且end=start+(2n-1)。使用这个公式,这个块中的任意和所有的IP地址(addr)将满足addr&mask=ip&mask。
图6B是根据此处公开的某些实施方式的用于确定可用在地址协商中的最大地址块大小的流程图。如之前的说明,为了确定最大地址块大小,在610处,首先选择初始专用地址块。也确定保留地址块,保留地址块包括计算机(例如,本地计算机10和远程计算机34)和其相关联的设备已经在使用的地址。然后通过确定还未被保留地址块占有的最初所选择的专用地址块来识别有效地址块。在某些实施方式中,可通过得到初始地址块和保留地址块的交集并且从地址块的初始集合中减去源于交集的集合来确定有效地址块。具体地:
有效IP地址=初始IP地址-(初始IP地址∩保留IP地址),
其中∩是集合交集操作符。
在640处,可通过将有效IP地址块中的IP地址块相互比较并选出最大块以得到最大地址块。
图7是根据此处公开的某些实施方式的用于生成非冲突专用地址对的流程图。为了确定不与本地计算机10(图1)和远程计算机34(图1)冲突的地址对,此处公开的某些实施方式在710处可确定本地计算机10和远程计算机34间共有的最大地址块。在720处,可从被包括在共有地址块中的地址中选择地址对。在某些实施方式中,可从被包括在共有地址块中的地址中随机地选择地址对。在某些实施方式中,可从被包括在共有地址块中的地址中伪随机地选择地址对。在一些实施方式中,所选择的地址可从被包括在共有地址块中的地址列表中被顺序地选择。可使用本领域已知的其他选择方案。
一旦地址对被从包括在共有地址块中的地址中选出,在730,对照虚拟专用网络已在使用中的地址检查所选择的地址以确定其是否已在使用中(即,所选择的地址对是否是保留地址)。例如,可以下面的方式验证地址对:
Figure BDA0001331984060000201
其中IPselected_local表示选中的用于本地计算机的地址,IPselected_remote表示选中的用于远程计算机的地址,IPreserved_local表示本地计算机所保留的地址,IPreserved_remote表示远程计算机所保留的地址,以及&是逻辑“与”(“and”)操作符。
如果所选择的地址对被视为属于本地计算机10和远程计算机34的保留地址(即,如果
Figure BDA0001331984060000214
Figure BDA0001331984060000211
为假),则从包括在共用地址块中的地址中选择另一个地址。
如果所选择的地址对被视为不属于本地计算机10和远程计算机34的保留地址(即,如果
Figure BDA0001331984060000212
Figure BDA0001331984060000213
为真),则在740,所选择的地址对的值IPselected_local和IPselected_remote被用于对虚拟网络驱动器的指定。
图8是使用网络地址转换设备将专用网络的本地设备810连接至公用网络840的系统的框图。专用网络的设备810可使用本地网络地址块815来保持与专用网络的连接。设备810通过网络地址转换(NAT)设备820和VPN网关830连接至公用网络(例如,因特网)840。
NAT 820将本地设备810使用的本地地址块815中的本地网络地址转换为相应的专用IP地址825,该专用IP地址825可被VPN网关830使用来建立通过公用网络840的连接。
VPN网关830采用专用地址825来保持在本地设备810通过VPN通道与远程设备间的的通信。VPN网关830还可采用静态或动态指定的公用IP地址以连接至公用网络840。
图9A-9C包括使用网络地址转换设备将专用网络的本地设备810连接至公用网络840的方框图系统。
图9A示出了在其中本地计算机810L的设备与远程计算机810R的设备经由虚拟专用网络进行通信的网络。具体地,每一个设备810L和810R使用本地IP地址以连接至相应的VPN网关830L和830R。反过来,每一个VPN网关830L和830R使用静态或动态指定的公用IP地址(例如,使用由网络的互联网服务提供商(ISP)提供的动态主机配置协议(DHCP))将其相应的设备连接至公用网络840。
图9B示出了在其中本地计算机810L使用网络地址转换器设备(NAT)820的网络架构。具体地,本地计算机810使用本地地址块与NAT 820L进行通信。NAT 820L将本地地址转换为VPN网关830L在建立与本地计算机810L的连接中使用的相应的专用地址。VPN网关830L采用静态或动态指定的公用地址将本地计算机连接至公用网络840。在远程计算机侧,VPN网关830R使用静态或动态指定的公用IP地址与公用网络840通信。VPN网关830R还使用被指定给远程计算机810R的专用地址与远程计算机810R通信。
图9C示出了在其中本地计算机810R和远程计算机810L都采用相应的NAT设备820R和820L的网络架构。具体地,本地计算机810使用本地地址块与NAT 820L通信。NAT 820L将本地地址转换为VPN网关830L在建立与本地计算机810L的连接中使用的相应的专用地址。VPN网关830L采用静态或动态指定的公用地址将本地计算机连接至公用网络840。在远程计算机侧,VPN网关830R使用专用地址块与其相应的NAT设备820R通信。NAT设备820R将专用地址转换为用于与远程设备810R通信的相应的本地地址。
例如在图9C中,如果在820/830L后的网络是192.168.1.0/255.255.255.0,其中设备810L具有地址192.168.1.5,并且在820/80R后的网络是10.10.1.0/255.255.255.0,其中设备810R具有地址10.10.1.4,则这两个局域网(LAN)正在使用非冲突专用地址块,该非冲突专用可用于代替VPN的随机生成块。然而,如果在820/830L后的左侧网和在820/830R后的右侧网都使用192.168.1.0/255.255.255.0,使用其现有的LAN地址至彼此的VPN通道可能有冲突地址。在这种情况下,某些实施方式生成用于每一侧的非冲突地址。举例来说,10.10.1.0/255.255.255.0用于左侧,并且10.10.2.0/255.255.255.0用于右侧。左NAT设备对192.168.1.0地址执行一对一NAT,将地址192.168.1.0表示为通过VPN至右LAN的地址10.10.1.0,以及右LAN也对192.168.1.0地址执行一对一NAT,将地址192.168.1.0表示为通过VPN通道至左LAN的地址10.10.2.0。注意当LAN地址冲突时左侧和右侧都需要生成的专用地址,如此以使每一侧都能通过VPN与其本地设备和远程设备通信。如果仅使少数LAN设备需要对通过VPN至其他参与方810有效,则经由NAT设备820生成的用于表示VPN的地址块不需要和LAN地址块的大小相同。它可以是更小的地址块,其中在NAT设备820中仅VPN可接入设备被转换为VPN可接入地址。
在一些实施方式中,当选择用于LAN到LAN VPN的地址块时,每个LAN可使用不与其他LAN冲突的专用地址。在这种实施方式中,不需要生成地址块(例如,随机地)并且LAN地址可被使用。如果每个LAN也和多个其他LAN一起占有VPN,这些地址块也不与具有在其中路由分组的VPN的所有参与方冲突。在一种情况下,有地址块冲突,某些实施方式可生成非冲突地址以表示LAN上的地址,该LAN有冲突地址。该LAN的VPN设备可执行一对一的网络地址转换(NAT),在其中LAN上的每个冲突地址被修改为表示对等VPN设备的生成的地址块中的地址。在仅LAN上的地址的子集需要使得经由VPN有效的情况下,更小的生成地址块可用于表示LAN,其中VPN有效地址针对使得有效的更小的生成地址块中的地址而被一到一的转换并且通过VPN被路由。
在一些实施方式中,唯一的专用地址可用于执行主机到主机、主机到网络或者网络到网络的VPN通道中的至少一者。例如,计算出的通道地址可被发布给域名服务(DNS),如此以使VPN对等端能经由VN通道和DNS请求找到新的主机。当VPN设备在执行具有多个对等主机和/或网络的多个VPN时,新的VPN可被引入,在其中VPN通道地址或地址块可能对于新VPN设备不是有效的。为了克服这些困难,一些实施方式可允许各种VPN对等端经由不同地址到达设备。在这些实施方式中,对等端将多个地址发布给安全DNS并且安全DNS基于请求将名称解析为适当的地址。
在一些实施方式中,现有VPN可被再次协商以确保所有VPN使用相同的VPN地址或地址块。这对于安全DNS有影响。在该实施方式中,被命名的设备被用一个唯一的地址来表示,而与请求者无关,并且针对该名称仅一个地址被发布给DNS。
在一些实施方式中,包括名字和VPN地址对的DNS服务仅对VPN设备有效。在某些实施方式中,至DNS服务的接入可能是受限的。例如,DNS服务可被限定于某些因特网或网络地址的集合,或者可能需要认证。
在某些实施方式中,VPN地址可被计算出和/或VPN可被实例化(instantiated)以响应于DNS请求。在这些实施方式中,发起VPN的主机或网络可接收VPN请求,确定该主机/网络是否有权限来与对等主机或网络进行VPN,执行交换以计算专用地址并建立VPN,设置VPN以及已知用于对等端的VPN IP地址则针对DNS请求返回这一地址,其中触发DNS请求的通信现在发生在新创建的VPN上。
图10是根据此处公开的某些实施方式的用于选择网络掩码地址的流程图。在一些实施方式中,在1001处,程序可通过初始化索引值k开始,例如,通过将该值设置为0(即,k=0)。在1010处,对照最大地址块大小kmax,对k值进行检查。
如果k≥kmax,在1015处生成新的非冲突专用地址对。在1025处,生成的非冲突专用地址对被指定给本地计算机10的虚拟网络驱动器(被用IPselected_local_k表示)并且也被指定给远程计算机34的虚拟网络驱动器(被用IPselected_remote_k表示)。在1035处,生成的地址即IPselected_local_k和IPselected_remote_k用于选择可用于最小网络掩码地址块,该最小网络掩码地址块可以被用于建立本地计算机和远程计算机间的通信。
如果k≤kmax,此处所描述的程序确定本地计算机的第k个所选择的IP地址块即IPselected_local_k是否被包含在远程计算机的有效地址的集合内(例如,在1020处,在预分配的不与远程计算机或与远程计算机相关联的设备正在使用的地址冲突的地址块内)。具体的,该程序确定下面的关系是否成立
IPselected_local_k∈{IPselected_remote,Maskmax_Remote}。
如果本地计算机的第k个所选择的IP地址块IPselected_local_k未被包含在远程计算机的有效地址的集合中,索引k的值被重新设置,例如通过设置k=k+1,并且在1010处再次对照最大地址块大小kmax对k值进行检查。一旦索引k的值被重新设置,程序继续进行以验证地址块中的下一个地址(即第k+1个地址块)的可能的冲突。
然而,在确定第k个所选择的本地IP地址块被包含在远程计算机的有效地址的集合内的情况下,在1030处,此处所描述的程序通过确定远程计算机的第k个所选择的IP地址块即IPselected_remote_k是否与本地计算机的现有地址(例如,如果该地址正在被本地计算机或与本地计算机相关联的设备使用)或已被本地计算机保留的最大网络掩码值冲突来继续进行。具体地,地址协商程序确定下面关系是否成立
IPselected_remote_k∈{IPreserved_local,Maskmax_local}。
如果远程计算机的第k个所选择的IP地址块IPselected_remote_k不在本地计算机的有效地址的集合内,索引k的值被重新设置,例如通过设置k=k+1,并且在1010处再次对照最大地址块大小kmax对k值进行检查。一旦索引k的值被重新设置,程序继续进行以验证地址块中的下一个地址(即第k+1个地址块)的可能的冲突。
然而,在确定第k个所选择的远程IP地址块被包含在本地计算机的有效地址的集合内的情况下,在1040处,此处所描述的程序通过确定本地计算机的第k个所选择的IP地址块即IPselected_local_k是否与远程计算机的第k个所选择的IP地址块即IPselected_remote_k相同来继续进行。具体地,在一些实施方式中,程序确定下面的关系是否成立:
IPselected_local_k!=IPselected_remote_k
其中操作符!是逻辑“非”(“not”)操作符。
如果本地计算机的第k个所选择的IP地址块IPselected_local_k被确定和远程计算机的第k个所选择的IP地址块即IPselected_remote_k相同(即,IPselected_local_k!=IPselected_remote_k为假),则索引k的值被重新设置,例如通过设置k=k+1,并且在1010处再次对照最大地址块大小kmax对k值进行检查。一旦索引k的值被重新设置,程序继续进行以验证地址块中的下一个地址(即第k+1个地址块)的可能的冲突。
然而,如果本地计算机的第k个所选择的IP地址块IPselected_local_k被确定与远程计算机的第k个所选择的IP地址块即IPselected_remote_k不相同(即,IPselected_local_k!=IPselected_remote_k为真),则在1050处,此处所描述的程序通过确定本地计算机的第k个所选择的IP地址块即IPselected_local_k是否属于由本地计算机的所有保留地址(即,本地计算机或与本地计算机相关联的设备正在使用的地址)和远程计算机的所有保留地址(即,远程计算机或与远程计算机相关联的设备正在使用的地址)所定义的集合来继续进行。此外,此处描述的地址协商程序通过确定远程计算机的第k个所选择的IP地址块即IPselected_remote_k是否属于由本地计算机的所有保留地址(即,本地计算机或与本地计算机相关联的设备正在使用的地址)和远程计算机的所有保留地址(即,远程计算机或与远程计算机相关联的设备正在使用的地址)所定义的集合来继续进行。具体地,程序确定下面的关系是否成立
Figure BDA0001331984060000261
并且
Figure BDA0001331984060000262
如果本地计算机的第k个所选择的IP地址块即IPselected_local_k被确定属于由保留VPN地址所定义的集合(即,集合{IPreserved_local,IPreserved_remote},由本地计算机的所有保留地址和远程计算机的所有保留地址所定义),即如果
Figure BDA0001331984060000271
被确定为假,或者远程计算机的第k个所选择的IP地址块IPselected_remote_k被确定属于由保留VPN地址所定义的集合(即,集合{IPreserved_local,IPreserved_remote},由本地计算机的所有保留地址和远程计算机的所有保留地址所定义),即如果
Figure BDA0001331984060000272
Figure BDA0001331984060000273
被确定为假,则索引k的值被重新设置,例如通过设置k=k+1,并且在1010处再次对照最大地址块大小kmax对k值进行检查。一旦索引k的值被重新设置,程序继续进行以验证地址块中的下一个地址(即第k+1个地址块)的可能的冲突。
然而,如果本地计算机的第k个所选择的IP地址块IPselected_local_k被确定不属于由保留VPN地址所定义的集合(即,如果
Figure BDA0001331984060000274
Figure BDA0001331984060000276
被确定为真)并且远程计算机的第k个所选择的IP地址块IPselected_remote_k被确定不属于由保留VPN地址所定义的集合(即,如果
Figure BDA0001331984060000275
被确定为真),在1035处,此处描述的程序可通过选择可用于在本地计算机和远程计算机间建立通信的最小网络掩码地址块来继续进行。
图11是用于选择非冲突专用网络掩码地址块的程序的流程图。该程序通过在1110处确定所需专用本地地址的总数开始。例如,在某些实施方式中,所需地址的总数可能是2n,其中n是有限数。专用网络掩码地址的最大数也被初始化。例如,在一个实施方式中,提供所需地址的总数的网络掩码被确定为232-2n(因为每个IP地址是32比特地址)。
在1130处,所需专用本地地址的总数与专用网络地址的最大数相比较(Maskmax_local<Maskprivate_local),并且如果所期望的专用本地地址的数目大于专用网络掩码地址的数目,则在1150处生成新的参考图7所述的非冲突地址对IPselected_local和IPselected_remote
然而,在1140处,如果所期望的专用本地地址的数目小于专用网络掩码地址的数目,则指定给网络掩码地址的最大数被选为非冲突掩码地址。
图12是根据此处描述的某些实施方式的用于选择非冲突网络地址对的程序的示例。为了确定能用于在两个网络设备(即设备1和设备2)间建立通信的非冲突地址对,在1210处,从不包括设备1的保留地址(RA1)的专用地址池(PAP)中选出第一设备的候选首选地址(PA1)。具体地,设备1的候选首选地址(PA1)被选出以使得:
Figure BDA0001331984060000281
类似地,在1220处,从不包括设备2的保留地址(RA2)的专用地址池(PAP)中选出第二设备的候选首选地址(PA2)。具体地,设备2的候选首选地址(PA2)被选出以使得:
Figure BDA0001331984060000282
在1230处,从被包括在设备1的候选首选地址(PA1)和设备2的候选首选地址(PA2)中的地址中选出兼容IP地址对。
如果找到候选地址的兼容地址,则在1250处,该地址被添加到其他设备的保留地址。具体的,如果选中的设备1的地址IPA1被确定与选中的用于设备2的地址IPA2兼容,则所选择的用于设备1的地址IPA1被添加至设备2的保留地址RA2,并且所选择的用于设备2的地址IPA2被添加至设备1的保留地址RA2。
如果未找到候选地址的兼容地址,在1260处,选择用于设备1的新的兼容地址IPA1。从不包括设备1的保留地址(RA1)和设备2的所选择的地址IPA2的专用地址池(PAP)中选出新的兼容地址对。如果针对设备1新的兼容地址IPA1被成功获得,则在1250处该兼容地址对被添加至设备1和设备2的保留地址。具体地,IPA1被添加至设备2的保留地址RA2,并且所选择的设备2的地址IPA2被添加至设备1的保留地址RA2。
如果未找到候选地址的兼容地址,在1270处,选择用于设备2的新的兼容地址IPA2。从不包括设备2的保留地址(RA2)和设备1的所选择的地址IPA1的专用地址池(PAP)中选出新的兼容地址对。如果针对设备2新的兼容地址IPA2被成功获得,则该兼容地址对被添加至设备1和设备2的保留地址。具体地,IPA1被添加至设备2的保留地址RA2,并且所选择的设备2的地址IPA2被添加至设备1的保留地址RA2。
如果未找到候选地址的兼容地址,在1280处,分别选择用于设备1和设备2的新地址IPA1和IPA2。从不包括设备1的保留地址(RA1)的专用地址池(PAP)中选出新地址IPA1,以及类似地,从不包括设备2的保留地址(RA2)的专用地址池(PAP)中选出新地址IPA2。在1250处,该新地址对被添加至设备1和设备2的保留地址。具体地,IPA1被添加至设备2的保留地址RA2,以及设备2的所选择的地址IPA2被添加至设备1的保留地址RA2。
虽然前面已经描述了被认为是最好的模式和/或其他示例的实施方式,应该理解在其中可做出多种修改并且此处公开的主题可以各种各样的形式和示例来实施,以及这些技术可应用于众多应用,此处描述的仅是其中的一些。下面的权利要求的目的是要求保护落在本技术的真正范围内的任意和全部应用、修改和变型。
除非另作说明,否则本说明书中陈述的并包括在随附权利要求中所有测量、值、等级、位置、幅度、大小以及其他规格是近似的而非精确的。其目的是具有与其所涉及的和其所属于的领域中常见的功能一致的合理范围。
保护范围仅由随附权利要求唯一地限定。该范围意图并且应当被理解为与根据说明书和下面的历史档案所理解的权利要求中使用的语言的常规含义一致并且包括所有等同的结构和功能。然而,权利要求中没有一个意图包括不满足专利法101、102或103款的保护主题,并且它们也不应当被以这样的方式来理解。特此拒绝对该保护主题的任何非计划(unintended)的领会。
除了上述声明,没有任何声明或阐述的内容意图或应该被理解以导致任意部件、步骤、特征、目的、益处、优势或等同对于公众的贡献,无论其是否在权利要求中被引用。
将被理解的是本文中使用的术语和表述具有与在其各自相应的查询和研究领域一致的常规含义,除非本文阐明了特定的含义。例如第一和第二等的相关术语可以仅用于将一个实体或行动与另一个相区分,而不要求或暗示该实体或动作间的实际关系或顺序。术语“包括(comprises)”、“包括(comprising)”或其任意其他变化的目的是覆盖非排他的包含,如此使得包括一系列元素的过程、方法、条款或装置不仅包括那些元素还包括未被专门列出的或固有的其他元素。跟在“一个”或“一个”之后的元素不是进一步的限定,不用于排除在包括该元素的过程、方法、条款或装置中存在其他的相同的元素。
本公开的摘要被提供以允许读者快速确定本技术公开的本质。可理解其不用于理解或限定权利要求的范围或含义。此外,在前述具体实施方式中,能看出各种特征在各种实施方式中被组在一起,以达到简化本公开的目的。公开的方法不该被理解为反映要求保护的实施方式需要比每个权利要求中专门列举的更多的特征的目的。当然,正如随附权利要求所反映的,发明主题展现的少于单个公开的实施方式的全部特征。因此,据此将随附权利要求结合至具体实施方式,每个权利要求自身作为单独地要求保护的主题。
实施例
1、一种当通过公用网络在与本地网络相关联的本地计算机和位于本地网络之外的并与远程网络相关联的远程计算机之间建立安全通信链路时用于自动避免地址冲突的系统,该系统包括:
至少一个处理器,被配置和安排为:
(a)确定被保留用于所述本地网络使用的地址和被保留用于所述远程网络使用的地址;
(b)从多个有效本地地址中选择至少一个本地地址,所选择的本地地址是不与所述本地网络的保留地址和所述远程网络的保留地址相冲突的地址;以及
(c)将所选择的本地地址与所述本地计算机和所述远程计算机间的安全通信链路的建立相关联结合。
2、根据实施例1所述的系统,其中当建立所述安全通信链路时,所选择的地址被用于寻址所述本地计算机。
3、根据实施例1所述的系统,其中至少一个远程地址选自多个有效远程地址,所选择的远程地址是不与所述远程网络的保留地址和所述本地计算机的保留地址相冲突的地址;以及其中所选择的本地地址和所选择的远程地址结合所述安全通信链路的建立而被使用。
4、根据实施例3所述的系统,其中所选择的本地地址是不与所选择的远程地址冲突的地址。
5、根据实施例3所述的系统,其中所选择的远程地址是不与所选择的本地地址冲突的地址。
6、根据实施例3所述的系统,其中所选择的远程地址被添加至所述本地网络的保留地址。
7、根据实施例6所述的系统,其中当所述安全连接断开时,所选择的远程地址被从所述本地网络的保留地址中移除。
8、根据实施例3所述的系统,其中所选择的本地地址被添加至所述远程网络的保留地址。
9、根据实施例8所述的系统,当所述安全连接断开时,所选择的本地地址被从所述远程网络的保留地址中移除。
10、根据实施例3所述的系统,其中在建立所述安全通信链路时,所选择的本地地址和所选择的远程地址被分别用于寻址所述本地计算机和所述远程计算机。
11、根据实施例2所述的系统,其中所选择的本地地址和所选择的远程地址被成对存储,并且每当在所述本地计算机和所述远程计算机间建立安全通信链路时被重复使用。
12、根据实施例1所述的系统,其中所述安全通信链路是虚拟专用网络(VPN)链路。
13、根据实施例1所述的系统,其中所选择的本地地址包括网际协议(IP)地址。
14、根据实施例1所述的系统,其中所选择的本地地址包括IP地址和网络掩码。
15、根据实施例1所述的系统,其中所述所选择的本地地址是从被配置为包括所述多个有效本地地址的表格生成的。
16、根据实施例1所述的系统,其中所选择的本地地址是被伪随机地生成的。
17、根据实施例1所述的系统,其中所述多个有效本地地址被配置为包括一系列未使用的本地地址,以及所选择的本地地址是根据该系列未使用的本地地址而生成的。
18、根据实施例1所述的系统,其中所述处理器被配置和安排为将每一个本地地址与用于在所述本地计算机和所述远程计算机间建立所述安全通信链路的会话发起协议相关联结合。
19、根据实施例1所述的系统,其中所述处理器被配置和安排为生成所述本地地址作为用于在所述本地计算机和所述远程计算机间建立所述安全通信链路的会话发起协议的一部分。
20、根据实施例1所述的系统,其中每一个生成的本地地址和所述安全通信链路的建立之间的关联是响应于域名请求的。
21、根据实施例1所述的系统,其中每一个生成的专用地址和所述安全通信链路的建立之间的关联是响应于安全域名请求的。
22、根据实施例1所述的系统,其中所述远程计算机与第二本地网络相关联并且被分配不与所述第二本地网络已在使用的本地地址冲突的第二本地地址,其中被分配给所述本地计算机的所述本地地址和被分配给所述远程计算机的所述第二本地网络地址都被用于允许通过所述安全通信链路在所述本地计算机和所述远程计算机间进行通信路由。
23、根据实施例1所述的系统,其中所述处理器被配置和安排为针对与所述本地网络相关联的相应数量的本地计算机生成多个本地地址。
24、根据实施例23所述的系统,其中所述处理器被配置和安排为生成所述多个本地地址作为会话发起协议的一部分,所述会话发起协议与在所述远程计算机和相应的本地计算机中的每一本地计算机间的所述安全通信链路的建立相关联。
25、根据实施例23所述的系统,其中网络地址转换器被用于在用于所述安全通信链路的所生成的本地地址和所述本地网络上的所述计算机的本地专用地址间进行转换。
26、根据实施例24所述的系统,其中所述安全通信链路被建立以响应于对对应于域名的地址的请求。
27、根据实施例24所述的系统,其中所述安全通信链路被建立以响应于对对应于安全域名的地址的请求。
28、根据实施例1所述的系统,其中所述安全通信链路是主机到主机的连接。
29、根据实施例1所述的系统,其中所述安全通信链路是主机到网络的连接。
30、根据实施例1所述的系统,其中所述安全通信链路是网络到网络的连接。
31、一种用于通过公用网络在与第一本地网络相关联的第一计算机和与第二本地网络相关联的第二计算机间建立虚拟专用网络链路的系统,该系统包括:
至少一个处理器,该处理器被配置和安排为结合于所述安全通信链路的建立,自动地为所述第一计算机和所述第二计算机中的每一者生成新本地网络地址,否则本地网络地址会与用在各自的本地网络上的其他地址冲突。
32、根据实施例31所述的系统,其中所生成的新本地网络地址是被伪随机地生成的。
33、根据实施例31所述的系统,其中所生成的新本地网络地址包括IP地址。
34、根据实施例31所述的系统,其中所生成的新本地网络地址从被配置为包括多个有效本地地址的表格生成,所述有效本地地址是不与所述第一计算机和所述第二计算机已在使用的地址冲突的地址。
35、一种用于为建立安全通信链路提供域名服务以使得能通过公用网络在至少两个计算机间提供安全通信的系统,所述至少两个计算机中的至少一个计算机被连接至本地网络,所述系统包括:
域名服务系统,被配置为:
(a)被连接至通信网络;
(b)指示所述域名服务是否支持建立安全通信链路;
(c)给所述计算机中的每一者指定地址以用于在所述两个计算机间建立所述安全通信链路;以及
(d)当所指定的地址与计算机所附着的所述本地网络相关联的地址冲突时,对所述计算机中的每一者使用不同的地址以用于建立所述安全通信链路。
36、一种用于为建立安全通信链路提供域名服务以使得能通过公用网络在被连接至本地网络的至少一个计算机和被连接至第二本地网络的多个计算机中的每一者间提供安全通信的系统,该系统包括:
域名服务系统,被配置为
(a)被连接至通信网络;
(b)指示所述域名服务是否支持建立安全通信链路;以及
(c)给所述计算机中的每一者指定地址以用于在所述一个计算机和所述多个计算机的每一者间建立安全通信链路,如此使得每一个被指定的地址不与每一个计算机所连接的所述本地网络已关联的地址冲突。
37、根据实施例36所述的系统,其中所述域名服务被配置为通过对存在冲突的所述多个计算机中的所述计算机中的每一者使用不同的地址,将不同的地址用于在所述一个计算机和所述多个计算机中的至少那些计算机中的每一者间建立安全通信链路,其中,所述至少那些计算机中的每一者被指定的地址与已与该计算机所附着的所述本地网络相关联的地址冲突。
38、根据实施例37所述的系统,其中所述域名服务被配置为当任意所述计算机的所指定的地址与已与该计算机所附着的所述本地网络相关联的地址冲突时,通过给所述多个计算机中的所有计算机重新指定不同的地址,将不同的地址用于所述多个计算机中的任意计算机。
39、一种用于执行本地计算机和远程计算机间的通信的方法,该方法包括:
在所述本地计算机侧,选择用在与所述远程计算机的通信中的多个地址,所选择的多个地址是除所述本地计算机和附着在所述本地计算机上的设备当前正在使用的现有地址外的地址;
对照所述远程计算机和附着在所述远程计算机上的设备当前正在使用的现有地址来验证所述所选择的多个地址中的地址;以及
在被验证的地址未被所述远程计算机使用的情况下,使用该地址来执行所述本地计算机和所述远程计算机间的通信。
40、根据实施例39所述的方法,该方法还包括通过安全通信链路执行所述本地计算机和所述远程计算机间的所述通信。
41、根据实施例40所述的方法,其中所述安全通信链路是虚拟专用网络(VPN)链路。
42、根据实施例39所述的方法,其中所述被验证的地址包括IP地址。
43、根据实施例39所述的方法,其中所述被验证的地址包括IP地址和网络掩码。

Claims (30)

1.一种在第一本地网络上的当通过公用网络与位于所述第一本地网络之外的在第二本地网络上的远程设备安全通信时用于自动避免地址冲突的本地设备,该本地设备包括:
网络驱动器;以及
一个或多个处理器,被配置为:
识别不与所保留的本地网络地址冲突的本地网络地址块;
使用所述本地网络地址块与所述远程设备协商以从所述本地网络地址块中选择不与所述第二本地网络上的本地地址冲突的至少一个本地网络地址,其中协商以选择所述至少一个本地地址包括:
通过所述本地设备向所述远程设备发送所述本地网络地址块的指示,
通过所述远程设备识别不与所述第二本地网络上的第二所保留的本地网络地址冲突的所述第二本地网络上的第二本地网络地址的第二块,
通过所述远程设备至少部分基于所述第二本地网络地址的所述第二块,选择所选择的至少一个本地地址,以及
通过所述本地设备从所述远程设备接收所选择的至少一个本地地址的指示;
向所述网络驱动器分配所选择的至少一个本地网络地址;
识别不与所述远程设备的所选择的至少一个本地网络地址冲突的至少一个远程网络地址,以用于通过所述公用网络安全地与所述本地设备通信;
至少部分地基于识别所述至少一个远程网络地址,将所述至少一个远程网络地址添加到所保留的本地网络地址;以及
基于所分配的至少一个本地网络地址使用所述网络驱动器与所述远程设备通信。
2.根据权利要求1所述的本地设备,其中所述网络驱动器是虚拟网络驱动器。
3.根据权利要求1所述的本地设备,其中所述网络驱动器包括虚拟网络驱动器和真实网络驱动器,该虚拟网络驱动器用于安全通信,以及所述一个或多个处理器被配置为向所述虚拟网络驱动器分配所述本地网络地址块及不向所述真实网络驱动器分配所述本地网络地址块。
4.根据权利要求1所述的本地设备,其中所述本地网络地址是所述本地网络上的专用网络地址。
5.根据权利要求1所述的本地设备,其中所述公用网络在所述本地网络的外部。
6.根据权利要求1所述的本地设备,其中,为了安全通信,所述一个或多个处理器被配置为加密通过所述公用网络被传送至所述远程设备的分组。
7.根据权利要求1所述的本地设备,其中,为了安全通信,所述一个或多个处理器被配置为控制所述网络驱动器使用安全通信链路通过所述公用网络与所述远程设备通信。
8.根据权利要求1所述的本地设备,其中,为了安全通信,所述一个或多个处理器被配置为控制所述网络驱动器使用通过虚拟专用网络的通信链路与所述远程设备通信。
9.根据权利要求8所述的本地设备,其中,针对通过所述虚拟专用网络的所述通信链路,所述一个或多个处理器被配置为将所述本地设备的专用地址和所述远程设备的专用地址中的至少一个与所选择的至少一个本地网络地址进行封装以及加密所述本地设备的所述专用地址和所述远程设备的所述专用地址中的所述至少一个。
10.根据权利要求1所述的本地设备,其中所述一个或多个处理器被配置为将所选择的至少一个远程网络地址添加至所保留的本地网络地址。
11.根据权利要求10所述的本地设备,其中所述一个或多个处理器被配置为当所述本地设备与所述远程设备之间的通信会话结束时从所保留的本地网络地址中移除所选择的至少一个本地网络地址。
12.根据权利要求1所述的本地设备,其中所述本地网络地址中的每一者包括IP地址和网络掩码。
13.根据权利要求1所述的本地设备,其中所述一个或多个处理器还被配置为使用网络地址转换器将所选择的至少一个本地网络地址转换为所述本地网络上的所述本地设备的专用地址。
14.根据权利要求1所述的本地设备,其中所述一个或多个处理器还被配置为响应于针对对应于所述远程设备的名称的名称服务请求执行所述识别、分配和协商操作中的一者或多者。
15.根据权利要求1所述的本地设备,其中与所述远程设备的所述通信是主机至主机连接或主机至网络连接。
16.一种由本地网络上的本地设备执行的当通过公用网络与位于所述本地网络之外的在第二本地网络上的远程设备安全通信时用于自动避免地址冲突的方法,该方法包括:
识别所述本地网络上的保留供使用的本地网络地址;
识别不与所保留的本地网络地址冲突的本地网络地址块;
使用所述本地网络地址块与所述远程设备协商以从所述本地网络地址块中选择不与所述第二本地网络上的本地地址冲突的至少一个本地网络地址,其中协商以选择所述至少一个本地地址包括:
通过所述本地设备向所述远程设备发送所述本地网络地址块的指示,
通过所述远程设备识别不与所述第二本地网络上的第二所保留的本地网络地址冲突的所述第二本地网络上的第二本地网络地址的第二块,
通过所述远程设备至少部分基于所述第二本地网络地址的所述第二块,选择所选择的至少一个本地地址,以及
通过所述本地设备从所述远程设备接收所选择的至少一个本地地址的指示;
向网络驱动器分配在安全地通过所述公用网络与所述远程设备通信中使用的所选择的至少一个本地网络地址;
识别不与所述远程设备的所选择的至少一个本地网络地址冲突的至少一个远程网络地址,以用于通过所述公用网络安全地与所述本地设备通信;
至少部分地基于识别所述至少一个远程网络地址,将所述至少一个远程网络地址添加到所保留的本地网络地址;以及
基于所分配的至少一个本地网络地址使用所述网络驱动器与所述远程设备通信。
17.根据权利要求16所述的方法,其中所述网络驱动器是虚拟网络驱动器。
18.根据权利要求16所述的方法,其中所述网络驱动器包括虚拟网络驱动器和真实网络驱动器,该虚拟网络驱动器用于安全通信,以及该方法还包括向所述虚拟网络驱动器分配所述本地网络地址块及不向所述真实网络驱动器分配所述本地网络地址块。
19.根据权利要求16所述的方法,其中所述本地网络地址是所述本地网络上的专用网络地址。
20.根据权利要求16所述的方法,其中所述公用网络在所述本地网络的外部。
21.根据权利要求16所述的方法,其中安全通信包括加密通过所述公用网络被传送至所述远程设备的分组。
22.根据权利要求16所述的方法,其中安全通信包括使用安全通信链路通过所述公用网络与所述远程设备通信。
23.根据权利要求16所述的方法,其中安全通信包括使用通过虚拟专用网络的通信链路与所述远程设备通信。
24.根据权利要求23所述的方法,其中使用通过所述虚拟专用网络的所述通信链路包括将所述本地设备的专用地址或所述远程设备的专用地址中的至少一个与所选择的至少一个本地网络地址进行封装以及加密所述本地设备的所述专用地址或所述远程设备的所述专用地址中的所述至少一个。
25.根据权利要求16所述的方法,该方法还包括:
将所选择的至少一个远程网络地址添加至所保留的本地网络地址。
26.根据权利要求25所述的方法,该方法还包括:
当所述本地设备与所述远程设备之间的通信会话结束时从所保留的本地网络地址中移除所选择的至少一个本地网络地址。
27.根据权利要求16所述的方法,其中所述本地网络地址中的每一者包括IP地址和网络掩码。
28.根据权利要求16所述的方法,该方法还包括:
使用网络地址转换器将所选择的至少一个本地网络地址转换为所述本地网络上的所述本地设备的专用地址。
29.根据权利要求16所述的方法,该方法还包括:
响应于针对对应于所述远程设备的名称的名称服务请求执行所述识别、分配和协商步骤中的一者或多者。
30.根据权利要求16所述的方法,其中与所述远程设备的所述通信是主机至主机连接或主机至网络连接。
CN201710493159.5A 2011-07-08 2012-07-09 动态vpn地址分配 Active CN107342991B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201161505754P 2011-07-08 2011-07-08
US61/505,754 2011-07-08
CN201280034033.7A CN103748861B (zh) 2011-07-08 2012-07-09 用于动态vpn地址分配的系统和方法

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN201280034033.7A Division CN103748861B (zh) 2011-07-08 2012-07-09 用于动态vpn地址分配的系统和方法

Publications (2)

Publication Number Publication Date
CN107342991A CN107342991A (zh) 2017-11-10
CN107342991B true CN107342991B (zh) 2021-12-24

Family

ID=46604538

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201280034033.7A Active CN103748861B (zh) 2011-07-08 2012-07-09 用于动态vpn地址分配的系统和方法
CN201710493159.5A Active CN107342991B (zh) 2011-07-08 2012-07-09 动态vpn地址分配

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN201280034033.7A Active CN103748861B (zh) 2011-07-08 2012-07-09 用于动态vpn地址分配的系统和方法

Country Status (8)

Country Link
US (4) US9027116B2 (zh)
EP (2) EP3425886B1 (zh)
JP (8) JP5826382B2 (zh)
CN (2) CN103748861B (zh)
AU (2) AU2012282841B2 (zh)
CA (1) CA2841166C (zh)
HK (1) HK1197120A1 (zh)
WO (1) WO2013009682A1 (zh)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9143480B2 (en) * 2011-01-10 2015-09-22 Secure Global Solutions, Llc Encrypted VPN connection
CN103748861B (zh) * 2011-07-08 2017-07-11 威尔耐特斯公司 用于动态vpn地址分配的系统和方法
KR101907933B1 (ko) * 2011-12-23 2018-10-17 한국전자통신연구원 사용자 맞춤형 가상 네트워크 및 그것의 구축 방법
US9832156B2 (en) * 2012-03-23 2017-11-28 Salesforce.Com, Inc. Social networking system communities and associated user privileges implemented using a database system
US20140136597A1 (en) * 2012-11-15 2014-05-15 Kaseya International Limited Relay enabled dynamic virtual private network
US9407548B2 (en) 2013-01-02 2016-08-02 Acceleration Systems, LLC ReNAT systems and methods
CA3073411C (en) * 2013-01-02 2023-04-18 Skycasters, Llc Systems and methods for providing dual network address translation
CN105763663B (zh) * 2014-12-19 2019-05-03 华为技术有限公司 一种私网地址管理方法、控制装置和网络设备
US10749840B2 (en) 2016-07-08 2020-08-18 Waldemar Augustyn Network communication method and apparatus
JP2018067248A (ja) * 2016-10-21 2018-04-26 富士通株式会社 制御プログラム、制御方法、及び情報処理装置
KR101920190B1 (ko) * 2016-11-22 2019-02-08 한국인터넷진흥원 임의의 ip 생성 방법 및 그 장치
WO2018150222A1 (en) * 2017-02-14 2018-08-23 Telefonaktiebolaget Lm Ericsson (Publ) Internet protocol (ip) address allocation over virtual layer 2 networks
US10693715B1 (en) * 2017-10-26 2020-06-23 Amazon Technologies, Inc. Dynamic network address space allocation for virtual networks
US10681011B2 (en) 2017-11-30 2020-06-09 International Business Machines Corporation Preemptive determination of reserved IP conflicts on VPNs
CN112995350B (zh) * 2019-12-13 2023-02-07 中盈优创资讯科技有限公司 一种网络设备地址池冲突检测方法及装置
CN114006887B (zh) * 2021-10-29 2023-06-23 迈普通信技术股份有限公司 一种dvpn网络中隧道地址的分配方法及控制器
CN114665752A (zh) * 2022-05-25 2022-06-24 中山大洋电机股份有限公司 带多个通信地址的电机、选址方法、电气设备及通讯方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101060391A (zh) * 2007-05-16 2007-10-24 华为技术有限公司 主备服务器切换方法及系统及主用服务器、备用服务器
CN101068189A (zh) * 2007-05-18 2007-11-07 清华大学 在IPv6中用主机间隧道支持IPv4应用程序的方法
CN101677291A (zh) * 2008-09-18 2010-03-24 华为技术有限公司 一种网元设备自动配置的方法、装置及系统

Family Cites Families (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6154777A (en) * 1996-07-01 2000-11-28 Sun Microsystems, Inc. System for context-dependent name resolution
TW371736B (en) * 1997-10-08 1999-10-11 Yen-Yuan Chianh Virtual IP gate and its IP construction
US7418504B2 (en) 1998-10-30 2008-08-26 Virnetx, Inc. Agile network protocol for secure communications using secure domain names
US6826616B2 (en) 1998-10-30 2004-11-30 Science Applications International Corp. Method for establishing secure communication link between computers of virtual private network
US10511573B2 (en) * 1998-10-30 2019-12-17 Virnetx, Inc. Agile network protocol for secure communications using secure domain names
US6502135B1 (en) * 1998-10-30 2002-12-31 Science Applications International Corporation Agile network protocol for secure communications with assured system availability
US6615357B1 (en) * 1999-01-29 2003-09-02 International Business Machines Corporation System and method for network address translation integration with IP security
US6496867B1 (en) 1999-08-27 2002-12-17 3Com Corporation System and method to negotiate private network addresses for initiating tunneling associations through private and/or public networks
US7085836B1 (en) * 2000-08-18 2006-08-01 2Wire, Inc. System and method for automatic private IP address selection
WO2002047336A1 (fr) * 2000-12-06 2002-06-13 Nec Corporation Reseau prive virtuel
US7395354B2 (en) 2002-02-21 2008-07-01 Corente, Inc. Methods and systems for resolving addressing conflicts based on tunnel information
JP2004080703A (ja) * 2002-08-22 2004-03-11 Ntt Comware Corp ネットワーク間通信方法およびそれに使用されるゲート装置並びに端末装置
KR100886550B1 (ko) * 2002-09-17 2009-03-02 삼성전자주식회사 아이피 어드레스 할당 장치 및 방법
US20040148439A1 (en) * 2003-01-14 2004-07-29 Motorola, Inc. Apparatus and method for peer to peer network connectivty
US20050066041A1 (en) * 2003-09-19 2005-03-24 Chin Kwan Wu Setting up a name resolution system for home-to-home communications
US20050066035A1 (en) 2003-09-19 2005-03-24 Williams Aidan Michael Method and apparatus for connecting privately addressed networks
US8661158B2 (en) * 2003-12-10 2014-02-25 Aventail Llc Smart tunneling to resources in a network
US20060085851A1 (en) * 2004-10-14 2006-04-20 International Business Machines Corporation Systems, Methods, and Computer Readable Medium for Avoiding a Network Address Collision
WO2006072891A1 (en) * 2005-01-07 2006-07-13 Alcatel Lucent Method and apparatus for providing route-optimized secure session continuity between mobile nodes
JP4561983B2 (ja) * 2005-01-13 2010-10-13 日本電気株式会社 ローカルコンテンツ接続システム、移動端末、ローカルコンテンツ接続方法及びクライアントプログラム
US20060221955A1 (en) * 2005-04-05 2006-10-05 Mark Enright IP addressing in joined private networks
JP2007027818A (ja) * 2005-07-12 2007-02-01 Fujitsu Access Ltd 仮想プライベートネットワークにおけるアドレス管理方法、サーバ装置及びクライアント装置
WO2007072254A1 (en) * 2005-12-21 2007-06-28 Koninklijke Philips Electronics N.V. System with a plurality of interconnected sub-networks
JP4713420B2 (ja) * 2006-08-10 2011-06-29 東日本電信電話株式会社 通信システム、およびネットワーク機器の共有方法
CN101212374A (zh) * 2006-12-29 2008-07-02 北大方正集团有限公司 实现校园网资源远程访问的方法和系统
US7840701B2 (en) * 2007-02-21 2010-11-23 Array Networks, Inc. Dynamic system and method for virtual private network (VPN) packet level routing using dual-NAT method
US8695074B2 (en) * 2007-04-26 2014-04-08 Microsoft Corporation Pre-authenticated calling for voice applications
JP4816572B2 (ja) * 2007-05-30 2011-11-16 富士ゼロックス株式会社 仮想ネットワーク接続システム及び装置
JP2009010606A (ja) 2007-06-27 2009-01-15 Panasonic Corp トンネル接続システム、トンネル管理サーバ、トンネル接続装置、及びトンネル接続方法
JP2009017429A (ja) 2007-07-09 2009-01-22 Fujitsu Ltd ネットワーク中継制御プログラム、ネットワーク中継制御装置、ネットワーク中継制御方法
US8060074B2 (en) * 2007-07-30 2011-11-15 Mobile Iron, Inc. Virtual instance architecture for mobile device management systems
JP4667473B2 (ja) 2008-01-15 2011-04-13 日本電信電話株式会社 データ中継装置、データ中継方法およびデータ中継プログラム
EP2253124B1 (en) * 2008-03-20 2016-03-16 Telefonaktiebolaget LM Ericsson (publ) Method and apparatus for communication of data packets between local networks
CN101304388B (zh) * 2008-06-20 2010-08-04 成都市华为赛门铁克科技有限公司 解决ip地址冲突的方法、装置及系统
KR20100040658A (ko) 2008-10-10 2010-04-20 삼성전자주식회사 UPnP 네트워크의 원격 접속 서비스에서 아이피 주소 충돌 해결 방법 및 장치
JP2010268145A (ja) * 2009-05-13 2010-11-25 Nec Corp 通信装置及びアドレス配布方法
CN101562639B (zh) * 2009-05-14 2012-08-08 华为终端有限公司 信息同步方法、装置和系统
US20110029565A1 (en) * 2009-07-31 2011-02-03 Leonardo William Estevez Generation of a Media Profile
JP2011077769A (ja) * 2009-09-30 2011-04-14 Fujifilm Corp Vpnシステムおよびその動作制御方法
US20110110377A1 (en) 2009-11-06 2011-05-12 Microsoft Corporation Employing Overlays for Securing Connections Across Networks
US8644299B2 (en) * 2009-12-03 2014-02-04 At&T Intellectual Property I, L.P. Method and apparatus for efficiently routing packets across disparate networks
US9392080B2 (en) * 2009-12-18 2016-07-12 Microsoft Technology Licensing, Llc IPv4/IPv6 bridge
JP2011160103A (ja) * 2010-01-29 2011-08-18 Oki Networks Co Ltd ゲートウェイ装置及びプログラム、並びに、通信システム
CN101808038B (zh) * 2010-03-29 2012-02-08 杭州华三通信技术有限公司 一种vpn实例的划分方法和设备
EP2622495A4 (en) * 2010-09-27 2015-08-12 Lantronix Inc VARIOUS METHODS AND APPARATUSES FOR ACCESSING NETWORK DEVICES WITHOUT ADDRESSES ACCESSIBLE THROUGH VIRTUAL IP ADDRESSES
US8805977B2 (en) * 2011-06-09 2014-08-12 Freescale Semiconductor, Inc. Method and system for address conflict resolution
CN103748861B (zh) * 2011-07-08 2017-07-11 威尔耐特斯公司 用于动态vpn地址分配的系统和方法
EP3026513B1 (de) * 2014-11-28 2018-01-03 Siemens Aktiengesellschaft Redundantes Automatisierungssystem und Verfahren zum Betrieb
US11240306B2 (en) * 2017-11-06 2022-02-01 Vast Data Ltd. Scalable storage system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101060391A (zh) * 2007-05-16 2007-10-24 华为技术有限公司 主备服务器切换方法及系统及主用服务器、备用服务器
CN101068189A (zh) * 2007-05-18 2007-11-07 清华大学 在IPv6中用主机间隧道支持IPv4应用程序的方法
CN101677291A (zh) * 2008-09-18 2010-03-24 华为技术有限公司 一种网元设备自动配置的方法、装置及系统

Also Published As

Publication number Publication date
US11290420B2 (en) 2022-03-29
AU2016201620A1 (en) 2016-04-14
US9027116B2 (en) 2015-05-05
JP7387785B2 (ja) 2023-11-28
JP5826382B2 (ja) 2015-12-02
HK1197120A1 (zh) 2015-01-02
AU2016201620B2 (en) 2018-04-19
US20200296074A1 (en) 2020-09-17
JP2018166345A (ja) 2018-10-25
AU2012282841A1 (en) 2014-01-16
JP2022069549A (ja) 2022-05-11
AU2012282841B2 (en) 2016-03-31
CA2841166A1 (en) 2013-01-17
JP2017050896A (ja) 2017-03-09
EP3425886A1 (en) 2019-01-09
US20130179580A1 (en) 2013-07-11
WO2013009682A1 (en) 2013-01-17
EP3425886B1 (en) 2021-03-31
US10608986B2 (en) 2020-03-31
CA2841166C (en) 2016-12-06
JP2014523193A (ja) 2014-09-08
JP6236423B2 (ja) 2017-11-22
JP6550179B2 (ja) 2019-07-24
JP6383397B2 (ja) 2018-08-29
CN103748861B (zh) 2017-07-11
US20160072763A1 (en) 2016-03-10
JP2015233336A (ja) 2015-12-24
EP2730081A1 (en) 2014-05-14
US20220286427A1 (en) 2022-09-08
JP2024012595A (ja) 2024-01-30
JP6062017B2 (ja) 2017-01-18
CN107342991A (zh) 2017-11-10
JP2016007079A (ja) 2016-01-14
JP2019161675A (ja) 2019-09-19
EP2730081B1 (en) 2018-08-29
CN103748861A (zh) 2014-04-23

Similar Documents

Publication Publication Date Title
CN107342991B (zh) 动态vpn地址分配
US8295285B2 (en) Method and apparatus for communication of data packets between local networks
KR100814400B1 (ko) IPv4/IPv6 통합 네트워크 시스템의 보안 통신방법 및 그 장치
Schloz et al. Internet protocol version 6
Zamani et al. Deploying IPv6: Security and Future
Shrivastava Threats and Security Aspects of IPv6

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant