Risoluzione Nomi-Indirizzi e DNS
Origini del DNS
Originariamente la risoluzione hostname -> indirizzo IP era un unico file hosts gestito dal Network Information Center (NIC):
- ogni computer connesso ad Internet aveva il suo indirizzo IP esclusivo e hostname esclusivo
- si scaricava il file
hosts
da un repository centrale - ancora oggi i dati contenuti in
/etc/hosts
sono prioritari rispetto ad altri ambienti di risoluzione N2A
Il Domain Name System introduce spazi nomi chiamati domini.
Gli hostname sono univoci in ciascun dominio.
Vi è un’autorità di dominio che mantiene i record.
Software Implementativo
Tre implementazioni del DNS:
- ChaosNet
- MIT, esiste ancora ma è sempre stato un esercizio universitario, sigla CS
- Hesiod
- Digital Equipment Corporation, ritirato, sigla HS
- Berkeley Internet Name Domain (BIND)
- Università di Berkeley, su UNIX, sigla IN
- Adottato da Microsoft, da Windows NT in poi
- Le versioni vecchie sono insicure
Schema del DNS
Domain Name System - Implementazione: Berkeley Internet Name Domain (BIND)
Demone: named
Ruoli DNS:
- Resolver - solo client - /etc/resolv.conf
- Master server (master) - ha i files di configurazione di zona
- Slave server (slave) - copia i files di configurazione
- Hint server (hint) - mantiene cache dei responsi; normalmente combinato con Master o Slave server
Comportamento del DNS
Mappe e Resource Records
DNS mantiene due tipi di mappe:
- forward
- da campo di input a campo di output, a seconda del tipo di risorsa richiesto
- originariamente era solo da hostname a indirizzo IP
- reverse
- da indirizzo IP a hostname
- aveva senso solo quando esistevano le classi di indirizzamento
Una risorsa viene detta Resource Record.
Direttive (defaults):
$ORIGIN zona_di_origine
$TTL tempo_di_vita
Struttura records:
campo_in clas TTL tipo [opz] campo_out
zona SOA dettagli_zona
zona NS server_DNS
zona MX priorità server_mail
nome A indirizzo
nome_alias CTYPE nome_vero
indirizzo_rev PTR nome_FQDN
Esempio:
$TTL 1d
@ IN SOA zen.starshell.sh. root.zen.starshell.sh. (
2009121200 ; serial
3h ; refresh
1h ; retry
1w ; expire
1d ) ; minimum
IN NS zen.starshell.sh.
IN MX 10 mail.starshell.sh.
zen IN A 192.168.1.1
mail IN CNAME zen
air IN A 192.168.1.4