PLUTO BGP Sensor/ BGP Feed

by Aki NAKAO


I. Introduction

We have developed "PLUTO BGP Sensor" to provide an easy access to BGP information collected in PlanetLab. We thought we would share this tool with PlanetLab community.
Our sensor interface currently enables the following operations.

  1. Receive live stream of BGP update either in binary or in text mode (in binary mode, you will get a BGP raw packet, while in text mode, you will get an equivalent information in ascii.)
  2. Download the snapshots of BGP tables at these locations.
  3. Query AS path to a given IP address in real time.

II. Usage

A sensor user needs to speak HTTP/GET at TCP port 9995 on the node where the sensor software is running.
The more information about the sensor interface can be found in PDN-03-010 (http://www.planet-lab.org/PDN/).

For example, suppose you want to receive live BGP update stream in text mode, you need to (1) log in the node where you want BGP update, and (2) speak HTTP/GET for /bgp_update/text at TCP port 9995. For example, you can use "curl" to do this operation.

curl http://localhost:9995/bgp_update/text

Then live BGP update stream will start (it would take some time to get updates, so be patient).

The following list shows the abbreviated URLs (http://localhost:9995/*) and their corresponding operations.

URL (http://localhost:9995/*) Operations
/README shows README .
/getpath?dst=<IP/NAME>

shows AS-path from this sensor to the host with IP address <IP> or DNS name <NAME>. The format is,

SRC,DST,PREFIX,ASPATH

where

SRC is the IP address of the sensor,
DST is the IP address of the destination,
PREFIX

is the network which DST belongs to (format:network_address/mask_length),

ASPATH is the AS path between SRC and DST (format: "AS-1,AS-2,...AS-n", where AS-k denote AS number of the hop k).

Note that we currently ignore paths other than of type "AS_SEQUENCE".

/bgp_update/text

streams live BGP updates in ascii.

The format is,

TS,SZ,UPDATE

where

TS is the timestamp when updates are received (format: seconds),
SZ is the size of the raw BGP packet.
UPDATE includes one or more of the following updates
 
1. advertised, prefix-1, prefix-2, ..., prefix-n
2. withdrawn, prefix-1, prefix-2, ..., prefix-n
3. path, "AS-1 AS-2 ... AS-n"

"advertised", "withdrawn", and "path" are reserved words.
prefix-k is a network prefix which is either "advertised" or "withdrawn".
"path" shows the value of BGP's AS_PATH attribute.
In this release, only "path" attribute is shown. (More attributes will be added upon request).

/bgp_update/binary

streams live BGP updates in binary. Each update in the stream is a three-tuple.

DUMP-HEADER 12 octets
COMMON-HEADER 16 octets
RAW-PACKET variable length

MP-HEADER and COMMON-HEADER are described in detail below.
RAW-PACKET is the raw BGP packet. Please refer to RFC 1771 Border Gateway Protocol.

/bgp_snapshot/list shows the list of available BGP table snapshot(bzip2 compressed).
/bgp_snapshot?file=<FILE> downloads the BGP table specified by <FILE>. /bgp_snapshot/list above will list the available snapshot files.

 

III. References

IV. Locations of BGP feed (as of Oct 1st/2005)

Note: BGP feed sources at the following nodes are currently unavailable.

V. Publications