Sei sulla pagina 1di 1

La tecnica più veloce ed elementare di distribuzione del carico nel provisioning di servizi IP è il cosiddetto

DNS round-robin che, nella sua più semplice implementazione, effettua la risoluzione delle query DNS
utilizzando non un singolo indirizzo IP ma una lista di potenziali indirizzi IP differenti, ciascuno dei quali
corrispondente ad un host che eroga i medesimi servizi.

Il meccanismo del round-robin assicura che a ciascuna query ricevuta, il server autoritativo per la zona DNS
risponda con un differente indirizzo IP scelto fra quelli associati al record richiesto. È evidente, quindi, che
se gli indirizzi IP disponibili sono solamente due, il server DNS risponderà alternativamente prima con un
indirizzo e poi con l’altro.

Lo scopo, ovviamente, è quello di garantire la maggior distribuzione di carico possibile. Ma non si tratta di
un meccanismo di load-balancing vero e proprio, piuttosto di un meccanismo di load-distribution. Questo
per diversi motivi.

Innanzitutto il round-robin effettua una distribuzione casuale nella risoluzione dei nomi; non lavorando al
Layer 7 dello stack TCP/IP il DNS server non ha alcuna visibilità sullo stato e sul funzionamento degli host
finali: esso potrebbe cioè continuare ad indirizzare alternativamente alcuni client verso IP che potrebbero
potenzialmente essere non raggiungibili o anche solo maggiormente carichi.

In secondo luogo, il caching delle risorse DNS legato al TTL degli stessi record gioca un ruolo molto
importante. Il TTL indica banalmente per quanto tempo, in secondi, il record deve essere considerato valido
prima di interrogare nuovamente il DNS server; per l’intera durata del TTL il record viene mantenuto in
cache. Un valore maggiore di TTL comporta necessariamente un minor numero di query DNS e quindi un
minor carico di lavoro e minor traffico di rete.

Il TTL è un valore configurato sul name server autoritativo del dominio, che può andare teoricamente da 0
(nessuna cache) a valori significativamente alti (giorni o settimane); i valori comunemente accettati vanno
però dai 300 secondi (5 minuti) a 3600 secondi (1 ora) fino a 86400 secondi (1 giorni).

C’è un aspetto significativo che va però preso in considerazione: i server DNS non autoritativi utilizzati dai
client. Sostanzialmente, quando un utente si collega ad Internet da casa propria, utilizza un collegamento
messo a disposizione dal proprio provider che mette a disposizione i suoi DNS per consentire l’accesso ai
servizi della rete. Quando il client effettua la risoluzione DNS, esso si appoggia al DNS del proprio provider il
quale, a sua volta, inoltra le richieste di risoluzione dei vari domini ai rispettivi name server autoritativi.
Questi record NDS vengono poi mantenuti in cache sia dal DNS del provider sia dai client stessi. Questo
significa che tutti i client che utilizzano il DNS dello stesso provider utilizzeranno la risoluzione in cache dei
nomi DNS vanificando in parte il meccanismo di round robin.

Infine, non abbiamo alcuna garanzia che i DNS dei provider rispettino il TTL configurato sul name server
autoritativo: valori molto bassi di TTL potrebbero semplicemente essere ignorati e sostituiti con valori
differenti ritenuti più ragionevoli. Ad esempio, un TTL pari a 0 potrebbe essere ritenuto non valido e
sostituito con un TTL pari a 300. Purtroppo non possiamo avere alcun controllo su questo meccanismo.