Debian

OCaml Package Manager (opam)

On other operating systems and distribution, you can install
opam, then type the following command
line. Depending on your installation, you might also need to install the OCaml
compiler, as well as bz2 and gzip headers.

$ opam pin add mabo . --yes

Building MaBo with opam was sucessfully tested on Debian, CentOS, Arch Linux,
FreeBSD 10 and Mac OS X with Homebrew.

Docker

For convenience, the Dockerfile takes care of everything, and build the mabo
binary. The following command lines show how to build the
Docker image and launch the mabo prefixes sub-command
on a local MRT dump.

Get some MRT files

To run the following command examples, you will need two MRT dumps available on
the RIS RIPE website.
Copying and pasting the following commands in a terminal will grab the
lastest-bview.gz and lastest-update.gz dumps and store them at your current
location.

mabo dump

The dump sub-command parses a single MRT file, and print the data in MaBo JSON
format. Each line corresponds either to a MRT TABLE_DUMP_V2 entry, or a BGP
UPDATE message. The --legacy argument will print the data like
bgpdump.

When fast processing is needed, the Python script src/mabo_dump_mp.py can be
used take advantage of multi-cores. It is a simple wrapper around the dump
sub-command that dispatch the processing to different mabo processes. A bview
MRT dump can then be processed in less than 30 seconds. Here is an example
command using 6 processes.

$ python ./src/mabo_dump_mp.py -j 6 -b ./mabo latest-bview.gz

mabo prefixes

The prefixes sub-command parses a single MRT file, and dump a list of AS and
IP prefixes. The --asn-list argument can be used to restrict the output to a
specific list of AS numbers.

The cut command is here to generate a prefixes.txt file as expected by the
mabo follow command described bellow.

mabo follow

The follow sub-command parses multiple MRT files, whose filenames use the RIS
naming convention. Its first mandatory argument is a file containing IP
prefixes. It will follow UPDATE and WITHDRAW messages, and output the
number of monitored prefixes seen at a given timestamp.