PDA

Visualizza versione completa : DNS questo sconosciuto


LoryOne
18-10-2009, 13.12.30
Non vi parlerò di browser, non vi parlerò di sovversioni, vi parlerò di un sistema che prese spunto da informazioni aggiornabili manualmente su ogni client appartenente ad una rete e di quanto la manipolazione umana andò via via scomparendo a favore di un sistema dinamico e distribuito su scala mondiale che crebbe al crescere di Internet, tanto da diventare di così vaste dimensioni da mettere ragionevolmente in dubbio la veridicità delle informazioni restituite a carico di chiunque avesse voluto segnalare la propria presenza quale nodo raggiungibile, entrando in tal modo a far parte della grande rete mondiale.
Lodevole fu l'iniziativa, così come fu pregevole dal punto di vista tecnico la sua realizzazione, ma lo scopo di qualunque ingegnere è quello di realizzare qualcosa che sia utile alla comunità senza spendere troppo tempo a valutare quelle che sono le implicazioni a carattere etico o morale che possono minare lo scopo che si è proposto di perseguire.
Andiamo con ordine:
Punto primo: Un computer non ragiona come un essere umano ... ragiona sui numeri, quindi è necessario associare un numero (IP) ad un nome (nome host) comprensibile dal punto di vista umano.
Punto secondo: L'operazione deve essere effettuata per soddisfare un grande numero di richieste, quindi è necessario un server
Punto terzo: Ogni server deve riconoscere il tipo di richiesta, quindi è necessario un protocollo comune tra chi richiede informazioni e chi le ottiene.
Punto quarto: Vsto che la rete è in espansione, il sistema deve essere aggiornabile dinamicamente.
Questi i punti fondamentali, ma poniamo l'attenzione sull'ultimo punto che costituisce la chiave del problema e chiediamoci a cosa serva se a priori conosciamo l'IP che c'interessa. La risposta è inutilità.
Certamente inutile, ma se io entro in un sistema che si snoda tra diversi IP che concorrono tutti ad ottenere le informazioni di cui necessito per usufruire di un servizio offerto, allora appoggiarmi ad un sistema che risolva per me i vari indirizzi comincia ad acquisire una certa utilità. Il punto fondamentale, quindi, è che dipende dal servizio che m'interessa utilizzare e da quali legami esso ha con altri nodi che concorrono a porlo in essere.
Passiamo ora a qualcosa di più tecnico: Le informazioni scambiate devono avere una certa attendibilità, altrimenti tutto il sistema perde di credibilità: per tale motivo esistono server di alta priorità che scambiano informazioni con altri server di più bassa priorità secondo una precisa gerarchia in base al livello di domini e sottodomini.
Ogni volta che s'interroga un server di dominio, esso effettua una interrogazione che itera fra tutte le informazioni che ha in cache fino a trovare una corrispondenza. In caso contrario, esso aggiorna le sue informazioni chiedendo di ottenerle da un server di più alta attendibilità che per esso è il server primario. Anche il server primario deve mantenere aggiornata la sua cache e anch'esso è soggetto ad ulteriori interrogazioni per mantenere fede all'attendibilità che gli viene richiesta in base al ruolo che ricopre. A livello globale, esiste una ricorsività di richieste che ha lo scopo di mantenere aggiornato il più possibile le informazioni fornite. Passiamo ora ad addentrarci maggiormente nei dettagli tecnici.
Ogni informazione ricevuta in seguito ad una richiesta è chiamata record di risorse o Resource Record (RR).
Ogni RR ha questa struttura:
1° campo: Sempre IP o nome host. Se manca, si considera lo stesso nome host o IP di quello precedente
2° campo: Indica il tipo di indirizzo. Solitamente IN indica un indirizzo Internet
3° campo: Stringa che riporta il tipo di RR seguito da parametri specifici
Particolare importanza riveste il SOA (Start Of Authority) poichè indica il DNS ed il proprietario (owner) che ne è responsabile.
Ogni record SOA ha questa struttura:
Numero di serie: Contatore di aggiornamento.
Un server DNS secondario controlla questo campo se deve aggiornare la sua zona in base alle informazioni più aggiornate del server DNS primario e lo incrementa di una unità
Refresh: Specifica la frequenza di aggiornamento espresso in secondi
Retry: Specifica la frequenza di aggiornamento in seguito a tentativo fallito espresso in secondi
Expire: Specifica il tempo di inattività in seguito al tentativo fallito di refresh espresso in secondi.
Se un DNS secondario non riesce ad effettuare un aggiornamento da un DNS primario, terminerà di effettuare richieste di aggiornamento dopo il tempo prestabilito
TTL (Time To Live): Tempo durante il quale un DNS mantiene in cache le informazioni di zona espresso in secondi
Non procederò oltre ad elencare gli altri tipi di RR, perchè si possono reperire in rete e non farei altro che aumentare la lughezza del post inutilmente. Lo scopo che mi sono prefissato è quello di spiegare in modo semplice cio che è più difficile reperire in Internet senza avere un punto di partenza da dove cominciare la ricerca e spero di esservi riuscito.
Spenderò due parole sull'utilzzo di nslookup, utility indispensabile dopo aver esposto per sommi capi l'onere che ogni server DNS ha l'obbligo di assolvere.
Digitate nslookup dal prompt del DOS e poi inserite ?. Otterrete una lista delle opzioni e dei comandi disponibili.
Prestate attenzione all'opzione type o querytype perchè è grazie a queste impostazioni che potrete ottenere informazioni specifiche sull'interrogazione che vorrete effettuare.
nslookup è in grado di riconoscere automaticamente se la richiesta è A (Address) o PTR (Pointer) in base a cosa digitate al prompt >, cioè se richiedete di risolvere un nome in IP o viceversa.