- Notifications
You must be signed in to change notification settings - Fork1
WenqinSHAO/as_topo
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
This project visualizes the RIPE traceroute measurements collected ina previous projecton RTT change detection and correlation with path changes.
RIPE Atlas recently released a visual toolTraceMONfor their traceroute measurements.However it only allows a handful probes to be visualized at a time.With the tools provided in this work, we are able to quickly and interactivelyplot and query the AS-level topology learnt from traceroutes initiated by more than 6000 RIPE Atlas probes toward DNS b-root.
- Generate a topology graph from paths measured by traceroute;
- visualize the generated graph in an interactive manner.
Traceroute measurements from RIPE Atlas are the input to this project.Tools are built previously to translate IP hops to AS hops.The presence of IXP is as well detected.The data format of processed RIPE traceroute measurement is specified in thedocsof the previous project.
For the moment being, this work focuses on the topology visualization at AS level.Therefore,as_graph.py reads theasn_path attribute of each probein building the topology graph.
More detailed usage:
$ python as_graph.py -husage: as_graph.py [-h] [-d DIRECTORY] [-s SUFFIX] [-e END] [-b BEGINTIME] [-t STOPTIME] [-o OUTFILE]optional arguments: -h, --help show this help message and exit -d DIRECTORY, --directory DIRECTORY the directory storing data. -s SUFFIX, --suffix SUFFIX the suffix of files to be considered in the directory -e END, --end END if all the measurements have a common destination, specify it with this flag -b BEGINTIME, --beginTime BEGINTIME the beginning moment for traceroute rendering, format %Y-%m-%d %H:%M:%S %z -t STOPTIME, --stopTime STOPTIME the ending moment for traceroute rendering, format %Y-%m-%d %H:%M:%S %z -o OUTFILE, --outfile OUTFILE Specify the name of output .json file
Use-e option to specify the destination ASN if it can be known in adavance.That will help filter out the traceroute measurements failed to reach the destination.If unspecified, any ASN appears at the end of a path will be regarded as a destination andplotted in red.
If begin time (-b) or stop time (-t) is not given,the script will read from/to the beginning/end of path sequences.If both of them remain unspecified, only of first traceroute path of each probe will be considered.
An example output of generated topology graph is given inexample.json.
This step visualizes in a web browser the above produced .json file describing the graphof AS topologh revealed by traceroute measurements.
One can directly opengraph.html in his favorite browser for that purpose.(NOTE: code only tested with Chrome and Safari.)
One can also select and visualize .json files locally available.At the bottom of the page, we provide as well the parameters fed toas_graph.pyin building the graph.
Red nodes are measurement destinations, orange nodes are IXPs, violet ones are source ASesof traceroutes, remaining transit ASes are in green.
Hover the mouse over nodes will show their ASN.When placing mouse over links, the IDs of probe that ever passes through this link will be shown.By double clicking on the link, these probe IDs are save to a file.
Single click on a source node will shown all the links that all its probes took to reach the destinations.
Python librarynetworkX is required in building the topology graph.
d3,FileSaver,lodash isrequired by thejs_lib/vis.js.