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