Multicast DNS: una risoluzione del nome alternativa
Il Domain Name System (DNS) può essere pensato come un grande elenco telefonico: il servizio consente agli utenti di inserire gli indirizzi web nel loro browser, dopodiché il sistema determina l’indirizzo IP corretto. Questa risoluzione del nome funziona tramite richieste dal proprio computer a un server DNS corrispondente. Qui viene memorizzato un elenco in cui viene assegnato l’indirizzo IP corretto per ogni nome host (cioè l’indirizzo web). Il Multicast DNS adotta, tuttavia, un approccio diverso. Come funziona questa alternativa al DNS tradizionale?
Come funziona il DNS Multicast?
Il DNS Multicast (mDNS) è un servizio che mira a risolvere la risoluzione dei nomi in reti più piccole. Esso adotta un approccio diverso rispetto al noto DNS: invece di inviare richieste a un server di nomi, i partecipanti della rete sono tutti contattati direttamente. Il relativo client invia un multicast nella rete e chiede a quale partecipante della rete corrisponde il nome host. Un multicast è una forma speciale di comunicazione in cui un singolo messaggio è indirizzato a un gruppo di destinatari. Il gruppo può essere costituito, ad esempio, dall’intera rete o sottorete.
In questo modo, la richiesta arriva anche al membro del gruppo che ha il nome host ricercato. Questo risponde a tutta la rete, sempre tramite multicast. In questo modo tutti i partecipanti vengono informati sul collegamento del nome e dell’indirizzo IP e possono effettuare una registrazione corrispondente nella loro cache mDNS. Quindi, finché questa voce rimane valida, nessuno all’interno della rete avrà bisogno di chiedere nuovamente questo nome host.
Il DNS Multicast causa un traffico relativamente elevato, ma cerca attivamente di risparmiare le risorse di rete: a tal fine, il client richiedente invia la risposta corretta secondo il suo parere (cioè secondo l’attuale voce della cache). Solo se questa non è più corretta, o se l’iscrizione sta per scadere, il destinatario deve rispondere. Anche gli altri partecipanti della rete ne vengono informati prima di inviare una risposta. Il traffico all’interno della rete può quindi essere ridotto grazie a questo metodo.
In generale, con il Multicast DNS possono essere utilizzati solo i nomi host che terminano con .local. Ciò limita questa forma di risoluzione dei nomi alle reti locali. I nomi host con altri Top Level Domains (TLD), come .it o .com, non vengono elaborati dal mDNS; quindi, gli indirizzi web non possono essere risolti in questo modo.
Il Multicast DNS è stato sviluppato nei primi anni '20 ed è descritto nel RFC 6762.
Il mDNS è stato sviluppato nel contesto del Zeroconf (Zero Configuration Networking). L’idea alla base del Zero Configuration Networking è quella di permettere ai computer di comunicare tra loro senza la necessità di una configurazione preliminare. Il Multicast DNS soddisfa questi requisiti: la procedura Multicast fa parte di TCP/IP e può quindi funzionare senza alcuna configurazione.
Vantaggi del mDNS
Il Multicast DNS è progettato per piccole reti e dovrebbe aumentare la facilità d’uso, consentendo agli utenti di collegare i dispositivi nella loro LAN domestica senza problemi. Poiché tutti i dispositivi condividono i loro indirizzi IP, non è necessario configurare un server o una directory. In questo modo è possibile aggiungere ulteriori dispositivi in modo molto dinamico e veloce.
Un’implementazione popolare del mDNS è Bonjour di Apple. Il servizio è progettato principalmente per collegare facilmente le stampanti di rete al PC o al Mac. Poiché gli apparecchi si informano reciprocamente sui loro indirizzi IP, l’utente non deve prima configurare la connessione. Oltre al servizio di Apple, anche il software open source Avahi può ora essere utilizzato come servizio mDNS. Anche in questo caso è possibile collegare tra loro diversi dispositivi senza dover eseguire prima un lavoro di configurazione. A partire da Windows 10, il mDNS è disponibile anche nel sistema operativo di Microsoft.
Svantaggi e rischi del Multicast DNS
Tuttavia, alla facilità d’uso si affiancano alcuni svantaggi. Un problema risiede nella procedura Multicast stessa. Sebbene il protocollo cerchi di mantenere basso il traffico della rete, i computer partecipanti devono monitorare costantemente la rete ed elaborare i messaggi in arrivo. Questo richiede potenza di calcolo.
Inoltre, l’assegnazione dei nomi host è problematica: dal momento che è possibile scegliere liberamente un nome per ogni dispositivo, a condizione che termini in .local., questo può portare (almeno teoricamente) a due dispositivi di rete con lo stesso nome host. Gli sviluppatori del mDNS non hanno volutamente proposto una soluzione a questo problema. Da un lato, si presume che il caso si verifichi di rado, dall’altro la doppia denominazione può essere intenzionale.
Esiste inoltre un vero e proprio pericolo. In alcuni casi il mDNS è aperto. Ciò significa che risponde anche alle richieste provenienti dall’esterno (via Internet). I criminali informatici possono trovare tali servizi aperti e utilizzarli per attacchi DDoS, usando i dispositivi di rete in modo improprio e prendendo di mira un server. Inoltre, in un DNS Multicast anche i dati sensibili possono essere rilevati. In questo modo gli hacker possono ad esempio leggere gli indirizzi MAC degli apparecchi collegati e utilizzare queste informazioni per ulteriori attacchi.