Premessa
Quanto segue
è scritto allo scopo di spiegare con semplicità uno degli
elementi essenziali al funzionamento della rete Internet.
Non è
un trattato rivolto agli esperti del settore né una dispensa universitaria
e pertanto anche la terminologia utilizzata non sarà - ove possibile
- specifica o strettamente tecnica, per facilitarne la lettura e la sua
comprensione.
Anche gli esempi
e le procedure sono semplificati al massimo, al punto da poter recare disturbo,
talvolta, alla lettura di un occhio attento ed esperto.
Concetti
preliminari
- Quando si parla
di root name server si parla della base su cui appoggia l'intero sistema
dei nomi Internet, per capirci quelli usati negli indirizzi di posta elettronica
dopo la "@" - quali pippo@pippomailbox.com - o quando si accede
alle pagine web scrivendo un semplice www.pippo.com.
- Ma dove sia
la casella postale (mailbox) di Pippo, cioè quale sia il server
su cui viene consegnata la posta (mail) a lui indirizzata o quale sia quello
dove fisicamente sono scritte le informazioni che si trovano in www.pippo.com
è assolutamente trasparente e tutto considerato non importa più
di tanto agli utenti della Rete.
- Ma "alla
Rete", o meglio ai protocolli che la governano, importa eccome perché
devono essere in grado di consegnare la mail nei posti giusti o far aprire
sugli schermi la pagina web voluta.
- Perché
ciò sia possibile ogni server ad essa collegato deve essere univocamente
raggiungibile e per esserlo deve essere "unico" sulla rete.
- Ora, se per
gli umani ricordare un nome è più semplice che non ricordare
un numero, per ciò che muove la Rete è necessario utilizzare
dei numeri (gli indirizzi IP); quindi per rendere unico un elemento della
rete è necessario che sia l'unico elemento che possegga un certo
indirizzo IP.
- Ogni mail indirizzato
a Pippo verrà dunque trasportato all'interno della Rete grazie al
fatto che esiste un metodo che associa al nome internet "mailbox.com"
un numero, il suo "indirizzo IP". Questa trasformazione, come
sappiamo, è effettuata dal DNS (Domain Name System), un database
distribuito a struttura gerarchica rappresentabile con un albero rovesciato.
- Ad ogni ramo
dell'albero corrisponde una gerarchia dei nomi internet all'interno dei
cosiddetti Top Level Domains, meglio conosciuti come .COM .NET .ORG ecc.
o quelli geografici come .IT (per l'Italia) .SE (per la Svezia) .CH (per
la Svizzera) e così via.
- I server che
operano nel DNS si chiamano "dns" dove questa volta l'acronimo
si traduce in Domain Name Server, a cui ci riferiremo nel seguito più
semplicemente come "name server".
Cosa
sono i root name server
- I root name
server sono la radice del DNS, il "punto" di riferimento cui
si rivolgono i name server che operano all'interno di un ramo dell'albero
quando necessitano informazioni relative ad un altro ramo dell'albero.
- Ad esempio,
se Pippo che invia e riceve posta su pippomailbox.com (quindi ramo .COM
del DNS) invia un mail a Gio@giunchimailbox.it (quindi ramo .IT del DNS),
è necessario che il sistema conosca l'indirizzo IP associato al
server "giunchimailbox.it".
- La procedura
con cui questo avviene è quella tipica del funzionamento dei dns:
per prima cosa il name server cui si appoggia pippomailbox.com controlla
se ha già questa informazione in pancia (cache); se ce l'ha (caso
in cui ad esempio c'è già stato un precedente scambio di
posta tra Pippo e Gio), la invia a pippomailbox che può quindi indirizzare
direttamente tutti i pacchetti all'indirizzo IP di giunchimailbox.it; se
non ce l'ha (caso in cui è la prima volta che un pacchetto transita
dal name server di riferimento di pippomailbox.com a giunchimailbox.it,
oppure l'informazione è datata e quindi ritenuta non più
affidabile = scaduta), la deve richiedere al nameserver che ha l'autorità
nella gerarchia del DNS di fornire l'indirizzo di giunchimailbox.it.
- Questa richiesta
quindi deve transitare dal ramo .COM al ramo .IT del DNS. Il transito avviene
grazie ai root name server il cui unico compito è quello di fornire
l'indirizzo IP del name server di riferimento per ogni TLD dell'albero
del DNS.
Come
funzionano
- I root name
server contengono un file di testo (root zone file) che elenca TLD per
TLD gli indirizzi IP dei name server autoritativi di riferimento.
- Ad esempio,
per il TLD ".IT", gli zone root file (al Maggio 2008) contengono
le seguenti informazioni:
Name Server
|
Indirizzo IP |
|
|
|
|
dns.nic.it. |
193.205.245.5 |
.. |
2001:760:4000:1f5:0:0:0:5 |
nameserver.cnr.it |
194.119.192.34 |
m.dns.it |
217.29.76.4 |
j.dns.it |
202.11.16.57 |
r.dns.it. |
193.206.141.46 |
. |
2001:760:ffff:ffff::ca |
s.dns.it |
194.146.106.30 |
dove nella colonna
di sinistra sono elencati i nomi internet dei name server che sono delegati
a fornire gli indirizzi IP di tutti i domini di secondo livello dell'albero
.IT (xxx.it, yyy.it ecc.), e nella colonna di destra i corrispondenti indirizzi
IP (versione 4 e/o versione 6 del protocollo).
- Per quanto i
TLD siano ad oggi 269 a cui sono associati oltre 700 nameserver autoritativi,
il file è di piccole dimensioni.
- Quando un name
server - ovunque si trovi all'interno del DNS - necessita di conoscere
l'indirizzo IP di un name server autoritativo per un dato dominio di cui
non ha alcuna informazione, la richiesta viene inviata ad un root name
server il quale fornisce l'indirizzo IP del name server del TLD cui si
riferisce la richiesta o, se è il caso, rispondendo che il TLD non
esiste.
- Ritornando al
nostro esempio, alla richiesta del name server di appoggio per pippomailbox.com,
il root name server fornirà le informazioni sopra elencate relative
a .IT. Con tali informazioni, la richiesta di pippomailbox viene dunque
inviata ad uno dei name server autoritativi di .IT che sarà in grado
di rispondere e di fornire l'indirizzo IP di giunchimailbox.it.
- Questo indirizzo
verrà inserito nella cache del name server di riferimento per pippo
e contemporaneamente da esso inviata a pippomailbox.com i cui pacchetti,
ora, potranno essere inviati sulla rete che saprà come instradarli
fino a destinazione.
- In Internet
esistono 13 indirizzi IP che corrispondono ai 13 root name server esistenti
(trivialmente chiamati A,B,C, … fino alla M). Tutti i root name server
contengono le medesime informazioni e pubblicano sulla Rete il medesimo
file.
- Quando un name
server invia una richiesta che richiede una risposta di un root name server,
non si preoccupa quale dei 13 gli risponderà, semplicemente accetta
la risposta dal primo che gli risponde.
- Come funzioni
l'algoritmo delle risposte nel DNS non è compito di questo breve
documento, diciamo per semplicità soltanto che almeno uno dei root
name server invierà una risposta, e diciamo quello "più
vicino" al name server richiedente , o anche quello "più
veloce" nel fornire la risposta. Questo concetto ci sarà utile
più avanti.
Quanti
sono
- Abbiamo detto
poc'anzi che esistono 13 root name server, anzi abbiamo detto che esistono
13 indirizzi IP associati ai 13 nomi di root name server.
- Tredici sembra
un numero piccolo dato il ruolo chiave che essi svolgono ma questo numero
- dovuto ad un limite introdotto dalla dimensione dei pacchetti del protocollo
utilizzato da molte applicazioni internet tra cui anche il DNS (protocollo
UDP) - di fatto non è più un limite fisico, ma solo logico
e funzionale.
- In realtà,
dal punto di vista puramente tecnico, per il funzionamento di Internet
basterebbe anche uno solo root name server ma, naturalmente, per ovvi motivi
di ridondanza e di affidabilità del servizio, agli albori di Internet
se ne prevederono e configurarono il numero massimo disponibile.
- Fino al 21 Ottobre
2002, la Rete si appoggiava esclusivamente sui 13 root name server esistenti.
Quel giorno, un imponente attacco di DDoS (Distributed Denial of Service)
rivolto proprio ai root name server che ne annullò il funzionamento
di 9 su 13, mise in allarme i gestori dei root name server segnando una
nuova importante svolta nell'architettura in rete del DNS.
- La necessità
di proteggere quanto più possibile il cuore di Internet dall'azione
scellerata di alcuni, ha portato ad utilizzare in tutta la loro finezza
i protocolli che si occupano dell'instradamento dei pacchetti sulla rete.
- Seppur vero
che come inizialmente detto ogni server sulla Rete deve essere univocamente
raggiungibile (per semplicità: 1 server = 1 indirizzo IP), è
stato applicato un metodo (ANYCAST) che consente di spostare l'univocità
dal livello globale della Rete a solo parti di essa: in altre parole sono
state creati dei "replicanti" dei singoli root name server (stesso
nome, stesso indirizzo IP, stesso gestore) e posizionati in punti diversi
di Internet, garantendone la visibilità e la raggiungibilità
solo ad una porzione ristretta della Rete.
- In Italia ad
esempio alcune repliche anycast di root name server sono state installate
presso il MIX, che è un punto di aggregazione dei Providers che
operano in Italia.
- La raggiungibilità
di queste repliche è possibile solo a questi Providers e non al
di fuori delle loro reti, come se si trattasse di un club privato.
- In tal modo,
quando un name server all'interno della rete di un Provider connesso al
MIX invia una richiesta ad un root name server, gli risponde una delle
repliche senza che il Provider abbia dovuto modificare in alcun modo le
configurazioni standard della propria rete o dei propri name server.
- Supponendo che
per qualsiasi motivo la connessione al MIX del Provider sia momentaneamente
non disponibile, semplicemente le richieste ai root name server verranno
processate da uno dei root name server originali, raggiungibili dall'intera
comunità Internet.
Anycast
- La standardizzazione
del metodo di instradamento anycast applicato all'IP, ed in particolare
applicato al DNS, consente dunque di presentare sulla Rete diverse istanze
del medesimo soggetto, nella fattispecie del medesimo name server.
- Grazie a questo,
il numero di root name server raggiungibili in Rete non è più
dunque limitato a tredici, ma è ben più alto: alla data,
il totale delle istanze di root name server in Internet è più
di 100 distribuiti in altrettanti luoghi - strategici nella topologia di
rete - che coprono tutti i continenti.
- Il test dell'adozione
di anycast per i root name server è avvenuto nella pratica nel Febbraio
del 2007, quando un secondo attacco simile a quello dell'Ottobre 2002 è
stato effettuato nei confronti di 6 root name server: di questi solo i
due non ancora configurati con un servizio anycast non hanno retto all'attacco
dimostrando pertanto l'efficacia della soluzione anycast.
- Tale soluzione,
per altro, è stata poi utilizzata e sta prendendo sempre più
piede anche per la distribuzione geografica e strategica dei name server
dei TLD.
Topologia
- Dove le repliche
sia dei root name server che dei dns di TLD siano posizionate non è
sempre noto in quanto alcuni gestori preferiscono per ovvi motivi di sicurezza
di non pubblicarne l'informazione.
- Come si può
facilmente intuire e così come raccomandato, comunque, le repliche
vengono generalmente posizionate in luoghi dove gli operatori scambiano
traffico con le reti di altri operatori, sempre però in considerazione
del principio della "diversità" che è uno dei princìpi
che regolano il servizio dei root name server: seppur parte o meglio radici
di un sistema gerarchico, per evitare che essi rappresentino il punto debole
del funzionamento di Internet, i root name server sono rappresentati da
un sistema distribuito nella geografia di Internet e gestito in autonomia
da differenti organizzazioni.
- Il non aver
sottoposto i root name server ad un controllo centrale da parte di una
singola autorità è una delle chiavi che garantiscono l'affidabilità
del servizio; e questo vale anche dal punto di vista tecnico: seppur vero
che punti ad alta concentrazione di traffico rappresentino un punto strategico
per la collocazione dei root name server, è pur vero che diversificandone
l'installazione a livello topologico nella Rete, minori sono i rischi che
il servizio venga a soffrire di malfunzionamenti.
Organizzazione
- I tredici root
name server e le loro repliche sono gestiti da dodici organizzazioni inizialmente
selezionate da IANA (Internet Assigned Names and Numbers Authority) ed
ancor oggi incaricate della gestione dei rispettivi root name server e
loro repliche:
- A e J
: Verisign, Inc.
- B: Information
Sciences Institute
- C: Cogent
Communications
- D: University
of Maryland
- E: NASA
Ames Research Center
- F: Internet
Systems Consortium, Inc.
- G: U.S.
DOD Network Information Center
- H: U.S.
Army Research Lab
- I: Autonomica/NORDUnet
- K: RIPE
NCC
- L: ICANN
- M: WIDE
Project
- Nove root name
server originali sono localizzati negli Stati Uniti, gli altri quattro
si trovano in Svezia, Inghilterra, Olanda e Giappone.
- A questi, ora
sappiamo, si aggiungono le oltre 100 repliche posizionate in oltre 50 diversi
paesi nel mondo.
- Non esiste un
gruppo formalizzato che coordina le attività dei gestori dei singoli
root name server (principio della "diversità"), ma come
è sempre stato nello spirito di Internet, essi si coordinano in
autonomia tra loro e con le più alte autorità tecniche in
Internet (ICANN, IANA, IETF).
- All'interno
di ICANN, in particolare, esistono due gruppi che rivedono periodicamente
la situazione dei root name server sia dal punto di vista operativo che
dal punto di vista della loro sicurezza:
- RSSAC (Root
Server System Advisory Committee) che riferisce alla comunità di
ICANN relativamente a problematiche di tipo operativo dei root name server
e propone accorgimenti tecnico operativi (quali specifiche ambientali,
hardware, sistemi operativi ecc.) e naturalmente anche a problematiche
relative alla sicurezza, ridondanza e stabilità dei root name server;
- SSAC (Security
and Stability Advisory Committee) che si occupa e riferisce in ICANN delle
problematiche di sicurezza dell'intero sistema dei nomi ed indirizzi Internet,
ivi icluso dunque anche il sistema dei root name server.
Puntatori
RFC 2826: IAB
Technical Comment on the Unique DNS Root
RFC 2870: Root
Name Server Operational Requirements
RFC 3258: Distributing
Authoritative Name Servers via Shared Unicast Addresses
http://www.root-servers.org/
http://www.icann.org/
http://www.iana.org/
http://www.ietf.org/
|