A Global X-Bone for Network Experiments

Joseph D. Touch, Yu-Shun Wang, Venkata Pingali, Lars Eggert*, Runfang Zhou, Gregory G. Finn
USC/ISI and NEC Labs*
{touch,yushunwa,pingali,rzhou,finn}@isi.edu and lars.eggert@netlab.nec.de

Click here for PDF.

 


Abstract

A global Internet overlay testbed is being deployed to support the distributed, shared use of resources for network research. The Global X-Bone (GX-Bone) augments the X-Bone software system, enhancing its coordination mechanisms to support deployment of local overlays to world-wide, shared infrastructure. The GX‑Bone is based on the X-Bone’s Virtual Internet Architecture which extends the Internet for both concurrent, parallel and recursive overlays, and provides decentralized, automated deployment and management. GX-Bone supports host virtualization through the NetFS file system, granting individual users compartmentalized access and control of host and router configuration, and the DataRouter extension to IP loose source routing that supports application control of network-layer forwarding. GX-Bone can be installed on user-modified kernels, uniquely supporting both conventional kernel-level protocol development and coordinated global infrastructure sharing.

1. Introduction

X-Bone is a system for deploying and managing Internet overlays [17][20]. It coordinates the configuration and management of virtual networks, enabling shared use of network resources (Figure 1). The Global X-Bone extends the X-Bone implementation from a stand-alone software system for local experiments to a global infrastructure for wide-scale network research.

           Overlays can be used for isolation, concurrency, and abstraction. They protect traffic, allowing new protocols to be tested, and were originally used to protect multicast IP addresses from leaking onto the conventional Internet. Overlays isolate different protocols, such as was used to deploy IPv6 incrementally over the current IPv4 Internet. Overlays also allow network components to be shared, supporting network concurrency akin to multiprocessing. This allows concurrent network experiments to share core infrastructure, as the 6-Bone and M-Bone currently do. Finally, overlays provide abstraction of topology, allowing experiments with routing protocols on rings, where, e.g., the physical topology is a star, a ring, or of arbitrary design. This allows the network topology to reflect forwarding decisions, as is done with peer-to-peer architectures, e.g., based on hypercubes or Plaxton trees [16].

 

Figure 1  Multiple virtual Internets

The X-Bone applies a general architecture for network virtualization to the Internet [20][22]. This architecture supports concurrence, recursion and revisitation. Concurrence allows deployment of multiple, parallel concurrent overlays. Recursion enables deployment of overlays inside other overlays. Revisitation enables reuse of the same node in a single overlay more than once. The core set of capabilities has been implemented as a software system that allows programmatic deployment of overlays through an XML interface; a web interface for user-directed deployment is also available.

The X-Bone code has been available since 2000 as both a FreeBSD port and a Linux RPM. It has been used in numerous individual deployments to support overlay and application experiments and the development of advanced virtual networking architectures. Although the X-Bone architecture already supports global resource discovery, each of these installations has operated largely independently. This remains a key feature of the X-Bone system – each installation may remain completely decentralized in both management and operation. No global coordination is required.

An X-Bone overlay contains both named and unnamed resources. The current X-Bone uses an expanding ring multicast search to discover unnamed resources. Named resources must be specified by IP address or DNS name. Although this simple mechanism is sufficient for local testbeds or pre-coordinated global experiments, it does not easily support a global testbed. On a global scale, it is inefficient to locate resources using multicast alone. The existing implementation hence did not support the needs of a global community of X-Bone users that share their resources to create large-scale, distributed testbeds spanning numerous administrative domains.

The Global X-Bone, which we call GX-Bone, is an effort to support this worldwide X-Bone user community in resource discovery and sharing. It augments the current X-Bone software with a centralized registry, where members publish information about resources they are willing to share. Access control is an integral part of this registry; members may indicate lists of users with whom they wish to share each resource.

The remainder of this document presents a brief overview of the Virtual Internet architecture that is the basis of the X-Bone, and the X-Bone system itself. It then describes the extensions that form the Global X-Bone, and the advanced networking capabilities that are being added to X-Bone nodes to address deficiencies of other current overlay systems.

2. A Virtual Internet

A Virtual Internet (VI) is a virtual version of the Internet. Just as the Internet is a graph of hosts and routers connected through links, in a Virtual Internet, virtual hosts and routers are connected by IP-encapsulation tunneled links over the existing Internet.

A VI generalizes the tunneled backbones that helped deploy multicast (M-Bone), IPv6 (6-Bone), and Active Networks (A-Bone.) These testbeds supported wide-scale networking research by enabling the testing and incremental deployment of new protocols on existing infrastructure [1][4][9]. Unlike those interim solutions, VIs support persistent partial deployments of new capabilities.

The VI Architecture (VIA) extends the Internet model composed of data sources and sinks (hosts), data transits (routers or gateways), and links between them [22]. The VI virtualizes each of those components, resulting in virtual hosts (VHs), virtual routers (VRs), and virtual links. The latter are typically encapsulation tunnels. The VI architecture has three basic tenets:

 

TENET 1. Internet-like: VIs are composed of VRs and VHs connected by encapsulated tunnel links, emulating the Internet

 

TENET 2. All-Virtual: VIs are completely virtual, decoupled from their base network

 

TENET 3. Recursion-as-router: A VI recurses when some of its VRs are VI networks (the inner VI is modeled as a VR)

 

A number of corollaries follow from these tenets:

 

Corollary 1-A: Virtual hosts increase or decrease the number of headers on a packet

 

Corollary 1-B: Virtual routers do not change the number of headers on a packet

 

Corollary 2-A: VIs support concurrence

 

Corollary 2-B: VIs support revisitation

 

These tenets and corollaries are the basis of VIA. They evolved out of analogies between the VIA and multiprocessing and virtual memory (VM). Like both multiprocessing and VM, VIA allows multiple parties concurrent shared, protected use of a single resource in virtual ways. Like VM, VIA can use a small number of physical resources (memory page frames, network interfaces, respectively) to emulate a larger number (memory pages, virtual interfaces) by revisitation (swapping, known as revisitation in VIA). All can be layered recursively, and all provide a simpler, uniform abstract programming interface.

3. The X-Bone

The X-Bone is a system for the dynamic deployment and management of Internet overlay networks [17][20][27]. Overlay networks are used to deploy infrastructure on top of existing networks, to isolate tests of new protocols, partition capacity, or present an environment with a simplified topology. Current overlay systems include commercial virtual private networks (VPNs), and IP tunneled networks (M-Bone, 6-Bone) [1][9]. The X-Bone system provides a high-level interface where users or applications request DWIM (do what I mean) deployment, e.g.: create an overlay of 6 routers in a ring, each with 2 hosts. The X-Bone automatically discovers available components, configures, and monitors them.

The X-Bone system allows different applications on the same end host or router to be associated with different overlay networks. For example, a single generic network mapping utility on one host might have different views of the network depending on whether it was attached to the base network or one of the overlays (Figure 2).