Providing support for legacy applications is a crucial component of many overlay networks, as it allows end-users to instantly benefit from the functionality introduced by these overlays. This paper presents the design and implementation of a proxy-based solution to support legacy applications in the context of the i3 overlay. The proxy design relies on an address virtualization technique which allows the proxy to tunnel the legacy traffic over the overlay transparently. Our solution can preserve IP packet headers on an end-to-end basis, even when end-host IP addresses change, or when end-hosts live in different address spaces (e.g. behind NATs). In addition, our solution allows the use of human-readable names to refer to hosts or services, and requires no changes to applications or operating systems.
To illustrate how the proxy enables legacy applications to take advantage of the overlay (i.e. i3) functionality, we present four examples: enabling access to machines behind NAT boxes, secure Intranet access, routing legacy traffic through Bro, an intrusion detection system, and anonymous web download. We have implemented the proxy on Linux and Windows XP/2000 platforms, and used it over the i3 service on PlanetLab over a three month period with a variety of legacy applications ranging from web browsers to operating system-specific file sharing.