Reti locali e geografiche - Parte III
Piccola guida sulle reti di computers
[torna indietro]
Gli indirizzi IP
Come è stato visto nelle sezioni precedenti, al di sopra dei primi due livelli strettamente fisici di comunicazione, si inserisce la rete dal punto di vista di Unix: un insieme di scatole identificate da un indirizzo IP.
Esistono almeno due versioni di questi tipi di indirizzo: IPv4 e IPv6. Il primo è quello ancora ufficialmente in uso, ma a causa del rapido esaurimento degli indirizzi disponibili nella comunità Internet, sta per essere introdotto il secondo.
Indirizzi IPv4
Gli indirizzi IP versione 4, cioè quelli attualmente ancora in uso, sono composti da una sequenza di 32 bit convenzionalmente suddivisi in quattro gruppetti di 8 bit e rappresentati in modo decimale separati da un punto. Questo tipo di rappresentazione è definito come: notazione decimale puntata.
Per esempio, 00000001.00000010.00000011.00000100 corrisponde al codice 1.2.3.4
Indirizzo di rete e indirizzo dell'host
All'interno di un indirizzo del genere si distinguono due parti: l'indirizzo di rete e l'indirizzo del computer host particolare. Il meccanismo è simile a quello del numero telefonico, in cui la prima parte del numero, il prefisso, definisce la zona, ovvero il distretto telefonico, mentre il resto identifica l'apparecchio telefonico specifico di quella zona. In pratica, quando viene richiesto un indirizzo IP, si ottiene un indirizzo di rete in funzione della quantità di computer host che si devono connettere. In questo indirizzo, una certa quantità di bit nella parte finale sono azzerati, e questo significa che quella parte finale può essere utilizzata per gli indirizzi specifici dei computer host. Per esempio, l'indirizzo di rete potrebbe essere:
00000001.00000010.00000011.00000000 (in decimale 1.2.3.0)
e in tal caso, si potrebbero utilizzare gli ultimi 8 bit per gli indirizzi dei vari computer host.
Indirizzo di rete e indirizzo broadcast
L'indirizzo di rete, non può identificare un host, quindi nell'esempio, l'indirizzo
00000001.00000010.00000011.00000000 (in decimale 1.2.3.0)
non può essere usato per identificare anche un computer host. Inoltre, un indirizzo in cui i bit finali lasciati per identificare gli host siano tutti a uno,
00000001.00000010.00000011.11111111 (in decimale 1.2.3.255)
identifica un indirizzo broadcast, cioè un indirizzo per la trasmissione a tutti gli host di quella rete. Di conseguenza, un indirizzo broadcast non può essere utilizzato per identificare un computer host.
Sottoreti
Naturalmente, i bit che seguono l'indirizzo di rete possono anche essere utilizzati per suddividere la rete in sottoreti. Nel caso di prima, si potrebbero per esempio voler creare due sottoreti utilizzando i primi due bit che seguono l'indirizzo di rete originario:
xxxxxxxx.xxxxxxxx.xxxxxxxx.00000000
Indirizzo di rete.
xxxxxxxx.xxxxxxxx.xxxxxxxx.01000000 (in decimale xxx.xxx.xxx.64)
Indirizzo della prima sottorete.
xxxxxxxx.xxxxxxxx.xxxxxxxx.10000000 (in decimale xxx.xxx.xxx.128)
Indirizzo della seconda sottorete.
xxxxxxxx.xxxxxxxx.xxxxxxxx.11111111 (in decimale xxx.xxx.xxx.255)
Indirizzo broadcast.
In questo esempio, per ogni sottorete, resterebbero 6 bit a disposizione per identificare i computer host: da 000001 a 111110 (in decimale da 1 a 62).
Maschera di rete o netmask
Il meccanismo utilizzato per distinguere la parte dell'indirizzo che identifica la rete è quello della maschera di rete o netmask. La maschera di rete è un indirizzo che viene abbinato all'indirizzo da analizzare con l'operatore booleano AND, per filtrare la parte di bit che interessano. Una maschera di rete che consenta di classificare i primi 24 bit come indirizzo di rete sarà:
11111111.11111111.11111111.00000000
Cosa che coincide al ben più noto codice seguente. 255.255.255.0
Utilizzando l'esempio visto in precedenza, abbinando questa maschera di rete si ottiene l'indirizzo di rete:
00000001.00000010.00000011.00000100 host (1.2.3.4)
11111111.11111111.11111111.00000000 netmask (255.255.255.0)
00000001.00000010.00000011.00000000 indirizzo di rete (1.2.3.0).
Classi di indirizzi
Gli indirizzi IP sono stati classificati in cinque gruppi, a partire dalla lettera A fino alla lettera E:
Classe A (IP da 1.x.x.x a 126.x.x.x)
Gli indirizzi di classe A hanno il primo bit a zero, utilizzano i sette bit successivi per identificare l'indirizzo di rete e lasciano i restanti 24 bit per identificare gli host.
0rrrrrrr.hhhhhhhh.hhhhhhhh.hhhhhhhh
All'interno di questa classe si possono usare indirizzi che vanno da:
00000001.xxxxxxxx.xxxxxxxx.xxxxxxxx (in decimale 1.xxx.xxx.xxx)
a
01111110.xxxxxxxx.xxxxxxxx.xxxxxxxx. (in decimale 126 .xxx.xxx.xxx)
In pratica, appartengono a questa classe gli indirizzi compresi tra 1.xxx.xxx.xxx e 126.xxx.xxx.xxx.
Classe B (IP da 128.1.x.x a 191.254.x.x)
Gli indirizzi di classe B hanno il primo bit a uno e il secondo a zero, utilizzano i 14 bit successivi per identificare l'indirizzo di rete e lasciano i restanti 16 bit per identificare gli host.
10rrrrrr.rrrrrrrr.hhhhhhhh.hhhhhhhh
All'interno di questa classe si possono usare indirizzi che vanno da:
10000000.00000001.xxxxxxxx.xxxxxxxx (in decimale 128.1.xxx.xxx)
a
10111111.11111110.xxxxxxxx.xxxxxxxx (in decimale 191.254.xxx.xxx)
In pratica, appartengono a questa classe gli indirizzi compresi tra 128.1.xxx.xxx e 191.254.xxx.xxx.
Classe C (IP da 192.0.1.x a 223.255.254.x)
Gli indirizzi di classe C hanno i primi due bit a uno e il terzo a zero, utilizzano i 21 bit successivi per identificare l'indirizzo di rete e lasciano i restanti 8 bit per identificare gli host.
110rrrrr.rrrrrrrr.rrrrrrrr.hhhhhhhh
All'interno di questa classe si possono usare indirizzi che vanno da:
11000000.00000000.00000000.xxxxxxxx
a
11011111.11111111.11111110.xxxxxxxx
In pratica, appartengono a questa classe gli indirizzi compresi tra 192.0.1.xxx e 223.255.254.xxx.
Classe D
Gli indirizzi di classe D hanno i primi tre bit a uno e il quarto a zero. Si tratta di una classe destinata a usi speciali.
1110xxxx.xxxxxxxx.xxxxxxxx.xxxxxxxx
Classe E
Gli indirizzi di classe E hanno i primi quattro bit a uno e il quinto a zero. Si tratta di una classe destinata a usi speciali.
11110xxx.xxxxxxxx.xxxxxxxx.xxxxxxxx
Indirizzi broadcast in generale
Un indirizzo broadcast si distingue per avere la parte finale (più o meno lunga) di bit a uno.
Un indirizzo broadcast identifica tutte le reti, sottoreti e host di quel segmento.
Per esempio, l'indirizzo:
00000001.00000010.11111111.11111111 ( in decimale 1.2.255.255 )
rappresenta simultaneamente tutti gli indirizzi che iniziano con 00000001.00000010 (in decimale 1.2)
Indirizzo relativo alla rete locale
L'indirizzo che si ottiene abbinando l'indirizzo di un host e la sua maschera di rete invertita con l'operatore AND è l'indirizzo dell'host relativo alla propria rete. Esempio:
00000001.00000010.00000011.00000100 host (1.2.3.4)
00000000.00000000.00000000.11111111 netmask invertita (0.0.0.255)
00000000.00000000.00000000.00000100 indirizzo relativo (0.0.0.4).
Indirizzo di loopback - 127.0.0.1
Dalla classe A è stato escluso l'indirizzo 127.0.0.0 che identifica una rete immaginaria interna al computer stesso. All'interno di questa rete si trova normalmente una interfaccia di rete immaginaria connessa su questa rete: 127.0.0.1.
Per identificare questi indirizzi si parla di loopback, anche se questo termine viene usato anche in altri contesti con significati differenti.
All'interno di ogni computer, quindi, questo indirizzo corrisponde a se stesso. Serve in particolare per non disturbare la rete quando un programma (che usa la rete) deve fare riferimento a se stesso.
Default route - 0.0.0.0
Default route è il percorso, o la strada, predefinita per l'instradamento dei pacchetti. Il termine default route fa automaticamente riferimento a questo indirizzo particolare.
Indirizzi riservati per le reti private
Se non si ha la necessità di rendere accessibili i computer della propria rete locale alla rete globale Internet, si possono utilizzare alcuni gruppi di indirizzi che sono stati riservati a questo scopo e che non corrispondono a nessun host raggiungibile attraverso Internet.
Nella classe A è stato riservato l'intervallo da 00001010.00000000.00000000.00000000 (in decimale 10.0.0.0 )
a
00001010.11111111.11111111.11111111 (in decimale 10.255.255.255 )
Nella classe B è stato riservato l'intervallo da
10101100.00010000.00000000.00000000 (in decimale 172.16.0.0 )
a
10101100.00010000.11111111.11111111 (in decimale 172.31.255.255 )
Nella classe C è stato riservato l'intervallo da
11000000.10101000.00000000.00000000 (in decimale 192.168.0.0 )
a
11000000.10101000.11111111.11111111 (in decimale 192.168.255.255 )
Sottoreti e Routing
Quando si scompone la propria rete locale in sottoreti, di solito lo si fa per non intasarla. Infatti è probabile che si possano raggruppare i computer in base alle attività che essi condividono. Le sottoreti possono essere immaginate come raggruppamenti di computer separati che di tanto in tanto hanno la necessità di accedere a computer situati al di fuori del loro gruppo.
Per collegare due sottoreti occorre un computer con due schede di rete, ognuno connesso con una delle due reti, configurato in modo da lasciare passare i pacchetti destinati all'altra rete.
Questo computer è un router, chiamato abitualmente gateway, e in pratica svolge l'attività di instradamento dei pacchetti.
Introduzione ai nomi di Dominio
La gestione diretta degli indirizzi IP è piuttosto faticosa dal punto di vista umano.
Per questo motivo si preferisce associare un nome agli indirizzi numerici. Il sistema attualmente utilizzato è il DNS (Domain Name System), ovvero il sistema dei nomi di dominio.
Gli indirizzi della rete Internet sono organizzati ad albero in domini, sottodomini (altri sottodomini...), fino ad arrivare a identificare il computer host desiderato.
Non esiste una regola per stabilire quante debbano essere le suddivisioni, di conseguenza, di fronte a un nome del genere, non si può sapere a priori se si tratta di un indirizzo finale, riferito a un computer, o a un dominio.
Spesso, all'interno della propria rete locale, è possibile identificare un computer attraverso il solo nome senza il dominio di appartenenza. Per esempio, se la rete in cui si opera corrisponde al dominio brot.dg, il computer roggen verrà inteso essere roggen.brot.dg. Quando un nome di dominio contiene tutti gli elementi necessari a identificare un computer, si parla di FQDN o Fully Qualified Domain Name, quindi, roggen.brot.dg dell'esempio precedente è un FQDN.
Quando si realizza una rete locale con indirizzi IP non raggiungibili attraverso Internet, è opportuno abbinare nomi di dominio sicuramente inesistenti. Ciò aiuta anche a comprendere immediatamente che non si tratta di un dominio accessibile dall'esterno.
Server DNS
In un sistema di nomi di dominio (DNS), il problema più grande è quello di organizzare i così detti name server o DNS server.
Si tratta di computer che si occupano di risolvere, ovvero trasformare, gli indirizzi mnemonici dei nomi di dominio in indirizzi numerici IP e viceversa. A livello di dominio root, si trovano alcuni server che si occupano di fornire gli indirizzi per raggiungere i domini successivi, cioè com, edu, org, net, it, ... A livello di questi domini ci saranno alcuni server (ogni dominio ha i suoi) che si occupano di fornire gli indirizzi per raggiungere i domini inferiori, e così via, fino a raggiungere il computer host finale.
Di conseguenza, un name server, per poter ottenere l'indirizzo di un host che si trova in un dominio al di fuori della sua portata, deve interpellare i name server a livello di root e mano a mano quelli di livello inferiore, fino a ottenere l'indirizzo cercato.
Per determinare l'indirizzo IP di un computer host si rischia di disturbare una quantità di name server. Per ridurre questo traffico di richieste, ogni name server è in grado di conservare automaticamente una certa quantità di indirizzi che sono stati richiesti nell'ultimo periodo.
In pratica, per poter utilizzare la notazione degli indirizzi suddivisa in domini, è necessario che il computer locale sul quale si opera possa accedere al suo name server più vicino, oppure gestisca un name server per conto suo. In una rete locale privata, i cui computer non siano quindi raggiungibili dalla rete Internet, non è solitamente necessario predisporre un name server.
È sufficiente il file "hosts" compilato correttamente con gli indirizzi associati ai nomi completi dei vari host.
|