README for PLUTO BGP Sensor Version: 0.1b Date: 6/15/2004 Author: Aki Nakao (nakao@cs.princeton.edu) ----------------------------------------------------------------------------- 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. The following list shows the abbreviated URLs (http://localhost:9995/*) and their corresponding operations. /README shows this file. /getpath?dst= shows AS-path from this sensor to the host with IP address or DNS 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) and 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_snapshot/list shows the list of available BGP table snapshot (bzip2 compressed). The format is, TS.ID.ASN.bz2,SZ where TS is the timestamp when the table is downloaded (format: Year-Month-Day-Hour-Min) ID is the location identifier of the sensor (e.g. princeton) ASN is AS number of the sensor (format: AS, where X is an AS number) SZ is the size of the file in byte. /bgp_snapshot?file= downloads the BGP table specified by . /bgp_snapshot/list above will list the available snapshot files. /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 the following. advertised, prefix-1, prefix-2, ..., prefix-n withdrawn, prefix-1, prefix-2, ..., prefix-n 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 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. The stream is a three-tuple. DUMP-HEADER (12 octets) COMMON-HEADER (16 octets) RAW-PACKET (variable length) DUMP-HEADER and COMMON-HEADER are described in detail below. RAW-PACKET is the raw BGP packet. Please refer to RFC 1771 Border Gateway Protocol. <------DUMP-HEADER----->|<--------COMMON-HEADER-------->|<-BGP-- 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | TS |TYP|STP|LENGTH |RAS|LAS|IID|AFI|RPEERIP|LPEERIP| | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | | | BGP Raw Packet | | (variable length) | DUMP-HEADER (first 12 octets) TS : timestamp (4 octets) TYPE: type (2 octets) STY: sub-type (2 octets) LENGTH: length of subsequent octets (COMMON-HEADER + RAW-PACKET) (4 octets) COMMON-HEADER (next 16 octets) RAS: remote AS number (2 octets) LAS: local AS number (2 octets) IID: peer interface index (2 octets) AFI: address-family (2 octets) RPEERIP: remote peer IP address (4 octets) LPEERIP: local peer IP address (this could be empty) (4 octets) III. References - PlanetLab Design Notes (http://www.planet-lab.org/PDN/) PDN-03-010 A Simple Common Sensor Interface for PlanetLab, Timothy Roscoe, Larry Peterson, Scott Karlin, and Mike Wawrzoniak, March 2003. PDN-03-011 BGP Feed Configuration Memo, Akihiro Nakao and Larry Peterson, April 2003. PDN-03-012 A Routing Underlay for Overlay Networks, Akihiro Nakao, Larry Peterson, and Andy Bavier, April 2003. - PLUTO BGP Sensor (http://lurch.cs.princeton.edu/sensor_readme) IV. Locations of BGP feed (as of 6/15/2004) 128.208.4.197 planetlab01.cs.washington.edu 198.32.154.242 planetlab1.ipls.internet2.planet-lab.org 198.32.154.250 planetlab1.nycm.internet2.planet-lab.org 206.207.248.34 planetlab1.arizona-gigapop.net 206.207.248.35 planetlab2.arizona-gigapop.net Note: BGP feed source at the following nodes is unavailable. 12.46.129.21 bldmzsvr.berkeley.intel-research.net 128.112.139.71 planetlab-1.cs.princeton.edu 128.112.139.72 planetlab-2.cs.princeton.edu 206.240.24.20 planetlab1.netlab.uky.edu 128.10.19.52 planetlab1.cs.purdue.edu 128.10.19.53 planetlab2.cs.purdue.edu 152.3.136.1 planetlab1.cs.duke.edu 206.117.37.4 planetlab1.postel.org