Skip to content

tv-doan/ifip-net-2021-dns

Repository files navigation

Evaluating Public DNS Services in the Wake of Increasing Centralization of DNS

Trinh Viet Doan | Justus Fries | Vaibhav Bajpai
Technical University of Munich

IFIP Networking 2021, June 21–24, 2021.


Vantage Points

The DNS measurement and traceroute datasets were collected from ~2.5k RIPE Atlas home probes.
A map of these home probes is shown below.

An extended set of 10.6k RIPE Atlas probes were used to determine the distribution of on-probe resolvers.

Requirements

The datasets are stored in sqlite3 databases, aggregations and analyses are performed using Python scripts and jupyter notebooks.
Required Python dependencies are listed in requirements.txt and can be installed using pip3 install -r requirements.txt.

For the calculation of CDFs and drawing of the corresponding plots, Pmf.py and Cdf.py from Think Stats → are used.

Measurement Datasets and Results

The main measurements using the 2.5k home probes were performed with the ./ripe-atlas-dns-week-msm.py script.
The measurement results can be retrieved from the RIPE Atlas API through the measurement IDs, which are listed in ./metadata/msm_id_list.csv.
An example script to fetch the data is provided with ./ripe-dns-fetch.py.
It is recommended to follow up this process with the ./DNS-cleanup.ipynb notebook.

The IDs of the one-off measurements (from the 10.6k probes) are listed in ./metadata/msm_id_list_all_ipv4_probes.csv and ./metadata/msm_id_list_all_ipv6_probes.csv, respectively.
The ./ripe-dns-all-probes.ipynb notebook can be used to fetch and pre-process the results of these measurements.

The traceroute measurement IDs are listed in the ./metadata/msm_id_list_traces_to_*.csv files.
The measurements and result retrieval were all performed with ./ICMP-traceroute-msm.ipynb.

This repository contains (most of) the required code, metadata, and table schemas to reproduce the results, see below for further instructions.

Repeating the analysis

Move the modules to the right locations:

After fetching the data as outlined above, run the jupyter notebooks in the ./data-aggregation/ directory to process and aggregate the raw datasets.
The notebooks in the ./plotting/ directory can then be used to generate the plots presented in the paper.
All plots are saved under ./plots/.

Note: The required metadata lookups were already done and are stored in the ./metadata/ directory. The directory contains the scripts used to retrieve the metadata.

Contact

Please feel welcome to contact the authors for further details.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published