Scriptroute Network Measurement
Overview
Scriptroute is a flexible network measurement and debugging
system. Measurements are expressed as scripts that run as
an ordinary user, and a privileged daemon schedules and
manages the packet exchange. The goal is to allow any user
to connect to any server and execute any safe network measurement.
Features for users:
- 
Remote measurement execution.
PlanetLab
generously
hosts over 300 servers. Just grab a
cookie.
- 
Unprivileged logic.
If you want to use a different
traceroute, there's no need to have it approved and made
setuid by your admin, just run it.
- 
Several tools.
Scriptroute ships with
various implementations of ping, sprobe, and traceroute, and
even a hop-by-hop bandwidth measurement tool.
- 
Better tools.
Scriptroute integrates
with
Rocketfuel's
Undns
library of router name-to-location mappings to tell where routers are geographically.
Features for developers:
- 
Generic mechanism.
The scriptroute
daemon matches responses to the probes you send, even if you
send an NTP packet as a probe.
- 
Portability layer.
Existing measurement
tools require low-level hacking to implement, so sometimes
they depend on specific features of BSD, IRIX, or older
Linux firewall code, for example. Scriptroute has been
tested on BSD, OS X, Linux, and PlanetLab's safe raw
sockets.
- 
Accurate timing.
The daemon schedules
packet transmission, busy-waiting as necessary for precise
intervals, and uses libpcap to extract packet timings from
the kernel and rdtsc to read processor cycle counters
unaffected by NTP.
- 
Unprivileged logic.
There is no need
for sudo or root to test your measurement, and your users
can install your tool themselves. Be a researcher, not a
system administrator.
- 
Parse measurement output.
Format
measurement output to simplify parsing for visualization and
storage. Don't write a flex parser for traceroute.
Features for administrators:
- 
Resource limits.
Restrict the bandwidth
consumed by network measurements.
- 
Flexible security.
Prohibit bad packets
before they are sent, don't audit tools.
- 
Isolation.
Only the Scriptroute daemon
filters packets -- measurement tools see only the traffic
they need.
- 
No setuid programs.
Provide traceroute
as a CGI service without using a setuid binary.
Reverse Path Tree
Build a tree that represents the set of
links used to reach an address from all scriptroute sites.
Be gentle! This service executes a modified traceroute to a
destination you specify from every scriptroute site, and
generates a pdf file with the tree for you to browse. The
tool requires supervision, so is not always operating: send
mail if you see trouble.
 
 
Documentation
Papers
Neil Spring, David Wetherall, and Tom Anderson
Scriptroute: A Public Internet Measurement Facility
pdf
USENIX Symposium on Internet Technologies and Systems (USITS), 2003.
Manuals
Scriptroute Administrator's Guide (work in progress)
pdf
Information about building, installing, and configuring Scriptroute at your site.
Scriptroute Scriptwriter's Guide
(work in progress)
pdf
Information about writing and executing measurement tools using Scriptroute.
Program man pages:
- 
scriptrouted (the daemon)
pdf
- 
srinterpreter (the script interpreter)
pdf
- 
sr-remotely.rb (remote executor)
pdf
- 
sr-listservers (server lister)
pdf
Measurement script man pages:
- 
sr-ally (alias resolver)
pdf
- 
sr-rockettrace (robust traceroute)
pdf
- 
sr-sprobe (packet-pair bandwidth)
pdf
Talks
Neil Spring, David Wetherall, and Tom Anderson
Scriptroute: A facility for distributed Internet measurement
flash
USENIX Symposium on Internet Technologies and Systems (USITS '03), March 2003.
Neil Spring, David Wetherall, and Tom Anderson
Scriptroute: A facility for distributed Internet measurement
pdf
North American Network Operator's Group (NANOG 26), October 2002.
Software
Please subscribe to the Scriptroute mailing list before
downloading and installing scriptroute software. This is
important for providing timely distribution of software
fixes.
Source
Scriptroute source code is available at:
www.scriptroute.org/source.
Subversion
Scriptroute's subversion
repository contains unreleased modifications and planetlab maintenance
code that is not included in the distribution.
https://subversion.umiacs.umd.edu/scriptroute/scriptroute.
svn co (that url).
Binary Packages
Debian
Add to your /etc/apt/sources.list file:
deb http://www.scriptroute.org/debian/ stable main
deb-src http://www.scriptroute.org/debian/ stable main
Don't forget to edit /etc/scriptroute/scriptrouted.conf.
Redhat
Redhat packages are available at:
www.scriptroute.org/redhat
I am not a Redhat user: these packages are not as
well engineered as their debian counterparts.
Don't forget to edit /etc/scriptroute/scriptrouted.conf.
The package will not start up the daemon automatically on initial
installation: this is intentional, to give you a chance to edit
the configuration file.
Mac OS X 10.3
10.3 (or perhaps later) is required. Install the most recent disk image from
scriptroute.org/mac.
Fink
This is an older way to get scriptroute on a mac, not well supported.
Add to your /sw/etc/apt/sources.list file:
deb http://www.scriptroute.org/fink ./
Don't forget to edit /sw/etc/scriptrouted.conf.
PlanetLab
A script to install redhat packages for use in
PlanetLab
vserver
slices is available at:
www.scriptroute.org/planetlab/planetlab-install
Read the first line, and follow the instructions.
This client software will connect to the
local daemon running in my vserver.
If you have a planetlab account, this is the recommended
way to use scriptroute. It is reasonably well tested.
Example scripts
Example scripts are dissected in the Scriptroute
Scriptwriter's guide. To execute them, you'll want the rest
of the Scriptroute distribution, which includes both scripts
to execute measurements remotely and the interpreter and
daemon that enable Scriptroute for your site.
Mailing List
The
scriptroute mailing list
exists to facilitate exchanges between
users and developers of the Scriptroute system. You can
send mail to nspring at cs.umd.edu if you want to
contact me directly.
People