|
A Virtual Internet Architecture[1] |
|
Joseph D. Touch,
Yu-Shun Wang, Lars Eggert, Gregory G. Finn |
Abstract – A Virtual
Internet (VI) is an IP network composed of tunneled links among a set
of virtual routers and virtual hosts. The architecture, like its
virtual memory counterpart, provides an abstraction that hides the
complexity of the underlying network and provides isolation-based
protection that encourages resource sharing. A
VI completely decouples its component hosts and routers from the
underlying network to support both sibling and recursive VIs and to
allow a node to participate multiple times in a single overlay, known
as revisitation. The VI architecture provides a consistent multihoming
paradigm, including end-to-end overlays, naming and addressing, virtual
host requirements, and virtual gateway requirements. Consequences of
the architecture are presented, including basic implications on the
underlying network and host operating system, as well as additional
requirements and mechanisms needed to support recursion and
revisitation. Several implementations based on this architecture are
discussed that explore the capabilities of VIs, including automated
deployment and management, recursion for fault tolerance, geographic
delivery, and support for peer-to-peer systems.
A Virtual Internet (VI) is a virtual version of the Internet in which virtual hosts and routers are connected by IP-encapsulation tunneled links over the existing Internet (Figure 1). A VI is an overlay network that rides on top of an IP network, and all the capabilities of the Internet in the overlay. VIs can provide security and isolation like VPNs, for whole virtualized networks rather than just remote hosts or subnets, unlike VPNs.
VIs generalize the tunnel backbones that helped deploy multicast (M-Bone), IPv6 (6-Bone), and Active Networks (A-Bone) [1][4][7]. Those backbones enabled new protocols to be tested and incrementally deployed on existing infrastructure. Unlike those interim solutions, VIs are intended as a more permanent capability, further enabling incremental tests, as well as to support persistent partial deployments of new capabilities where desired.