Indirizzi e nomi: il DNS I nomi di dominio

Transcript

Indirizzi e nomi: il DNS I nomi di dominio
Indirizzi e nomi: il DNS
•  Alla base del sistema esiste il nome di dominio, che è la forma
con cui si rappresenta un indirizzo attraverso una
denominazione strutturata
esempio
4/29/10
1
I nomi di dominio
•  costituiscono una struttura ad albero in cui la radice è il
dominio principale, che è rappresentato con un punto singolo
oppure è lasciato sottinteso.
•  Ogni nodo di questo albero è un dominio che si rappresenta
attraverso l’unione dei nomi dei nodi attraversati
–  a partire dalla radice
–  indicandoli da destra verso sinistra, separati con un punto
•  La lunghezza di un nome di dominio si esprime in livelli
–  es. il nome dinkel.brot.dg ha tre livelli
–  appartiene al dominio di primo livello dg
4/29/10
2
Le zone
• 
i livelli gerarchici di suddivisione delle competenze sono le
zone, che si sovrappongono all’albero dei domini.
•  Una zona riguarda un ramo dell’albero dei domini, a partire da
un certo nodo in poi, ma può demandare ad altre zone la
competenza per rami inferiori .
4/29/10
3
Record di risorsa
•  Ogni zona organizza le informazioni di sua competenza in
record di risorsa.
•  Questi record definiscono l’associazione tra un nome di
dominio e un’altra informazione,in base al tipo di record.
–  Per esempio, per cercare l’indirizzo IPv4 associato a un
certo nome di dominio, si consultano i record di tipo «A»;
–  per conoscere il servizio di risoluzione dei nomi
competente per una certa zona, si consultano i record di
tipo «NS».
•  Interrogare un server DNS corrisponde all’interrogazione di
una base di dati, dove il risultato è il record desiderato
4/29/10
4
Risoluzione inversa
•  il sistema DNS gestisce solo nomi di dominio, pertanto la
risoluzione da indirizzo a nome avviene attraverso un
meccanismo un po’ strano.
•  Ci sono domini speciali, che servono a rappresentare un
indirizzo numerico.
–  per esempio, 4.3.2.1.in-addr.arpa è uno di questi domini
speciali, che fa riferimento implicito all’indirizzo IPv4 1.2.3.4
4/29/10
5
named
•  named [opzioni] [[-b] file_di_avvio]
–  demone del pacchetto BIND che risolve i nomi
–  Quando invocato senza argomenti utilizza, di default, il file
di avvio /etc/bind/named.conf
–  viene avviato dalla procedura di inizializzazione del
sistema (Init), ma può anche essere gestito manualmente
•  rndc {start|stop|restart}
–  Script per gestire il servizio named
–  consente di amministrare il demone named in modo
locale o remoto tramite istruzioni dalla linea di
comando.
4/29/10
6
esempio
Si dispone di una piccola rete locale composta da due elaboratori con indirizzi :
IPv4
192.168.1.1
192.168.1.2
Nome
dinkel.brot.dg
roggen.brot.dg
Il primo di questi due elaboratori è l'unico connesso a Internet attraverso la rete
telefonica; nell'esempio gestisce un servizio di risoluzione dei nomi attraverso il
demone ‘named’.
Il tipo di servizio gestito è il più semplice: accumulare in una memoria cache gli
ultimi indirizzi richiesti, senza avere competenze di zona.
4/29/10
7
named.conf
options {
directory "/etc/bind";
forwarders {
111.112.113.114;};
};
zone "1.168.192.in-addr.arpa" {
type master;
file "zone/192.168.1";
};
zone "." {
type hint;
file "named.root";
};
zone "dg" {
type master;
file "zone/dg";
};
zone "0.0.127.in-addr.arpa" {
type master;
file "zone/127.0.0";
};
zone "brot.dg" {
type master;
file "zone/brot.dg";
};
hint — A special type of zone used to point to the root nameservers which resolve queries when a
zone is not otherwise known. No configuration beyond the default is necessary with a hint zone.
master — Designates the nameserver as authoritative for this zone. A zone should be set as the
master if the zone's configuration files reside on the system.
4/29/10
8
Direttive in named.conf
• Options: definisce una serie di opzioni di funzionamento.
! directory indica la collocazione predefinita degli altri file usati per la
configurazione del servizio di risoluzione dei nomi
! forwarders indica un nameserver esterno a cui poter inoltrare richieste
• Zone: definisce le modalità di risoluzione dei nomi per ciascuna zona,
specificate in un file:
! zone “.” {...} stabilisce che per il dominio principale (rappresentato da
un punto) si utilizza il file ‘named.root’, e che questo viene messo in una
memoria cache (‘type hint’). ‘named.root’ contiene gli indirizzi necessari a
raggiungere i servizi di risoluzione dei nomi del dominio
! zone "0.0.127.in-addr.arpa" definisce un file (‘zone/127.0.0’) contenente
le informazioni per tradurre gli indirizzi della rete 0.0.127.in-addr.arpa in
nomi. Di solito si tratta solo di tradurre 127.0.0.1 in ‘localhost’.
4/29/10
9
direttiva zone
! 
! 
! 
4/29/10
zone "1.168.192.in-addr.arpa" definisce il file ‘zone/192.168.1’ come
contenitore di informazioni sulla rete 1.168.192.in-addr.arpa, info per
tradurre gli indirizzi di quella sottorete in nomi.
zone "dg" definisce un file (‘zone/dg’) contenente informazioni sulla
rete dg, a cui non corrisponde un gruppo di indirizzi <=> non ci sono
nomi di dominio completi del tipo nome.dg
zone “brot.dg” definisce ‘zone/brot.dg’ come il contenitore di info
sulla rete brot.dg, per tradurre i nomi di questa sottorete in indirizzi IP.
10
named.root
Contiene le indicazioni necessarie a raggiungere i servizi di risoluzione dei
nomi del dominio principale. Questo file viene realizzato da un’autorità esterna
e viene quindi semplicemente utilizzato così com’è. Si può richiamare col
comando dig.
esempio:
.
3600000 IN NS A.ROOT-SERVERS.NET.
A.ROOT-SERVERS.NET. 3600000 A 198.41.0.4
.
3600000
NS B.ROOT-SERVERS.NET.
B.ROOT-SERVERS.NET. 3600000 A 128.9.0.107
.
3600000
NS C.ROOT-SERVERS.NET.
C.ROOT-SERVERS.NET. 3600000 A 192.33.4.12
4/29/10
11
/etc/bind/zone/127.0.0
Definisce la configurazione per la rete 127.0.0.* , cioè quella cui appartiene
il nome ‘localhost’.
–  SOA (Start Of Authority)
• 
• 
• 
Elaboratore di partenza, localhost.localdomain
Indirizzo di posta dell’amministratore, [email protected]
…
–  NS
• 
Elaboratore che offre il Name Service
–  PTR
• 
4/29/10
Associa all’indirizzo IP 127.0.0.1 il nome simbolico localhost.localdomain
12
/etc/bind/zone/dg
per la trasformazione dei nomi di dominio appartenenti al dominio principale della
rete locale (dg) in indirizzi numerici;
4/29/10
13
/etc/bind/zone/brot.dg
per la trasformazione dei nomi di dominio appartenenti alla rete locale
brot.dg in indirizzi numerici; dinkel.brot.dg svolge anche le funzioni
di servente di posta, HTTP e FTP.
alias
4/29/10
14
/etc/bind/zone/192.168.1
per la trasformazione degli indirizzi IPv4 appartenenti alla rete locale
(192.168.1.* ) in nomi di dominio;
4/29/10
15
fine esempio
Infine, gli elaboratori della rete locale (nell'esempio solo roggen.brot.dg)
che fanno uso del servizio di risoluzione dei nomi offerto da dinkel.brot.dg
-IP 192.168.1.1, dovranno specificare nel file ‘/etc/resolv.conf’ l'indicazione
'nameserver 192.168.1.1'.
4/29/10
16
dns management
•  i servizi DNS in Windows sono disponibili solo
sui sistemi Server e Datacenter.
•  Per configurare questi servizi, si usa
l'applicazione dnsmgmt.msc.
•  Per chi è curioso, questa parte è trattata nel
capitolo 10 del libro (4).
4/29/10
17
Esempio 2
.
com
it
edu
unixx
www
informatica
lettere
reti
didattica
ai
4/29/10
18
DNS in unixx.it
zone/unixx.it
@ IN SOA dns.unixx.it. admin.unixx.it {…}
tale che
named.root contenga le informazioni
informatica IN NS di.unixx.it.
di IN A 193.204.181.1
www IN A 193.204.187.12
didattica.lettere IN A 193.204.201.12
4/29/10
19
host
DNS lookup utility che permette di associare nomi ad
indirizzi IP e viceversa
~ nicole$ host www.google.it
www.google.it is an alias for www.google.com.
www.google.com is an alias for www.l.google.com.
www.l.google.com has address 72.14.234.104
Interrogazione del dns: nslookup
•  nslookup [opzioni] [host_da_trovare | -servente]
•  Nslookup is a program to query Internet domain
name servers.
esempi:
•  nslookup 192.168.1.2
–  restituisce il nome corrispondente all'IP indicato
•  nslookup roggen.brot.dg. dinkel.brot.dg
–  interpella il servizio di risoluzione dei nomi offerto
dall’elaboratore dinkel.brot.dg per ottenere le informazioni
sul nodo roggen.brot.dg
4/29/10
21
TELNET
–  TELNET è un protocollo che permette di effettuare
un collegamento con un altro elaboratore e di
operare su quello, come se si stesse utilizzando un
suo terminale.
•  Lato client: ‘telnet’
•  Lato server: demone ‘telnetd’ - demon
–  Il client TELNET può essere usato per diagnostica
•  instaura un collegamento manuale con una porta e inizia un
colloquio TCP diretto
•  Bisogna conoscere il protocollo utilizzato dal demone di cui
ci si sta servendo
4/29/10
22
telnetd
–  in.telnetd [opzioni]
•  È il demone necessario per ricevere connessioni TELNET.
È gestito dal supervisore dei servizi di rete(inetd) e
filtrato dal TCP wrapper(tcpd).
–  /etc/issue.net
•  è un file di testo utilizzato da ‘telnetd’ per mostrare un
messaggio quando un cliente TELNET si collega.
4/29/10
23
telnet
–  telnet [opzioni] [host_remoto [porta]]
–  Se viene avviato senza specificare il nodo con il quale ci si
vuole connettere, questo inizia a funzionare in modalità di
comando, visualizzando l’invito: ‘telnet>’.
–  Quando l’eseguibile ‘telnet’ riesce a connettersi al sistema
remoto, si opera come se si fosse seduti davanti a un
terminale di quel sistema.
–  Per poter dare dei comandi a ‘telnet’ occorre tornare alla
modalità di comando, con il carattere di escape ^] - control +
parentesi quadra chiusa
•  Questa convenzione può essere cambiata con l'opzione '-e
carattere_di_escape' fornita al comando telnet
4/29/10
24
Comandi telnet
–  open host_remoto [-l utente][-porta]
•  apre una connessione con l’elaboratore remoto indicato.
Se non viene specificata la porta, si utilizza il valore
predefinito per le connessioni TELNET (23).
–  set | unset argomento valore
•  ‘set’ specifica
disabilita
il valore di una variabile , mentre ‘unset’ la
–  send argomenti
•  Permette di inviare uno o più sequenze di caratteri al
sistema remoto.
–  ! [comando]
•  permette di eseguire un comando in una subshell del
sistema del client.
–  quit # ^d
4/29/10• 
Chiude la connessione e termina l’esecuzione di ‘telnet’.
25
~/.telnetrc
Se l’utente predispone il file ‘~/.telnetrc’, questo viene letto
quando si stabilisce un collegamento.
Se al suo interno appare un riferimento all’elaboratore con
il quale ci si è collegati, vengono eseguite le istruzioni
relative.
4/29/10
26
esempio
Invio di un messaggio di posta elettronica dal nodo 'roggen.brot.dg' al server SMTP
in ascolto sulla porta 25 del nodo 'dinkel.brot.dg'
–  telnet dinkel.brot.dg 25[ Invio ]
•  Trying 192.168.1.1...
Connected to dinkel.brot.dg.
Escape character is ’^]’.
220 dinkel.brot.dg ESMTP Sendmail 8.8.5/8.8.5;
Thu, 10 Dec 2008 21:30:15 +0200
–  HELO roggen.brot.dg[ Invio ]
•  250 dinkel.brot.dg Hello roggen.brot.dg
[192.168.1.2], pleased to meet you
–  MAIL From: <[email protected]>[ Invio ]
•  250 <[email protected]>... Sender ok
–  …
4/29/10
27
..esempio
–  RCPT to: <[email protected]>[ Invio ]
•  250 <[email protected]>... Recipient ok
–  DATA[ Invio ]
•  354 Enter mail, end with "." on a line by
itself
Subject: Saluti.[ Invio ]
Ciao Antonio,come stai? Io sto bene e mi
piacerebbe risentirti.Saluti,Daniele
.[ Invio ]
•  250 TAA02951 Message accepted for delivery
–  QUIT[ Invio ]
•  221 roggen.brot.dg closing connection
Connection closed by foreign host.
4/29/10
28
sussidi
(1) http://www.ss64.com/index.html
(2) http://technet.microsoft.com/en-us/library/
bb490890.aspx
(3) http://www.faqs.org/docs/linux_network/
index.html
(4) http://books.google.com/books?
id=I6MTYNIux9oC&printsec=frontcover&source=gbs_s
ummary_r&cad=0
(5) http://www.uniba.it/studenti/wifi/
4/29/10
29