Using PATHspider

Quickstart

Dependencies

PATHspider is a command line tool. If you have installed PATHspider from a package manager (e.g. apt or pip), you will already have all the dependencies you need installed.

If you are working from the source distribution (e.g. cloned git repository) then you will need to install some dependencies. On Debian GNU/Linux:

# sudo apt install python3-libtrace python3-twisted python3-zope.interface

In order to build the documentation from source, you will also need the following dependencies:

# sudo apt install python3-sphinx python3-repoze.sphinx.autointerface

Usage

You can run PATHspider from the command line. In order for the Observer to work, you will need permissions to capture raw packets from the network interface. If you’ve installed from apt then either the executable in /usr/bin will have been setuid or will have filesystem permissions set.

Note

If you’re running from the source distribution, you will need to execute pathspider as:

# sudo /usr/bin/env PYTHONPATH=. python3 pathspider/run.py [...]
# pathspider -h
usage: run.py [-h] [-s] [-l] [-p PLUGIN] [-i INTERFACE] [-w WORKER_COUNT]
              INPUTFILE OUTPUTFILE

Pathspider will spider the paths.

positional arguments:
  INPUTFILE             a file containing a list of remote hosts to test, with
                        any accompanying metadata expected by the pathspider
                        test. this file should be formatted as a comma-
                        seperated values file.
  OUTPUTFILE            the file to output results data to

optional arguments:
  -h, --help            show this help message and exit
  -s, --standalone      run in standalone mode. this is the default mode (and
                        currently the only supported mode). in the future,
                        mplane will be supported as a mode of operation.
  -l, --list-plugins    print the list of installed plugins
  -p PLUGIN, --plugin PLUGIN
                        use named plugin
  -i INTERFACE, --interface INTERFACE
                        the interface to use for the observer
  -w WORKER_COUNT, --worker-count WORKER_COUNT
                        number of workers to use

Example

You can run a small study using ECNSpider and the included webinput.csv file to measure path transparency to ECN for a small selection of web servers:

# pathspider -i eth0 -w 10 examples/webinput.csv /tmp/results.txt

Note

The location of the example input file may be different if you’ve installed pathspider from a package manager. On Debian systems it is installed as /usr/share/doc/pathspider/examples/webinput.csv.