Title: Squandering Resources
1C O M P U T A T I O
N A L R E S E A R
C H D I V I S I O N
Squandering Resources Jason R. Lee
2Overview
- Simulation
- Emulation
- Emulab
- Planetlab
- Putting it all together
3Simulation
- Popular simulator is NS
- Can simulate new protocols at a high level
- Controlled through tcl script
- Very computational expensive
- Cant accurately represent everything
- Hardware interrupts, random sun spots
4Example ns script
Create a simulator object set ns new
Simulator Open the nam trace file set nf open
out.nam w ns namtrace-all nf Define a
'finish' procedure proc finish
global ns nf ns flush-trace Close the
trace file close nf Execute nam on the
trace file exec nam out.nam
exit 0
Create two nodes set n0 ns node set n1 ns
node Create a duplex link between the
nodes ns duplex-link n0 n1 1Mb 10ms
DropTail Call the finish procedure after 5
seconds of simulation time ns at 5.0
"finish" Run the simulation ns run
5Emulation
- Create an enviroment out of hardware that is
emulating the actual topology of the network. - Removes some of the abstraction found in
simulation. - Use real routers
- Use real Operating Systems
- Use real networks
- Cant Emulate every enviroment -(
6Emulab
- University Of Utah Emulab
- 178 PCs
- 8 IXPs
- 40 wide-area nodes
- 9 802.11 wireless nodes ( 21 soon)
- frontend to PlanetLab.
7Emulab (cont.)
- Allows for the dynamic creation of network
topologies. - Allows varied network configurations
- RED, Drop tail, etc.
- Varied latencies (1-200 ms)
- Bandwidth caps (1mbs - 100mbs)
- Large number of Nodes (100)
8Emulab (cont.)
- Uses same tcl script as NS!
- With some enhancements
- Can specify end node os
- Can specify routing parameters
- Can specify tar/rpm/etc to be loaded
- Can login (as root) and run anything
- Can create custom OS images
9Example Emulab script
set ns new Simulator source
tb_compat.tcl set nodeA ns
node set nodeB ns node set nodeC ns
node set nodeD ns node Create a droptail
link with a 50ms delay and a 30mbs bw limt set
link0 ns duplex-link nodeB nodeA 30Mb 50ms
DropTail set link loss to 0.01
tb-set-link-loss link0 0.01 set lan0 ns
make-lan "nodeD nodeC nodeB " 100Mb
0ms tb-set-node-os nodeA FBSD-STD set
node to FreeBSD tb-set-node-os nodeC RHL-STD
set node to RedHat ns rtproto Static ns
run
10Emulab Picts
11PlanetLab
- 412 nodes
- 143 sites
- All over the world
12PlanetLab (cont.)
- Act as a wide area overlay network
- Provide a test-bed for the creation of a set of
building blocks for to test out new services. - Think dns, monitoring, routing, p2p
- What services will the future internet need? And
how to prototype them in todays enviroment?
13PlanetLab (cont)
- Clunky interface
- Have to be a PI to do anything
- Manually create slivers
- Manually pick nodes
- Manually login and setup nodes
- Manually install software
14Best of Both Worlds
- Emulab interface to planetlab.
- Pros
- NS script setup
- Fully automated installs (rpms/tarballs)
- Allows for easy creation/termination
- Cons
- Cant use custom kernels/images
- Its a real network.
- Machines/network is shared
15Emulab PlanetLab
16Emulab PlanetLab
17Emulab PlanetLab
18Gotachas
- rsa ssh keys seem to work best
- Some planetlab sites cant be reached from others
(Internet 2 particularly) - Install ssh-mime.pl (ability to click on webpage
to login)
19Refs
- Emulab http//www.emulab.net/
- PlanetLab http//www.planet-lab.org/
- NS http//www.isi.edu/nsnam/ns/