BGPReader is a command-line tool that is useful for quick inspection of BGP
data, and is installed as part of the BGPStream Core package. It dumps
information about Records and/or Elems to stdout
in a parsable ASCII format.
The goal of this exercise is to familiarize you with the BGPReader tool, as well as highlight the data types (RIBs and Updates) and filtering options provided by BGPStream.
See the BGPReader documentation for detailed usage information and a description of the BGPReader output formats.
For this task you should configure BGPReader to obtain RIB data from a single collector, filtered to a prefix that your university announces.
In this exercise, for the sake of time, you should use the route-views.sg
collector as it has only a few full-feed peers, however in general you can find
a list of collectors at https://bgpstream.caida.org/data.
To identify a prefix that your university announces, you can use http://bgp.he.net to search for your university (this service provides a bunch of interesting information about ASes and prefixes).
Route Views collectors output a RIB every 2 hours whereas RIPE RIS collectors output a RIB every 8 hours (both aligned to midnight). Also, RIB dumps are not made atomically, so you should specify a window of a few minutes (e.g., 00:00 -> 00:05).
For this task you should use BGPReader to output the updates for all Route Views
and RIPE RIS collectors for a 1 minute window of your choosing, and then pipe
the output into standard unix tools (e.g., sort
, uniq
, etc.) to rank the
peer ASes in terms of the number of updates seen from each.
Note: some ASes are peered with by multiple collectors, so you should consider
the collector name part of the "key" for uniquely identifying a peer.
Additionally, some collectors peer with an AS multiple times, so you should also
consider the peer IP as part of the key. Given this, your peer "ID" should be:
collector|peer-AS|peer-IP
. This is true any time you need to uniquely identify
a peer.