Cosa sono i DNS? Perché sono così importanti?

DNS

Argomenti che tratteremo in questo post : 
  1. Cos'è un DNS ?
  2. Collaborazione (come collaborano i vari componenti tra di loro)
  3. Cos'è un Server DBMS ?
  4. Perché si utilizzano le tabelle?
  5. Perché si utilizzano dei nomi di dominio e non direttamente gli indirizzi IP ?
  6. Cos'è un Root Server ?
  7. I domini , tutto ciò che devi sapere !
  8. Come avviene la comunicazione tra Client e DNS?
  9. La Sicurezza
  10. Conclusione
  11. Argomenti che ti consiglio 

I DNS (Domani Name System) sono dei server con un preciso compito , quello di convertire un nome di dominio in un Indirizzo IP.
Ciao e benvenuti sull'informatica di base, oggi parleremo dei DNS e del loro utilizzo. 



Cos'è un DNS?

Un DNS è un Server contenente indirizzi IP. I DNS comunicano tra di loro grazie ai Socket; ad interagire con i Socket saranno i processi DNS
Se non conosci il significato della parola Server , Socket o non sai cos'è un processo clicca qui.  


Collaborazione

Quando facciamo una ricerca ed apriamo una pagina, il browser inizialmente ha un URL (l'URL è quella stringa di lettere che si trova nella barra degli indirizzi), questo URL viene mandato ad un DNS. 
Il DNS è un enorme server con  all'interno degli indirizzi IP associati agli URL.
Il DNS cerca gli URL che il browser ha fornito precedentemente e prende il corrispettivo indirizzo IP. Se questo DNS non trova niente, manda lo stesso URL ad un altro DNS che cercherà a sua volta l'indirizzo IP corrispondente. 
Dopo che è stato trovato l'indirizzo IP, viene dato al browser che come già detto ha la funziona di fare da intermediario (il browser di per se non sa a cosa serve questo indirizzo IP)
Il browser manda questo IP ad un Server Web , lui legge l'IP in ingresso cerca la pagina web correlata e la ritorna al browser. 
La pagina web sarà composta da HTML ed eventualmente da CSS e Javascript. 
Il browser interpreta tutti i codici della pagina web e li mostra a noi utenti finali.

Riassunto: 
Il browser manda al DNS nu URL, con lo scopo di avere in ritorno il reale indirizzo IP della pagina. Dopo che il browser ottiene l'indirizzo IP della pagina la manda al Server Web che ritornerà delle pagine scritte in HTML , il browser interpreterà la pagina con tutti i codici scritti in HTML o CSS e la fa vedere a noi utenti. Possiamo quindi dire che il browser ha lo scopo di fare l'intermediario tra l'utente e i server.   
Se il DNS non trova l'indirizzo IP della pagina richiesta lo chiederà ad altri DNS che cercheranno a loro volta nelle proprie tabelle per poi rinviarlo al DNS precedente. 

Cos'è un Server DBMS ?

DBMS (DataBase Managment System), per definizione è un server che attinge ad un Database che a sua volta contiene delle tabelle o grafici. 

I DBMS possono essere di due tipi: 

  • Relazionali : il 99% dei server esistenti sono di questa tipologia. Gestiscono tabelle e capiscono l'SQL (un linguaggio di interrogazione). 

  • NO SQL: Sono dei DBMS che non gestiscono tabelle ma grafici ecc... Solitamente non si usano quasi mai perché vengono utilizzate per lavori e per una quantità immensa di dati. (Non capiscono l'SQL)
La differenza principale e che una tipologia di server ovvero i Relazionali comprendono l'SQL mentre l'altra tipologia non comprende questo linguaggio di interrogazione

Perché si utilizzano le tabelle?

Il perché si utilizzano le tabelle è molto semplice. Quest'ultime vengono impiegate perché sono forse il mezzo più potente per tenere traccia di tutti i dati. Le tabelle nell'informatica sono davvero fondamentali, sono molto potenti e permettono di organizzare una grandissima mole di dati in modo molto veloce e chiaro.


Perché si utilizzano dei nomi di dominio e non direttamente gli indirizzi IP ?


Per noi umani è molto comodo dare un nome alle cose, poiché facendo ciò riusciamo a ricordare o ad utilizzare meglio tale mezzo. Stessa cosa è avvenuta online, per l'uomo è più semplice ricordare www.infodibase.com che un indirizzo IP, ma ricordiamo che le macchine non riconoscono le cose mediante nomi, ma solo mediante bit. 

Domain Name System (DNS)

Adesso che a grandi linee abbiamo compreso il funzionamento di un DNS entriamo più nel vivo dell'argomento. 
Definiamo per bene cos'è un DNS : 
  • Un Domain Name System è un database distribuito, ovvero sono un insieme di database che collaborano tra di loro, quindi tutte le informazioni sono conservate in vari server in giro per il mondo.
  • Regola la comunicazione tra host e name server
  • I vari server in giro per il mondo conservano una parte dell'informazione in modo da garantire che il nome sia unico in tutto Internet 
  • Utilizza la porta UDP 53 per il trasporto dei dati

Cos'è un Root Server ?


Un Root Server anche chiamato Server Radicesono 13 server sparsi per il mondo etichettati da una lettera che va da A ad M, possiamo dire che sono il pilastro di internet. 
I Root Server DNS contengono l'elenco dei Server responsabili di primo livello (TDL). 
I server DNS di primo livello al loro interno contengono dei Server DNS che contengono domini di secondo livello e quindi delegano una loro parte di autorità a questi domini di secondo livello, più si scende di livello e più si sarà in contatto con il client inziale.



I domini , tutto ciò che devi sapere !

  • I domini di primo livello anche chiamati Top Level Domain sono ad esempio il .com posto dopo il nome, oppure il .it ecc...
  • I Domini di Secondo livello sono ad esempio infodibase.com oppure youtube.com, quindi insieme al dominio di primo livello abbiamo il nome
  • I sottodomini sono ad esempio ciao.infodibase.com 
Ogni dominio possiede un server DNS autoritativo, ovvero un Server DNS conterrà tutti i siti che hanno come dominio di primo livello .com. Quindi ci sarà un Server DNS li fuori nel mondo che conterrà infodibase.com insieme a tutti gli altri siti che hanno il dominio di primo livello .com. 
Immaginate tutti questi server e domini come gigantesco albero.
A capo di tutto abbiamo i Root Server e in generale tutti quei server che hanno al proprio interno tutti i siti aventi un determinato dominio di primo livello, quindi avremo un DNS autoritativo che conterrà tutti i siti aventi come dominio di primo livello il .it.
Dentro questo Server Autoritativo magari c'è un altro Server Autoritativo come ad esempio ciao.it che conterrà altri siti come saluto.ciao.it. 


Come avviene la comunicazione tra Client e DNS?

  1. Il client fa una richiesta al suo  Name Server Locale chiamato Resolver che viene indicato nei parametri di configurazione del PC
  2. Il DNS Resolver invia una query (domanda) al Root Server che fornirà in risposta il server di primo livello
  3. Il DNS Resolver dopo aver preso il Server di primo livello (TDR) invia una query iterativa al server di primo livello per farsi dare il server di Secondo livello, quest'ultimo fornirà l'indirizzo IP del server di destinazione che il client iniziale aveva richiesto 
  4. Il DNS Resolver passerà l'indirizzo IP al client (nel nostro caso il client è il browser che fa la richiesta inziale)
  5. Il Client dopo che ha ricevuto l'indirizzo IP si metterà in contatto con il Server attraverso un HTTP request se questo server è un Server Web
  6. Il Server Web risponderà al client con un HTTP Response
  7. Il browser interpreta gli eventuali codici e li farà vedere a noi
Nota bene : Il Browser come hai appena visto non ha nessun tipo di informazione, non contiene nulla, metto solo in contatto il client con tutto il sistema che abbiamo appena spiegato. 



La Sicurezza 


Con così tanti scambi di informazioni nascono anche alcuni problemi legati alla sicurezza. 
Alcune delle problematiche che nascono al fronte di tutto ciò sono : 
  • Man in The Middle : altre volte ne abbiamo parlato in questo blog di questo tipo di "attacco". Se sei interessato agli attacchi informatici tempo fa avevo creato alcuni post che parlavano di malware e in generale degli attacchi più famosi della storia. Nel nostro caso l'IP potrebbe non arrivare dal Server DNS corretto ma da appunto un'altra macchina come magari un malintenzionato. Moltissimi nel corso della storia hanno sfruttato delle lacune di sicurezza del protocollo DNS per reindirizzare l'utente a pagine non reali gestite da malintenzionati, praticamente l'utente si trovava difronte ad un Fake del sito che ricercava. Questi attacchi da parte di truffatori prendono il nome di Spoofing DNS. Il Man in the Middle in pratica inganna il DNS facendogli credere di aver trovato l'IP corretto ma in realtà quell'indirizzo reindirizzerà il client altrove. Con questi escamotage il truffatore cerca di raccogliere informazioni preziose del client come magari Password o Dati sensibili o Numeri di conto, mostrando come già detto precedentemente dei siti molto realistici identici a quelli reali. 
  • Tutti questi scambi di informazione tra i DNS rallentano moltissimo la comunicazione e come già introdotto prima possono verificarsi episodi non del tutto felici poiché qualcuno potrà intercettare le comunicazioni.
  • No vengono offerti servizi per proteggere l'informazione, anche se con il passare del tempo sono nate delle evoluzioni del DNS in modo da rendere la comunicazione più sicura, nasce il DNSSec (DNS Security Extension), è un'estensione sicura del DNS. Garantisce all'utente che l'IP è quello corretto e crittografa i dati del DNS.

Conclusione 

Vi ringrazio come sempre per essere arrivati fin qui, spero che questo post vi sia stato d'aiuto. Mi auguro che sono riuscito a introdurvi nuovi concetti o a chiarire qualche vostro dubbio.
Da Infodibase per oggi è tutto e alla prossima  : )

Argomenti che ti consiglio :







Se sei interessato a conoscere il livello Data Link della pila protocollare ISO/OSI ti consiglio il mio ebook .  





Commenti