The present invention generally relates to virtual private networks, and more particularly relates to dynamic site-to-site virtual private networks.
A virtual private network (VPN) is an extension of a private intranet network across a public network (e.g., the Internet) that creates a secure private connection between a remote network or client and the private intranet. A VPN securely conveys information across the public network connecting remote users, branch offices, and business partners into an extended corporate network. This effect is achieved through a secure encryption tunnel, which allows a private network to send data via a public network's connections. The secure encryption tunnel encapsulates a network protocol within packets carried by the public network. The data sent between two locations via the secure encryption tunnel cannot be read by anyone else.
In one embodiment, an information processing system in a remote network for establishing a virtual private network (VPN) between the remote network and a private network is disclosed. The information processing system comprises a memory and a processor that is communicatively coupled to the memory. A VPN device is communicatively coupled to the memory and the processor. The VPN device is configured to perform a method. The method comprises establishing a connection with a central system through a public network. The central system is situated between the information processing system and a second system in the private network. The first system receives, from the central system and based on establishing the connection, a set of VPN information associated with at least the second system. The first system disconnects from the central system and establishes a VPN directly with the second system through the public network based on the set of VPN information.
In another embodiment, a computer program storage product for establishing a virtual private network (VPN) between a first system in a remote network and a second system in a private network is disclosed. The computer program storage product comprises instructions configured to perform a method. The method comprises establishing a connection with a central system through a public network. The central system is situated between the information processing system and a second system in the private network. The first system receives, from the central system and based on establishing the connection, a set of VPN information associated with at least the second system. The first system disconnects from the central system and establishes a VPN directly with the second system through the public network based on the set of VPN information.
In yet another embodiment, an information processing system in a private network for establishing a virtual private network (VPN) between the private network and a remote network is disclosed. The information processing system comprises a memory and a processor that is communicatively coupled to the memory. A VPN device is communicatively coupled to the memory and the processor. The VPN device is configured to perform a method. The method comprises establishing a connection with a central system through a public network. The central system is situated between the information processing system system and a second system in the remote network. A first set of VPN information associated with at least the second system is received from the central system and based on establishing the connection. The first system disconnects from the central system based on the receiving. A request is received directly from the first system to establish a direct VPN, wherein the request comprises a second set of VPN information. The second set of VPN information is compared with the first set of VPN information. A VPN is established directly with the second system through the public network based on the first and second sets set of VPN information matching.
In a further embodiment, an information processing system situated between a first system in a remote network and a second system in a private network for establishing a virtual private network (VPN) between the remote network and the private network is disclosed. The information processing system comprises a memory and a processor that is communicatively coupled to the memory. A VPN device is communicatively coupled to the memory and the processor. The VPN device is configured to perform a method. The method comprises receiving, from the first system, a request to establish a VPN with the second system. A first set of VPN information associated with the second system is identified based on the request. The first set of VPN information is sent to the second system. The set of VPN information configures the second system to establish the VPN directly with the first system.
The accompanying figures where like reference numerals refer to identical or functionally similar elements throughout the separate views, and which together with the detailed description below are incorporated in and form part of the specification, serve to further illustrate various embodiments and to explain various principles and advantages all in accordance with the present invention, in which:
Operating Environment
In one embodiment, each of the networks 102, 104, 106 is communicatively coupled to one or more VPN devices 116, 118, 120. As will be discussed in greater detail below, the VPN devices 116, 118, 120 are used to establish VPNs between the various networks 102, 104106. The VPN devices 116, 118, 120 can be implemented as hardware, software, or a combination thereof. For example, in one embodiment, a VPN device 116, 118, 120 is implemented as a separate device situated between a networking node 108, 110, 112 and its respective network 102, 104, 106. In another embodiment, a VPN device 116, 118, 120 resides within an optional server 122, 124 situated between user/client systems 126, 128, 130, 132 of the network 102, 104 and its respective networking node 108, 110. In a further embodiment, a VPN device 116, 118, 120 resides within a networking node 108, 110, 112. In the above embodiments, the VPN devices 116, 118, 120 connect the user/client systems 126, 128, 130, 132 to the private and central networks 104, 106 via one or more VPN connections. However, in another embodiment, a VPN device 116, 118, 120 resides within one or more of the user/client systems 126, 128, 130, 132, and the user/client systems establish the VPN connections.
The VPN devices 116, 118, 120 enable users at the remote network 102, via one or more of the user systems 126, 128, to access data stored on one or more of the systems 130, 132 in the private network 104. For example, users at the remote network 102 access the data at the private network 104 through a VPN established between the remote network 102 and the private network 104 via the VPN devices 116, 118, 120. The VPN connections includes a secure network tunnel between the remote network 102 and the private network 104, which is established on top of the underlying public network 114. Data traveling over the tunnel is not visible to and is encapsulated from traffic of the public network 114. The traffic within the tunnel appears to the public network 114 as just another traffic stream to be passed. In addition, the data packets that carry the payload between the two networks 102, 104 are encapsulated within the packets of the Internet protocol (IP), with additional packet identification and security information.
Dynamic Virtual Private Networks
In many conventional VPN environments, such as conventional site-to-site VPN environments, the VPN devices residing at remote and private networks do not maintain the necessary information to establish a VPN connection directly with each other. Therefore, a VPN device at a remote network is required to establish a VPN connection with a VPN device at the central network, which maintains all the necessary VPN information for establishing a VPN connection with the private network. Once the remote VPN device establishes a VPN connection with the central VPN device, the central VPN device establishes a VPN connection with the private VPN device. Therefore, a VPN tunnel between the remote network and the private network passes through the central network. This configuration can result in various resource issues such as bandwidth constraints and also adds an additional point of failure in the network.
Therefore, one or more embodiments of the present invention provide a dynamic VPN environment in which a remote network 102 establishes a VPN directly with a private network 104. It should be noted that the following discussion illustrates one example where the VPN devices 116, 118 at the remote and private networks 102, 104 are situated within a server system 122, 124 or networking node 108, 110. However, the following discussion also applies to embodiments where the VPN devices 116, 118 reside at the user/client systems 126, 128, 130, 132 as well.
In one embodiment, the remote VPN device 116 receives a request from a user for establishing a VPN connection with the private network 104. The remote VPN device 116 analyzes/searches its VPN information 202 (
After the central VPN device 120 receives the request from the remote VPN device 116 the central VPN device 120 analyzes/searches its VPN information 302 (
A second column 310 entitled “CID” comprises entries 312 that include the client identifier of the associated VPN device 116, 118. The CID can be automatically generated by the central VPN device 120 based on VPN parameters associated with the VPN device 116, 118 for a given VPN. For example, a CID associated with the remote VPN device 116 can be generated by the central VPN device 120 for a VPN connection with the private VPN device 118 (and hence the private network 102) based on a hashing type, an encryption technique, a tunneling protocol, a key distribution type, a transform set, ISAKMP parameters, and/or IPsec parameters that are associated with the VPN between the remote network 102 and the private network 104. In one embodiment, the generated CID is tied to an access list for this VPN. If a request to establish the VPN does not include this CID the request is denied.
A third column 314 entitled “IP Address” comprises entries 316 that include the IP address associated with the VPN device identified in the first column 306. A fourth column 318 entitled “MAC Address” comprises entries 320 that include the MAC address associated with the VPN device identified in the first column 306. The IP Address and MAC address information is used by the central VPN device 120 to identify and locate the VPN devices 116, 118 for establishing a VPN connection therewith. In one embodiment, the central VPN device 120 utilizes the CID as a pointer to identify the IP Address and MAC address information associated with the respective VPN device 116, 118.
The VPN information 302 maintained by the central VPN device 120 also includes the VPN tunneling information 322 required to establish a VPN between each of the VPN devices 116, 118 (and hence their networks 102, 104) coupled to the central VPN device 120. For example, a first column 324 entitled “VPN” in the VPN tunneling information 420 comprises entries 326 that identify a given VPN between two or more VPN devices such as the remote VPN device 116 and the private VPN device 118. A second column 328 entitled “Encrypt. Protocol” comprises entries 330 that identify the encryption protocol to be used for the associated VPN. A third column 332 entitled “Encrypt. Key” comprises entries 334 that identify the encryption to be used for the associated VPN. A fourth column 336 entitled “Hashing Algo.” comprises entries 338 that identify the hashing algorithm to be used for the associated VPN. A fifth column 340 entitled “Access List” comprises entries 342 that include the access list(s) to be used for the associated VPN. A sixth column 344 entitled “Tunneling Protocol” comprises entries 346 identifying the tunneling protocol to be used for VPN identified in the first column 324.
The central VPN device 120, based on the request received from the remote VPN device 116, analyzes its VPN information 302 to identify the VPN information associated with the remote and private network devices 116, 118. The central VPN device 120 sends the identified VPN information to each of the remote VPN device 116 and the private VPN device 118. For example, the central VPN device 120 sends the address information 303 and VPN tunneling information 307 associated with the private VPN device 118 to the remote VPN device 116. In one embodiment, the central VPN device 118 sends the VPN and tunneling information 303, 307 to the remote VPN device 116 via the secure VPN connection 602 established between the remote and central VPN devices 116, 120. The central VPN device 120 also sends the address information 305 and VPN tunneling information 307 associated with the remote VPN device 116 to the private VPN device 118. For example, the central VPN device 120 establishes a VPN connection 604 with the private VPN device 118 and sends the address and tunneling information 305, 307 to the private VPN device 118 via this VPN connection 604.
The remote VPN device 116 and the private VPN device 118 store this information in a local storage device. For example,
In the above example, a VPN connection 602, 604 currently exists between the remote/central VPN devices 116, 120 and the private/central VPN devices 118, 120. Therefore, the central VPN device has created a VPN between the remote and private VPN devices 116, 118 through which data can be securely sent and received. However, the remote and private VPN devices 116, 118 now maintain VPN information 202, 502 associated with each other. This information allows the remote and private VPN devices 116, 118 to establish VPN connections directly with each other without going through the central VPN device 120.
For example, once the VPN connections 602, 604 are terminated between the remote/central VPN devices 116, 120 and the private/central VPN devices 118, 120 the remote and private VPN devices 116, 118 are able to establish a VPN connection 606 directly between each other using the locally stored VPN information 202, 502. When establishing a direct VPN connection with the private network 104 the remote VPN device 116 uses the address information 204 within the locally stored VPN information 202 to establish a direct path to the private VPN device 118. For example, a request received from a user system 126, 128 in the remote network 102 includes the CID associated with the private VPN device 118. The remote VPN device 116 compares this CID to the locally stored address information 204. The remote VPN device 116 identifies the IP address (and optionally the MAC address) associated with this CID, and uses this address information to establish a direct path to the private VPN device 118.
An Authentication, Authorization, and Accounting (AAA) process is then performed by the private VPN device 118 for identifying and authorizing the remote VPN device 116 to create a secure tunnel between the remote VPN device 116 and the private VPN device 118. As part of the AAA process the private VPN device 118 receives the CID associated with the remote VPN device 116. The private VPN device 118 compares this CID to the access list in the VPN tunneling information 506 of its local VPN information 502 to determine if the remote VPN device is authorized to establish a secure VPN tunnel. In another embodiment, the private VPN device compares the CID to the address information 504 to identify the IP address (and/or MAC address) associated with the remote VPN device 116. The private VPN device 118 then compares the identified IP address and/or MAC address to the access list to determine if the remote VPN device 116 is authorized to establish a secure VPN tunnel.
Once the remote VPN device is authorized, a secure network tunnel (VPN connection) 606 is established directly between the remote VPN device 116 and the private VPN network 118 over the public network 114 using the VPN (tunneling) protocol (e.g., IPsec) identified in the VPN information 202, 502 of the remote and private VPN devices 116, 118. The tunneling protocol enables one network to securely send its data through another network's connections (e.g., the Internet). Tunneling encapsulates a network protocol within packets carried by the second network. For example, an organization's LAN embeds its own network protocol within the TCP/IP packets carried by the Internet.
After the VPN tunnel 606 is established the systems 126, 128, 130, 132 at the remote and private networks 102, 104 can send and receive information securely to/from each other via the VPN devices 116, 118 using the encryption protocol, encryption key, hashing algorithm, etc. identified within the locally stored VPN information 202, 502. For example, the encryption protocol is used to encrypt data packets and the encryption key is used to decrypt the encrypted packet. The hashing algorithm is used to ensure that the information being transmitted over the VPN connection 606 is not altered in any way during transit.
In addition, once their local VPN information 202, 502 is updated, as discussed above, the remote and private VPN devices 116, 118 act as a central VPN device for any peer VPN devices coupled to the remote and private VPN devices 116, 118 within the same or different networks. For example,
A remote peer VPN device 702 establishes a VPN connection 714 with the remote VPN device 116 and requests to be connected to either the private VPN device 118 or one of its peer VPN devices 706, 708. If the remote peer VPN device 702 has requested a VPN connection with the private VPN device 118, the remote VPN device 116 utilizes its VPN information 202 to establish a direct VPN connection 716 with the private VPN device 118 for the remote peer VPN device 702. The remote VPN device 116 sends the VPN address information and tunneling information associated with the private VPN device 118 to the remote peer VPN device 702. The remote peer VPN device 702 updates its VPN information 710 similar to that discussed above with respect to
If the remote peer VPN device 702 has requested a VPN connection with a private peer VPN device 706, the remote VPN device 116 analyzes its VPN information 202 to determine if VPN information for the private peer VPN device 706 is available. If so, the remote VPN device 116 establishes a VPN connection 720 directly with the private peer VPN device 706. The remote peer VPN device 116 sends the remote peer VPN device 702 the VPN information associated with the private peer VPN device 706. The remote peer VPN device 702 updates its VPN information 702 accordingly. The remote peer VPN device 116 also sends the private peer VPN device 706 the VPN information associated with the remote peer VPN device 702. The private peer VPN device 704 updates its VPN information 702 accordingly.
If the remote VPN device 116 does not initially have the VPN information associated with the private peer VPN device 702, the remote VPN device 116 establishes a VPN connection 722 with the private VPN device 116 to obtain and store the required VPN information associated with the private peer VPN device 702. This information is then propagated to the remote peer VPN device 116. The remote VPN device 116 also sends the VPN information associated with the remote peer VPN device 702 to the private VPN device 118. The private VPN device 116 stores this VPN information and also sends this information to the private peer VPN device 706 via a VPN connection 724. Once the remote and private peer VPN devices 702, 706 have the required VPN information they establish VPN connections 726 directly with each other without going through the remote and private VPN devices 116, 118. It should be noted that the above discussion also applies to the private VPN device 118 acting as a central device for one or more private peer VPN devices 706, 708.
Operational Flow Diagrams
The private network system 118, at step 910, disconnects from the central system 120. The private network system 118, at step 912, receives a request directly from the remote network system 116 to establish a direct VPN. This request comprises a second set of VPN information. The private network system 118, at step 914, compares the second set of VPN information with the first set of VPN information. The private network system 118, at step 916, determines if there is a match between the first and second sets of VPN information. If there is no match, the private network system 118, at step 918, denies the request and the control flow exits at step 920. If there is a match, the private network system 118, at step 922, establishes a VPN directly with the remote network system 116. The control flow then exits at step 924.
Information Processing System
Referring now to
The bus 1108 represents one or more of any of several types of bus structures, including a memory bus or memory controller, a peripheral bus, an accelerated graphics port, and a processor or local bus using any of a variety of bus architectures. By way of example, and not limitation, such architectures include Industry Standard Architecture (ISA) bus, Micro Channel Architecture (MCA) bus, Enhanced ISA (EISA) bus, Video Electronics Standards Association (VESA) local bus, and Peripheral Component Interconnects (PCI) bus.
Although not shown in
Program/utility 1116, having a set of program modules 1118, may be stored in memory 1106 by way of example, and not limitation, as well as an operating system, one or more application programs, other program modules, and program data. Each of the operating system, one or more application programs, other program modules, and program data or some combination thereof, may include an implementation of a networking environment. Program modules 1118 generally carry out the functions and/or methodologies of embodiments of the present invention.
The information processing system 1102 can also communicate with one or more external devices 1120 such as a keyboard, a pointing device, a display 1122, etc.; one or more devices that enable a user to interact with the information processing system 1102; and/or any devices (e.g., network card, modem, etc.) that enable computer system/server 1102 to communicate with one or more other computing devices. Such communication can occur via I/O interfaces 1124. Still yet, the information processing system 1102 can communicate with one or more networks such as a local area network (LAN), a general wide area network (WAN), and/or a public network (e.g., the Internet) via network adapter 1126. As depicted, the network adapter 1126 communicates with the other components of information processing system 1102 via the bus 1108. Other hardware and/or software components can also be used in conjunction with the information processing system 1102. Examples include, but are not limited to: microcode, device drivers, redundant processing units, external disk drive arrays, redundant array of independent disks (RAID) systems, tape drives, and data archival storage systems.
Non-Limiting Examples
As will be appreciated by one skilled in the art, aspects of the present invention may be embodied as a system, method, or computer program product. Accordingly, aspects of the present invention may take the form of an entirely hardware embodiment, an entirely software embodiment (including firmware, resident software, micro-code, etc.) or an embodiment combining software and hardware aspects that may all generally be referred to herein as a “circuit,” “module” or “system.” Furthermore, aspects of the present invention may take the form of a computer program product embodied in one or more computer readable medium(s) having computer readable program code embodied thereon.
Any combination of one or more computer readable medium(s) may be utilized. The computer readable medium may be a computer readable signal medium or a computer readable storage medium. A computer readable storage medium may be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing. More specific examples (a non-exhaustive list) of the computer readable storage medium would include the following: an electrical connection having one or more wires, a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing. In the context of this document, a computer readable storage medium may be any tangible medium that can contain, or store a program for use by or in connection with an instruction execution system, apparatus, or device.
A computer readable signal medium may include a propagated data signal with computer readable program code embodied therein, for example, in baseband or as part of a carrier wave. Such a propagated signal may take any of a variety of forms, including, but not limited to, electro-magnetic, optical, or any suitable combination thereof. A computer readable signal medium may be any computer readable medium that is not a computer readable storage medium and that can communicate, propagate, or transport a program for use by or in connection with an instruction execution system, apparatus, or device.
Program code embodied on a computer readable medium may be transmitted using any appropriate medium, including but not limited to wireless, wireline, optical fiber cable, RF, etc., or any suitable combination of the foregoing.
Computer program code for carrying out operations for aspects of the present invention may be written in any combination of one or more programming languages, including an object oriented programming language such as Java, Smalltalk, C++ or the like and conventional procedural programming languages, such as the “C” programming language or similar programming languages. The program code may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider).
Aspects of the present invention have been discussed above with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems) and computer program products according to various embodiments of the invention. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
These computer program instructions may also be stored in a computer readable medium that can direct a computer, other programmable data processing apparatus, or other devices to function in a particular manner, such that the instructions stored in the computer readable medium produce an article of manufacture including instructions which implement the function/act specified in the flowchart and/or block diagram block or blocks.
The computer program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other devices to cause a series of operational steps to be performed on the computer, other programmable apparatus or other devices to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide processes for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the invention. As used herein, the singular forms “a”, “an” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will be further understood that the terms “comprises” and/or “comprising,” when used in this specification, specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof.
The description of the present invention has been presented for purposes of illustration and description, but is not intended to be exhaustive or limited to the invention in the form disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the invention. The embodiment was chosen and described in order to best explain the principles of the invention and the practical application, and to enable others of ordinary skill in the art to understand the invention for various embodiments with various modifications as are suited to the particular use contemplated.
This application is continuation of and claims priority from U.S. patent application Ser. No. 13/648,582 filed on Oct. 10, 2012, the disclosure of which is hereby incorporated by reference in its entirety.
Number | Name | Date | Kind |
---|---|---|---|
3973834 | Penn et al. | Aug 1976 | A |
4172443 | Sommer | Oct 1979 | A |
6449272 | Chuah et al. | Sep 2002 | B1 |
6751729 | Giniger et al. | Jun 2004 | B1 |
7036143 | Leung et al. | Apr 2006 | B1 |
7421736 | Mukherjee et al. | Sep 2008 | B2 |
7444415 | Bazzinotti et al. | Oct 2008 | B1 |
7486659 | Unbehagen et al. | Feb 2009 | B1 |
7590074 | Dondeti et al. | Sep 2009 | B1 |
7832006 | Chen | Nov 2010 | B2 |
7954145 | Mohanty et al. | May 2011 | B2 |
8260922 | Aggarwal | Sep 2012 | B1 |
8549281 | Samovskiy et al. | Oct 2013 | B2 |
8966260 | Walter et al. | Feb 2015 | B1 |
20020006132 | Chuah et al. | Jan 2002 | A1 |
20020069278 | Forslow | Jun 2002 | A1 |
20020178361 | Genty | Nov 2002 | A1 |
20020184388 | Yaseen et al. | Dec 2002 | A1 |
20020199007 | Clayton et al. | Dec 2002 | A1 |
20030041136 | Cheline et al. | Feb 2003 | A1 |
20030079041 | Parrella, Sr. et al. | Apr 2003 | A1 |
20030149787 | Mangan | Aug 2003 | A1 |
20030177221 | Ould-Brahim et al. | Sep 2003 | A1 |
20030223406 | Balay et al. | Dec 2003 | A1 |
20040022258 | Tsukada et al. | Feb 2004 | A1 |
20040037296 | Kim et al. | Feb 2004 | A1 |
20040174887 | Lee | Sep 2004 | A1 |
20040218538 | Wiedeman et al. | Nov 2004 | A1 |
20040218611 | Kim | Nov 2004 | A1 |
20050047329 | Almog et al. | Mar 2005 | A1 |
20050081045 | Nicodemus et al. | Apr 2005 | A1 |
20050132229 | Zhang et al. | Jun 2005 | A1 |
20050193103 | Drabik | Sep 2005 | A1 |
20060070115 | Yamada et al. | Mar 2006 | A1 |
20060193330 | Ishihara | Aug 2006 | A1 |
20070113275 | Khanna et al. | May 2007 | A1 |
20070136805 | Perry | Jun 2007 | A1 |
20070234418 | Song et al. | Oct 2007 | A1 |
20080072312 | Takeyoshi et al. | Mar 2008 | A1 |
20080075088 | Carrasco | Mar 2008 | A1 |
20080181219 | Chen et al. | Jul 2008 | A1 |
20080201486 | Hsu | Aug 2008 | A1 |
20090059837 | Kurk et al. | Mar 2009 | A1 |
20090122990 | Gundavelli et al. | May 2009 | A1 |
20100043068 | Varadhan et al. | Feb 2010 | A1 |
20110131647 | Sanders et al. | Jun 2011 | A1 |
20110276669 | Wei et al. | Nov 2011 | A1 |
20120124660 | Wang | May 2012 | A1 |
20120233674 | Gladstone et al. | Sep 2012 | A1 |
20130086236 | Baucke et al. | Apr 2013 | A1 |
20130182712 | Aguayo | Jul 2013 | A1 |
20130298182 | May | Nov 2013 | A1 |
20130305344 | Alicherry | Nov 2013 | A1 |
20140040435 | Ylimartimo | Feb 2014 | A1 |
20140068750 | Tjahjono et al. | Mar 2014 | A1 |
20140223507 | Xu | Aug 2014 | A1 |
Entry |
---|
Nelson Publishing, “Company Reaps the Benefits of SSL VPN: Employees, Suppliers and Business Partners All Gain from Secure Communications,” INSPEC AN-9300211, Communications News, vol. 44, No. 1, pp. 40-41, Jan. 2007. |
Callon, R., et al., A Framework for Layer 3 Provider-Provisioned Virtual Private Networks (PPVPNs)(RFC4110), IPCOM000126388D, Jul. 1, 2005, copyright The Internet Society (2005). |
Fang, L., et al., “Security Framework for MPLS and GMPLS Networks (RFC5920),” IPCOM000197430D, Jul. 1, 2010, copyright 2010 IETF Trust. |
PTONY83, “Social VPN”, http://socialvpn.word.press.com/, Apr. 26, 2008. |
Mail@tobiasvolk.de, “PeerVPN—The Open Source peer-to-peer VPN,” Oct. 9, 2012. |
Non-Final Rejection dated Mar. 17, 2015 received for U.S. Appl. No. 13/648,582. |
Final Office Action dated Jul. 29, 2015, received for U.S. Appl. No. 13/648,582. |
Non-Final Office Action dated Feb. 26, 2016 received for U.S. Appl. No. 13/648,582. |
Number | Date | Country | |
---|---|---|---|
20140101325 A1 | Apr 2014 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 13648582 | Oct 2012 | US |
Child | 13768489 | US |