Skip to content

In this project, an attempt was made to analyze this overhead by benchmarking the protocols: DNS-over-UDP, DNS-over-TCP, DNS-over-TLS, DNS-over-HTTPS, and DNSSEC, each of which was then tested on the three servers: BIND9, PowerDNS, and Technitium.

Notifications You must be signed in to change notification settings

Alberto-00/Benchmarking-DNS-Server

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Tabella dei contenuti

Introduzione

DNS è il protocollo che permette la risoluzione di domini in indirizzi IP, di conseguenza risulta fondamentale nella navigazione web. Inoltre permette la risoluzione di indirizzi mail, liste anti-spam fino a tecniche di bilanciamento del carico. Purtoppo però la sua versione originale basata su UDP o TCP non offre nessuna garanzia di sicurezza, quindi sono nate alternative che garantiscono la confidenzialità come DNS-over-TLS e DNS-over-HTTPS e poi DNSSEC che garantisce autenticità e integrità. Tali protocolli siccome si basano su tecniche crittografiche e protocolli più ad alto livello implicano inevitabilmente un maggiore overhead protocollare, che incide sulla latenza di risoluzione e sulle capacità dei server. In questo progetto si è cercato di analizzare tale overhead effettuando il benchmarking dei protocolli: DNS-over-UDP, DNS-over-TCP, DNS-over-TLS, DNS-over-HTTPS e DNSSEC, ognuno dei quali è stato poi testato sui tre server: BIND9, PowerDNS e Technitium. Le metriche prese in considerazione sono: distribuzione dei tempi di risposte delle query effettuare, latenza media, latenza massima e minima, deviazione standard, andamento delle Cumulative Distribution Functions, differenze di latenze tra i vari protocolli e i vari server e numero di query al secondo risolte dal server.

Requisiti

Installazione e configurazione dei server

Al fine di garantire la replicabilità degli esperimenti sono presenti le macchine virtuali da installare in VirtualBox al seguente link: Google Drive con le Virtual Machine. In ogni VM è presente il server DNS con la configurazione di un protocollo, il file di zona, i cinque dataset utilizzati per il benchmarking e i tool per eseguire il benchmarking.

In alternativa è possibile seguire i seguenti step:

Esecuzione del benchmarking

  • Per i protocolli DNS-over-UDP, DNS-over-TCP e DNS-over-TLS bisogna installare dnsperf versione 2.13.1 ed eseguire il comando dnsperf -O verbose-interval-stats -O latency-histogram -m <protocollo> -s <ipServer> -d <datasetBenchmark> -v. Al posto di <protocollo> è possibile specificare udp, tcp, dot (per DNS-over-TLS), al posto di <ipServer> bisogna indicare l'IP del server, al posto di <datasetBenchmark> bisogna specificare il dataset di benchmarking.
  • Per i protocolli DNS-over-HTTPS e DNSSEC bisogna usare scriptKdig.sh, quindi si rimanda a /scripts/BenchmarkingDNSSEC_HTTPS

Benchmarking eseguiti

Un protocollo tutti i server

In questo lavoro è stato utilizzato dnsperf per il benchmarking di:

scriptKdig.sh è stato usato per:

Successivamente, i file ottenuti da dnsperf e scriptKdig.sh sono stati dati in input agli script descritti nella cartella scripts per generare anche il grafico delle latenze, le CDF e il grafico a barre per latenza massima, minima, media e deviazione standard. Questi grafici si trovano in:

Un server tutti i protocolli

In questo caso si è ritenuto utile calcolare solo le CDF, quindi a partire dai file ottenuti da dnsperf e scriptKdig.sh si è eseguito lo script /scripts/CumulativeDistributionFunctions /UnServerTuttiProtocolli/plotCDF2.py ottenendo i grafici presenti nella cartella /Results/One server with every protocol /Cumulative Distribution Function (CDF)/

Risultati

Per l'analisi e la descrizione dei risultati ottenuti si rimanda al paper

Autori & Contatti

Name Description

Alberto Montefusco


Developer - Alberto-00

Email - a.montefusco28@studenti.unisa.it

LinkedIn - Alberto Montefusco

My WebSite - alberto-00.github.io


Alessandro Macaro


Developer - mtolkien

Email - a.macaro@studenti.unisa.it

LinkedIn - Alessandro Macaro


Nicolapio Gagliarde


Developer - GagliardeNicolapio

Email - n.gagliarde@studenti.unisa.it

LinkedIn - Nicolapio Gagliarde


About

In this project, an attempt was made to analyze this overhead by benchmarking the protocols: DNS-over-UDP, DNS-over-TCP, DNS-over-TLS, DNS-over-HTTPS, and DNSSEC, each of which was then tested on the three servers: BIND9, PowerDNS, and Technitium.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 88.9%
  • Shell 11.1%