Virtual private network
![]() | This article has multiple issues. Please help improve it or discuss these issues on the talk page. (Learn how and when to remove these messages)
(February 2012)No issues specified. Please specify issues, or remove this template. |

A virtual private network (VPN) is a private computer network that interconnects remote (and often geographically separate) networks through primarily public communication infrastructures such as the Internet. VPNs provide security through tunneling protocols and security procedures[1] such as encryption. For example, a VPN could be used to securely connect the branch offices of an organization to a head office network through the public Internet. A VPN can also be used to interconnect two similar networks over a dissimilar middle network; for example, two IPv6 networks over an IPv4 network.[2]
There are two main types of VPN: remote-access VPNs and site-to-site VPNs. Remote-access VPNs allow individual users to connect to a remote network, such as salespeople in the field connecting to their company's intranet. Site-to-site VPNs allow inter-connection of networks of multiple users, for example, branch offices to the main company network. VPNs hence reduce costs as they eliminate the need for dedicated leased lines between networks, instead use existing infrastructures to connect networks while adding a layer of security.
VPNs typically require remote users to be authenticated and make use of encryption techniques to prevent disclosure of private information to unauthorized parties present on the network(s) the VPN goes through.
Through VPNs, users are able to access functionalities across networks, such as remote access to resources like files, printers, databases, or internal websites in a secure manner. VPN remote users get the impression of being directly connected to the central network via a point-to-point link.[3]
History and status
Virtual private networks have existed for many years in the form of frame relay based private networks. IP-VPNs have become more prevalent in the communications industry due to significant cost reductions, increased bandwidth, and security. These IP based VPNs will ultimately find their wayTemplate:Really? into almost every network based communications activity that occurs whether it be via cellular to cellular, satellite, site-to-site, or inside corporate local area networks.[citation needed]
Types of VPN
VPN systems can be classified by:
- the protocols used to tunnel the traffic
- the tunnel's termination point, i.e., customer edge or network-provider edge
- whether they offer site-to-site or remote-access connectivity
- the levels of security provided
- the OSI layer they present to the connecting network, such as Layer 2 circuits or Layer 3 network connectivity
The following sections discuss some classification schemes.
Security mechanisms
Secure VPNs use cryptography and tunneling protocols to provide:
- Confidentiality such that even if traffic is sniffed, an attacker would only see encrypted data which they cannot understand
- Allowing sender authentication to prevent unauthorized users from accessing the VPN
- Message integrity to detect any tampering of transmitted messages
Secure VPN protocols include the following:
- IPSec (Internet Protocol Security) was developed by the Internet Engineering Task Force (IETF), and was initially developed for IPv6, which requires it. This standards-based security protocol is also widely used with IPv4. Layer 2 Tunneling Protocol frequently runs over IPSec. Its design meets most security goals: authentication, integrity, and confidentiality. IPSec functions through encrypting and encapsulating an IP packet inside an IPSec packet. De-encapsulation happens at the end of the tunnel, where the original IP packet is decrypted and forwarded to its intended destination.
- Transport Layer Security (SSL/TLS) can tunnel an entire network's traffic, as it does in the OpenVPN project, or secure an individual connection. A number of vendors provide remote access VPN capabilities through SSL. An SSL VPN can connect from locations where IPsec runs into trouble with Network Address Translation and firewall rules.
- Datagram Transport Layer Security (DTLS), is used in Cisco AnyConnect VPN, to solve the issues SSL/TLS has with tunneling over UDP.
- Microsoft Point-to-Point Encryption (MPPE) works with the Point-to-Point Tunneling Protocol and in several compatible implementations on other platforms.
- Microsoft's Secure Socket Tunneling Protocol (SSTP), introduced in Windows Server 2008 and in Windows Vista Service Pack 1. SSTP tunnels Point-to-Point Protocol (PPP) or Layer 2 Tunneling Protocol traffic through an SSL 3.0 channel.
- MPVPN (Multi Path Virtual Private Network). Ragula Systems Development Company owns the registered trademark "MPVPN".[4]
- Secure Shell (SSH) VPN - OpenSSH offers VPN tunneling (distinct from port forwarding) to secure remote connections to a network or inter-network links. OpenSSH server provides a limited number of concurrent tunnels and the VPN feature itself does not support personal authentication.[5][6][7]
Authentication
Tunnel endpoints must authenticate before secure VPN tunnels can be established.
User-created remote access VPNs may use passwords, biometrics, two-factor authentication or other cryptographic methods.
Network-to-network tunnels often use passwords or digital certificates, as they permanently store the key to allow the tunnel to establish automatically and without intervention from the user.
Example use of a VPN Tunnel
The following steps [8] illustrate the principles of a VPN client-server interaction in simple terms.
Assume a remote host with public IP address 1.2.3.4 wishes to connect to a server found inside a company network. The server has internal address 192.168.1.10 and is not reachable publicly. Before the client can reach this server, it needs to go through a VPN server / firewall device that has public IP address 5.6.7.8 and an internal address of 192.168.1.1. All data between the client and the server will need to be kept confidential, hence a secure VPN is used.
- The VPN client connects to a VPN server via an external network interface.
- The VPN server assigns an IP address to the VPN client from the VPN server's subnet. The client gets internal IP address 192.168.1.50, for example, and creates a virtual network interface through which it will send encrypted packets to the other tunnel endpoint (the device at the other end of the tunnel) [9]. (This interface also gets the address 192.168.1.50.)
- When the VPN client wishes to communicate with the company server, it prepares a packet addressed to 192.168.1.10, encrypts it and encapsulates it in an outer VPN packet, say an IPSec packet. This packet is then sent to the VPN server at IP address 5.6.7.8 over the public Internet. The inner packet is encrypted so that even if someone intercepts the packet over the Internet, they cannot get any information from it. They can see that the remote host is communicating with a server/firewall, but none of the contents of the communication. The inner encrypted packet has source address 192.168.1.50 and destination address 192.168.1.10. The outer packet has source address 1.2.3.4 and destination address 5.6.7.8.
- When the packet reaches the VPN server from the Internet, the VPN server unencapsulates the inner packet, decrypts it, finds the destination address to be 192.168.1.10, and forwards it to the intended server at 192.168.1.10.
- After some time, the VPN server receives a reply packet from 192.168.1.10, intended for 192.168.1.50. The VPN server consults its routing table, and sees this packet is intended for a remote host that must go through VPN.
- The VPN server encrypts this reply packet, encapsulates it in a VPN packet and sends it out over the Internet. The inner encrypted packet has source address 192.168.1.10 and destination address 192.168.1.50. The outer VPN packet has source address 5.6.7.8 and destination address 1.2.3.4.
- The remote host receives the packet. The VPN client unencapsulates the inner packet, decrypts it, and passes it to the appropriate software at upper layers.
Overall, it is as if the remote computer and company server are on the same 192.168.1.0/24 network.
Routing
Tunneling protocols can operate in a point-to-point network topology that would theoretically not be considered a VPN, because a VPN by definition is expected to support arbitrary and changing sets of network nodes. But since most router implementations support a software-defined tunnel interface, customer-provisioned VPNs often are simply defined tunnels running conventional routing protocols.
PPVPN building-blocks
Depending on whether the PPVPN (Provider Provisioned VPN) runs in layer 2 or layer 3, the building blocks described below may be L2 only, L3 only, or combine them both. Multiprotocol label switching (MPLS) functionality blurs the L2-L3 identity.
RFC 4026 generalized the following terms to cover L2 and L3 VPNs, but they were introduced in RFC 2547.[10] More information on the devices below can also be found in [11].
- Customer (C) devices
A device that are within a customer's network and not directly connected to the service provider's network. C devices are not aware of the VPN.
- Customer Edge device (CE)
A device at the edge of the customer's network which provides access to the PPVPN. Sometimes it's just a demarcation point between provider and customer responsibility. Other providers allow customers to configure it.
- Provider edge device (PE)
A PE is a device, or set of devices, at the edge of the provider network which connects to customer networks through CE devices and present the provider's view of the customer site. PEs are aware of the VPNs that connect through them, and maintain VPN state.
- Provider device (P)
A P device operates inside the provider's core network and does not directly interface to any customer endpoint. It might, for example, provide routing for many provider-operated tunnels that belong to different customers' PPVPNs. While the P device is a key part of implementing PPVPNs, it is not itself VPN-aware and does not maintain VPN state. Its principal role is allowing the service provider to scale its PPVPN offerings, for example, by acting as an aggregation point for multiple PEs. P-to-P connections, in such a role, often are high-capacity optical links between major locations of providers.
User-visible PPVPN services
This section deals with the types of VPN considered in the IETF; some historical names were replaced by these terms.
OSI Layer 1 services
Virtual private wire and private line services (VPWS and VPLS)
In both of these services, the service provider does not offer a full routed or bridged network, but provides components to build customer-administered networks. VPWS are point-to-point while VPLS can be point-to-multipoint. They can be Layer 1 emulated circuits with no data link .
The customer determines the overall customer VPN service, which also can involve routing, bridging, or host network elements. An unfortunate acronym confusion can occur between Virtual Private Line Service and Virtual Private LAN Service; the context should make it clear whether "VPLS" means the layer 1 virtual private line or the layer 2 virtual private LAN.
OSI Layer 2 services
- Virtual LAN
A Layer 2 technique that allows for the coexistence of multiple LAN broadcast domains, interconnected via trunks using the IEEE 802.1Q trunking protocol. Other trunking protocols have been used but have become obsolete, including Inter-Switch Link (ISL), IEEE 802.10 (originally a security protocol but a subset was introduced for trunking), and ATM LAN Emulation (LANE).
- Virtual private LAN service (VPLS)
Developed by IEEE, VLANs allow multiple tagged LANs to share common trunking. VLANs frequently comprise only customer-owned facilities. Whereas VPLS as described in the above section (OSI Layer 1 services) supports emulation of both point-to-point and point-to-multipoint topologies, the method discussed here extends Layer 2 technologies such as 802.1d and 802.1q LAN trunking to run over transports such as Metro Ethernet.
As used in this context, a VPLS is a Layer 2 PPVPN, rather than a private line, emulating the full functionality of a traditional local area network (LAN). From a user standpoint, a VPLS makes it possible to interconnect several LAN segments over a packet-switched, or optical, provider core; a core transparent to the user, making the remote LAN segments behave as one single LAN.[12]
In a VPLS, the provider network emulates a learning bridge, which optionally may include VLAN service.
- Pseudo wire (PW)
PW is similar to VPWS, but it can provide different L2 protocols at both ends. Typically, its interface is a WAN protocol such as Asynchronous Transfer Mode or Frame Relay. In contrast, when aiming to provide the appearance of a LAN contiguous between two or more locations, the Virtual Private LAN service or IPLS would be appropriate.
- IP-only LAN-like service (IPLS)
A subset of VPLS, the CE devices must have L3 capabilities; the IPLS presents packets rather than frames. It may support IPv4 or IPv6.
OSI Layer 3 PPVPN architectures
This section discusses the main architectures for PPVPNs, one where the PE disambiguates duplicate addresses in a single routing instance, and the other, virtual router, in which the PE contains a virtual router instance per VPN. The former approach, and its variants, have gained the most attention.
One of the challenges of PPVPNs involves different customers using the same address space, especially the IPv4 private address space.[13] The provider must be able to disambiguate overlapping addresses in the multiple customers' PPVPNs.
- BGP/MPLS PPVPN
In the method defined by RFC 2547, BGP extensions advertise routes in the IPv4 VPN address family, which are of the form of 12-byte strings, beginning with an 8-byte Route Distinguisher (RD) and ending with a 4-byte IPv4 address. RDs disambiguate otherwise duplicate addresses in the same PE.
PEs understand the topology of each VPN, which are interconnected with MPLS tunnels, either directly or via P routers. In MPLS terminology, the P routers are Label Switch Routers without awareness of VPNs.
- Virtual router PPVPN
The Virtual Router architecture,[14][15] as opposed to BGP/MPLS techniques, requires no modification to existing routing protocols such as BGP. By the provisioning of logically independent routing domains, the customer operating a VPN is completely responsible for the address space. In the various MPLS tunnels, the different PPVPNs are disambiguated by their label, but do not need routing distinguishers.
Virtual router architectures do not need to disambiguate addresses, because rather than a PE router having awareness of all the PPVPNs, the PE contains multiple virtual router instances, which belong to one and only one VPN.
Plaintext tunnels
Some virtual networks may not use encryption to protect the data contents. While VPNs often provide security, an unencrypted overlay network does not neatly fit within the secure or trusted categorization. For example a tunnel set up between two hosts that used Generic Routing Encapsulation (GRE) would in fact be a virtual private network, but neither secure nor trusted.
Besides the GRE example above, native plaintext tunneling protocols include Layer 2 Tunneling Protocol (L2TP) when it is set up without IPsec and Point-to-Point Tunneling Protocol (PPTP) or Microsoft Point-to-Point Encryption (MPPE).
Trusted delivery networks
Trusted VPNs do not use cryptographic tunneling, and instead rely on the security of a single provider's network to protect the traffic.
- Multi-Protocol Label Switching (MPLS) is often used to overlay VPNs, often with quality-of-service control over a trusted delivery network.
- Layer 2 Tunneling Protocol (L2TP)[16] which is a standards-based replacement, and a compromise taking the good features from each, for two proprietary VPN protocols: Cisco's Layer 2 Forwarding (L2F)[17] (obsolete as of 2009[update]) and Microsoft's Point-to-Point Tunneling Protocol (PPTP).[18]
From the security standpoint, VPNs either trust the underlying delivery network, or must enforce security with mechanisms in the VPN itself. Unless the trusted delivery network runs among physically secure sites only, both trusted and secure models need an authentication mechanism for users to gain access to the VPN.
VPNs in mobile environments
Mobile VPNs are used in a setting where an endpoint of the VPN is not fixed to a single IP address, but instead roams across various networks such as data networks from cellular carriers or between multiple Wi-Fi access points.[19] Mobile VPNs have been widely used in public safety, where they give law enforcement officers access to mission-critical applications, such as computer-assisted dispatch and criminal databases, while they travel between different subnets of a mobile network.[20] They are also used in field service management and by healthcare organizations,[21] among other industries.
Increasingly, mobile VPNs are being adopted by mobile professionals and white-collar workers who need reliable connections.[21] They are used for roaming seamlessly across networks and in and out of wireless-coverage areas without losing application sessions or dropping the secure VPN session. A conventional VPN cannot survive such events because the network tunnel is disrupted, causing applications to disconnect, time out,[19] or fail, or even cause the computing device itself to crash.[21]
Instead of logically tying the endpoint of the network tunnel to the physical IP address, each tunnel is bound to a permanently associated IP address at the device. The mobile VPN software handles the necessary network authentication and maintains the network sessions in a manner transparent to the application and the user.[19] The Host Identity Protocol (HIP), under study by the Internet Engineering Task Force, is designed to support mobility of hosts by separating the role of IP addresses for host identification from their locator functionality in an IP network. With HIP a mobile host maintains its logical connections established via the host identity identifier while associating with different IP addresses when roaming between access networks.
See also
- Opportunistic encryption
- Split tunneling
- Mediated VPN
- OpenVPN
- UT-VPN
- Tinc (protocol)
- DMVPN (Dynamic Multipoint VPN)
- Virtual Private LAN Service over MPLS
- Ethernet Virtual Private LAN (EVP-LAN or E-LAN) defined by MEF
- Golden Frog (provider of VyprVPN)
References
- ^ VPN Consortium. "VPN Technologies".
- ^ Technet Lab. "IPv6 traffic over VPN connections".
- ^ Microsoft Technet. "Virtual Private Networking: An Overview".
- ^ Trademark Applications and Registrations Retrieval (TARR)
- ^ OpenBSD ssh manual page, VPN section
- ^ Unix Toolbox section on SSH VPN
- ^ Ubuntu SSH VPN how-to
- ^ "VPN - Virtual Private Network and OpenVPN".
- ^ "TunTap Project".
- ^ E. Rosen & Y. Rekhter (March 1999). "RFC 2547 BGP/MPLS VPNs". Internet Engineering Task Forc (IETF).
- ^ Lewis, Mark (2006). Comparing, designing, and deploying VPNs (1st print. ed.). Indianapolis, Ind.: Cisco Press. pp. 5–6. ISBN 1587051796.
- ^ Ethernet Bridging (OpenVPN)
- ^ Address Allocation for Private Internets, RFC 1918, Y. Rekhter et al.,February 1996
- ^ RFC 2917, A Core MPLS IP VPN Architecture
- ^ RFC 2918, E. Chen (September 2000)
- ^ Layer Two Tunneling Protocol "L2TP", RFC 2661, W. Townsley et al.,August 1999
- ^ IP Based Virtual Private Networks, RFC 2341, A. Valencia et al., May 1998
- ^ Point-to-Point Tunneling Protocol (PPTP), RFC 2637, K. Hamzeh et al., July 1999
- ^ a b c Phifer, Lisa. "Mobile VPN: Closing the Gap", SearchMobileComputing.com, July 16, 2006.
- ^ Willett, Andy. "Solving the Computing Challenges of Mobile Officers", www.officer.com, May, 2006.
- ^ a b c Cheng, Roger. "Lost Connections", The Wall Street Journal, December 11, 2007.
Further reading
- Kelly, Sean (August 2001). "Necessity is the mother of VPN invention". Communication News: 26–28. ISSN 0010-3632.
- "VPN Buyers Guide". Communication News: 34–38. August 2001. ISSN 0010-3632.
External links
- JANET UK "Different Flavours of VPN: Technology and Applications"
- Virtual Private Network Consortium - a trade association for VPN vendors
- CShip VPN-Wiki/List
- Virtual Private Networks on Microsoft TechNet
- Creating VPNs with IPsec and SSL/TLS Linux Journal article by Rami Rosen
- curvetun a lightweight curve25519-based multiuser IP tunnel / VPN
- Using VPN to bypass internet censorship in How to Bypass Internet Censorship, a FLOSS Manual, 10 March 2011, 240 pp