Internet In A Slice - Princeton University
Download
Report
Transcript Internet In A Slice - Princeton University
Internet In A Slice
Andy Bavier
CS461 Lecture
Internet in a slice (IIAS)
Goal: run multiple “virtual” internets on
PlanetLab
Experimentally evaluate proposed
changes to the Internet’s core software
Demonstrate scalability and robustness
Carry real traffic on behalf of real users
worldwide
Handle real-world instability and failures
Overlays
A network built on
top of a network
Key idea: tunneling
Examples
VPN
Multicast
Resilient Overlay
Network (RON)
How to build an overlay?
Requirements
Packet forwarding engine
Allow clients to opt-in to overlay (overlay
ingress)
Communicate with servers that don’t
participate in the overlay (overlay egress)
Routing scheme (control plane)
First three form overlay’s data plane
User Opt-in
Client
NAT
Server
IIAS data plane
First step towards IIAS vision
Built using the Click modular router
project
You plug in your own control plane to
make it all work
Click modular router
Open-source, standards-compliant
software router from MIT
Click elements
Process, forward, schedule packets
Written in C++
Arrange elements into a graph using a
simple configuration language
Click example
Destination
1.2.0.0/16
3.4.5.0/24
default
Out
0
1
2
ToSocket(UDP, 1.2.3.4, 4700)
0
FromSocket(UDP, 0.0.0.0, 4700)
LinearIPLookup
2
Discard
1
ToSocket(UDP, 5.6.7.8, 4700)
Example overlay
Build an overlay that carries traffic over
Internet2 as far as possible
Internet2 connects most universities
Ingress: local I2 node
Egress: I2 node close to destination
By default, traffic between ingress and
egress will be carried by I2
Example Overlay
NAT
PPTP
tunnel
WinXP laptop
UDP
tunnels
Princeton
PlanetLab
node
NAT
NAT
Internet2
PlanetLab
nodes at other
universities
Servers
Overlay ingress
10.0.0.1
PPTP
tunnel
WinXP laptop
Princeton
PlanetLab
node
Overlay = VPN
PPTP = Microsoft’s
proprietary VPN protocol
Client connects to ingress
using GRE/PPTP tunnel
Ingress assigns a private
IP address to client
All of the client’s packets
are sent into the overlay
Overlay routing
Route within overlay
based on destination
UDP
tunnels
Princeton
PlanetLab
node
Internet2
PlanetLab
nodes at other
universities
Server -> egress
Client -> ingress
IP packets tunneled
over I2 using UDP
In example, every
node is an ingress or
egress
Overlay egress
NAT
Egress nodes use NAT
NAT
NAT
PlanetLab
nodes at other
universities
Servers
Rewrite source IP address,
UDP/TCP port
Reply from server to
egress, routed through
overlay back to client
Note: switching egress
nodes breaks connections
IIAS control plane
Where do the overlay routes come from?
Static configuration
Edit a config file, type “make”
Assumes clients, servers, and routes all
known in advance
Better: dynamically add nodes, routes
based on changing network conditions
Resilient overlay network
Utah
Utah
Company
MIT
Cable
Modem
RON Strategy
Measure all links between nodes
Compute path properties
Determine best route
Forward traffic over that path
Potential projects
Plug in an interesting control plane
Measurement, visualization tools
RON, one-hop source routing, ESM, …
Show the control plane in action
SpecOverlay05
Performance, robustness, adapting to
changing network conditions, …
More information
IIAS paper
Wiki: https://wiki.planet-lab.org/
Topic: InternetInASlice
Feel free to add to it
Click: http://www.pdos.lcs.mit.edu/click/
RON: http://nms.lcs.mit.edu/ron/