Il 0% ha trovato utile questo documento (0 voti)
16 visualizzazioni20 pagine

DNS - Appunti

Il documento fornisce una panoramica del sistema DNS (Domain Name System), spiegando come funziona la risoluzione dei nomi, l'organizzazione gerarchica dei domini, i diversi tipi di server DNS e come viene aggiornato e mantenuto il sistema su larga scala in modo ridondante e affidabile.

Caricato da

teknoibm
Copyright
© © All Rights Reserved
Per noi i diritti sui contenuti sono una cosa seria. Se sospetti che questo contenuto sia tuo, rivendicalo qui.
Formati disponibili
Scarica in formato PDF, TXT o leggi online su Scribd
Il 0% ha trovato utile questo documento (0 voti)
16 visualizzazioni20 pagine

DNS - Appunti

Il documento fornisce una panoramica del sistema DNS (Domain Name System), spiegando come funziona la risoluzione dei nomi, l'organizzazione gerarchica dei domini, i diversi tipi di server DNS e come viene aggiornato e mantenuto il sistema su larga scala in modo ridondante e affidabile.

Caricato da

teknoibm
Copyright
© © All Rights Reserved
Per noi i diritti sui contenuti sono una cosa seria. Se sospetti che questo contenuto sia tuo, rivendicalo qui.
Formati disponibili
Scarica in formato PDF, TXT o leggi online su Scribd
Sei sulla pagina 1/ 20

Appunti sul sistema DNS

Hostname e indirizzi IP 2

FQDN 2

Altri usi del DNS - Ridondanza 3

Meccanismi di traduzione 4
Traduzione locale 4
DNS 4

Organizzazione gerarchica dei nomi 5


TLD (Top Level Domain) 5
SDL e successivi 6

NS (Name Server) 7
Ridondanza dei ROOT NS 8

Come si aggiorna il sistema DNS 9


Root Name Server 9
TLD e SLD Name Server 9
Authoritative NS 9

Zone DNS 10

Local Name Server 11

Resource Record 11

Come funziona DNS su larga scala 12


Tipi di query 12

Pacchetti del DNS 14

Strumenti DNS 17
nslookup - interrogare un Resource Record 17
whois - ottenere informazioni su un sito web 19

Networking 101: Appunti di fine capitolo


morrolinux.it
DNS
Domain Name System
Il servizio Internet più critico ed utilizzato al mondo

Hostname e indirizzi IP
Se voglio visitare google non scriverò nel browser 216.58.205.78 ma semplicemente
google.com. Questo può avvenire perché è stata fatta una associazione (binding) tra l’IP di
google ed il nome google.com.

FQDN
google.com è detto hostname (nome host). Gli hostname sono sequenze di “etichette”
lunghe al massimo 63 caratteri ciascuna, separate da punti:
morrolinux.it
h1.morrolinux.it
...
● morrolinux.it è il nome di dominio (domain name)
● h1 è l’hostname

L’intero hostname può essere lungo fino a 255 caratteri.

Questo tipo di domain name è detto canonico o Fully Qualified Domain Name (FQDN)
perché contiene il nome di dominio e il nome dell’host a cui ci riferiamo.
ES:
h1.morrolinux.it → 77.81.226.10
h2.morrolinux.it → 77.81.226.11

Networking 101: Appunti di fine capitolo


morrolinux.it
Altri usi del DNS - Ridondanza
Molti servizi online su larga scala sono ridondati: dietro ad un nome host, non c’è veramente
un solo host a gestire le richieste dei client ma un load balancer.

Networking 101: Appunti di fine capitolo


morrolinux.it
Meccanismi di traduzione

Traduzione locale
È possibile inserire associazioni IP:Nome manualmente all’interno dei file hosts.txt
(Windows) o /etc/hosts (Linux e MacOS):

[morro@thinkpad ~]$ cat /etc/hosts


# Static table lookup for hostnames.
77.81.226.10 corsolinux.com

DNS
In una rete con milioni di nodi, la soluzione che si è trovata è un sistema distribuito con
spazio gerarchico dei nomi chiamato Domain Name System:

● Realizza uno spazio gerarchico dei nomi - ES: “annunci.comune.regione.it“


● Molteplici name server in tutto il mondo contribuiscono a “risolvere” gli indirizzi IP
associati agli hostname di loro competenza
● Sistema con elevata tolleranza ai guasti perché largamente distribuito e scalabile
● Oscurare il nome di dominio di un sito tramite DNS è la prima misura intrapresa dai
governi per “bloccare” l’accesso a tale sito ai cittadini meno smaliziati.

Networking 101: Appunti di fine capitolo


morrolinux.it
Organizzazione gerarchica dei nomi
Studiamo com’è strutturato un hostname canonico:

NB: la gerarchia dei nomi è al rovescio: il TOP level domain IT, sotto il quale sono
raggruppati virtualmente tutti i siti italiani, è per ultimo, mentre l’host più specifico della rete
di destinazione è il primo.

TLD (Top Level Domain)


Esistono TLD di vario tipo:
Statali (country code)
● .it
● .de
● .fr
● ...
Generici
● .com (organizzazioni commerciali)
● .org (organizzazioni senza scopo di lucro)
● .edu (istituzionale per l’istruzione (USA))
● …
Unsponsored (non sponsorizzati):
● .biz
● .info
● ...
Sponsorizzati
● .museum
● .coop

Potete trovare la lista completa dei TLD finora registrati a questo indirizzo.

Networking 101: Appunti di fine capitolo


morrolinux.it
SDL e successivi
Il SLD (Second Level Domain) può avere il nome della nostra attività commerciale,
organizzazione, iniziativa o progetto.

Ottenere un dominio di terzo livello non è veramente un problema se abbiamo acquistato


un second level domain, perché è ad un livello “inferiore” della gerarchia.

TLD e SLD formano un albero:

si compongono in nomi come “test.lab.morrolinux.it”, “mail.google.com” ecc..

Anche i Top Level Domain sono a loro volta raggruppati logicamente da un nodo superiore,
chiamato “root”.

Quando visitiamo per la prima volta blog.morrolinux.it:


● Il nostro computer interroga per primo il root name server, chiedendo dove può
trovare il NS che gestisce la zona “it”.
● Poi contatta il server della zona “it” chiedendo dove può trovare il NS del dominio di
secondo livello “morrolinux”,
● Poi interroga quest’ultimo chiedendo l’indirizzo ip di “blog”.

NB: la risoluzione dell’indirizzo avviene dal punto più alto a quello più basso della gerarchia.

Networking 101: Appunti di fine capitolo


morrolinux.it
NS (Name Server)
Un name server ha lo scopo di, dato un hostname, risolvere il relativo indirizzo IP o indicare
un altro name server sotto la sua gerarchia che possa farlo.

Esistono diversi tipi di NS:


● Root Name server (.)
è la radice dell’albero dei domini, conosce i TLD Name Server
● TLD Name Server (.com, .it, .fr, …)
ad esempio il TLD “it” conoscerà i SLD Name Server di tutti i siti italiani
● SLD Name Server
ad esempio morrolinux.it, conoscerà tutti gli host sotto di esso

Local Name Server


● non appartiene a questa gerarchia.
● Generalmente ISP e organizzazioni gestiscono il proprio (i propri) name server locali.

Networking 101: Appunti di fine capitolo


morrolinux.it
Ridondanza dei ROOT NS
I root name server sono, dal punto di vista logico, 13 e vengono tutti gestiti da diverse
organizzazioni:

https://www.iana.org/domains/root/servers

In realtà ognuno di questi root name server è ridondato. Ad esempio il root name server “A”
si trova in 28 siti diversi in tutto il mondo:

Amsterdam, NL Ashburn, US Atlanta, US Chicago, US Frankfurt, DE Hong Kong, HK London, GB

Los Angeles, US Los Angeles, US Miami, US New York, US Paris, FR Plano, US Plano, US San Jose, US

Seattle, US Tokyo, JP

https://root-servers.org/

Del resto devono gestire circa 2 miliardi di richieste al giorno.

Networking 101: Appunti di fine capitolo


morrolinux.it
Come si aggiorna il sistema DNS

Root Name Server


Ogni Root NS riceve ogni settimana una copia aggiornata del file della “root zone” da
Verisign, contenente eventuali nuovi nomi di TLD che sono stati registrati.

TLD e SLD Name Server


Ogni nuovo NS deve registrarsi presso i NS della zona superiore per “esistere ufficialmente”.

Authoritative NS
Per gestire di un dominio è necessario un name server autoritativo per quel dominio.
● È registrato presso il dominio gerarchicamente superiore; e
● Conoscere tutti gli indirizzi IP degli hostname di quel dominio.

Il Name Server autoritativo è detto master e viene configurato dall’amministratore di rete


con il “master file” che contiene le associazioni tra nomi e indirizzi IP.

La specifica DNS prevede che ci sia almeno un server autoritativo secondario (slave)
che mantiene aggiornata una copia del master file per garantire il servizio in caso di guasti.

Gli aggiornamenti alle associazioni IP:nome vengono effettuati nel master file del master NS,
e periodicamente i server slave controlleranno se ci sono aggiornamenti da scaricare:

Networking 101: Appunti di fine capitolo


morrolinux.it
Zone DNS
Il Name Server primario (master) non deve necessariamente conoscere tutti gli indirizzi IP
del dominio, perché può delegare la gestione di una parte dello spazio dei nomi (cioè
una zona) ad un altro server:

In questo caso Zona e Dominio non coincidono, perché abbiamo creato due zone. Così
facendo dovremo quindi avere due NS primari, uno responsabile per ogni zona:

Networking 101: Appunti di fine capitolo


morrolinux.it
Local Name Server
Sono i più vicini ai client. Il loro scopo principale è inoltrare le richieste e fare caching dei
risultati per gli utilizzi successivi.

I Name Server locali non sono autoritativi per una zona o dominio (come suggerisce il nome)
e possono essere presenti a più livelli:

Resource Record
è un modo per rappresentare più informazioni su un nome di dominio (ES: morrolinux.it)

Campo “A”: contiene l’IP del server web che fornisce il sito per il dominio morrolinux.it
Campo “NS”: contiene l’IP del server autoritativo per morrolinux.it invece, richiederò il
Campo “MX”: contiene l’IP del server di posta che gestisce gli indirizzi @morrolinux.it
Campo ““CNAME””: usato per creare un alias, ad esempio blog.morrolinux.it ⇒ morrolinux.it
Campo “PTR”: usato per la “risoluzione inversa” o “reverse lookup” di un indirizzo IP.
Campo “SOA”: usato per impostare parametri come ad esempio il tempo limite entro il quale
una informazione da lui fornita possa essere memorizzata dai server non autoritativi.
Campo “TXT”: è un campo di testo libero in cui l’amministratore di rete può fornire
informazioni aggiuntive per eventuali servizi personalizzati.

Elenco completo: https://en.wikipedia.org/wiki/List_of_DNS_record_types

Networking 101: Appunti di fine capitolo


morrolinux.it
Come funziona DNS su larga scala
Il “resolver” di un client (ovvero la componente sul client che interroga il Name Server locale)
può fare riferimento anche ad un solo Name Server ed ottenere comunque una risposta,
senza bisogno di conoscere tutti i Name Server!

Il resolver del client può essere configurato per interrogare un Name Server a nostra scelta.

● In Linux dal file /etc/resolv.conf


● In Windows e Mac dalle impostazioni di rete nel pannello di controllo

Il resolver è al servizio delle applicazioni che usano i nomi host anziché gli IP.

Tipi di query
Ogni NS può essere configurato per rispondere a due tipi di query: ricorsiva o iterativa.

Nel caso di una query iterativa, se il


NS riceve una richiesta che non è in
grado di risolvere, risponderà al
client con uno o più NS da
contattare.

Sarà compito del client andare a


contattare il prossimo NS e così via
iterativamente fino alla risoluzione
del nome.

Networking 101: Appunti di fine capitolo


morrolinux.it
Per una query ricorsiva invece, se il NS riceve una richiesta che non è in grado di risolvere,
interrogherà a sua volta altri NS fino alla risoluzione.

In questo caso, il client effettua una sola richiesta e riceve una sola risposta.

⇒ I Root NS sono configurati per rispondere a query iterative


⇒ I Local NS rispondono generalmente a query ricorsive

Networking 101: Appunti di fine capitolo


morrolinux.it
Pacchetti del DNS
DNS è un servizio di livello Applicativo.

Un pacchetto DNS è quindi incapsulato in un


pacchetto di livello Trasporto (TCP o UDP), che
a sua volta sarà incapsulato in un pacchetto di
livello Networking (IP) e via dicendo.

Per impostazione predefinita, le richieste /


risposte DNS avvengono su protocollo UDP,
quindi il pacchetto di livello Trasporto sarà un
pacchetto UDP.
Tuttavia, DNS può anche funzionare in TCP.

Un pacchetto DNS può rappresentare una


richiesta (query) o una risposta (answer) dal
server.

I campi più importanti:

● Query ID: permette al server di associare una richiesta/risposta da un certo client.


QR (Query/Response): è a 0 se si tratta di una richiesta, 1 se si tratta di una risposta
● AA (Authoritative Answer): è a 1 dal server se la risposta è autoritativa, 0 altrimenti
● TC (Truncated): impostato a 1 dal server se la riposta non rientra nel limite di 512
byte di un singolo pacchetto UDP. In questo caso il client dovrà originare
nuovamente la richiesta usando TCP.
● RD (Recursion Desired): impostato a 1 se il client vorrebbe una richiesta ricorsiva.
Soltanto i Local Name Server come abbiamo visto accontenteranno questa richiesta.
● RA (Recursion Available): Il server comunica se supporta (1) o no richieste ricorsive.
● rcode: è il codice di risposta del server, e indica successo o fallimento.
● Question count, Answer count, ecc.. sono contatori (vedremo dopo nell’esempio)

Networking 101: Appunti di fine capitolo


morrolinux.it
Esempio:

Pacchetto di richiesta DNS per il record A blog.morrolinux.it:

qr = 0 (si tratta di una richiesta); Opcode = 0 (si tratta di una normale query);
rd = 1 (è desiderata la ricorsione); Question count = 1 (una sola domanda)

Networking 101: Appunti di fine capitolo


morrolinux.it
Pacchetto di risposta DNS ricevuta:

qr = 1 (risposta); AA = 0 ( non autoritativa); ra = 0 (ricorsione non disponibile), rc = ok


⇒ Question count = 1 (viene ripetuta la domanda nel pacchetto di risposta),
⇒ Answer count = 0 (la risposta data non è relativa alla domanda),
⇒ Authority count = 2 (sono restituiti due record di authority),
⇒ e 2 record addizionali (Additional record count):

Più precisamente, il server DNS in questione ci ha restituito il Name Server autoritativo per il
dominio “morrolinux.it” e il suo secondario. Questi due name server sono ns1.morrolinux.it
e ns2.morrolinux.it, ma non possiamo sapere che IP abbiano per contattarli!

⇒ Nei due record addizionali ci vengono forniti i relativi indirizzi IP per ns1 e ns2. ⇐

⇒ Possiamo andare avanti, mandando una richiesta DNS questa volta ad ns1 o ns2, e
ricevendo la risposta definitiva.

Networking 101: Appunti di fine capitolo


morrolinux.it
Strumenti DNS

nslookup - interrogare un Resource Record


ESEMPIO: ottenere il record “A” per “subito.it” utilizzando nslookup:

[morro@thinkpad ~]$ nslookup subito.it


Server: 192.168.1.1
Address: 192.168.1.1#53

Non-authoritative answer:
Name: subito.it
Address: 213.215.199.52

⇒ La risposta non è autoritativa, perché a rispondere è stato il nostro DNS di default


(192.168.1.1, servizio sulla porta 53) ovvero il modem/router della mia rete.

⇒ Quindi questo valore può essere “cachato” (ovvero in cache),

⇒ nel caso di un cambio repentino dell’IP del server web di “subito.it”, questa risposta
potrebbe non essere più aggiornata e corretta fino alle prossime 24 ore!

⇒ In tal caso non sarei in grado di navigare sul sito in questione!

Con nslookup però posso richiedere il resource record NS che indica il server autoritativo!

Andiamo in modalità interattiva digitando “nslookup” a vuoto, senza argomenti:

[morro@thinkpad ~]$ nslookup


> subito.it
Server: 192.168.1.1
Address: 192.168.1.1#53

Non-authoritative answer:
Name: subito.it
Address: 213.215.199.52

Impostiamo il tipo di query su “ns” (Name Server) - e ripetiamo la ricerca per subito.it:

> set query=ns


> subito.it
Server: 192.168.1.1
Address: 192.168.1.1#53

Networking 101: Appunti di fine capitolo


morrolinux.it
Non-authoritative answer:
subito.it nameserver = a16-66.akam.net.
subito.it nameserver = a3-64.akam.net.
subito.it nameserver = a18-67.akam.net.
subito.it nameserver = a12-65.akam.net.
subito.it nameserver = a1-156.akam.net.
subito.it nameserver = a7-65.akam.net.

Otteniamo una risposta non autoritativa su chi sono i Name Server autoritativi per “subito.it”.

Ora diciamo a nslookup che vogliamo usare uno di questi server per le prossime query:

> server a16-66.akam.net


Default server: a16-66.akam.net
Address: 23.211.132.66#53
Default server: a16-66.akam.net
Address: 2600:1406:1b::42#53

Impostiamo nuovamente il tipo di resource record cercato su “A” e ripetiamo la ricerca:

> set query=a


> subito.it
Server: a16-66.akam.net
Address: 23.211.132.66#53

Name: subito.it
Address: 213.215.199.52

Abbiamo ottenuto una risposta autoritativa!

Networking 101: Appunti di fine capitolo


morrolinux.it
whois - ottenere informazioni su un sito web
Ad esempio, “subito.it”: Si tratta di un privato o di una azienda? chi sarà?

> whois subito.it

Restituisce i dati di registrazione del dominio:

Domain: subito.it
Status: ok
Signed: no
Created: 1999-07-30 00:00:00
Last Update: 2019-03-07 00:56:36
Expire Date: 2020-02-19

Creazione, ultimo aggiornamento e scadenza (salvo rinnovo) del dominio

Registrant
Organization: Subito.it Srl
Address: via Benigno Crespi, 19
Milano
20159
MI
IT
Created: 2008-02-19 18:23:42
Last Update: 2018-03-08 15:24:46

Ditta o individuo che ha registrato il dominio

Admin Contact
Name: Melany Libraro
Organization: Subito.it Srl
Address: via Benigno Crespi, 19
Milano
20159
MI
IT
Created: 2016-08-02 17:25:42
Last Update: 2018-03-08 15:24:59

Responsabile amministrativo del dominio

Networking 101: Appunti di fine capitolo


morrolinux.it
Technical Contacts
Name: Technical Support
Organization: Register.it S.p.A.
Address: Via Zanchi 22
Bergamo
24126
BG
IT
Created: 2009-09-28 11:01:09
Last Update: 2012-04-27 15:13:45

Amministratore di rete/dominio (tecnico)

Registrar
Organization: Register s.p.a.
Name: REGISTER-REG
Web: http://we.register.it
DNSSEC: no

Società autorizzata che fornisce il servizio di registrazione dei domini. (ce ne sono diverse)

Nameservers
a3-64.akam.net
a12-65.akam.net
a16-66.akam.net
a7-65.akam.net
a18-67.akam.net
a1-156.akam.net

Extra: nameserver autoritativi per il dominio!

Networking 101: Appunti di fine capitolo


morrolinux.it

Potrebbero piacerti anche