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 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. 4/29/10 7 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. 4/29/10 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. 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! 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 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, root@localhost.localdomain NS Elaboratore che offre il Name Service PTR Associa all indirizzo IP 127.0.0.1 il nome simbolico localhost.localdomain 4/29/10 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 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. 4/29/10 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: <daniele@roggen.brot.dg>[ Invio ] 250 <daniele@roggen.brot.dg>... Sender ok 4/29/10 27..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 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