Tutti noi siamo abituati a raggiungere un servizio (e quindi il calcolatore che lo offre) utilizzando nomi simbolici e di facile memorizzazione detti hostname: ecc… E’ chiaro che tali nomi non sono facilmente comprensibili per i dispositivi che costituiscono una rete, in particolare Internet; essi, infatti danno poche informazioni circa la dislocazione dell’host. I router non sarebbero in grado di utilizzare gli hostname per instradare i dati in maniera corretta. Per le ragioni viste gli host sono identificati anche dal cosiddetto indirizzo IP (IP address). DNS INTRODUZIONE (1/3)
Un indirizzo IP consiste di quattro byte e ha una struttura gerarchica, un esempio di indirizzo IP è il seguente, , ogni punto separa uno dei byte espresso in notazione decimale da 0 a 255. Gli indirizzi IP permettono l’identificazione univoca di ogni dispositivo della rete Internet. Essi, come detto, hanno una struttura gerarchica, leggendo l’indirizzo da sinistra a destra si ottengono informazioni sempre più dettagliate circa la rete di appartenenza (all’interno di tutte le reti di Internet). DNS INTRODUZIONE (2/3)
Ovviamente gli utenti di Internet preferiscono l’hostname più mnemonico, mentre i router preferiscono l’indirizzo IP. PROBLEMA: conciliare le esigenze degli utenti e dei router. SOLUZIONE: un servizio che tratti archivi di nomi per convertire gli hostname in indirizzi IP. Questo compito di traduzione è svolto dal DNS. DNS INTRODUZIONE (3/3)
Domain Name System (DNS): sistema dei nomi di dominio (ma non si traduce mai). Il DNS è standardizzato in RFC 1034 e RFC Il DNS è (1) un database distribuito implementato in una gerarchia di server dei nomi. Il DNS (2) è un protocollo dello strato di applicazione che permette agli host di comunicare con i server dei nomi in modo da fornire il servizio di traduzione. Esso gira su UDP e usa la porta 53. DNS Servizio DNS
Alias degli hostname. Un hostname complicato (hostname canonico) può essere sostituito da un alias del nome. Ad esempio, un hostname come relay1.west-coast.enterprice.com diventa Alias dei server di posta. Permette di associare un server di posta al nome di un dominio per facilitare la memorizzazione dell’indirizzo di posta. Per esempio identifica l’utente pippo sulla macchina mailsrv1.cds.unina.it. L’associazione unina.it – mailsrv.cds.unina.it è a carico del DNS. Distribuzione del carico.Quando un server gestisce un carico troppo elevato, il suo contenuto viene replicato su più macchine. Il servizio DNS può distribuire il carico tra le macchine rilasciando l’intero gruppo di indirizzi e ruotandoli ciclicamente ad ogni richiesta, senza che gli utenti si accorgano di nulla. DNS Altri servizi offerti dal DNS
Un semplice progetto di DNS potrebbe prevedere un unico server dei nomi. Tale soluzione, anche se teoricamente semplice e realizzabile, presenta una serie di problemi che la rendono inapplicabile: Singolo punto di guasto. Volume di traffico. Un solo server dei nomi dovrebbe gestire tutto il traffico. Database distante. Manutenzione. Un singolo server centrale, che contenga tutte le correlazioni, risulterebbe gigantesco e la sua manutenzione sarebbe molto complessa. DNS DNS centralizzato?
Il progetto DNS prevede quindi la distribuzione. Il DNS usa un gran numero di server dei nomi, organizzati in modo gerarchico e distribuiti in tutto il mondo. In particolare: gli elementi più alti nella gerarchia contengono molte informazioni non dettagliate gli elementi più bassi nella gerarchia contengono poche informazioni dettagliate. Ci sono tre tipi di server dei nomi:server dei nomi locali, server dei nomi radice e server dei nomi assoluti. DNS DNS distribuito!
Tipologie di server DNS (Local) Local Name Server (Server dei nomi locale). Ogni ISP (universitario, di una società professionale etc..) ha un proprio server dei nomi locale. Quando un host invia un messaggio di richiesta, il messaggio viene prima inviato al server dei nomi locale dell’host. L’indirizzo IP del server dei nomi locale tipicamente è inserito a mano in un host. DNS
Root Name Server (server dei nomi radice). Ne esistono varie decine in Internet. Quando un server dei nomi locale non può soddisfare immediatamente la richiesta di un host (perché non ha la registrazione dell’hostname che è stato richiesto), esso si comporta come un client DNS e invia una richiesta a un server dei nomi radice. Se il server dei nomi radice ha la registrazione dell’hostname, invia un messaggio di risposta DNS al server dei nomi locale, che a sua volta invia una risposta DNS all’host richiedente. Tipologie di server DNS (Root) DNS
Authoritative Name Server (Server dei nomi assoluto) E’ un server dei nomi capace di risolvere tutti i nomi all’interno di un dominio. Per esempio: un server dei nomi assoluto per il dominio unina.it deve essere capace di risolvere tutti i nomi del tipo xyz.unina.it. Quando il server dei nomi radice non ha la registrazione dell’hostname, si riferisce al server dei nomi assoluto. Ad ogni host è richiesta la presenza su almeno due server dei nomi assoluti, in maniera tale da far fronte a eventuali malfunzionamenti. DNS Tipologie di server DNS (Authoritative)
Un semplice esempio DNS Server dei nomi radice Host richiedente surf.eurecom.fr gaia.cs.umass.edu Server dei nomi locale dns.eurecom.fr Server dei nomi assoluto dns.umass.edu L’host surf.eurecom.fr vuole l’indirizzo IP di gaia.cs.umass.edu. Contatta il suo local name server Il local name server se necessario contatta il root name server Il root name server se necessario contatta l’authoritative name server.
Il server dei nomi radice potrebbe non conoscere l’indirizzo IP del server dei nomi assoluto per ogni hostname. Per un dato hostname il server dei nomi radice potrebbe conoscere solo l’indirizzo IP di un server dei nomi intermedio che, a sua volta, conosce l’indirizzo IP di un server dei nomi assoluto per l’hostname. DNS Osservazione:
Richieste Iterative e Ricorsive (1/2) Richiesta Ricorsiva: quando un host o un server dei nomi A fa una richiesta ricorsiva a un server dei nomi B, allora il server B ottiene la correlazione richiesta a nome di A e quindi la invia ad A. Richiesta Iterativa: Quando un server dei nomi A fa una richiesta iterativa al server dei nomi B, quest’ultimo, se non ha la correlazione richiesta, invia immediatamente una risposta DNS ad A che indica l’indirizzo IP del server successivo nella catena, cioè del server dei nomi C. Il server dei nomi A invia allora una richiesta al server dei nomi C. DNS
Richieste Iterative e Ricorsive (2/2) Server dei nomi locale dns.eurecom.fr Server dei nomi radice Server dei nomi intermedio dns.umass.edu Server dei nomi assoluto dns.umass.edu Gaia.cs.umass.edu Host richiedente Surf.eurecom.fr Richiesta iterativa
Quando un server dei nomi riceve una correlazione DNS per qualche hostname, esso la deposita nella sua memoria locale. Se al server dei nomi arriva un’altra richiesta per lo stesso hostname, esso può fornire l’indirizzo IP desiderato anche se non è il server dei nomi assoluto per quello stesso hostname. Migliora le performance rispetto al ritardo e riduce il numero di messaggi DNS nella rete. Per evitare l’accumulo di informazioni non aggiornate, dopo un certo tempo le associazioni vengono eliminate dalla cache. DNS Caching del DNS
Record DNS (1/2) I server dei nomi che implementano il database DNS, immagazzinano record di risorse (RR, Resource Record) contenenti le correlazioni tra gli hostname e gli indirizzi IP. Un record di risorsa è un quartetto che contiene i seguenti campi: ( Name, Value, Type, TTL) TTL è il tempo di vita del record di risorsa; esso indica il momento in cui una risorsa dovrà essere rimossa dalla cache. DNS
Record DNS (2/2) Tipo=A Nome=hostname Valore=ind. IP Tipo=CNAME Nome=alias per il nome canonico Valore=nome canonico Tipo=NS Nome=dominio (come unina.it) Valore=ind IP dell’authoritative NS Tipo=MX Valore=hostname di un server di posta che ha l’Alias NAME
Messaggi DNS (1/3) DNS Numero RR di risposta Etichette Numero di domande Identificazione Numero di RR aggiuntivi Numero di RR assoluti Domande (numero di domande variabile) Formato del messaggio DNS Assoluti (numero variabile di record di risorse) Risposte (numero variabile di record di risorse) Informazioni aggiuntive (numero variabile di record di risorse) I messaggi di richiesta e di risposta hanno lo stesso formato. Intestazione del messaggio (12 bytes) : Identificazione: un numero di 16 bit che identifica la richiesta. Le risposte usano lo stesso identificativo. Etichette (flag): risposta/richiesta, ricorsione desiderata, ricorsione disponibile, risposta authoritative. 12 bytes
Messaggi DNS (2/3) Numero RR di risposta Etichette Numero di domande Identificazione Numero di RR aggiuntivi Numero di RR assoluti Domande (numero di domande variabile) Formato del messaggio DNS Assoluti (numero variabile di record di risorse) Risposte (numero variabile di record di risorse) Informazioni aggiuntive (numero variabile di record di risorse) 12 bytes DNS Nome e tipo per una richiesta. RR in risposta ad una richiesta. Records per server assoluti. Informazioni addizionali utili.
Messaggi DNS (3/3) La sezione domanda (question section) contiene informazioni sulla richiesta che è stata fatta. Essa comprende un campo nome che contiene il nome che è stato richiesto, e un campo tipo che indica il tipo di richiesta relativa al nome (A, NS, CSNAME, e MX). La sezione risposta (answer section) contiene i record di risorsa (Name, Value, Type,TTL) per il nome che era stato richiesto. Una risposta può contenere RR multipli, poiché un hostname può avere più indirizzi IP (ad es. per server duplicati). La sezione assoluta (authority section) contiene record per altri server assoluti. La sezione aggiuntiva (additional section) contiene altri record utili (alias, hostname canonico). DNS
Cenni su NetBIOS Protocollo di livello sessione. Sviluppato da IBM nel 1983 permette a delle applicazioni di comunicare scambiandosi file e messaggi in reti piccole e che non prevedevano ancora l’uso del protocollo IP. Definito in [RFC1001] e [RFC1002]. Esistono tre varianti di NetBIOS: NetBIOS over Logical Link Control NetBEUINoto come NetBEUI – NetBIOS Extended User Interface. NetBIOS over IPX – (Novell) NetBIOS over TCP/IP Nella comunicazione tra host si usano: User Datagram Protocol (UDP) - Unreliable Session Management Protocol (SMP) – Reliable
Cenni su NetBIOS NetBEUI (NetBIOS over LLC):NetBEUI (NetBIOS over LLC): Realizzato per adattarsi ad un datalink (Ethernet). Viene usato in ambienti Windows for Workgroup (Windows 3.1) e su tutte le versioni successive. Viene inizializzato usando frame MAC multicast. Implementa servizi di peer-to-peer file sharing (in Windows 95/98) e connessioni server. Ogni sessione viene identificata con: Remote Session Number (RSN) Local Session Number (LSN)
Cenni su NetBIOS NetBIOS over TCP/IPNetBIOS over TCP/IP: Utilizza sia TCP (port 139) che UDP (port ). UDP viene usato per servizi connectionless. NBNSTCP viene usato per comunicare con il NBNS (NetBIOS Name Server) e per stabilire le connessioni. I nomi di host di NetBios over TCP/IP possono essere registrati (annunciati) e risolti (trovati) sul network locale sia tramite broadcast che tramite un server di nomi centralizzato (su sistemi Windows l'implementazione di un NBNS è il WINS server) che risulta, soprattutto su reti affollate, molto più efficace.
Cenni su NetBIOS A seconda di come un host è configurato per gestire i nomi assume un tipo di nodo diverso: b-node b-node - Host che usa solo broadcast per la risoluzione e la registrazione degli host name. p-node p-node - Host che usa un server centrale (comunicazione point-to-point) per risoluzione e registrazione. m-node m-node - Host che usa broadcast per la registrazione e la risoluzione, inoltre se porta a termine con successo una registrazione lo notifica ad un server NBNS, che viene usato anche quando la risoluzione via broadcast non ha successo. h-node h-node (hybrid) - Host che usa un server NBNS per risoluzione e registrazione dei nomi e, nel caso in cui il server NBNS non sia disponibile utilizza i broadcast. Questa modalità è stata introdotta da Microsoft, non appare nelle [RFC 1001] e [RCF 1002].
Cenni su NetBIOS L'indirizzamento di NetBios è basato sul semplice nome di un host (fino a 15 caratteri) e senza elementi gerarchici (come il DNS) che di fatto lo rendono inadatto per gestire il routing fra network diversi. Per impedire che due host nella stessa rete abbiamo lo stesso nome viene utilizzato il protocollo Name Management Protocol (NMP), tramite il quale, a colpi di broadcast, un host annuncia la sua presenza in rete e avverte quando un nuovo host con lo stesso nome prova ad apparire.
Cenni su NetBIOS I nomi (di 15 caratteri) presentano un sedicesimo ed ultimo byte che indica il tipo di risorsa, a seconda del valore esadecimale indicato corrisponde una diversa risorsa, ad esempio: 00 – normale workstation 03 – servizio di messaggistica (WinPopup) 1B – Domain Master Browser 20 – Fileserver
Ottenere un indirizzo IP RARP (Reverse Address Resolution Protocol) In passato era usato dalle postazioni diskless e dai client mobili per ottenere un indirizzo IP sulla base del proprio indirizzo MAC Sfrutta il broadcast di livello 2 Le frame con indirizzo MAC broadcast non sono instradate dai router Necessita di un server RARP in ogni segmento di rete Distribuisce solo gli indirizzi IP e non le netmask BOOTP (BOOTstrap Protocol) È il predecessore di DHCP Distribuisce sia indirizzi IP che netmask Sfrutta il broadcast di livello 3 I pacchetti con indirizzo IP broadcast ( ) non sono instradati dai router Prevede un mapping statico MAC address IP address Usa UDP come protocollo di livello Trasporto (porti 67 e 68) DHCP (Dinamic Host Configuration Protocol) È una rivisitazione del BOOTP che prevede l’assegnazione dinamica di indirizzi IP e netmask (e anche di altri parametri...) Gli indirizzi hanno un tempo di validità limitato, dopodichè, se non esplicitamente rinnovati dal client, ritornano disponibili per una nuova assegnazione RARPBOOTPDHCP
DHCP (1/6)
DHCP (2/6) Options header field Server Identifier Lease Time Subnet Mask Default Router Domain Name Server Domain Name … Requested IP Address …
DHCP (3/6)
DHCP (4/6)
DHCP (5/6)
DHCP (6/6) Relay Agent (Agente di Collegamento) È un host configurato con l’indirizzo IP del server DHCP In ogni segmento di rete esiste almeno un relay agent Quando un client si allaccia ad un segmento di rete in cui non è presente un server DHCP, il relay agent: Riceve il messaggio DHCPDISCOVER trasmesso in broadcast sul segmento Invia in modalità unicast un messaggio DHCPDISCOVER al server DHCP Inoltra (in broadcast) la risposta al client che aveva fatto la richiesta
Diagnosticare errori del DHCP Il più frequente errore dovuto all’utilizzo del DHCP è collegato in qualche modo agli indirizzi IP statici Il pool di indirizzi a disposizione del server DHCP per l’assegnazione dinamica, non deve comprendere indirizzi assegnati staticamente, per evitare conflitti di indirizzi IP Se il server DHCP prevedesse anche la possibilità di un mapping statico MAC address IP address (e netmask), lo spostamento di un host in un altro segmento di rete non comporterebbe nessuna variazione nell’indirizzo IP e nella netmask assegnati, ma tali parametri non sarebbero validi nel nuovo contesto!
Ricapitolando… DHCP Assegna dinamicamente indirizzi IP e netmask ai client che si allacciano alla rete Gli indirizzi assegnati hanno una “scadenza”, che può essere rinnovata dai client Opzionalmente: Si possono assegnare altri parametri come l’indirizzo del router di default, del server DNS, etc. Nella richiesta, un client può esprimere una preferenza sull’indirizzo IP da assegnargli In ogni segmento di rete deve essere presente almeno un server DHCP o un relay agent Non deve assegnare indirizzi statici