A Python implementation of RocketFuel topology engine. Copyright (C) 2016 Sahil Shekhawat sahilshekhawat01@gmail.com
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.
Its still a work in progress, I am updating it daily and soon will make a release. Until then, please bear with me :)
How it works
- It gets the advertised prefixes for an AS from http://ipinfo.io/
- Randomly get some ip addresses from each advertised prefixes.
- ssh into each of the given host and run traceroute to those ip addresses in the background.
- Once finished, you can calculate the results using
analyse
command. - Calculates all unique ip addresses from the traceroute ip path.
- Finds the ip which belongs to the AS and calculate number of Edge and Core routers.
Requirements
- Nodes directory: This directory must contain all the hosts from which you want to run traceroute. I recommend using Planet Lab
- Private Key: A private key to ssh into those hosts.
- Username: Username of the account on the hosts.
cd ./RocketFuelPython
python setup.py install
To start traceroute to an AS. A private key is required to ssh into hosts which will run the traceroute. (You don't want to run traceroute from you own machine, or do you? ;)
rocketfuel start <as-number> --key <private-key> --user <username>
You can check the status of the background processes by running
rocketfuel status
To analyse the traceroute results
rocketfuel analyse <AS number>
Check licese
rocketfuel license