Cos'è resolver?

Resolver (Informazioni Generali)

Un resolver, o name resolver, è un componente cruciale nell'infrastruttura di rete, specialmente nel contesto del Domain Name System (DNS). La sua funzione principale è tradurre nomi di dominio leggibili dagli umani, come "www.example.com", in indirizzi IP numerici, come "192.0.2.1", che i computer utilizzano per comunicare tra loro. In altre parole, il resolver rende possibile l'accesso ai siti web e ad altre risorse online senza dover ricordare complicati indirizzi IP.

Funzionamento:

Il processo di risoluzione dei nomi di dominio coinvolge tipicamente i seguenti passaggi:

  1. L'utente inserisce un nome di dominio in un browser web o altra applicazione.
  2. L'applicazione interroga il resolver configurato sul sistema operativo o sulla rete. Questo resolver è spesso fornito dall'Internet Service Provider (ISP).
  3. Se il resolver ha già la risposta nella sua cache (una memoria temporanea di risposte precedenti), la restituisce immediatamente. Questo processo si chiama cache hit.
  4. Se il resolver non ha la risposta nella cache (cache miss), inizia a interrogare una gerarchia di server DNS, partendo dai root server, per trovare il server autoritativo per il dominio desiderato.
  5. Il server autoritativo contiene le informazioni (record DNS) che mappano il nome di dominio all'indirizzo IP.
  6. Il resolver riceve l'indirizzo IP dal server autoritativo e lo memorizza nella cache per un periodo di tempo specifico (indicato nel Time To Live o TTL) per velocizzare le future query.
  7. Il resolver restituisce l'indirizzo IP all'applicazione, che può quindi connettersi al server web e recuperare la pagina web.

Tipi di Resolver:

  • Recursive Resolver (o Resolver Completo): Questo è il tipo di resolver descritto sopra, che gestisce l'intera sequenza di query DNS per trovare la risposta a un nome di dominio. I recursive resolver sono tipicamente forniti dagli ISP o da servizi DNS pubblici.

  • Stub Resolver: Questo è un resolver più semplice che viene utilizzato dalle applicazioni sui dispositivi degli utenti. Non esegue query DNS direttamente, ma inoltra le richieste a un recursive resolver.

Importanza del Resolver:

I resolver sono fondamentali per il funzionamento di internet perché:

  • Semplificano l'uso di internet: Permettono agli utenti di utilizzare nomi di dominio facili da ricordare invece di indirizzi IP numerici.
  • Garantiscono la scalabilità di internet: La gerarchia DNS distribuita e la cache dei resolver riducono il carico sui server autoritativi.
  • Consentono la flessibilità: Gli indirizzi IP possono cambiare nel tempo senza influire sull'esperienza dell'utente, poiché il resolver si occuperà di ottenere il nuovo indirizzo IP.

Resolver pubblici:

Esistono diversi resolver DNS pubblici offerti da aziende come Google (8.8.8.8 e 8.8.4.4), Cloudflare (1.1.1.1) e Quad9 (9.9.9.9). L'utilizzo di resolver pubblici può offrire vantaggi come maggiore velocità, sicurezza e privacy rispetto ai resolver forniti dal proprio ISP.

Sicurezza:

La sicurezza dei resolver è una considerazione importante. I resolver vulnerabili possono essere sfruttati per attacchi DNS cache poisoning, che possono reindirizzare gli utenti a siti web dannosi. Per mitigare questi rischi, è importante utilizzare DNSSEC (Domain Name System Security Extensions), che aggiunge firme crittografiche ai record DNS per garantire la loro autenticità.