In VINI Veritas
Document Sample


In VINI Veritas
Realistic and Controlled
Network Experimentation
Andy Bavier Nick Feamster* Mark Huang
Larry Peterson Jennifer Rexford
Princeton University *Georgia Tech
How to Validate an Idea?
Emulation VINI
Simulation Small-scale Live
experiment deployment
Fixed, shared among many experiments
Runs real routing software
Exposes realistic network conditions
Gives control over network events
Carries traffic on behalf of real users
Scientific Value
The most exciting phrase to hear in science, the
one that heralds new discoveries, is not ‘Eureka!’
(I found it!) but ‘That’s funny …’ -- Isaac Asimov
Move off the emulator, into the wild
Opportunity for more ‘that’s funny’ moments
Avoid “Fallacy of Misplaced Concreteness”
Simulation and emulation are important tools
Modeling abstracts general properties from reality
Philosophy: the devil may be in the details…
But insights and soundness are found there too
“Controlled Realism”
Arbitrary, Actual Start with a controlled
emulated network
experiment
Topology Relax constraints,
study effects
Synthetic Real
or traces clients, Result: an operational
servers virtual network that’s
Traffic Feasible
Valuable
Inject faults, Observed in
anomalies operational Robust
network
Scalable, etc.
Network Events
Overview
VINI requirements
Fixed, shared infrastructure
Flexible network topology
Expose/inject network events
External connectivity and routing adjacencies
Strategy for building VINI
PL-VINI: prototype on PlanetLab
Experimental results
Timeline
Fixed Infrastructure
Deploying VINI nodes in National LambdaRail,
Abilene with Gigabit links
Shared Infrastructure
Experiments given illusion of dedicated h/w
Flexible Topology
VINI supports arbitrary virtual topologies
Network Events
VINI exposes, can inject network failures
External Connectivity
c
s
Experiments can carry traffic for real end-users
External Routing Adjacencies
BGP
BGP
c
s
BGP
BGP
Experiments can participate in Internet routing
PlanetLab VINI
Build VINI from PlanetLab, a global
testbed for distributed services
Begun in 2002
700 nodes at 336 sites in 35 countries
600 projects and 2500 researchers
Serves 3-4 TB/day to ~1M clients
MyPLC: PlanetLab software distribution
Anyone can run their own private PlanetLab
PlanetLab Experiments
Simultaneous experiments in separate VMs
Each has “root” in its own VM, can customize
Reserve CPU, network capacity per experiment
Node Local
Mgr Admin
VM1 VM2 … VMn
PlanetLab node
Virtual Machine Monitor (VMM)
(Linux++)
PL-VINI: Prototype on PlanetLab
Feasible? prototype on public PlanetLab
Enable experiment: Internet In A Slice
XORP open-source routing protocol suite (NSDI ’05)
Click modular router (TOCS ’00, SOSP ’99)
Clarify issues that a VINI must address
Unmodified routing software on a virtual topology
Forwarding packets at line speed
Illusion of dedicated hardware
Injection of faults and other events
XORP: Control Plane
XORP Goal: real routing
(routing protocols)
protocols on virtual
network topologies
BGP, OSPF, RIP,
PIM-SM, IGMP/MLD
XORP can run in a
PlanetLab VM
PlanetLab VM
User-Mode Linux: Environment
UML
XORP Interface ≈ network
(routing protocols)
PlanetLab limitation:
eth0 eth1 eth2 eth3
Experiments cannot
create new interfaces
Run routing software
in UML environment
Create virtual network
interfaces in UML
PlanetLab VM
Click: Data Plane
UML
XORP Performance
(routing protocols)
AvoidUML overhead
eth0 eth1 eth2 eth3
Move to kernel, FPGA
Control Interfaces tunnels
Data
UmlSwitch
ClickUDP tunnels
Packet element correspond to UML
Forward
Engine Tunnel table network interfaces
Filters Filters
Click
a link” by blocking
“Fail
packets at tunnel
PlanetLab VM
Resource Isolation
Issue: Forwarding packets in user space
PlanetLabsees heavy use
CPU load affects virtual network performance
Property Depends On Solution
Throughput CPU% received PlanetLab provides CPU
reservations
Latency CPU scheduling PL-VINI: boost priority of
delay packet forward process
Intra-domain Route Changes
s
856 2095
700
260 233
1295 c
639
366 548
587 846
902
1893
1176
Watch OSPF route convergence on Abilene
Ping During Link Failure
Link down Link up
120
110 Routes converging
Ping RTT (ms)
100
90
80
Abilene RTT: 73ms
70
0 10 20 30 40 50
Seconds
TCP Throughput
Link down Link up
12
Packet receiv ed
Megabytes transferred
10
8
6
4
2 Zoom in
0
0 10 20 30 40 50
Seconds
Arriving TCP Packets
2.45
Packet receiv ed
2.4
Megabytes in stream
2.35
PL-VINI enables a user-space virtual network
2.3 Slow start
to behave like a real network on PlanetLab
2.25
2.2
Retransmit
2.15 lost packet
2.1
17.5 18 18.5 19 19.5 20
Seconds
Attracting Real Users
Could have run experiments on Emulab
Goal: Operate our own virtual network
Carrying traffic for actual users
We can tinker with routing protocols
We expect that:
PlanetLab services will subscribe to VINI
network architectures to access Gb/s
Experiments will advertise routes via BGP
Timeline
You are
here Fall 2006 2007 2008
PL-VINI NLR-VINI NLR-VINI NLR-VINI
• PlanetLab Abilene-VINI Abilene-VINI Abilene-VINI
• Resource resv • PCs Japan-VINI Japan-VINI
• CPU priority • PlanetLab OS • PCs ???-VINI
• MyPLC • VINI OS • Other GREN
• Gigabit layer 2 • MyVINI • PC + FPGAs, NPs
• eBGP uplinks • Xen • Create layer 2
to friendly ISPs • Exchange traffic “on the fly”
with ISPs
Other features?
The End
Questions?
The End
URL: http://www.vini-veritas.net
Questions?
Backup slides
Conclusion
VINI = evolution of PlanetLab
Installing VINI nodes in NLR, Abilene
Download and run Internet In A Slice
MyPLC MyVINI as code diverges
Build,
run, modify your own VINI
We expect there to be many VINIs
http://www.vini-veritas.net
Timeline
Conclude with a timeline instead? Like the
one for Gibson.
Experiments on the top, infrastructure on
the bottom, “You are here.”
Today: IIAS, PL-VINI
Next: RCP, VINI-NLR
What other experiments?
Ongoing Work
Improving realism
Exposing network failures and changes in the
underlying topology
Participating in routing with neighboring
networks
Improving control
Betterisolation
Experiment specification
Performance is bad
User-space Click: ~200Mb/s forwarding
Can do a lot with 200Mb/s
20 experiments can have dedicated 10Mb/s
nationwide networks
Improving performance is ongoing work
Allowexperiments to load custom Click
modules into the VINI kernel
PL-VINI Summary
Flexible Network Topology
Virtual point-to-point connectivity Tunnels in Click
Unique interfaces per experiment Virtual network devices in UML
Exposure of topology changes Upcalls of layer-3 alarms
Flexible Routing and Forwarding
Per-node forwarding table Separate Click per virtual node
Per-node routing process Separate XORP per virtual node
Connectivity to External Hosts
End-hosts can direct traffic through VINI Connect to OpenVPN server
Return traffic flows through VINI NAT in Click on egress node
Support for Simultaneous Experiments
Isolation between experiments PlanetLab VMs and network isolation
CPU reservations and priorities
Distinct external routing adjacencies BGP multiplexer for external sessions
PL-VINI / IIAS Router
UML
XORP XORP: control plane
(routing protocols)
UML: environment
eth0 eth1 eth2 eth3
Virtual interfaces
Control
Click: data plane
Data
UmlSwitch Performance
Packet element
Forward Avoid UML overhead
Engine Move to kernel, FPGA
Tunnel table
Interfaces tunnels
Click
“Fail a link”
What’s New with VINI?
Integration of routing w/Internet
Better isolation
Real topologies
Inject events
“Controlled Realism”
Arbitrary, Actual Control:
emulated network
Reproduce results
Topology Methodically change or
relax constraints
Synthetic Real Realism:
or traces clients,
servers Long-running services
Traffic attract real “customers”
Forward high traffic
Inject faults, Observed in volumes (Gb/s)
anomalies operational
Robustly handle
network
Network Events unexpected events
Get documents about "