Il bilanciamento del carico DNS migliora la disponibilità e le prestazioni delle applicazioni indirizzando gli utenti verso più indirizzi IP per un singolo dominio.
Dopo aver letto questo articolo sarai in grado di:
Argomenti correlati
Cos'è il bilanciamento del carico?
Failover del server
Algoritmi per il bilanciamento del carico
Bilanciamento del carico multi-cloud e a cloud ibrido
Bilanciamento del carico su cloud (LBaaS)
Abbonati a theNET, il riepilogo mensile di Cloudflare sulle tematiche più discusse in Internet.
Copia link dell'articolo
Il bilanciamento del carico è la pratica di distribuire il traffico su più server per migliorare le prestazioni e la disponibilità. Le organizzazioni utilizzano diverse forme di bilanciamento del carico per velocizzare sia i siti Web che le reti private. Senza il bilanciamento del carico, la maggior parte delle applicazioni Internet e dei siti Web non gestirebbe il traffico in modo efficace o non funzionerebbe correttamente.
Il DNS è spesso definito la "guida telefonica" di Internet perché traduce i domini dei siti Web (come google.com o nytimes.com) in indirizzi IP. Un indirizzo IP è un'etichetta numerica lunga che i server utilizzano per identificare i siti Web e qualsiasi dispositivo connesso a Internet. Traducendo i nomi di dominio in indirizzi IP, in un processo chiamato risoluzione DNS, il DNS evita alle persone di memorizzare lunghe sequenze di numeri per accedere a siti Web e applicazioni.
Nella risoluzione DNS, il browser di un utente Internet contatta un server DNS per richiedere l'indirizzo IP corretto del sito Web di destinazione. L'atto di richiedere un indirizzo IP da un dominio è chiamato query (o interrogazione) DNS.
Il bilanciamento del carico basato su DNS è un tipo specifico di bilanciamento del carico che utilizza il DNS per distribuire il traffico su più server. Ciò è possibile fornendo diversi indirizzi IP in risposta alle query DNS. I bilanciatori di carico possono utilizzare vari metodi o regole per scegliere quale indirizzo IP condividere in risposta a una query DNS.
Una delle tecniche di bilanciamento del carico DNS più comuni è chiamata DNS round-robin.
Il DNS round-robin ha lo stesso obiettivo di altri tipi di bilanciamento del carico basato su DNS: migliorare le prestazioni e l'affidabilità di un sito distribuendo il traffico. Tuttavia, invece di utilizzare un bilanciatore di carico specializzato basato su software o hardware, il DNS round-robin esegue il bilanciamento del carico utilizzando un tipo di server DNS chiamato nameserver autoritativo.
I nameserver autoritativi contengono record DNS chiamati record A o record AAAA, che contengono il nome di un dominio e il suo indirizzo IP corrispondente. Quando un client invia una query DNS, l'obiettivo della query è trovare il record A (o AAAA). In una configurazione di base, un dominio avrà un singolo record A associato a un singolo indirizzo IP, il che significa che una query DNS restituirà sempre lo stesso indirizzo IP.
Tuttavia, nel DNS round-robin, i domini hanno più record A, ciascuno legato a un indirizzo IP diverso. Quando arrivano le query DNS, gli indirizzi IP ruotano secondo una modalità round-robin, distribuendo le richieste tra i server associati.
Se ci sono cinque indirizzi IP nel DNS round-robin, una query DNS restituirebbe solo l'indirizzo IP n. 1 per ogni sesta richiesta. Poiché ogni indirizzo IP corrisponde a un server diverso, questa configurazione riduce il carico di lavoro di ciascun server, rendendolo meno soggetto a sovraccarichi di richieste.
Per capire come funziona il DNS round-robin, basta paragonare l'atto di visitare un sito Web all'invio di una e-mail a un'azienda. Supponiamo che l'azienda utilizzi una casella postale per ricevere la posta dei clienti, ma riceva più posta di quella che la sua singola casella postale può gestire. Per risolvere questo problema, l'azienda potrebbe acquistare più caselle postali.
Affinché la strategia delle caselle postali multiple funzioni, l'azienda deve assicurarsi che nessuna casella postale sia piena di posta. Ciò significa che l'indirizzo della casella postale che appare quando i clienti cercano l'indirizzo postale dell'azienda dovrebbe alternarsi in sequenza. Il cliente 1 vedrà l'indirizzo della casella postale 1, quindi il cliente 2 vedrà l'indirizzo della casella postale 2 e così via. Questo metodo contribuirebbe a ridurre il carico sulle singole caselle postali aumentandone la capacità complessiva. Senza cassette postali aggiuntive, una singola casella postale potrebbe facilmente sovraccaricarsi, ritardando la posta in arrivo.
Come nell'esempio della casella postale, il DNS round-robin impedisce che i server vengano sovraccaricati di richieste, evitando ritardi nella loro elaborazione.
Sebbene l'approccio round-robin sia diffuso, non è l'unico metodo per instradare il traffico. La maggior parte dei bilanciatori di carico consente ai proprietari di domini di scegliere tra diverse regole di instradamento del traffico.
Un esempio di configurazione di bilanciamento del carico basata su DNS è un algoritmo ponderato in cui ai diversi server vengono assegnati pesi relativi in base alla loro capacità di gestire il traffico. Il traffico viene quindi assegnato in modo proporzionale. Ad esempio, se il server A ha una capacità doppia rispetto al server B, il bilanciatore del carico assegnerebbe al server A una quantità di traffico doppia rispetto al server B. Ciò avverrebbe restituendo l'indirizzo IP del server A in risposta alle query DNS. Esempi di questo tipo di algoritmo di bilanciamento del carico sono il round-robin ponderato o la connessione minima ponderata.
Molti degli approcci di bilanciamento del carico basati su DNS sono dinamici, il che significa che i bilanciatori del carico prendono in considerazione lo stato di salute del server e i tempi di risposta del server quando assegnano le richieste. Gli algoritmi dinamici possono assumere molte forme. La "connessione minima" è un tipo di algoritmo di bilanciamento dinamico del carico. Nella configurazione della connessione minima, il monitoraggio del server determina quale server ha attualmente il minor numero di connessioni aperte e quindi assegna il traffico in entrata a quel server fornendo il suo indirizzo IP in risposta alle query DNS.
La geolocalizzazione è un altro algoritmo dinamico ampiamente utilizzato. In questa configurazione, il bilanciatore del carico assegna le richieste provenienti da una regione a un server o a un set di server definiti. Ad esempio, tutte le richieste provenienti dalla Francia potrebbero essere indirizzate al "server F", mentre tutte le richieste provenienti dalla Spagna potrebbero essere indirizzate al "server S".
Un algoritmo basato sulla prossimità realizza qualcosa di simile. In questa configurazione, i bilanciatori di carico assegnano dinamicamente il traffico al server più vicino all'utente.
Gli algoritmi dinamici seguono regole leggermente diverse ma in definitiva fanno la stessa cosa: monitorano lo stato di salute del server e ottimizzano il modo in cui viene assegnato il traffico.