4/29/10 1
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
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 3
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 4
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 5
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
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 7
esempio
Si dispone di una piccola rete locale composta da due elaboratori con indirizzi : IPv4 Nome
192.168.1.1 dinkel.brot.dg 192.168.1.2 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.
8
named.conf
options {
directory "/etc/bind";
forwarders { 111.112.113.114;};
};
zone "." { type hint;
file "named.root";
};
zone "0.0.127.in-addr.arpa" { type master;
file "zone/127.0.0";
};
zone "1.168.192.in-addr.arpa" { type master;
file "zone/192.168.1";
};
zone "dg" { type master;
file "zone/dg";
};
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 9
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’.
direttiva zone
! 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.
4/29/10 11
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 12
/etc/bind/zone/127.0.0
– SOA (Start Of Authority)
• Elaboratore di partenza, localhost.localdomain
• Indirizzo di posta dell’amministratore, root@localhost.localdomain
• …
– NS
• Elaboratore che offre il Name Service
– PTR
• Associa all’indirizzo IP 127.0.0.1 il nome simbolico localhost.localdomain
Definisce la configurazione per la rete 127.0.0.* , cioè quella cui appartiene il nome ‘localhost’.
4/29/10 13
/etc/bind/zone/dg
per la trasformazione dei nomi di dominio appartenenti al dominio principale della rete locale (dg) in indirizzi numerici;
/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 15
/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 16
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 17
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).
Esempio 2
.
com it edu
unixx
www informatica
reti
ai
lettere
didattica
4/29/10 19
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
host
~ 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
DNS lookup utility che permette di associare nomi ad
indirizzi IP e viceversa
4/29/10 21
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
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
• i
nstaura 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 23
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 24
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 25
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 il valore di una variabile , mentre ‘unset’ la disabilita
– 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
• Chiude la connessione e termina l’esecuzione di ‘telnet’.
~/.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 27
esempio
– 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: <daniele@roggen.brot.dg>[ Invio ]
• 250 <daniele@roggen.brot.dg>... Sender ok – …
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'
4/29/10 28
..esempio
– RCPT to: <toni@roggen.brot.dg>[ Invio ]
• 250 <toni@roggen.brot.dg>... 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 29
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/