In VINI Veritas Realistic and Controlled Network Experimentation

advertisement
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
Simulation
VINI
Small-scale
experiment
Live
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,
emulated
Actual
network

Topology
Synthetic
or traces
Real
clients,
servers
Traffic
Inject faults,
anomalies


Start with a controlled
experiment
Relax constraints,
study effects
Result: an operational
virtual network that’s
 Feasible
Observed in
operational
network
Network Events
 Valuable
 Robust
 Scalable,
etc.
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
Mgr
Local
Admin
VM1
VM2
…
VMn
Virtual Machine Monitor (VMM)
(Linux++)
PlanetLab node
PL-VINI: Prototype on PlanetLab


Feasible?  prototype on public PlanetLab
Enable experiment: Internet In A Slice
open-source routing protocol suite (NSDI ’05)
 Click modular router (TOCS ’00, SOSP ’99)
 XORP

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
(routing protocols)



PlanetLab VM
Goal: real routing
protocols on virtual
network topologies
BGP, OSPF, RIP,
PIM-SM, IGMP/MLD
XORP can run in a
PlanetLab VM
User-Mode Linux: Environment
UML
XORP

(routing protocols)

eth0
eth1
eth2
eth3
 Experiments
cannot
create new interfaces


PlanetLab VM
Interface ≈ network
PlanetLab limitation:
Run routing software
in UML environment
Create virtual network
interfaces in UML
Click: Data Plane
UML
XORP

(routing protocols)
eth0
eth1
eth2
 Avoid
UML overhead
 Move to kernel, FPGA
eth3
Control

Data
Packet
Forward
Engine
Click
PlanetLab VM
Performance
 Click
UDP tunnels
correspond to UML
network interfaces
UmlSwitch
element
Tunnel table
Filters
Interfaces  tunnels

Filters
 “Fail
a link” by blocking
packets at tunnel
Resource Isolation

Issue: Forwarding packets in user space
 PlanetLab
sees heavy use
 CPU load affects virtual network performance
Property
Depends On
Solution
Throughput
CPU% received
PlanetLab provides CPU
reservations
Latency
CPU scheduling
delay
PL-VINI: boost priority of
packet forward process
Intra-domain Route Changes
s
856
2095
700
260
1295
c
639
366
233
548
587
846
902
1893
1176
Watch OSPF route convergence on Abilene
Ping During Link Failure
Link down
120
Routes converging
110
Ping RTT (ms)
Link up
100
90
80
Abilene RTT: 73ms
70
0
10
20
30
Seconds
40
50
TCP Throughput
Link down
12
Link up
Megabytes transferred
Packet receiv ed
10
8
6
4
Zoom in
2
0
0
10
20
30
Seconds
40
50
Arriving TCP Packets
2.45
Megabytes in stream
Packet receiv ed
2.4
2.35
PL-VINI
user-space virtual network
2.3enables
Slowa
start
to behave
like
a
real
network
on
PlanetLab
2.25
2.2
Retransmit
lost packet
2.15
2.1
17.5
18
18.5
19
Seconds
19.5
20
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
PL-VINI
• PlanetLab
• Resource resv
• CPU priority
Fall 2006
NLR-VINI
Abilene-VINI
• PCs
• PlanetLab OS
• MyPLC
• Gigabit layer 2
• eBGP uplinks
to friendly ISPs
2007
NLR-VINI
Abilene-VINI
Japan-VINI
• PCs
• VINI OS
• MyVINI
• Xen
• Exchange traffic
with ISPs
Other features?
2008
NLR-VINI
Abilene-VINI
Japan-VINI
???-VINI
• Other GREN
• PC + FPGAs, NPs
• Create layer 2
“on the fly”
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
 Better
isolation
 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
 Allow
experiments 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

(routing protocols)

eth0
eth1
eth2
eth3
 Virtual
Control
Data
Packet
Forward
Engine
Click
XORP: control plane
UML: environment
UmlSwitch
element
Tunnel table

interfaces
Click: data plane
 Performance


Avoid UML overhead
Move to kernel, FPGA
 tunnels
 “Fail a link”
 Interfaces
What’s New with VINI?
Integration of routing w/Internet
 Better isolation
 Real topologies
 Inject events

“Controlled Realism”
Arbitrary,
emulated
Actual
network

Real
clients,
servers

 Reproduce
results
 Methodically change or
relax constraints
Topology
Synthetic
or traces
Traffic
Inject faults,
anomalies
Observed in
operational
network
Network Events
Control:
Realism:
 Long-running
services
attract real “customers”
 Forward high traffic
volumes (Gb/s)
 Robustly handle
unexpected events
Download