User-Defined P2P Virtual Network Overlays for Ad-Hoc Collaboration
Total Page:16
File Type:pdf, Size:1020Kb
EAI Endorsed Transactions on Collaborative Computing Research Article TinCan: User-Defined P2P Virtual Network Overlays for Ad-hoc Collaboration 1 1 1 2 1 Pierre St Juste∗ , Kyuho Jeong , Heungsik Eom , Corey Baker , Renato Figueiredo 1Advanced Computing and Information Systems Lab, 2Wireless and Mobile Systems Lab Electrical and Computer Engineering, University of Florida, Gainesville, FL, 32611, USA Abstract Virtual private networking (VPN) has become an increasingly important component of a collaboration environment because it ensures private, authenticated communication among participants, using existing collaboration tools, where users are distributed across multiple institutions and can be mobile. The majority of current VPN solutions are based on a centralized VPN model, where all IP traffic is tunneled through a VPN gateway. Nonetheless, there are several use case scenarios that require a model where end-to-end VPN links are tunneled upon existing Internet infrastructure in a peer-to-peer (P2P) fashion, removing the bottleneck of a centralized VPN gateway. We propose a novel virtual network — TinCan — based on peer- to-peer private network tunnels. It reuses existing standards and implementations of services for discovery notification (XMPP), reflection (STUN) and relaying (TURN), facilitating configuration. In this approach, trust relationships maintained by centralized (or federated) services are automatically mapped to TinCan links. In one use scenario, TinCan allows unstructured P2P overlays connecting trusted end-user devices — while only requiring VPN software on user devices and leveraging online social network (OSN) infrastructure already widely deployed. This paper describes the architecture and design of TinCan and presents an experimental evaluation of a prototype supporting Windows, Linux, and Android mobile devices. Results quantify the overhead introduced by the network virtualization layer, and the resource requirements imposed on services needed to bootstrap TinCan links. Received on 11 July 2014, accepted on 23 July 2014, published on 20 October 2014 Keywords: vpn, peer-to-peer, networking, privacy, virtual organization Copyright © 2014 Pierre St Juste et al., licensed to ICST. This is an open access article distributed under the terms of the Creative Commons Attribution licence (http://creativecommons.org/licenses/by/3.0/), which permits unlimited use, distribution and reproduction in any medium so long as the original work is properly cited. doi: 10.4108/ cc.1.2.e4 existing Internet infrastructure in a peer-to-peer (P2P) 1. Introduction fashion removing the bottleneck of a centralized VPN gateway, so called peer-to-peer virtual private networks Virtual private networking (VPN) has become an (P2PVPNs). increasingly important component of a collaboration The availability of P2PVPNs also help address the environment because it ensures private, authenticated growing privacy concerns caused by recent NSA reve- communication among participants, using existing lations through programs such as PRISM [1] because collaboration tools, where users are distributed across P2PVPNs create an environment where computing multiple institutions and can be mobile. VPNs also devices have end-to-end encrypted P2P tunnels which allow groups from different organizations to create are used to route IP packets without the involvement transient virtual networks thereby facilitating trusted of a middleman. This end-to-end encryption makes resource sharing across the public Internet. The digital monitoring more challenging because there is no majority of VPN solutions are based on a centralized overseer that has direct access to all IP traffic flowing VPN model, where all IP traffic is tunneled through a through the VPN, as is the case in most centralized VPN gateway. This model focuses primarily on one of VPN implementations. The main challenge to address these three goals: 1) secure network access to a private is architecting an open VPN technology that is efficient, corporate network, 2) circumvention of a firewall robust, easy to deploy and manage in a P2P fashion restricting complete access to the global Internet, or without compromising trust and while making it prac- 3) one-hop anonymity on the Internet. Nevertheless, tical for common use in today’s Internet. there are several use case scenarios that require a This paper presents TinCan, a P2PVPN that allows model where end-to-end VPN links are tunneled upon flexible V PN o verlays o f d ifferent t opologies t hat can be instantiated atop Internet infrastructure with low ∗Corresponding author. Email: [email protected]fl.edu European Alliance EAI Endorsed Transactions on 1 Collaborative Computing EAI for Innovation 06 -10 2014 | Volume 01 | Issue 2 | e4 P. St Juste et al. configuration and management overhead 1. TinCan control of TinCan link creation and deletion, mapping integrates with existing online social networking IP addresses to identities and TinCan links, and (OSN) services for peer discovery and notification configuring virtual networking interface. Coordination to allow deployments that bootstrap private peer-to- among endpoints and overlay routing is possible peer tunnels using relationships established through through message forwarding along TinCan virtual IPv6 intuitive OSN interfaces. The overlay implied by links, supporting user-defined overlay topologies and private end-to-end TinCan links exposes IP endpoints, routing policies implemented as a separate module allowing existing applications to work unmodified, and from the core datapath. providing a basis for overlay peer-to-peer routing in the virtual network. The TinCan design also supports To demonstrate its applicability in different use cases, tunneling of both IPv4 and IPv6 packets within TinCan implements a common datapath based on the VPN, which is implemented as IPv6 packets Google’s libjingle P2P library [6], and two different Tin- encapsulated within UDP packets and sent over IPv4 Can controllers: a “group” controller (which provides a P2P tunnels, as well as IPv4 packets within IPv6 UDP private subnet with a flat address space for group col- packets. laboration), and a “social” controller (which automati- A key goal in the design is to minimize the amount cally creates VPN links from social networking relation- of configuration and infrastructure necessary to sustain ships established through an external OSN provider, these virtual private networks. Because TinCan runs on for user-to-user collaboration). With the GroupVPN endpoints (e.g. VMs or personal devices), it requires controller, nodes bind to the same subnet in the vir- little additional infrastructure for maintaining the tual network and can address each other using unique network. TinCan links make it possible for VMs private IP addresses within the scope of the VPN. In SocialVPN mode, each user is able to define their own and mobile devices to tunnel IP traffic directly to each other — even when constrained by NATs — private IP range/subnet and locally map social peers while simultaneously giving end users the flexibility to IP addresses within that subnet thus forming an to define the IP address ranges, subnets, and access unstructured social network graph overlay topology. control policies for their private network. TinCan The analysis shows that the TinCan design is practical integrates with ubiquitous messaging overlays that use and scalable. In the experiments, a network of 300 the XMPP protocol for signaling, along with well- nodes consumes 29 KB/s of bandwidth on the XMPP adopted technologies for NAT traversal (STUN, TURN, server. The management of these TinCan links uses and ICE [2–4]) to bootstrap encrypted TinCan links. In about 1 KB/s of bandwidth per connection. The one use case, social peers can run TinCan to deploy design incurs a 14% network per-packet encapsulation VPNs comprised of their personal devices (including overhead. This overhead is due to our use of an mobile) and their social peers’ devices by leveraging MTU of 1280 bytes — selected to minimize packet existing Internet services for discovery and reflection fragmentation — rather than the traditional 1500 (e.g. Google Hangouts, Jabber.org XMPP and STUN byte MTU along with the cost of an additional 40- servers). The only requirement for deploying a TinCan byte header necessary to encapsulate the virtual IP VPN is an XMPP server; therefore, end users can use packets. To measure system throughput, we conducted any freely available XMPP service on the Internet, an experiment between two nodes in a 1 Gbps LAN or deploy their own private XMPP server such as and ran the iperf networking benchmark to obtain the ejabberd [5]. bandwidth measurements. The results show a latency The novel design of TinCan is logically divided in of less than 1 ms and a TCP bandwidth of 64 Mbps; two key layers — reminiscent of the OpenFlow model, since our target is to create virtual networks across the but applied to tunnels over UDP/TCP links: 1) a Internet, for most applications, the bottleneck will be datapath packet capture/forwarding layer, responsible the bandwidth limit imposed by their local ISPs. for capturing/injecting packets from a virtual NIC, and maintaining TinCan links (over UDP or TCP) to The main contribution of this paper is a novel neighboring peers, and 2) a control layer, responsible VPN design that leverages XMPP servers to bootstrap for implementing policies for the creation and tear- end-to-end VPN tunnels, supports decoupled con- down of TinCan links. Each TinCan peer runs the two troller/datapath