|
Software di utilità
Per il tuo ufficio
Assistenza online e Gestione Reti da remoto, sviluppo soluzioni e software su misura, recupero dati |
CH - 6963 Lugano - Phones: +41919404621 - +41792401881 Fax +41919404626
|
|
|
|
|
|
Salva questa pagina: ti sarà utile |
|
Di tutti i servizi Internet, il Domain Name System (DNS) è uno tra i meno compresi ma allo stesso tempo uno tra i più importanti. Definito negli RFC 1034 e 1035, il DNS ha l'importante compito di convertire i nomi delle macchine collegate in rete in indirizzi IP e viceversa. Ogni computer di Internet possiede un indirizzo numerico chiamato indirizzo IP, che identifica in modo unico solo quella macchina. I computer hanno bisogno di questi indirizzi per poter comunicare. Quando digitiamo nel browser l'URL www.pubblinet.com , il DNS dell'Internet Provider, o del server tramite cui accediamo ad Internet, traduce il nome mnemonico del sito nell'indirizzo IP 64.26.63.33 Quando Internet muoveva ancora i primi
passi, il collegamento tra due macchine veniva effettuato solamente mediante gli
indirizzi IP. Dato che gli indirizzi non sono certo facili da ricordare, si è
deciso molto presto di adottare l'uso di nomi simbolici al posto di indirizzi
numerici. Questo nuovo modo di identificare le macchine necessitava tuttavia di
un qualche sistema in grado di tradurre gli indirizzi in nomi e viceversa.
Inizialmente la gestione delle corrispondenze tra indirizzi IP e nomi mnemonici
di tutte le macchine collegate, era affidata allo Stanford Research Institute
Network Information Center (SRI-NIC) che si preoccupava di mantenere tutte le
corrispondenze in un singolo file, chiamato HOSTS.TXT. Tutte le macchine
periodicamente accedevano a questo file per ottenere una copia aggiornata.
Con la crescita esponenziale del numero
di macchine collegate ad Internet, questo semplice sistema di traduzione è stato
presto abbandonato in favore di un sistema più flessibile, il Domain Name
System, o più semplicemente DNS, di cui ci occuperemo nel resto di questo
articolo. Il sistema DNS è stato concepito nel
1982 quando nessuno si sarebbe aspettato uno sviluppo di Internet pari a quello
degli ultimi anni. Nonostante la sua età, ha dimostrato di essere un sistema in
grado di scalare molto bene all'aumentare delle macchine collegate.
Il DNS è un grande database
distribuito. Questo significa che non esiste un unico computer che conosce
l'indirizzo IP di tutte le macchine collegate in Internet (come avveniva usando
il file HOSTS). Le informazioni sono invece distribuite su migliaia di macchine,
i server DNS. Ognuno di questi server è responsabile di una certa porzione del
nome, detta dominio. I server sono organizzati secondo una struttura gerarchica
ad albero che presenta forti somiglianze con la struttura del file system UNIX.
Il suo nome è albero dei domini.
. | ---------------------------------------------------------------------------------- ... | | | | | | | | | | com edu gov mil org net int it de uk |
| |
| | | |
| | | | | | | | mit yale internic ripe wind networkingitalia essex | net | networking |
|
|
Si tratta di un albero inverso al cui capo troviamo il dominio radice (di
solito denotato con un punto '.') e dove ogni nodo dell'albero corrisponde ad un
dominio, o equivalentemente, al server DNS che lo gestisce. Le foglie
dell'albero sono i nomi delle macchine.
Si definisce Fully Qualified Domain Name (FQDN) un nome di dominio che
include tutti i domini di livello superiore al suo. Un FQDN è anche detto nome
di dominio completo.
Come è noto, quando un utente digita un nome di dominio, i nomi dei singoli nodi vengono separati dal punto '.'. Questi nomi vanno dal più specifico (più lontano dalla radice) verso il meno specifico (più vicino alla radice). Dato che un nome di dominio completo finisce con l'etichetta radice, e che questa è sempre rappresentata da una stringa nulla, un nome completo finisce sempre con un punto. Se non viene specificato il punto, quello che abbiamo è un nome incompleto. Di solito i nomi incompleti vengono completati automaticamente dal software, provando con il dominio locale e con alcuni domini predefiniti, tra cui il '.' della radice. Quindi se viene omesso il punto finale quando si digita un nome di dominio, questo viene facilmente riconosciuto come un nome da risolvere rispetto al dominio radice. Allo stesso modo la macchina host1.networking.net.wind.it. può comunicare con la macchina host2.networking.net.wind.it. usando solo la stringa 'host2'. Il dominio radice, o dominio di root, che troviamo a capo dell'albero contiene un elenco di tutti i server DNS dei domini di primo livello. Sparsi per Internet esistono una decina di DNS radice, ma sono usati solo per creare ridondanza e contengono tutti le stesse informazioni. I domini di primo livello, detti anche TLD (Top Level Domain) possono essere:
Oltre a questi sette, detti anche i domini generici (gTLD), esistono domini di primo livello di sole due lettere (stabilite dall'ISO) per i domini geografici, come ad esempio .it per l'Italia, .fr per la Francia, .de per la Germania, .uk per il Regno Unito e così via. Sono detti ccTLD (Country Code TLD). Al di sotto dei domini di alcuni paesi esiste una gerarchia che rispecchia quella dei domini di primo livello. Ad esempio i nomi delle organizzazioni commerciali di Regno Unito (.UK) e Giappone (.jp) finiscono rispettivamente in .co.uk e .co.jp, mentre l'equivalente dei .edu sono .ac.uk e .ac.jp (dove ac è l'abbreviazione di academic). Anche per gli Stati Uniti è stato previsto il codice .us
Un DNS che copre un dominio di primo livello conosce gli indirizzi di tutti i
DNS di secondo livello sottostanti ad esso. Quindi un DNS .it conosce tutti i
domini del tipo qualche-cosa.it
Tutte le informazioni relative alla zona coperta da un server DNS vengono memorizzate in un file sotto forma di Resource Record (RR). Il formato generico di un RR dispone dei seguenti campi: Nome: Il nome di dominio a cui questo RR si riferisce. TTL: Time-To-Live, indica in secondi quanto a lungo questo RR rimarrà nella cache dei server DNS prima di essere scartato. Un'intero a 32 bit unsigned. Classe: Identifica la famiglia di protocollo. Il valore usato è sempre IN che indica il sistema Internet. In realtà esistono altri due valori: HS per i server Hesiod e CH per i Chaosnet ma non hanno a che fare con le reti TCP/IP di Internet. Tipo: Il tipo di RR. I tipi principali sono: A: E' il tipo più usato. Indica che il RR contiene l'indirizzo IP per il dominio specificato. Usato nella normale risoluzione del nome. CNAME: Record Canonical Name, usato per indicare un nome di alias per il dominio. MX: Mail eXchanger, indica un host che gestisce la posta per il dominio. Lo descriveremo meglio dopo. NS: Un server DNS per il dominio specificato. PTR: Usato per associare un indirizzo IP al nome del dominio specificato. Usato nella risoluzione inversa. SOA: Start of Authority, un RR che indica il server DNS dove risiedono i dati autoritativi per questo dominio ed alcuni dati amministrativi. Rdata: Contiene le informazioni per il tipo specificato. A seconda del tipo abbiamo i seguenti casi. A: Un indirizzo IP a 32 bit CNAME: Un nome di dominio MX: Un valore di preferenza a 16 bit seguito da un nome di dominio. NS: Il nome di un host PTR: Un nome di dominio SOA: Comprende diversi campi Associato ad un nome di dominio possiamo trovare più RR, ciascuno contenente informazioni di vario tipo, ma relative sempre allo stesso nome. L'ordine in cui vengono memorizzati non è importante. Vediamo ora il meccanismo DNS al lavoro.
Sul computer dell'utente viene consultato il file HOSTS alla ricerca del server WWW di Networkingitalia. Non trovandolo, viene effettuata una richiesta al proprio server DNS. Questo può essere il DNS del provider Internet, oppure, se il computer è installato in una rete collegata direttamente ad Internet, è probabile che il server DNS sia interno. Dato che il server contattato si limita a coprire solo la sua zona (nel caso del DNS del provider si tratterà della zona al di sotto di nomeprovider.it, nel caso di un DNS interno la zona coperta sarà del tipo nome-organizzazione.it) la richiesta viene inoltrata ad un DNS radice. Il DNS radice non conosce l'IP per www.networkingitalia.it ma conosce i Resource Record di tipo NS dei server DNS .it e li restituirà al primo DNS. A questo punto il nostro DNS inoltra la stessa richiesta verso l'indirizzo di un DNS .it Il DNS .it non conosce l'IP per www.networkingitalia.it ma conosce i RR NS relativi ai DNS che gestiscono il dominio networkingitalia.it e li restituirà al primo DNS. Il nostro DNS ora contatta uno di questi DNS, il quale finalmente conosce l'IP per www.networkingitalia.it e lo restituisce sotto forma di RR di tipo A. Il DNS restituisce al computer dell'utente l'indirizzo IP per www.networkingitalia.it. Come si vede, la ricerca di un indirizzo IP molto spesso non è un operazione diretta. Questo perchè come già detto, il database DNS non è localizzato in una sola macchina. Questa procedura è detta risoluzione del nome. Si tratta di una procedura client server. Il client (detto anche resolver) è in esecuzione sulle macchine collegate in rete e si occupa di effettuare al DNS le richieste di traduzione da indirizzi in nomi e viceversa. Il server è il server DNS e si occupa di rispondere alle richieste del resolver seguendo i passi appena visti. Data la brevità e la semplicità delle richieste e delle relative risposte, il protocollo usato è per lo più l'UDP, che ricordo, fornisce una comunicazione meno affidabile ma più veloce. Più raramente si usa il TCP. La porta usata dal servizio DNS è la numero 53. Il modo di procedere nella risoluzione del nome è detto ricorsivo se viene
chiesto al DNS di fare tutto il lavoro ed alla fine di restituire la risposta.
E' non ricorsivo se invece della risposta può venire restituito un riferimento
ad un altro DNS.
Così come per i DNS radice per ogni zona ci possono essere diversi DNS. Il numero massimo si aggira intorno ai 10-12 DNS. Questo numero è limitato da quanti DNS è possibile elencare in un pacchetto UDP di risposta e varia a seconda di quanto bene si riesce a comprimere l'elenco nel messaggio. I server DNS sono in grado di effettuare caching, cioè possono ricordare le
interrogazioni effettuate più di recente e le relative risposte. In questo modo
la risoluzione di un nome molto richiesto può essere soddisfatta immediatamente,
senza dover inoltrare la query ad un DNS radice. Nel nostro esempio il DNS
dell'utente ha interpellato il DNS radice per conoscere uno dei DNS .it
I pacchetti di richiesta e di risposta del DNS contengono i seguenti campi: Header: Indica se il messaggio è una richiesta o una risposta, contiene alcuni flag, i codici di errore ed altre informazioni relative al pacchetto. Question: contiene la domanda per il DNS. Answer: contiene un elenco di RR che rispondono alla domanda. Authority: contiene un elenco di RR NS di server DNS che portano più vicino alla risposta. Additional: contiene un elenco di RR con informazioni utili per rispondere alla domanda, anche se non si tratta della risposta. Nell'header troviamo tra le altre cose il flag AA (Authoritative Answer). Quando è attivo, nei messaggi di risposta, indica che il DNS che ha generato la risposta (direttamente o indirettamente) è il server autoritativo per quella zona. Se la risposta viene memorizzata nella cache del nostro DNS, effettuando la stessa richiesta, otterremo la stessa risposta ma con il flag AA non attivo, ad indicare che la risposta non è autoritativa. Una particolarità dei messaggi di risposta è che il campo Authority, contenente i RR che portano verso i server autoritativi, viene riempito anche se il messaggio è la risposta. Se chiediamo un record A contenuto nella cache, la risposta come è stato detto è non autoritativa. Tuttavia il campo Authority contiene ancora gli indirizzi autoritativi, cioè permette di sapere quali sono i server DNS a cui rivolgersi per avere la risposta autoritativa. Per il corretto funzionamento di tutto questo meccanismo ogni server DNS deve
avere due tipi di informazione. Il primo tipo riguarda i domini direttamente
coperti dal DNS. Il secondo tipo è l'indirizzo del DNS radice a cui rivolgersi
nel caso una richiesta non possa essere risolta internamente. Si può trovare la
lista ufficiale dei DNS radice al seguente indirizzo:
Un'altra peculiarità del DNS è la capacità di fornire servizi di load balancing e fault tolerance. Per far questo vengono associati gli indirizzi IP di diverse macchine ad un solo nome. Il computer dell'utente sceglierà a caso uno di questi indirizzi. Server DNS più sofisticati sono in grado di restituire un solo indirizzo IP basandosi sul carico delle macchine e sulla loro disponibilità. Per ottenere il nome di una macchina sapendo l'indirizzo IP le cose diventano più complesse. Sapere i nomi a partire da indirizzi IP torna utile per varie ragioni. Ad esempio, per produrre un output leggibile nei file di log, altre volte viene usato per controlli di autenticazione. Per ricavare un indirizzo IP dato il nome, si può seguire la struttura gerarchica dell'albero dei domini nel modo visto in precedenza. Per effettuare l'operazione inversa non è più possibile seguire questa gerarchia. Per rendere possibile questo servizio è stato riservato il dominio speciale "in-addr.arpa", chiamato anche dominio inverso. Termina in "arpa" perchè Internet era originariamente denominata ARPAnet. Dato che i nomi dei domini sono organizzati in modo tale da avere la parte più significativa a destra, mentre gli indirizzi IP, nel formato decimale, hanno i byte più significativi a sinistra, è necessario creare il nome di dominio inverso mettendo i numeri dell'indirizzo IP in ordine inverso e aggiungendo in-addr.arpa alla fine. In questo modo viene rispettata la natura gerarchica del DNS. Un esempio di dominio in-addr.arpa può essere 34.16.1.151.in-addr.arpa Quando viene effettuata una richiesta di traduzione da IP a nome, viene effettuata una normale ricerca del nome di dominio. Ad esempio se in Unix si digita il comando "nslookup 151.1.16.34" viene eseguita una ricerca per il nome di dominio "34.16.1.151.in-addr.arpa". Per poter funzionare sono presenti nei DNS i RR di tipo PTR il cui funzionamento ricalca a grandi linee quello dei record A. Il server DNS ha un'altra importante funzione oltre a quelle viste finora.
Gioca infatti un ruolo molto importante nella gestione della posta elettronica.
Normalmente quando si pensa alla posta elettronica si pensa che il mail server
del computer mittente debba solo conoscere il mail server del dominio del
destinatario per arrivare a destinazione. Se questo fosse vero il mail server
del mittente si limiterebbe ad interrogare il proprio DNS per scoprire
l'indirizzo IP del mail server del destinatario. In realtà il DNS non si limita
a fornire un servizio di traduzione da indirizzi IP a nomi e viceversa. E'
infatti in grado di fornire alcune utili informazioni di routing per la posta al
mail server mittente.
Quando si allaccia il proprio computer o la propria rete ad Internet è essenziale disporre di un servizio DNS in modo da trovare e farsi trovare sulla rete. Per far questo ci sono sostanzialmente due strade. La prima è di affidarsi ai server DNS di un provider Internet. La seconda è di installare un server DNS all'interno della propria rete. Nel primo caso bisogna contattare un Internet Service Provider informandolo riguardo i record che si vogliono inserire per permettere l'accesso dall'esterno. L'Isp informerà la Registration Authority del fatto che esso fornisce servizi DNS per il o i computer che si vogliono allacciare ad Internet. Fatto questo si procede con il configurare le proprie macchine in modo che usino i DNS dell'Isp. Se invece si vuole dotare la propria rete di un server DNS interno bisogna
prima di tutto dotarsi di due server DNS, uno primario ed uno secondario,
altrimenti l'InterNIC o la RA Italiana non acconsentiranno all'inserimento del
nome di dominio nel database dei propri DNS. Fatto questo si procede alla
registrazione di un dominio presso la Registration Authority. A questo punto si
possono configurare i propri DNS per strutturare al meglio la propria rete.
La Registration Authority varia a seconda del dominio di primo livello sotto
cui si vuole inserire la propria organizzazione. Come abbiamo detto, per il
dominio .it esiste la Registration Authority Italiana (http://www.nic.it/RA).
Nel caso si usi uno dei domini generici .com, .edu, .gov, .org, .net bisogna
rivolgersi all'InterNIC (http://www.internic.net). L'autorità centrale al di
sopra di queste organizzazioni e responsabile del coordinamento e della gestione
del sistema DNS è l'Internet Assigned Numbers Authority (IANA).
Avere il proprio server DNS comporta diversi vantaggi, tra cui una più veloce risoluzione dei nomi dato che il server DNS dell'Isp è di solito piuttosto caricato di traffico. Inoltre, nel caso ci siano frequenti cambiamenti nei nomi delle macchine della propria rete, si può effettuare l'aggiornamento dei propri DNS in modo diretto, mentre con un Isp bisogna aspettare un certo intervallo di tempo, di solito stabilito dall'Isp stesso. Se ciò che vogliamo è solo risolvere i nomi più velocemente senza registrare alcun dominio e senza rivolgersi all'Isp o all'Authority, è sufficiente impostare un server DNS con semplici funzioni di caching. Questo sistema velocizza le richieste di risoluzione, specialmente se il DNS del proprio Isp è sovraccaricato. Inoltre questo sistema funziona senza problemi anche con gli indirizzi IP dinamici. Un DNS caching è un server non autoritativo. Ottiene tutte le sue informazioni dai server DNS primario e secondario, non ha autorità su nessuna zona e richiede almeno un RR NS da cui poter ricavare inizialmente informazioni. A questo punto è opportuno fare una precisazione. Ciò di cui abbiamo parlato è la registrazione di un nome di dominio. Non stiamo parlando dell'attribuzione di indirizzi IP per le proprie macchine. Per fare questo ci sono altre organizzazioni, come la RIPE per Europa, Medio Oriente e parte dell'Africa, l'ARIN per Nord e Sud America, Caraibi e Africa Sub-Sahariana, e l'APNIC per l'Asia del Pacifico. Diversamente dal caso dei nomi, per avere un indirizzo IP fisso rivolgersi al proprio Isp è spesso l'unica strada dato che gli indirizzi non vengono rilasciati direttamente agli utenti finali ma solo agli Isp e ad altre organizzazioni che fanno uso di un grande numero di indirizzi. E' bene notare che i server DNS non producono nessun tipo di broadcast per rendersi visibili nella rete. E' necessario effettuare la registrazione presso l'autorità sotto la quale vogliamo comparire. Se si installasse un server DNS senza registrare il dominio che si intende coprire, questo non avrebbe effetto sulla rete perchè il server DNS di livello superiore non lo indirizza (o ne indirizza un altro se il dominio è già stato registrato da un'altra organizzazione). Per ottenere informazioni su un dominio e sul suo gestore esiste un sistema, il WHOIS (definito nell'RFC 954), che permette di collegarsi ed effettuare richieste ad un server NIC. Esistono diversi database Whois in Internet. Whois fornisce solo le
informazioni registrate presso quel server NIC. in particolare citiamo
whois.internic.net e whois.nic.it, entrambi accessibili sulla porta 43.
|
|
|
DNS DEI PROVIDER ITALIANI TIN
|
| dns1.village.tin.it | 195.14.96.135 |
| dnsca2.tin.it | 212.216.172.222 |
| dnscache2.tin.it | 212.216.172.162 |
| dns2.tin.it | 194.243.154.51 |
| dnscache1.tin.it | 212.216.172.62 |
| dns1.fullcompany.telecomitalia.it | 212.131.30.42 |
| dnsca.tin.it | 212.216.112.112 |
| dnsca.tin.it | 195.31.190.31 |
| dns.tin.it | 194.243.154.62 |
| r-dns.interbusiness.it | 151.99.125.1 |
| dns2.interbusiness.it | 151.99.125.3 |
| dns.interbusiness.it | 151.99.125.2 |
| server-b.cs.interbusiness.it | 151.99.250.2 |
| ns2.libero.it | 193.70.192.100 |
| ns1.libero.it | 195.210.91.100 |
| cns-a.libero.it | 193.70.192.25 |
| cns-b.libero.it | 193.70.152.25 |
| dns.wind.it | 212.245.255.2 |
| dns2.wind.it | 212.245.158.66 |
| dns.inwind.it | 212.141.53.123 |
| dns2.wind.it | 212.245.158.66 |
| ns1.atlanet.it | 213.234.128.211 |
| ns2.atlanet.it | 213.234.132.130 |
| ns1.its.it | 151.92.2.35 |
| ns.telexis.it | 213.199.1.132 |
| dns.mclink.it | 195.110.128.1 |
| dns.flashnet.it | 194.247.160.1 |
| dns2.flashnet.it | 194.247.160.8 |
| ns2.albacom.net | 212.17.192.209 |
| urano.inet.it | 194.20.8.1 |
| venere.inet.it | 194.20.8.4 |
| elitel.it | 212.34.224.193 |
| ns.elitel.it | 212.34.224.132 |
| ns2.elitel.it | 217.146.65.7 |
| ns3.elitel.it | 217.146.65.80 |
| ns.tiscali.it | 195.130.224.18 |
| sns.tiscali.it | 195.130.225.129 |
| - | 212.17.192.216 |
| - | 212.17.192.56 |
| dns.nic.it | 193.205.245.5 |
| dns2.nic.it | 193.205.245.8 |
| nameserver.cnr.it | 194.119.192.34 |
193.192.227.3 (ns1.sunrise.ch)
195.141.56.5 (ns2.sunrise.ch)
194.158.230.53 (ns3.sunrise.ch)
194.230.1.5 (ns4.sunrise.ch)
IP Plus:
164.128.36.34 (ns1.ip-plus.net)
164.128.76.39 (ns2.ip-plus.net)
164.128.36.54 (ns3.ip-plus.net)
Bluewin:
195.186.1.110 (dns1.bluewin.ch)
195.186.1.111 (dns2.bluewin.ch)
195.186.4.110 (dns3.bluewin.ch)
195.186.4.111 (dns4.bluewin.ch)
Netstream:
62.65.128.10 (dns.netstream.ch)
62.65.128.15 (dns2.netstream.ch)
Solnet:
212.101.4.2 (ns1.solnet.ch)
212.101.0.10
212.101.4.253
Green:
80.254.161.126 (ns1.green.ch)
80.254.161.125 (ns2.green.ch)
Cablecom:
62.2.32.5 (ns1.cablecom.net)
62.2.32.250 (ns2.cablecom.net
62.2.17.60
62.2.24.158 (ns4.cablecom.net)
62.2.24.162 (ns5.cablecom.net)
Cybernet:
212.90.199.2 (ns1.cybernet.ch)
212.90.192.190 (ns2.cybernet.ch)
I T A L I A N I
212.216.112.112 ns4.tin.it
212.216.172.62 nuova tin.ir
U N I T E D K I N G D O M
205.188.146.145
| © Pubblinet Switzerland - New Dimension Software 1994 - 2010 - All Rights Reserved | Pagina generata in 0.149602 secondi |
Invia questa pagina ad un amico |