An Overlay Data Plane for PlanetLab
Download
Report
Transcript An Overlay Data Plane for PlanetLab
An Overlay Data Plane
for PlanetLab
Andy Bavier, Mark Huang, and
Larry Peterson
Princeton University
Overlay networks
Purpose-built virtual networks
that use the existing Internet for
transmission
The Internet was once deployed
as an overlay on top of the
telephony network
Choose “better” routes than the
underlying Internet
Route around failure, congestion
Improve throughput and delay
Extend network architecture
E.g., multi-path routing, multicast,
DHT-based routing, VoIP
overlay
Internet
PlanetLab is…
A platform for overlay network research
• Worldwide consortium of universities and companies
• Running 550 widely-distributed nodes
• Supporting hundreds of simultaneous projects
PlanetLab Slices
Slice = set of
distributed virtual
machines (VMs)
PlanetLab is a
shared infrastructure
PlanetLab Node View
Each VM looks like a
Linux account
Limited root access
Install software
Raw sockets
Initialization scripts
VM is user-space
only, shared kernel
Node Local
VM1 VM2
Mgr Admin
…
Linux-based VMM
VMn
Our vision: ROCK
Routing Overlay Construction Kit (ROCK)
State-of-the-art components
Framework
Build, debug, deploy, and maintain routing overlays…
In a (user-space) slice on PlanetLab
Embody our expertise with both PlanetLab and overlays
Wrappers allow the components to work together
Customize components using hooks
Tools to configure, deploy, and monitor resulting overlays
Goal: typing “make” deploys a fully-functional overlay on
PlanetLab
ROCK components
1.
2.
3.
4.
5.
Information plane:
network topology and
conditions
Forwarding engine:
forward packets within
Data
the overlay
plane
Ingress point: where
packets from clients
enter the overlay
Egress point: where
packets exit the overlay
Control plane: computes
and adds routes to the
forwarding engine
Control plane
Ingress
point
Fwd
engine
Egress
point
Information plane
The Internet
ROCK IP data plane
Component: Click modular software router
Click elements process, forward, queue, drop,
schedule, and account IP packets
Runs as a user process or kernel module
We added Click elements for:
Tunneling via UDP sockets and VPN (PPTP/GRE)
connections
Network address translation (NAT) using “safe
raw sockets”
Initializing the data plane
10.0.0.1
5.6.7.8
UDP tunnels
VPN tunnel
(e.g., PPTP)
NAT
PL1
PL2
PL3
Dest
Next hop
Interface
Dest
Next hop
Interface
Dest
5.6.7.8
PL2
UDP
5.6.7.8
PL3
UDP
5.6.7.8
VPN
10.0.0.1
PL1
UDP
10.0.0.1
10.0.0.1
Next hop
Interface
NAT
PL2
UDP
Applications
Right now: network games
Projects for CS networking class
Plug in a dynamic control plane, build a useful
service on PlanetLab
Know locations of clients and server, network topology
Create a static overlay, e.g., using low-latency, highbandwidth links
Devise a way to find “better” routes
Attract real users all around the world
Crazy idea: Build a virtual ISP?
Summary
ROCK is a work-in-progress
Click-based IP data plane released
Still needed:
Control plane examples
Monitoring, visualization tools
More users and feedback!
PlanetLab: http://www.planet-lab.org
ROCK: http://wiki.planet-lab.org
WikiWord: OverlayToolkit
PlanetLab performance
Test data plane performance on
PlanetLab using netperf
All machines on a LAN
Summary:
Each overlay node adds about
1ms to RTT
Throughput of about 4.5Mbps
What’s the bottleneck on TCP
throughput?
PlanetLab machines are heavily
loaded
Most have outgoing bandwidth
capped at 10Mbps
Overlay
hops
RTT (ms)
TCP thru
(Mbps)
None
2.4
13.1
One
3.7
4.9
Two
4.5
4.5
Three
5.5
4.5