Internet – le origini Il modello di Baran L`ARPANET

Transcript

Internet – le origini Il modello di Baran L`ARPANET
Internet – le origini
Nel 1962, quando il comunismo montava in forza, l'US Air Force chiede ad un gruppo di ricercatori
di creare una rete di comunicazione militare capace di resistere ad un attacco nucleare. Il concetto di
questa rete si basava su un sistema decentralizzato, che permetteva alla rete di funzionare
nonostante la distruzione di uno o più terminali.
Il modello di Baran
Paul Baran è considerato uno degli attori principali nella creazione di Internet. Nel 1964, ebbe l'idea
di creare una rete sotto forma di una grande tela. Aveva capito che un sistema centralizzato era
vulnerabile dato che la distruzione del suo nucleo provocava l'annientamento delle comunicazioni.
Mise quindi a punto una rete ibrida con architettura a stella e a maglie nella quale i dati si
spostavano in modo dinamico, « cercando » il percorso più libero, e « aspettando » se tutte le strade
erano occupate. Questa tecnologia fu chiamata « packet switching ».
L'ARPANET
Nell'agosto del 1969, indipendentemente da ogni obiettivo militare, la rete sperimentale ARPANET
fu creata dall'ARPA (Advanced Research Projects Agency dipendente dal DOD, Department of
Defense) per collegare quattro istituti universitari :




Lo Stanford Institute ;
L'università della California a Los Angeles ;
L'università della Californie a Santa Barbara ;
L'università dello Utah.
La rete ARPANET è oggi considerata come il precursore di Internet. Già all'epoca prevedeva alcune
caratteristiche fondamentali della rete attuale :
 Uno o più nodi di rete che potevano essere distrutti senza perturbare il suo funzionamento;
 La comunicazione tra terminali senza un terminale centralizzato intermedio;
 I protocolli utilizzati erano di base.
Il concetto di rete nacque dall'idea di collegare fra loro dei computer affinché potessero costituire
una infrastruttura più affidabile. Ovviamente per raggiungere questo obiettivo è stato necessario
mettere a punto dei collegamenti fisici fra i computer affinché essi potessero scambiarsi
informazioni, ma anche, al fine di garantire la correttezza dello scambio di informazioni, definire
linguaggi e regole di comunicazione tra i diversi computer. Linguaggi e regole di comunicazione
costituiscono un protocollo di comunicazione.
Su internet, sono usati numerosi protocolli che fanno parte di una serie di protocolli detta TCP/IP.
TCP/IP è basato sull'identificazione di ogni dispositivo di rete di ogni computer attraverso un
indirizzo detto indirizzo IP che permette di inviare i dati all'indirizzo giusto. Poi a questi indirizzi
vengono associati dei nomi di dominio per permettere di ricordarsene più facilmente.
Nel tempo si svilupparono reti di tipo eterogeneo; sorse quindi l'esigenza di collegare queste reti tra
loro (delle università ad esempio, o l'esercito). I protocolli si sono quindi evoluti per permettere la
comunicazione di tutte queste reti per formare la rete di reti, come una gigantesca tela di ragno (in
inglese « web ») fino ad una rete più vasta, che potesse contenere tutte le reti, per arrivare a quello
che chiamiamo Internet. Su internet esistono diversi protocolli che permettono diverse modalità di
comunicazione:
1
 IRC: Internet Relay Chat
 HTTP: Hyper Text Transfer Protocol
 FTP: File Transport Protocol
e molte altre cose
A ciascuno di essi viene assegnato un numero (la porta) che è trasmessa al momento della
comunicazione (la trasmissione è effettuata con piccoli pacchetti di informazioni). Quindi, è
possibile conoscere a quale programma corrisponde ogni piccolo pacchetto :
 i pacchetti HTTP arrivano sulla porta 80 e sono trasmessi al browser internet che ha fatto la
stata richiesta
 i pacchetti IRC arrivano sulla porta 6667 (o un'altra posta generalmente verso la 7000) e
sono trasmessi a un client IRC come mIRC (o altro)
Connettersi a Internet
La scheda di rete è l'elemento del computer che permette di connettersi ad una rete attraverso delle
linee previste per far transitare delle informazioni digitali. Il modem permette di connettersi ad una
rete attraverso delle linee telefoniche.
Alla scheda di rete è associato almeno un indirizzo IP, che permette di individuare il computer sulla
rete.
La connessione attraverso un modem è totalmente differente. In effetti, un modem permette di
stabilire una comunicazione tra due computer attraverso una linea telefonica. Si può tuttavia avere
accesso ad una rete (quindi per estensione a Internet) contattando un computer collegato ("da un
lato") a una o più linee telefoniche (per ricevere la chiamata) e ("dall'altro lato") ad una rete
attraverso una scheda di rete.
Questo computer appartiene generalmente al fornitore di accesso internet. Quando vi connettete con
la sua intermediazione, vi presta un indirizzo IP che il computer manterrà durante la connessione.
Ad ogni connessione esso attribuisce arbitrariamente uno degli indirizzi IP liberi che possiede. Se è
capace di fornirvi lo stesso indirizzo IP ad ogni connessione, si parla allora di « indirizzo IP fisso ».
Che cos'è un protocollo?
Un protocollo è un metodo standard che permette la comunicazione tra i processi (eventualmente
su terminali diversi), cioè un insieme di regole e procedure da rispettare per emettere e ricevere dei
dati su una rete. Ne esistono differenti secondo quello che ci si aspetta dalla comunicazione. Alcuni
protocolli sono ad esempio specializzati nello scambio di file (FTP), altri possono servire per gestire
semplicemente lo stato della trasmissione e degli errori (è il caso del protocollo ICMP),...
Su internet, i protocolli usati fanno parte di una serie di protocolli (stack), cioè un insieme di
protocolli collegati fra loro. Questa serie di protocollo si chiama TCP/IP.
Essa contiene, fra l'altro, i protocolli seguenti :







HTTP
FTP
ARP
ICMP
IP
TCP
UDP
2




SMTP
Telnet
SNMP
NNTP
Protocolli orientati e non orientati connessione
I protocolli vengono generalmente classificati in due categoria secondo il livello di controllo dei
dati che si desidera avere :
 I protocolli orientati alla connessione: si tratta di protocolli che operano un controllo di
trasmissione dei dati durante una comunicazione stabilita fra due terminali. In uno schema
simile, il terminale ricevitore invia delle notifiche di ricevimento durante la comunicazione,
così il terminale emettitore ha la garanzia della validità dei dati che invia. I dati sono inviati
sotto forma di flusso di byte. TCP è un protocollo orientato connessione.
 I protocolli non orientati alla connessione: si tratta di una modalità di connessione in cui il
terminale emettitore invia dei dati al terminale ricevitore e quest'ultimo riceve i dati senza
inviare degli avvisi di ricezione. I dati sono così inviati sotto forma di blocchi (datagrammi).
UDP è un protocollo non orientato connessione
Protocollo e implementazione
Un protocollo definisce unicamente il modo in cui i terminali devono comunicare, cioè la forma e la
sequenza dei dati da scambiare. Un protocollo non definisce invece il modo di programmare un
software in maniera che sia compatibile con il protocollo. Viene così detta implementazione la
traduzione di un protocollo in linguaggio informatico.
3
Che cos'è un indirizzo IP
Su internet, i computer comunicano fra loro grazie al protocollo IP (Internet Protocol), che usa
degli indirizzi numerici, detti Indirizzi IP, composti da 4 numeri interi (4 byte) compresi tra 0 e
255 e siglati sotto la forma di xxx.xxx.xxx.xxx. Ad esempio 194.153.205.26 è un indirizzo IP .
Questi indirizzi servono ai computer di rete per comunicare fra loro, quindi ogni computer di rete ha
un indirizzo IP unico sulla rete stessa.
E' l'ICANN (Internet Corporation for Assigned Names and Numbers, che ha sostituito l'IANA,
Internet Assigned Numbers Agency, dal 1998) ad essere incaricata di distribuire gli indirizzi IP
pubblici, cioè gli indirizzi IP dei computer direttamente connessi alla rete pubblica internet.
Un indirizzo IP è un indirizzo a 32 bit, solitamente scritto sotto forma di 4 numeri interi separati da
punti. Nell'indirizzo IP si distinguono effettivamente due parti :
 la parte dei numeri posti a sinistra designa la rete ed è chiamata ID di rete (in inglese
netID),
 I numeri di destra designano i computer della rete stessa e sono detti host-ID.
Se la rete fosse 194.28.12.0 essa potrebbe contenere gli indirizzi IP da 194.28.12.1 a 194.28.12.254
Immaginiamo una rete con indirizzo 58.0.0.0. I computer di questa rete potranno avere gli indirizzi
IP che vanno da 58.0.0.1 a 58.255.255.254. Si tratta quindi di attribuire i numeri in modo che vi sia
un'organizzazione nella gerarchia dei computer e dei server.
Quindi, più il numero di bit riservato alla rete è piccolo, più computer questa potrà contenere.
Indirizzi riservati
Quando si annulla la parte host-id, cioè quando si sostituiscono con degli zero i bit riservati ai
terminali di rete (ad esempio194.28.12.0), si ottiene quello che viene chiamato indirizzo di rete.
Questo indirizzo non può essere attribuito a nessun computer della rete.
Quando la parte netid è annullata, cioè quando i bit riservati alla rete sono sostituiti con degli zero,
si ottiene l'indirizzo del terminale. Questo indirizzo rappresenta il terminale specificato dall' hostid che si trova sulla rete corrente.
Quando tutti i bit della parte host-id sono a 1, l'indirizzo ottenuto è detto l'indirizzo di diffusione (
in inglese broadcast). Si tratta di un indirizzo specifico, che permette di inviare un messaggio a
tutti i terminali posti sulla rete specificata con il netID.
Al contrario, quando tutti i bit della parte netid sono a 1, l'indirizzo ottenuto costituisce l'indirizzo
di diffusione limitata (multicast).
Infine, l'indirizzo127.0.0.1 è detto indirizzo di loopback, dato che designa il terminale locale (in
inglese localhost).
4
Le classi di reti
Gli indirizzi IP sono ripartiti in classi, secondo il numero di byte che rappresentano la rete.
Classe A - In un indirizzo IP di classe A, il primo byte rappresenta la rete.
7
Il bit di peso forte (il primo bit, quello di sinistra) è a zero, il che significa che vi sono 2 (00000000
a 01111111) possibilità di reti, ossia 128 possibilità.Tuttavia, la rete 0 (bit che valgono 00000000)
non esiste e il numero 127 è riservato per designare il vostro terminale.
Le reti disponibili in classe A sono quindi le reti che vanno da 1.0.0.0 a 126.0.0.0 (gli ultimi byte
sono degli zero che indicano che si tratta effettivamente di reti e non di computer!)
I tre byte di destra rappresentano i computer di rete, la rete può quindi contenere un numero di
24
computer uguale a 2 -2 = 16777214 computer.
Un indirizzo IP di classe A, in codice binario, assomiglia a questo :
0 xxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx
Rete
Computer
Classe B - In un indirizzo IP di classe B, i primi due byte rappresentano la rete.
14
I primi due bit sono 1 e 0, il che significa che vi sono 2 (10 000000 00000000 à 10 111111
11111111) possibilità di reti, ossia 16384 reti possibili.
Le reti disponibili in classe B sono quindi le reti che vanno da 128.0.0.0 a 191.255.0.0
I due byte di destra rappresentano i computer della rete. La rete può quindi contenere un numero di
16
1
computer pari a 2 -2 = 65534 computer.
Un indirizzo IP di classe B, in codice binario, assomiglia a questo :
10 xxxxxx xxxxxxxx xxxxxxxx xxxxxxxx
Rete
Computer
Classe C - In un indirizzo IP di classe C, i primi tre byte rappresentano la rete.
21
I primi tre bit sono 1, 1 e 0, il che significa che vi sono 2 possibilità di reti, cioè 2097152. Le reti
disponibili in classe C sono quindi le reti che vanno da 192.0.0.0 a 223.255.255.0
Il byte di destra rappresenta i computer di rete, la rete può quindi contenere un numero di computer
8
1
pari a 2 -2 = 254 computer.
Un indirizzo IP di classe C, in codice binario, assomiglia a questo :
110 xxxxx xxxxxxxx xxxxxxxx xxxxxxxx
Rete
Computer
Riassumendo:
Classe
A
B
C
Numero di reti possibili
126
16384
2097152
Numero massimo di computer su ciascuna
16777214
65534
254
5
Indirizzi IP privati
Capita spesso che in un'azienda o in un ente vi sia un solo computer connesso a Internet, che funge
da intermediario per gli altri computer di rete per l'accesso a internet (si parla generalmente di proxy
o di passerella).
In questa configurazione, solo il computer connesso a internet ha bisogno di riservare un indirizzo
IP presso l'ICANN. Tuttavia, gli altri computer hanno comunque bisogno di un indirizzo IP per
poter comunicare .
Così l'ICANN ha riservato alcuni indirizzi in ciascuna delle classi per permettere di attribuire un
indirizzo IP ai computer di una rete locale collegata a Internet senza rischiare di creare dei conflitti
di indirizzi IP sul web. Si tratta dei seguenti indirizzi :
 Indirizzi privati di classe A: 10.0.0.1 a 10.255.255.254, che permettono la creazione di rete
private estese che comprendono migliaia di computer.
 Indirizzi IP privati di classe B: 172.16.0.1 a 172.31.255.254, che permettono di creare delle
reti private di medie dimensioni.
 Indirizzi IP privati di classe C: 192.168.0.1 a 192.168.0.254, per la realizzazione di piccole
rete private.
Maschere di rete
Si crea una maschera settando a 1 ogni bit che si desidera conservare e a 0 ogni bit che si vuole
annullare. Una volta creata la maschera, basta fra un ET (and) logico tra il valore che si vuole
mascherare e la maschera per mantenere intatta la parte desiderata e annullare il resto.
Una maschera di rete (in inglese netmask) è formata da 32 bit (4 byte, come un indirizzo IP).
La maschera di rete per una rete di classe A è 255.0.0.0, per una rete di classe B è 255.255.0.0 e per
una rete di classe C è 255.255.255.0
Ogni indirizzo di rete è determinato da un certo numero di byte dell'indirizzo IP (1 byte per gli
indirizzi di classe A, 2 per quelli di classe B, e 3 byte per la classe C).
La rete associata all'indirizzo34.56.123.12 è ad esempio 34.0.0.0, dato che si tratta di un indirizzo IP
di classe A.
Per ricavare l'indirizzo di rete associato all'indirizzo IP 34.56.123.12, basta applicare una maschera
il cui primo byte prevede solo degli 1 (cioè 255 in notazione decimale), poi degli 0 sui byte
seguenti.
La maschera associata all'indirizzo IP 34.208.123.12 è 255.0.0.0 (in binario
11111111.00000000.00000000.00000000)
Il valore binario di 34.208.123.12 è 00100010.11010000.01111011.00001100
Un ET logico tra l'indirizzo IP e la maschera da quindi il seguente risultato :
00100010.11010000.01111011.00001100
ET
11111111.00000000.00000000.00000000
=
00100010.00000000.00000000.00000000
Cioè 34.0.0.0. Si tratta effettivamente della rete associata all'indirizzo34.208.123.12
6
Generalizzando, è possibile avere delle maschere corrispondenti ad ogni classe di indirizzo :
 Per un indirizzo di Classe A, solo il primo byte deve essere conservato. La maschera ha la
forma seguente11111111.00000000.00000000.00000000, cioè 255.0.0.0 in notazione
decimale ;
 Per un indirizzo di Classe B, i primi due byte devono essere conservati, da cui risulta la
maschera seguente11111111.11111111.00000000.00000000, corrispondente a 255.255.0.0 in
notazione decimale ;
 Per un indirizzo di Classe C, con lo stesso ragionamento, la maschera avrà la forma
seguente11111111.11111111.11111111.00000000, cioè 255.255.255.0 in notazione decimale
Creazione di sottoreti e maschere di sottorete (subnetting)
VLSM (Variable Length Subnet Masking)
La divisione delle reti in classi è stata superata attraverso l'introduzione del concetto di subnetting.
Riprendiamo l'esempio della rete 34.0.0.0 e supponiamo che si desideri dividere questa rete in
quattro sottoreti.
Per far ciò è necessario sacrificare i primi due bit del secondo byte ( due bit permettono di indicare
2
2 combinazioni), togliendoli quindi dai bit dell'hostId dell'indirizzo.
In questo modo l'indirizzo sarebbe formato da 8 bit per la parte netId, 2 bit per la parte
subnetID e 22 bit per la parte hostID.
La maschera da applicare sarà allora : 11111111.11000000.00000000.00000000 (255.192.0.0)
Gli indirizzi di sottorete possibili per la rete 34.0.0.0 diventano quindi:




34.0.0.0 quando i primi due bit del secondo byte sono 00
34.64.0.0 quando due primi bit del secondo byte sono 01
34.128.0.0 quando i due primi bit del secondo byte sono 10
34.192.0.0 quando i due primi bit del secondo byte sono 11
E' possibile specificare implicitamente come deve essere mascherato un indirizzo IP specificando il
numero complessivo di bit che formano la sua parte netID più la sua parte subnetID.
Ad esempio:
l'indirizzo IP 34.1.6.1/8 è della rete di classe A 34.0.0.0
l'indirizzo IP 34.1.6.1/10 è della sottorete 34.0.0.0
l'indirizzo IP 34.50.6.1/10 è della sottorete 34.64.0.0
l'indirizzo IP 34.150.6.1/10 è della sottorete 34.128.0.0
l'indirizzo IP 34.250.6.1/10 è della sottorete 34.192.0.0
Questo mascheramento divide quindi una rete di classe A (che può ammettere 16 777 214
computer) in 4 sottoreti ciascuna delle quali può ammettere 2
22
computer, cioè 4 194 304 computer.
Può essere interessante notare che nei due casi, il numero totale di computer è lo stesso, ossia 16
777 214 computer (4 x 419304 - 2 = 16777214).
Il numero di sottoreti della rete dipende dal numero di bit sottratti all'hostID (2 bit in questo
esempio) ed utilizzati per effettuare il subnetting.
7
La tabella riportata di seguito riassume le possibilità di subnetting di una generica rete.
Numero di bit usati
Numero di sub-reti
1
2
2
4
3
8
4
16
5
32
6
64
7
128
8 (impossibile per une classe C) 256
Nomi di host
Ogni computer direttamente connesso a Internet possiede almeno un proprio indirizzo IP . Tuttavia
è difficile lavorare con degli indirizzi numerici tipo 194.153.205.26.
Alle origini del TCP/IP, dato che le reti erano poco estese e il numero di computer connessi ad una
stessa rete era basso, gli amministratori di rete crearono dei fili detti tabelle di conversione
manuale. Queste tabelle di conversione manuale erano dei file sequenziali, generalmente chiamati
host o hosts.txt, che associavano, in ogni linea, un indirizzo IP ad un nome, detto nome dell'host.
Introduzione al Domain Name System
Il precedente sistema delle tabelle di conversione necessitava tuttavia dell'aggiornamento manuale
delle tabelle di tutti i computer della rete in caso di aggiunta o modifica di un nome di host. Così,
con l'esplosione della dimensione delle reti, e della loro interconnessione, si è dovuto realizzare un
sistema di gestione dei nomi gerarchizzato e più facilmente amministrabile. Il sistema detto
Domain Name System (DNS), tradotto Sistema di nome di dominio, è stato messo a punto nel
novembre del 1983 da Paul Mockapetris (RFC 882 et RFC 883), poi rivisto nel 1987 negli RFCs
1034 e 1035. Il DNS è stato oggetto di più RFC.
Il DNS e’ un sistema di database distribuito mirato alla gestione delle informazioni dell’insieme di
reti Internet. I dati gestiti dal DNS sono essenzialmente dei nomi a dominio e gli indirizzi IP delle
macchine connesse alla rete con la loro reciproca corrispondenza. Per ogni nome a dominio ci deve
essere una corrispondenza nei due sensi: dal nome all'indirizzo (la cosidetta "risoluzione diretta") e
da ogni indirizzo al nome di dominio (“risoluzione inversa”)
Questo sistema propone :
 uno spazio di nomi gerarchico che permette di garantire l'unicità di un nome in una struttura
ad albero, allo stesso modo dei sistemi di file di Unix.
 un sistema di server distribuiti permette di rendere disponibile lo spazio dei nomi.
 un sistema di client permette di « risolvere » i nomi dei domini, cioè di interrogare i server
per conoscere l'indirizzo IP corrispondente ad un nome.
8
Lo spazio dei nomi
La strutturazione del sistema DNS si basa su una struttura ad albero in cui sono definiti dei domini
di livello superiore (detti TLD, per Top Level Domains), collegati ad un nodo radice rappresentato
da un punto.
Viene detto « nome del dominio » ogni nodo dell'albero. Ogni nodo possiede un'etichetta (in
inglese « label ») con una lunghezza massima di 63 caratteri.
L'insieme dei nomi di dominio costituisce quindi un albero rovesciato dove ogni nodo è separato dal
seguente da un punto (« . »).
L'estremità di un ramo (foglia) è detta host, e corrisponde ad un terminale o un'entità di rete. Il
nome dell'host deve essere unico nel dominio considerato o, se esiste, nel sotto-dominio. Ad
esempio il server web di un dominio ha quindi generalmente il nome www .
E' detto indirizzo FQDN (Fully Qualified Domain Name, cioè Nome di Dominio Totalmente
Qualificato) un nome assoluto generato dalla concatenazione delle etichette dei nodi che si
incontrano a partire da una foglia e risalendo verso la radice dell'albero del dominio, separando ogni
etichetta con un punto e aggiungendo un punto finale.
La profondità massima dell'albero è di 127 livelli e la lunghezza massima di un nome FQDN è di
255 caratteri. L'indirizzo FQDN permette di individuare inequivocabilmente un host sulla rete.
Quindi www.fauser.edu. rappresenta un indirizzo FQDN.
La parola « dominio » corrisponde formalmente al suffisso di un nome di dominio, cioè l'insieme
delle etichette dei nodi di un albero, ad eccezione dell'host. Ad esempio www.fauser.edu è un nome
di dominio il cui dominio (suffisso) è fauser.edu.
I server di nomi
Per ogni dominio deve esistere un server di nomi di domini, detto « server di nomi primario »
(primary domain name server), nonché un server di nomi secondario (secondary domaine name
server), che permette di sostituirsi al server di nomi primario in caso di indisponibilità.
9
I server di nome di dominio permettono di stabilire la corrispondenza tra tutti i nomi del dominio e
il loro indirizzo IP e sono processi ospitati in un qualsiasi host di Internet (al quale può
corrispondere un nome di dominio diverso). Quando si registra un dominio è necessario indicare
quali sono il primary ed il secondary DNS e questi devono contenere le opportune configurazioni
del dominio che si sta registrando. Un server DNS può essere tale per molti domini.
Ogni server di nomi è dichiarato in un server di nomi di dominio di livello immediatamente
superiore, cosa che permette implicitamente una delega di autorità sui domini. Il sistema di nomi è
un'architettura distribuita, dove ogni entità è responsabile della gestione del proprio nome di
dominio. Non esiste quindi un organismo che abbia il compito di gestire l'insieme dei nomi di
domini.
I server corrispondenti ai domini di più alto livello (TLD) sono detti « server di nomi radice ». Ne
esistono tredici, ripartiti in tutto il mondo, sotto i nomi « a.root-servers.net » a « m.rootservers.net ».
Un server di nomi definisce delle zone, ogni zona è relativa ad un dominio sul quale il server ha
l’autorità. Il sistema di nomi di dominio è trasparente per l'utente.
Risoluzione dei nomi di dominio
Il meccanismo che consiste nel trovare l'indirizzo IP corrispondente al nome di un host è detto
« risoluzione di nome di dominio ». L'applicazione che permette di realizzare questa operazione
(generalmente integrata al sistema operativo) è detta « resolver » (è un client).
Ogni computer connesso ad Internet deve conoscere, nella sua configurazione di rete, almeno due
DNS che vengono indicati dal provider. Ogni volta che esso deve accedere, per mezzo di
un’applicazione, ad un servizio Internet attraverso un nome di dominio contatta il primo server
DNS della sua configurazione che si occuperà di ottenere l’indirizzo IP corrispondente al nome di
dominio richiesto. Se questo ha la registrazione nella sua cache, la invia all'applicazione, in caso
contrario scala gerarchicamente la richiesta.
Come funzionano i DNS?
Root DNS.
A monte di tutta la rete ci sono i Root DNS che rappresentano la base di internet. Questi detengono
le informazioni relative ai DNS di tutti i domini di primo livello come .com, .net, .org, .it, .fr, .info,
ecc. e i riferimenti delle relative Authority che li gestiscono come Internic per .com e .net, ISOC per
i .org, Italian Registration Authority per .it, e via dicendo.
DNS delle Registration Authority o DNS di primo livello
Questi DNS sono sotto la gestione delle varie Registration Authority, possono essere dislocati in
diverse parti del mondo e detengono le informazioni relative i dati dei DNS autoritativi per ogni
specifico dominio di secondo livello come ad esempio www.prozone.it.
DNS autoritativi
Questi sono i DNS che contengono i dati specifici del nome a dominio, rispondono alle richieste per
quel dominio e ne forniscono i record relativi (web, mail, ftp, ecc.). Questi DNS sono gestiti da chi
ospita il nome a dominio.
DNS del provider di connessione
Questi sono i DNS che ci vengono assegnati dal nostro provider di connessione internet e che
utilizziamo per navigare. Non sono autoritativi in quanto non contengono le informazioni ‘ufficiali’
del nome a dominio che cerchiamo e funzionano in questo modo:
10

Interrogano i Root DNS per sapere qual e' l'Authority che gestisce quel dominio di primo
livello.

Ottenuta questa informazione, interrogano i DNS della Registration Authority competente
per sapere quali sono i DNS autoritativi per quel determinato dominio.

A questo punto interrogano i DNS autoritativi che forniscono, per il nome a dominio in
questione, l’indirizzo IP di destinazione per il tipo di servizio richiesto (http, ftp, pop3, mail,
ecc.).
Domini di alto livello
Esistono due categorie di TLD (Top Level Domain, ossia domini di più alto livello) :
 I domini detti « generici », chiamati gTLD (generic TLD). I gTLD sono dei nomi di domini
generici di livello superiore che propongono una classificazione secondo il settore di attività.
Così ogni gTLD ha le proprie regole di accesso :
 gTLD storici :
 .arpa corrisponde ai terminali derivanti dalla rete originale;
 .com corrispondevano inizialmente alle aziende a vocazione commerciale.
Ormai questo TLD è diventato il « TLD di default » e l'acquisizione del
dominio con questa estensione è possibile anche per i privati.
 .edu corrisponde agli enti educativi;
 .gov corrisponde agli enti governativi;
 .int corrisponde alle organizzazioni internazionali;
 .mil corrisponde agli organismi militari;
 .net corrispondeva inizialmente agli enti con tratti di rete. Questo TLD è
diventato da qualche anno un TLD corrente. L'acquisizione di domini con
questa estensione è possibile anche per i privati.
 .org corrisponde solitamente alle aziende senza scopo di lucro.
 nuovi gTLD introdotti nel novembre 2000 dall'ICANN :
 .aero corrisponde all'industria aeronautica;
 .biz( business) corrisponde alle aziende commerciali;
 .museum corrisponde ai musei;
 .name corrisponde a nomi di persone o a nomi di personaggi immaginari;
 .info corrisponde agli enti con tratti di informazione;
 .coop corrispondente alle cooperative;
 .pro corrispondente alle professioni liberali.
 gTLD speciali :
 .arpa corrisponde alle infrastrutture di gestione di rete. L'gTLD arpa serve
quindi alla risoluzione inversa dei terminali di rete, permettendo di trovare il
nome corrispondente ad un indirizzo IP.
 I domini detti «nazionali », chiamati ccTLD(country code TLD). I ccTLD corrispondono ai
differenti paesi e i loro nomi corrispondono alle abbreviazioni dei nomi dei paesi definite
dalla norma ISO 3166. La tabella sottostante riassume l'elenco dei ccTLD.
11
BIND
Un DNS è un database distribuito contente delle registrazioni, dette RR (Resource Records), che
riguardano i nomi dei domini. Il funzionamento dei server di nomi è totalmente trasparente per gli
utenti.
Il server più conosciuto si chiama BIND (Berkeley Internet Name Domain). Si tratta di un software
libero disponibili sui sistemi UNIX, sviluppato inizialmente dall'università di Berkeley in California
e ormai mantenuto dall'ISC (Internet Systems Consortium).
Per un server DNS primario il principale file di configurazione è /etc/named.conf.
Qui è riportata una sintesi del suo possibile contenuto.
options {
directory "/var/named";
//altre linee
};
// definisce i root name server per il dominio “.”
zone "." IN {
type hint;
file "named.ca";
};
zone "localdomain" IN {
type master;
file "localdomain.zone";
allow-update { none; };
};
zone "localhost" IN {
type master;
file "localhost.zone";
allow-update { none; };
};
zone "0.0.127.in-addr.arpa" IN {
type master;
file "named.local";
allow-update { none; };
};
zone "esempio.com" {
type master;
file "domini/esempio.com.db";
allow-update { 192.168.0.10; };
12
};
zone "0.168.192.in-addr.arpa" {
type master;
file "domini/192.168.0.db";
allow-update { 192.168.0.10; };
};
Per un server DNS secondario il principale file di configurazione è sempre /etc/named.conf.
Ciò che cambia rispetto al file del server DNS primario è la parte di definizione delle zone che
diventa:
zone "esempio.com" {
type slave;
file "slaves/esempio.com.db";
masters { 192.168.0.1; };
};
zone "0.168.192.in-addr.arpa" {
type slave;
file "slaves/192.168.0.db";
masters { 192.168.0.1; };
};
I file di zona del DNS secondario sono delle copie, essi infatti vengono ricevuti dal server DNS
primario.
13
File di zona
I file di zona sono file di testo in cui si specificano le informazioni necessarie per la risoluzione dei
nomi di dominio in indirizzi numerici e viceversa. Si crea un file di zona per ogni dominio e per
ogni rete gestiti dal server DNS. Negli esempi si considera il dominio esempio.com e la rete
192.168.0.0.
La sintassi dei file delle zone vuole che i commenti inizino con un ";".
File di zona per la risoluzione diretta del dominio esempio.com
Vediamo la struttura di un file di zona per la risoluzione dei nomi di dominio del dominio
esempio.com. Questo file contiene tutti i dati e i record necessari per la configurazione del dominio,
del server di posta, degli host e degli alias.
Il file si chiama esempio.com.db
$ORIGIN .
$TTL 172800
; 2 days
esempio.com
IN SOA
ns1.esempio.com.
(
2003021512
; serial
28800
; refresh (8 hours)
7200
; retry (2 hours)
604800
; expire (1 week)
86400
; minimum (1 day)
)
NS
NS
root.ns1.esempio.com.
ns1.esempio.com.
ns2.esempio.com.
; mail server per il dominio
esempio.com.
MX
10
mail.esempio.com.
esempio.com.
MX
20
mail.nostroisp.com.
$ORIGIN
$TTL
esempio.com.
5d
ns1
ns2
mac
linux
windows
webftp
mail
A
A
A
A
A
192.168.0.1
192.168.0.10
192.168.0.2
A
192.168.0.3
192.168.0.4
A
192.168.0.5
192.168.0.6
;Aliases
www.esempio.com. CNAME
webftp.esempio.com.
ftp.esempio.com.
CNAME
webftp.esempio.com.
win.esempio.com.
CNAME
windows.esempio.com.
Con la direttiva $ORIGIN . si indica un nome di dominio che viene automaticamente
appeso a tutti i nomi del file di zona che non terminano con un punto finale. In questo esempio si
14
può vedere che sono specificate due direttive $ORIGIN. La prima va a completare il nome
"esempio.com" mentre la seconda specifica il completamento per i nomi degli host. Alcuni la
considerano obsoleta ma vale la pena conoscerla e capirne il significato.
La direttiva $TTL 172800 indica il default time-to-live. Si applica globalmente a tutti i
record che precedono qualunque altra direttiva di TTL, che può essere indicata anche per singolo
host. Il nameserver specifica questo valore in tutte le risposte per la zona o il dato record indicando
per quanto tempo gli altri nameservers possono tenerlo in cache. Se si ha un file di zona che subisce
poche modifiche è consigliabile specificare un valore alto anche se è sconsigliabile superare la
settimana.
La prima linea“esempio.com
root.ns1.esempio.com.”
IN SOA
ns1.esempio.com.
del record IN SOA è la parte principale del file di zona e serve a indicare lo Start of
Authority per la zona esempio.com. In questo caso ns1.esempio.com è il nome del server
autoritativo per la zona. Se ne può specificare uno solo e non di più. A seguire abbiamo un record
che può creare confusione. Indica l'indirizzo del responsabile della gestione per la zona. I
nameservers non utilizzaranno mai questa risorsa che è ad uso esclusivo di chi vuole comunicare
con il gestore del dominio. Non si specifica l'indirizzo comune "root@ns1..." ma si deve sostituire
l'@ con il punto, questo perchè la sintassi dei file di zona vuole che il simbolo @ si usi come il flag
$ORIGIN. Può essere specificato un host differente da quello autoritativo ad esempio
root.mail.esempio.com.
I campi chiusi tra le parentesi sono significativi principalmente per gli slave server.
2003021512 ; serial
Indicazione del numero di serie. Importante aggiornarlo quando si
eseguono modifiche al file per far sapere agli slave che si sono
effettuati dei cambiamenti.
28800
; refresh (8 hours)
Indica agli slave della zona ogni quanto devono verificare se i file sul master sono cambiati. Va
prestata attenzione al valore che si dà soprattutto nel caso sia basso. Si sappia che uno slave effettua
una SOA query per ogni zona ad intervalli specificati nel refresh e si tratta di una operazione molto
intensiva in termini di utilizzo di CPU
7200 ; retry (2 hours)
Questo campo indica allo slave ogni quanto tempo riprovare a connettersi al master in caso un
refresh non sia andato a buon fine (potrebbe essere momentaneamente down)
604800 ; expire (1 week)
Con expire indico allo slave dopo quanto tempo deve considerare
una data zona non più valida.
86400
; minimum (1 day)
Questo campo è un TTL. Serve ad indicare per quanto tempo una risposta negativa ad una query va
tenuta nella cache dai resolver.
Con i record NS (nameserver) si indicano i nameservers
autoritativi per una zona.
Con i record MX si specificano quali host si occupano dell'instradamento della posta per il dominio
esempio.com. Il valore numerico che segue il record MX indica la priorità. In questo caso se si
invia una mail ad un utente che si trova nel dominio esempio.com il client mail cercherà di inviare
al server mail.esempio.com per primo. In caso questo fosse troppo occupato o comunque non
15
disponibile il mailer si appoggerebbe a mail.nostroisp.com un server fornito dall'Internet Service
Provider di esempio.com. Si possono specificare più server con lo stesso valore di priorità ed è
consigliabile utilizzare valore numerici che abbiano un certo margine tra loro, questo solo per fini di
comodità nell'amministrazione. Ad esempio se in questa zona si decidesse di implementare un
nuovo mail server che poniamo sia una macchina molto potente e posta su un link molto veloce
basterebbe dargli un valore di 5 o di 15 a seconda delle preferenze ma se si fossero usati valori tipo
1,2,3.. ci si dovrebbe ridefinire il nostro file di zona. Se si vuole definire un server con priorità
massima si può utilizzare il valore 0.
Con i record A (A sta per Address) si indicano i record per la risoluzione da nome ad indirizzo
in modo da associare ai nomi delle macchine i loro IP..
Con i record CNAME si definiscono gli alias per alcuni host del dominio. L'esempio dimostra che è
possibile assegnare più nomi ad un host. In questo caso il server web e ftp sono la stessa macchina
raggiungibile sia se la si cerca come "www.esempio.com" che come "ftp.esempio.com".
I valori di TTL, refresh, expire.. possono essere impostati usando come unità il secondo quindi
una settimana diventa 608400 secondi. Dalla versione 8 di BIND in poi si possono specificare
anche con degli "argomenti" quindi 3600 secondi diventano 1h e così via si possono specificare
valori di 2h35m, due ore e trentacinque minuti, 1d, un giorno, 2w, due settimane.
File di zona per la risoluzione inversa della rete 192.168.0.0
Il file si chiama 192.168.0.db
$ORIGIN .
$TTL 2d
0.168.192.in-addr.arpa
IN SOA ns1.esempio.com.
root.ns1.esempio.com. (
2003021502
;serial
28800
;refresh
7200
;retry
604800
;expire
28800 )
;minimum
IN
NS
ns1.esempio.com.
$ORIGIN
1
2
3
4
5
6
0.168.192.in-addr.arpa .
PTR ns1.esempio.com.
PTR mac.esempio.com.
PTR linux.esempio.com.
PTR windows.esempio.com.
PTR webftp.esempio.com.
PTR mail.esempio.com.
Il nome in-addr.arpa indica un dominio speciale che tratta gli indirizzi numerici come "etichette".
La sua rappresentazione è invertita rispetto alla notazione di un indirizzo IP così 192.168.0.1
diventa 1.0.168.192.in-addr.arpa., questo perchè si segue la notazione dei nomi di dominio.
192.168.0.1 = 1.0.168.192.in-addr.arpa. = ns1.esempio.com.
Con il record PTR (Pointer) si indica che si tratta di record per la risoluzione da indirizzo a
nome.
16
L'utilità delle porte
Un client può accedere contemporaneamente a diversi servizi Internet (ad esempio potete aprire più
browser simultaneamente per navigare su pagine web mentre scaricate un file in FTP). L'accesso ai
servizi avviene attraverso un colloquio client-server che si basa sul protocollo TCP/IP. Un host può
implementare diversi servizi, ogni servizio è associato ad una porta.
Esistono migliaia di porte (queste sono codificate a 16 bit, vi sono dunque 65536 possibilità).
E' stata messa a punto dallo IANA (Internet Assigned Numbers Authority) un'assegnazione standard
delle porte ad alcuni servizi:
 Le porte da 0 a 1023 sono delle porte riservate dette “Well Known Ports”. Esse sono
riservate, con valori di default, a processi di sistema (demoni) o a programmi eseguiti da
utenti privilegiati. Un amministratore di rete può tuttavia decidere una diversa assegnazione
di tali porte.
 Le porte da 1024 a 49151 sono dette “Registered Ports”.
 Le porte da 49152 a 655535 sono le “Dynamic and/or Private Ports”.
Ecco un elenco di alcune porte con i servizi di default ad esse assegnati:
Porta
21
23
25
53
63
79
80
110
Servizio o Applicazione
FTP
Telnet
SMTP
Domain Name System
Whois
Finger
HTTP
POP3
Ogni servizio Internet di uno specifico host è quindi associato alla coppia di valori (indirizzo IP,
numero porta) che sono univoci su Internet. Questa coppia rappresenta un estremo (lato server) del
link logico di comunicazione tra client e server e, per il client, identifica la sorgente dei dati del
servizio richiesto. Dal lato client, la porta è scelta aleatoriamente dal sistema operativo fra le
“Dynamic and/or Private Ports”.
La funzione di multiplexaggio
Il processo che consiste nel poter far transitare su una connessione delle informazioni provenienti da
diverse applicazioni viene detta il multiplexaggio. Allo stesso modo il fatto di mettere in parallelo
(quindi ripartire sulle diverse applicazioni) il flusso di dati viene detto il demultiplexaggio.
17
Che cos'è un URL?
Un URL (Uniform Resource Locator) è un formato di denominazione universale per designare una
risorsa su internet. Si tratta di una stringa di caratteri ASCII stampabili che si scompone in cinque
parti :
 Il nome del protocollo : cioè in un certo senso il linguaggio usato per comunicare sulla rete.
Il protocollo più diffuso è il protocollo HTTP (HyperText Transfer Protocol), il protocollo
che permette di scambiare delle pagine Web di formato HTML. Tuttavia si possono usare
numerosi altri protocolli (FTP,News,Mailto,Gopher,...)
 ID e password : permettono di specificare i parametri di accesso ad un server sicuro. Questa
opzione è sconsigliata dato che la password è visibile nell'URL
 Il nome del server : si tratta di un nome di dominio del computer che ospita la risorsa
richiesta. Da notare che è possibile usare l'indirizzo IP del server, rendendo però l'URL
meno leggibile.
 Il numero della porta : si tratta di un numero associato ad un servizio che permette al server
di sapere quale tipo di risorsa è richiesta. La porta associata per default al protocollo http è la
numero 80. Così, quando il servizio Web del server è associato al numero di porta 80, il
numero di porta è facoltativo.
 Il percorso di accesso alla risorsa : quest’ultima parte permette al server di conoscere la
posizione della risorsa, cioè in maniera generale la posizione (directory) e il nome del file
richiesto
Una URL ha quindi la struttura seguente :
Porta
Percorso
(facoltativa se 80)
http://
user:password@
it.kioskea.net
:80
/glossair/glossair.php3
I protocolli seguenti possono ad esempio essere attraverso l'URL :
Protocollo Password (facoltativa) Nome del server




http, per la consultazione di pagine web
ftp, per la consultazione di siti FTP
telnet, per la connessione a un terminale remoto
mailto, per l'invio di posta elettronica
Il nome del file nell'URL può essere seguito da un punto interrogativo al quale poi seguono delle
stringhe nome=valore; si tratta di dati supplementari inviati al server come parametri di
un'applicazione (ad esempio uno script php o un CGI). L'URL assomiglierà allora a una stringa di
caratteri come questa :
http://it.kioskea.net/forum/index.php3?cat=1&page=2
18