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 Server NAT
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 Out 1.2.0.0/16 0 3.4.5.0/24 1 default 2 1.2.0.0/16 0 3.4.5.0/24 1 default 2 ToSocket(UDP, 1.2.3.4, 4700) FromSocket(UDP, 0.0.0.0, 4700) LinearIPLookup 1 2 ToSocket(UDP, 5.6.7.8, 4700) Discard
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 Servers NAT PlanetLab nodes at other universities PPTP tunnel UDP tunnels Princeton PlanetLab node WinXP laptop Internet2
Overlay ingress 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 WinXP laptop PPTP tunnel 10.0.0.1 Princeton PlanetLab node
Overlay routing Route within overlay based on destination Server -> egress Client -> ingress IP packets tunneled over I2 using UDP In example, every node is an ingress or egress Princeton PlanetLab node nodes at other universities UDP tunnels Internet2
Overlay egress Egress nodes use NAT Rewrite source IP address, UDP/TCP port Reply from server to egress, routed through overlay back to client Note: switching egress nodes breaks connections Servers NAT PlanetLab nodes at other universities
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 MIT Explain overlays Utah Company 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 RON, one-hop source routing, ESM, … Measurement, visualization tools 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/