Since BGP data is raw and can't be read without a tool to process and convert the information to human readable format, there are some tools which are capable of doing it. If my goal is to perform analyses of BGP then it is important to try out and understand these tools and their limitations. Quagga which is a routing suite software and some other routing suit softwares today use the MRT format to represent these raw data in readable form. MRT is basically, Multi-threaded Routing Toolkit which was developed to encapsulate,export, and archive routing information in a standardized data representation.
More about MRT can be followed here.
bgpdump:
This is a tool used created by RIPE network coordination center that converts BGP data to readable formats. This tool was written in C and uses the libbgpdump C library which was written by Dan Ardelean and later adopted by RIPE. After the installation of this software on my Ubuntu system,
i was presented with the main menu as such below after running the bgpdump command.
bgpdump version 1.4.99.14
Usage: bgpdump [-m|-M] [-t dump|-t change] [-O <output-file>] <input-file>
bgpdump translates binary MRT files (possibly compressed) into readable output
Output mode:
-H multi-line, human-readable (the default)
-m one-line per entry with unix timestamps
-M one-line per entry with human readable timestamps
(there are other differences between -m and -M)
Common options:
-O <file> output to <file> instead of STDOUT
-s log to syslog (the default)
-v log to STDERR
Options for -m and -M modes:
-t dump timestamps for RIB dumps reflect the time of the dump (the default)
-t change timestamps for RIB dumps reflect the last route modification
Special options:
-T run unit tests and exit
So looking at the command line , it is possible to translate BGP data. I loaded sample BGP data for the Athens mobile community network which yielded the following output :
TIME: 07/24/13 19:00:00
TYPE: TABLE_DUMP_V2/IPV4_UNICAST
PREFIX: 10.0.10.0/24
SEQUENCE: 0
FROM: 10.255.9.4 AS172193
ORIGINATED: 07/24/13 14:39:56
ORIGIN: IGP
ASPATH: 172193 19601 14835 1286 18242
NEXT_HOP: 10.255.9.126
TIME: 07/24/13 19:00:00
TYPE: TABLE_DUMP_V2/IPV4_UNICAST
PREFIX: 10.0.11.0/24
SEQUENCE: 1
FROM: 10.255.9.4 AS172193
ORIGINATED: 07/24/13 15:05:08
ORIGIN: IGP
ASPATH: 172193 19601 14835 4758 15731 3341
NEXT_HOP: 10.255.9.126
TIME: 07/24/13 19:00:00
TYPE: TABLE_DUMP_V2/IPV4_UNICAST
PREFIX: 10.2.1.0/24
SEQUENCE: 2
FROM: 10.255.9.4 AS172193
ORIGINATED: 07/24/13 14:39:56
ORIGIN: IGP
ASPATH: 172193 19601 14835 1286 9533 16924
NEXT_HOP: 10.255.9.126
NB:This is just a fraction of the output.
So, looking at this output one can be able to deduce information like the Prefix, Originating AS, Timestamps, ASPATH and NEXT_HOP. Yet, to further analyse this information to fulfill my goals, this tool isn't complete. Could've been better if there was an interface to export this files to a database like mysql.
BGPtools
This is a very old tool that was created by the MIT in 2003 to part MRT -formatted BGP update dumps and provide a real-time analysis of BGP update data. This tool looked very promising and upon many tire of installing it into my Ubuntu 13.04, i was stuck at the ./configure phase since, it couldn't generate the make file for mysql++ which is a prerequisite . Upon going through many forums for answers, i just found of handful of people with the same problem while others solved it, same trick didn't apply to me. I hope to go deeper but for now i will look into other tools.
BGPlay
BGPlay is a java application that displays animated graphs of the routing activity of a certain prefix within a specified time interval. This application is GUI in nature and its goal is to make the user understand the flow of BGP updates and it's effect of routing for a particular prefix. BGP gets it's data from Route Views project archive.