• Non ci sono risultati.

Internet – le origini

N/A
N/A
Protected

Academic year: 2021

Condividi "Internet – le origini "

Copied!
18
0
0

Testo completo

(1)

1

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:

(2)

2

 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

(3)

3

 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.

(4)

4

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' host- id 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).

(5)

5

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 .

Il bit di peso forte (il primo bit, quello di sinistra) è a zero, il che significa che vi sono 2

7

(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 computer uguale a 2

24

-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.

I primi due bit sono 1 e 0, il che significa che vi sono 2

14

(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 computer pari a 2

16

-2

1

= 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.

I primi tre bit sono 1, 1 e 0, il che significa che vi sono 2

21

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 pari a 2

8

-2

1

= 254 computer.

Un indirizzo IP di classe C, in codice binario, assomiglia a questo : 110 xxxxx xxxxxxxx xxxxxxxx xxxxxxxx

Rete Computer

Riassumendo:

Classe Numero di reti possibili Numero massimo di computer su ciascuna

A 126 16777214

B 16384 65534

C 2097152 254

(6)

6

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

(7)

7

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.

(8)

8

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.

(9)

9

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à.

(10)

10

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.root- servers.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:

(11)

11

 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.

(12)

12

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; };

(13)

13 };

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.

(14)

14

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. root.ns1.esempio.com.

(

2003021512 ; serial

28800 ; refresh (8 hours)

7200 ; retry (2 hours)

604800 ; expire (1 week)

86400 ; minimum (1 day)

)

NS ns1.esempio.com.

NS ns2.esempio.com.

; mail server per il dominio

esempio.com. MX 10 mail.esempio.com.

esempio.com. MX 20 mail.nostroisp.com.

$ORIGIN esempio.com.

$TTL 5d

ns1 A 192.168.0.1

ns2 A 192.168.0.10

mac A 192.168.0.2

linux A 192.168.0.3

windows A 192.168.0.4

webftp A 192.168.0.5

mail A 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

(15)

15

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 IN SOA ns1.esempio.com.

root.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

(16)

16

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 0.168.192.in-addr.arpa .

1 PTR ns1.esempio.com.

2 PTR mac.esempio.com.

3 PTR linux.esempio.com.

4 PTR windows.esempio.com.

5 PTR webftp.esempio.com.

6 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.

(17)

17

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 Servizio o Applicazione 21 FTP

23 Telnet 25 SMTP

53 Domain Name System 63 Whois

79 Finger 80 HTTP 110 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.

(18)

18

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 :

Protocollo Password (facoltativa) Nome del server Porta

(facoltativa se 80) Percorso

http:// user:password@ it.kioskea.net :80 /glossair/glossair.php3 I protocolli seguenti possono ad esempio essere attraverso l'URL :

 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

Riferimenti

Documenti correlati

 i nomi a dominio che iniziano con il termine “provincia” seguito (con o senza il carattere separatore “-” o il separatore “di”) dal relativo nome geografico o dalla

Il giudice, preso atto che la rete internet costituisce, tra l’altro, un modello di comunicazione tra imprese, nonché tra imprese e pubblico di consumatori, ulteriore ed

In questo modo, il cybernet diviene fino ad ora veramente il massimo sistema totalitario – grazie alla “decentralizzazione” e all' uso dei metodi integrativi

[r]

• Il campo “Nome del gruppo” deve contenere la WikiWord della pagina che identifica il nome del gruppo (deve cioè essere un link alla pagina del gruppo). • Il campo “Proposta

Di conseguenza, la sezione del filo ef- fettivamente interessata dalla corrente può essere minore rispetto a quella dell’intero filo, e la resistenza effettiva può aumentare rispetto

“Figli” associati viene impostata a NULL(ovviamente se non ho specificato il vincolo che debba essere NOT NULL). Esempio: se cancello un cliente, l' id_cliente degli

Con lo sviluppo delle potenzialità commerciali di Internet (si consideri, infatti, che agli origini era una rete militare e, successivamente, una rete di enti universitari), sono