YuchenJin / ProbLink

A stable and practical Autonomous System(AS) relationship inference algorithm

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

ProbLink

What is ProbLink?

ProbLink is a probabilistic AS relationship inference algorithm, which does inference based on key AS-interconnection features derived from stochastically informative signals. Learn more about ProbLink in our NSDI paper.

Quickstart

To get started using ProbLink, clone or download this GitHub repo.

Install Python dependencies

$ pip install --user -r requirements.txt

Prepare BGP paths

You can prepare BGP paths of your interest and save them to a file 'rib.txt'. The ASes on each BGP path should be delimited by '|' on each line, for example, AS1|AS2|AS3.

We provide a script (bgp_path_downloader.py) for downloading BGP paths collected from all route collectors in RouteViews and RIPE NCC towards IPv4 prefixes by using BGPStream. Follow the instructions to install BGPStream V2 first and then install pybgpstream.

$ python bgp_path_downloader.py -s <start date> -d <duration (in seconds)>

# for example, to download BGP paths on 06/01/2019 from all available route collectors
$ python bgp_path_downloader.py -s 06/01/2019 -d 86400
# BGP paths are written to 'rib.txt'.

Download AS to Organization Mapping Dataset from CAIDA

https://www.caida.org/data/as-organizations/

Download PeeringDB Dataset from CAIDA

Before March 2016: http://data.caida.org/datasets/peeringdb-v1/

After March 2016: http://data.caida.org/datasets/peeringdb/

Parse downloaded BGP paths

$ python bgp_path_parser.py <peeringdb file> 
# Output is written to 'sanitized_rib.txt'.

Run AS-Rank algorithm to bootstrap ProbLink

$ ./asrank.pl sanitized_rib.txt > asrank_result.txt

Run ProbLink

$ python problink.py -p <peeringdb file> -a <AS to organization mapping file>

Output data format

<provider-as>|<customer-as>|-1

<peer-as>|<peer-as>|0

<sibling-as>|<sibling-as>|1

Contact

You can contact us at yuchenj@cs.washington.edu.

Monthly inferred results

You may want to download the monthly inferred AS relationships here.

About

A stable and practical Autonomous System(AS) relationship inference algorithm

License:BSD 3-Clause "New" or "Revised" License


Languages

Language:Python 60.5%Language:Perl 39.5%