Extracting Client-provider Relationship between Autonomous Systems from RIP Atlas Using Gao-Rexford Model
Authors: Rathish Das and Sarthak Ghosh
=============================================================================================================================== Implementation Details:
Language used : Python 2.7 Libraries used: 1) pygeoip 2) cymruwhois
We need to install python-cymruwhois first.
- Extract the file python-cymruwhois-master.zip and go to the directory $\python-cymruwhois-master\python-cymruwhois-master\
- python setup.py build
- python setup.py install
To run this program first one needs to collect a traceroot file in .json format. Please follow the below steps-
- Browse the URL https://atlas.ripe.net/measurements/
- Go to Public or Built-in section.
- Click on some probe ID.
- Upon opening probe page, click the result tab.
- Specify Start and Stop Date if applicable.
- Click Download
- In the traceroute dump file, the IP addresses of the hops are listed.
- We have used the json library and parsed the traceroute dump files (obtained from RIPE Atlas) and collected a path consisting of IP addresses that are traversed to reach a probe destination.
- Once we get a collection of such paths composed of IP addresses, we use the GeoIPASNum.dat database and pygeoip library to query the AS ID number and AS name field from the IP address.
- So, now, we have the path of ASes that are traversed to probe a destination. This enables us to create a substantial collection of AS paths to hypothesize inter-AS relationships.
- This problem now resembels to maximum independent set which is NP-Complete.
- There is a polynomial time reduction from maximum independent set to "Type of Relationship" problem.
- We solve this by reducing to implementing a heuristics for the "Type of Relationship" problem (SCC.py).