Domain Name Services



next up previous
Next: Configurazione di un name server Up: Introduzione Previous: Routing su larga scala

Il Domain Name System è un database distribuito, utilizzato dalle applicazioni TCP/IP per tradurre i nomi degli host nei rispettivi indirizzi IP. E' distribuito perchè su Internet non esiste alcun sito che conosca le informazioni di tutti i domini.

Ciascuna zona o gestore di un dominio mantiene un proprio database di informazioni attraverso un server DNS primario, che puo' essere interrogato da qualsiasi client sulla rete.

I client e il name server comunicano tra di loro con il protocollo DNS. Le applicazioni accedono alle informazioni del DNS tramite un programma client chiamato resolver.

In Unix le funzioni di libreria che fanno da interfaccia al resolver si chiamano gethostbyname - che ritorna l' indirizzo dell' host e gethostbyaddr - che ritorna l' indirizzo dell' host. Il resolver è quindi parte dell' applicazione, non del kernel Unix.

Il protocollo DNS utilizza il protocollo UDP per mandare query e ricevere informazioni da un server. Le specifiche sono contenute nel RFC 1034, mentre le specifiche dell' implementazione nel RFC 1035. Il DNS più diffuso su Internet si chiama BIND (Berkeley Internet Name Domain).

Quando un server riceve una query per la quale non ha informazioni, deve contattare un altro name server, in grado di dargli l'informazine richiesta. Poichè il database è distribuito, i name sever non hanno informazioni su tutti gli altri name server.

Si utilizzano allora i cosiddetti root name servers , i cui indirizzi sono conosciuti da tutti i name server primari.

I root name server contengono gli indirizzi IP di tutti i name server autoritativi (primario e secondario) per tutti i domini di primo livello. Quindi alcune query possono risultare in una query al root name server, seguita da una query al server il cui indirizzo è stato fornito dal root name server. Una caratteristica fondamentale del DNS è il caching delle informazioni.

Il Domain Name System contiene diversi tipi di record di risorse (RR - Resource Records ). Ce ne sono circa una ventina. i più usati sono:

Ogni query ad un DNS è formata da tre parti: il nome da ricercare, il tipo della query e la classe della query. I tipi più comuni di query corrispondono ai vari tipi di RR: A (1) NS (2) CNAME (5) PTR (12) HINFO (13) MX (15) AXFR (252) request for zone transfer ANY (255) tutti i tpi di risorse La classe è sempre 1

Per interrogare un name sever si può usare nslookup

nslookup
Default Server:  maggiore.dsnet.it
Address:  0.0.0.0

> set type=any
> cs.unibo.it
Server:  maggiore.dsnet.it
Address:  0.0.0.0

Non-authoritative answer:
cs.unibo.it     nameserver = leporello.cs.unibo.it
cs.unibo.it     nameserver = simon.cs.cornell.edu
cs.unibo.it     nameserver = admii.arl.army.mil
cs.unibo.it     nameserver = dns.nis.garr.it
cs.unibo.it     internet address = 130.136.1.110
cs.unibo.it     preference = 10, mail exchanger = spoletta.dm.unibo.it
cs.unibo.it     preference = 0, mail exchanger = leporello.cs.unibo.it

Authoritative answers can be found from:
cs.unibo.it     nameserver = leporello.cs.unibo.it
cs.unibo.it     nameserver = simon.cs.cornell.edu
cs.unibo.it     nameserver = admii.arl.army.mil
cs.unibo.it     nameserver = dns.nis.garr.it
leporello.cs.unibo.it   internet address = 130.136.1.110
simon.cs.cornell.edu    internet address = 128.84.154.10
admii.arl.army.mil      internet address = 192.5.25.5
admii.arl.army.mil      internet address = 128.63.5.4
dns.nis.garr.it internet address = 193.205.245.8
spoletta.dm.unibo.it    internet address = 130.136.1.25

> dsnet.it
Server:  maggiore.dsnet.it
Address:  0.0.0.0

dsnet.it        nameserver = maggiore.dsnet.it
dsnet.it        nameserver = ns.ita.tip.net
dsnet.it
        origin = maggiore.dsnet.it
        mail addr = postmaster.dsnet.it
        serial = 980506
        refresh = 43200 (12 hours)
        retry   = 3600 (1 hour)
        expire  = 604800 (7 days)
        minimum ttl = 86400 (1 day)
dsnet.it        preference = 20, mail exchanger = maggiore.dsnet.it
dsnet.it        preference = 10, mail exchanger = minghetti.dsnet.it
dsnet.it        nameserver = maggiore.dsnet.it
dsnet.it        nameserver = ns.ita.tip.net
maggiore.dsnet.it       internet address = 195.32.0.15
ns.ita.tip.net  internet address = 194.20.0.111
minghetti.dsnet.it      internet address = 195.32.0.11

> set type=PTR
> 195.32.0.15
Server:  maggiore.dsnet.it
Address:  0.0.0.0

15.0.32.195.in-addr.arpa        name = maggiore.dsnet.it
0.32.195.in-addr.arpa   nameserver = maggiore.dsnet.it
0.32.195.in-addr.arpa   nameserver = fusilla.abanet.it
maggiore.dsnet.it       internet address = 195.32.0.15
fusilla.abanet.it       internet address = 195.32.12.10

> set type=A
> 195.32.0.15
Server:  maggiore.dsnet.it
Address:  0.0.0.0

Name:    maggiore.dsnet.it
Address:  195.32.0.15

SOFTWARE PROGETTO DSNET
Mercoledi' 13 maggio 1998