WHITE PAPERS
HOME
 
Ho raccolto in questo documento alcune nozioni sulle reti di computer, cercando di sintetizzare in poche pagine quanto occorre sapere su questo argomento

 

 

Networking Concepts

Giampaolo Spaggiari
Febbraio 2007

L’informatica si basa sull’elaborazione e sulla trasmissione di informazioni, quest’ultima resa possibile dall’esistenza delle reti di computer o Local Area Network (LAN). Le reti come le intendiamo oggi si basano su alcuni concetti di base, di cui il presente documento vuole essere una esposizione sintetica ma al tempo stesso abbastanza completa.

Ethernet

L'architettura di rete di cui tratteremo è la ETHERNET, che da quando è stata introdotta, alla fine degli anni 80, si è diffusa rapidamente, soppiantando altre opzioni disponibili per la connettività come Token Ring e ATM. Secondo le proiezioni di IDC Research, alla fine del 1996 più dell'80% delle connessioni installate erano di tipo Ethernet. Il predominio di Ethernet continua a crescere fino a oltre il 1998, in particolare quando questo standard compatibile e scalabile passa a velocità Gigabit (da 100 a 1000 Mb/s). Oltre ad una scelta più ampia di prodotti e fornitori, questo predominio sul mercato ha portato a una continua diminuzione dei costi dell'hardware Ethernet.

Le reti ethernet si strutturano sui sette livelli OSI:

  • Livello 0: HARDWARE
    schede di rete, cavi, ecc.
  • Livello 1: PHISICAL
    topologia di rete (ethernet)
  • Livello 2: DATA
    tipo di trasmissione (sincrona, asincrona)
  • Livello 3: NETWORK
    IP, crea e spedisce i pacchetti
  • Livello 4: TRANSPORT
    TCP, riorganizza i pacchetti
  • Livello 5: SESSION
    TCP, stabilisce la connessione
  • Livello 6: PRESENTATION
    conversione dei dati
  • Livello 7: APPLICATION
    web browser, programma applicativo

La precedente tabella è di vitale importanza, oltre che per la comprensione del meccanismo della trasmissione dei dati, anche per il problem solving in ambiente di rete. Occorre iniziare ad analizzare il problema partendo dal livello più basso, ponendosi domande quali ad esempio:

  • I cavi funzionano?
  • La scheda di rete è guasta?

Per poi passare man mano ai livelli successivi, fino a soluzionare il problema:

  • il protocollo di rete è configurato correttamente?
  • le credenziali di autenticazione di rete sono corrette?
  • la comunicazione via rete è bloccata da qualche software ad alto livello (p.e. firewall locale)?

Le topologie di rete

Delle molte topologie di rete presenti negli scorsi anni, la rete a stella (Fig.1), con cavi connessi con un hub centrale, è rimasta l’unica a trovare attuale applicazione. Ciò in virtù di una minor complessità di installazione e soprattutto di una maggior sicurezza. In tale configurazione infatti un guasto su uno dei cavi non compromette il funzionamento dell’intera trasmissione dati aziendale, come avviene invece nel modello a bus o ad anello.

Esempio di rete a stella:

Fig.1: Rete a stella

A sua volta, all'hub centrale possono essere collegati altri hub periferici, ampliando così le possibilità di collegamento della rete:

Fig. 2: Ampliamento della rete

Il mezzo trasmissivo

Il mezzo trasmissivo per eccellenza è il cavo U.T.P. (Unshielded Twisted Pair), cablato con connettori di tipo RJ-45. Al cavo vero e proprio si sono affiancati negli ultimi anni altri supporti quali la rete senza fili (wireless) e le connessioni Bluethooth.

Vediamo ora una tabella comparativa delle velocità di trasmissione di tutte le tipologie di reti rispetto al tradizonale cablaggio UTP:

Supporto Velocità Max distanza da hub Denominazioni Compatibilità Ethernet
Gprs fino a 44 Kb/s max GPRS si
Umts 384 kb/s - 2 Mb/s max UMTS si
Bluetooth fino a 721 Kb/s 10-100 mt. Bluetooth in futuro
doppino telefonico 640 kb/s - 10 Mb/s max ADSL si
Onde radio 11-110 Mb/s 100 mt. Wireless o WLan si
Cavo UTP 10/100/1000 Mb/s 100 mt. Fast Ethernet
Gigabit Ethernet
si
Cavo Usb 2.0 fino a 480 Mb/s 1,5 mt. USB 2.0 no
Fibra ottica fino a 200.000 Mb/s max Fibra ottica si

Il cavo UTP è costituito da quattro coppie di fili, che vanno così cablate:

Fig. 3: Cablaggio cavo UTP

Le tecniche di trasmissione impiegate nelle reti differiscono a seconda che si parli di banda base o di banda larga. Nel primo caso, ogni segnale è un impulso di 0-1 (digital segnaling) e le stazioni condividono il canale a unità di tempo (time division multiplexing). La banda larga impiega una corrente portante ad alta frequenza e i dati modulano la portante facendone variare uno dei tre fattori (ampiezza, frequenza, fase). Le stazioni riconoscono il segnale in base alle diverse frequenze. Le singole stazioni trasmettono sulla rete a controllo casuale, cioè non attendono nessuna autorizzazione particolare da parte di un master centrale. Ogni stazione ascolta la rete per interpretare i segnali in entrata e a sua volta trasmette a tutta la rete. In questo caos organizzato hanno grande importanza gli apparati di rete (HUB e SWITCH) a cui sono raccordati i cavi e a cui affluiscono tutti i segnali provenienti dalle stazioni. Tali apparati hanno il compito di diffondere e ripetere il segnale in tutta la rete possibilmente ottimizzando la diffusione dei pacchetti per evitare la saturazione della capacità trasmissiva dell’harwdare. La differenza tra hub e switch è fondamentale: mentre gli hub ripetono il segnale in modo indiscriminato causando intasamenti alla rete, gli switch cercano di trasmettere i pacchetti solo sulle porte necessarie, diminuendo il traffico e mantenendo la rete sempre performante. Inoltre uno switch dedica ad ogni porta la larghezza di banda massima mentre l’hub suddivide la banda tra le porte attive, causando un degrado delle prestazioni.

Router

Le varie reti di computer sono interconnesse tra di loro tramite apparati chiamati router, il cui compito è quello di individuare i nodi successivi da attraversare per arrivare al computer di destinazione. Il router deve avere un indirizzo per ogni rete a cui è connesso: infatti, in una configurazione standard, il router ha un indirizzo Ip per la rete interna, valido solo per i computer della rete,e uno per internet (indirizzo pubblico), fornito dal provider di connettività.

Fig. 4: Esempio di una rete di computer completa di switch e router:

Gateway, firewall e proxy

L’altro componente di cui ci occupiamo è il gateway, un apparato interposto tra il router e la rete interna e che consente di convertire un protocollo in un altro, collegando così le due reti, interna ed esterna. Ad esso vanno indirizzate tutte le richieste dei singoli computer, che verranno prontamente girate al router ad esso collegato. In mancanza di un gateway dedicato (di solito un server linux provvisto di applicazioni per il controllo degli utenti e della banda verso internet), questa funzione viene svolta dal router. Sul gateway può essere possibile installare le funzionalità di firewall e di proxy.

Il firewall è una combinazioni di hardware e di software che consente alle organizzazioni di selezionare quali flussi di informazioni possono accedere da e per la rete aziendale verso l'esterno. Il firewall ha quindi una doppia funzione: proteggere le reti interne da accessi indesiderati che possono essere effettuati dall'esterno da hacker o da potenziali nemici, impedire agli utenti della rete interna di accedere a siti e servizi internet non autorizzati sul posto di lavoro (chat, messagging, ecc.).

Il proxy è una funzionalità che può essere attivata sul gateway e consente di ridurre il traffico internet, memorizzando al suo interno le pagine che vengono scaricate da chi naviga. In seguito ad una successiva richiesta della stessa pagina, la pagina non verrà reperita da internet ma dal disco dello stesso proxy, riducendo così la richiesta di banda verso internet. Può essere di notevole interesse per le grandi organizzazioni introdurre un proxy per memorizzare gli aggiornamenti dei sistemi operativi e di alcuni software richiesti spesso dalle postazioni di lavoro. Consente anche una tracciabilità delle attività svolte su internet ai fini della prevenzione dei crimini informatici.

TCP/IP

Il TCP/IP è la suite di protocolli più utilizzata nelle reti di computer. Si può definire come il linguaggio comune con cui parlano le varie apparecchiature elettroniche connesse tra di loro. I due protocolli caratteristici del tcp/ip sono l'IP eil TCP. L'IP (Internet Protocol) determina come le informazioni, suddivise in pacchetti, vengono inoltrate ai computer di destinazione. Il TCP (Trasmission Control Protocol) si assicura che il messaggio arrivi correttamente e include un sistema di auto-correzione degli errori.

Il TCP/IP è composto dai seguenti protocolli:
  • IP:        Internet Protocol
  • TCP:     Transfer Control Protocol
  • ARP:     Address Resolution Protocol
  • ICMP:   Internet Control Message Protocol
  • UDP:    User Datagram Protocol
  • RIP:     Routing Information Protocol
  • SMTP:  Simple Mail Transfer Protocol
  • DNS:    Domain Name Server

Perchè un computer possa trasmettere su una rete tcp/ip ha bisogno di un indirizzo IP. Si tratta di un identificativo univoco dei computer sulla rete tcp/ip. Gli indirizzi possono essere pubblici o privati, cioè validi per internet oppure validi solo per la rete interna. Gli indirizzi pubblici sono assegnati da una organizzazione chiamata InterNIC che li rilascia ai provider di connettività, i quali a loro volta li vendono al pubblico.

Sono espressi in quattro numeri decimali separati da un punto:

192.168.0.12

Parte di questo indirizzo rappresenta la rete a cui il pc appartiene (network, i primi due, cioè 192.168) e i rimanenti invece definiscono una particolare macchina (host, nel nostro caso 0.12) presente su quella rete.

Il comando IPCONFIG (o ifconfig su Linux) può essere usato per verificare o modificare il proprio indirizzo ip:

In questo esempio osserviamo che:

  • il computer in oggetto ha come nome host "toshiba"
  • ha una scheda di rete del tipo "Realtek"
  • l'indirizzo gli viene assegnato da un dhcp server in modo dinamico
  • ha come indirizzo Ip 192.168.0.209 e come maschera di sottorete 255.255.255.0
  • il gateway è 192.168.0.200 a cui passa tutte le richieste
  • dns e dhcp sono forniti dal server 192.168.0.201

Gli indirizzi sono suddivisi in quattro classi, secondo la tabella seguente:

Classe

Netid

Hostid

Range

A

8 bit

126 reti

24 bits

16,777,214 hosts

<128.0.0.0

B

16 bit

16,384 reti

16 bit

65,534 hosts

128.0.0.0 to 191.255.255.255

C

24 bit

2,097,150 reti

8 bit

254 hosts

192.0.0.0 to 223.255.255.255

D

Multicast


224.0.0.0 to 239.255.255.255

La classe "A" può contenere poche reti ma con moltissimi host, la classe C al contrario molte reti con pochi host.

Certi indirizzi sono riservati per l'uso privato e non sono validi come indirizzi pubblici. I router presenti su internet non propagano pacchetti provenienti o indirizzati a questi indirizzi.

Classe

Indirizzi riservati

A

10.0.0.0 a 10.255.255.255

B

169.254.0.0 a 169.254.255.255
172.16.0.0 a 173.31.255.255

C

192.168.0.0 a 192.168.255.255

L'indirizzo 255.255.255.255 è chiamato indirizzo di broadcast in quanto server per instradare i pacchetti che devono essere ricevuti da tutta la rete.

In una rete di classe C quale ad esempio 192.168.0, l'indirizzo 192.168.0.0 rappresenta la rete stessa e non può essere utilizzato.

L'indirizzo 127.0.0.1 è riservato agli indirizzi di loopback ed è usato nei test.

La sottorete è espressa in quattro numeri decimali. Un esempio comune di sottorete è 255.255.255.0 che identifica una classe C. La sottorete è usata, insieme all'indirizzo Ip visto prima, per determinare quanti bit dell'indirizzo Ip appartengono all'identificazione della rete e quanti a quella dei computer. Per esempio una rete con un indirizzo base di 192.168.0.0 a una subnet mask di 255.255.255.0, ha 24 bit riservati per identificare la rete e 8 disponibili per identificare i computer (8 bit= 256 combinazioni). In questa configurazione, che può anche essere rappresentata come 192.168.0.0/24, ci saranno quindi 254 indirizzi Ip disponibili, da 192.168.0.1 a 192.168.0.254, considerando che gli indirizzi 0 e 256 sono sempre riservati al sistema.

DHCP

Nelle reti di grandi dimensioni o in reti in cui è previsto un’alta variabilità delle strumentazioni interconnesse viene utilizzato il protocollo DHCP (Dynamic Host Configuration Protocol), il quale, configurato e installato su un server, è in grado di assegnare automaticamente un indirizzo Ip ad un apparecchio che ne fa richiesta, senza intervento dell’operatore. Periodicamente il protocollo Dhcp rialloca gli indirizzi ai computer connessi (lease). In una rete di solito deve esistere solo uno di questi server.

MAC Address e ARP

Ogni computer ha così un proprio indirizzo Ip, abbinato ad un indirizzo fisico (Media Access Control), un indirizzo unico cablato sull’hardware della scheda di rete del computer. Tale numero viene assegnato ad ogni costruttore dall’IEEE.

Un esempio di indirizzo MAC:

08-00-20-03-4F-D3

Tramite questo indirizzo è possibile identificare un singolo computer sulla rete anche se ne viene cambiato il numero di Ip. Conoscendo il numero di Ip è possibile utilizzare il protocollo ARP per conoscere il numero MAC. Il protocollo ARP mantiene una cache in ogni sistema per ridurre il traffico di rete provocato dalla richieste arp.

Esempio di analisi della cache arp del computer:

In questo esempio, sul computer di nome giampa sono memorizzati i tre host con cui ha avuto scambi di informazioni, tipicamente server o gateway della rete. Ad ogni indirizzo ip è associato il relativo indirizzo fisico della scheda di rete.

DNS e file Hosts

Quando un pacchetto viene indirizzato ad uno specifico computer, per esempio in caso di richiesta di una pagina web ad un server il protocollo DNS provvede a convertire l’indirizzo URL (Uniform Resource Locator, per esempio www.server.it) in un indirizzo Ip valido (per sempio 67.118.65.109), corrispondente ad un computer collegato a internet e a cui è stato assegnato quel numero. Su internet sono attivi migliaia di server dns con le relative tabelle, che vengono poi propagate automaticamente sulla rete per aggiornare tutti i server dns. In ogni organizzazione è poi possibile installare un dns server locale, al fine di ridurre e velocizzare il traffico di rete. Il dns interno mantiene una tabella dei computer locali permettendo ai pacchetti di trovare subito la via per raggiungerli. Se viene richiesta una risorsa non appartenente alla rete locale, viene instradata a un elenco di dns server esterni (di solito una decina) che provvedono a soddisfarla.

Un altro modo, ma meno efficiente, per effettuare la conversione da nomi a indirizzi ip è l’uso del file hosts, che in pratica è una tabella dns interna al singolo computer. Il file hosts è la prima tabella ad essere interrogata dal sistema, prima di accedere alle tabelle del dns server predefinito, impostato nella configurazione di rete del computer.

Esempio di file hosts:

192.168.0.12    server    #server della rete

Routing table

La routing table è contenuta all’interno dei router ed è un elenco di regole necessarie per instradare un pacchetto verso l’ip di destinazione. La routing table può essere visualizzata anche a livello di singolo computer utilizzando il comando ROUTE PRINT.

La prima riga, ad esempio, ci dice che tutte le richieste (indirizzo 0.0.0.0 mask 0.0.0.0) vengono instradate al Gateway 192.168.0.200.

Si definisce una static route un percorso che viene inserito manualmente nella tabella di routing. Ciò può essere utile in uno scenario con due router collegati alla rete, in cui uno trasmette verso internet e l'altro verso una rete privata. I due router avranno ognuno un indirizzo Ip, e dovremo fare in modo che i pacchetti diretto verso internet vadano su uno e quelli verso la rete privata sull'altro. Supponendo che il router verso la rete privata abbia indirizzo 10.0.0.1 e che la rete privata abbia indirizzo 192.168.0.0, è possibile aggiungere all’avvio nella configurazione del computer un comando che aggiunga una route statica come per esempio:

ROUTE ADD 192.168.0.0 MASK 255.255.0.0 10.0.0.1 

Le routing tables si aggiornano continuamente e consentono a internet di funzionare, stabilendo più percorsi per arrivare al server di destinazione. In occasione di malfunzionamenti di grandi hub internazionali di interconnessione, verifichiamo che le tabelle di routing provvedono a collegare i continenti tramite altri percorsi, consentendo a internet di continuare a funzionare. I server con le routing tables considerano le informazioni di routing che pervengono dalla rete, ricalcolano il costo del percorso e inoltrano le informazioni aggiornate lungo la rete, aggiornando gli altri server. Utilizzando il protocollo RIP, cancellano le informazioni relative ai server da cui non ricevono informazioni dopo 180 secondi e inviano aggiornamenti ogni trenta secondi. Occorre ricordare che, sebbene esistano più percorsi per arrivare al server richiesto, vengono sempre utilizzati i percorsi più efficenti.

Il RIP è il protocollo di routing più usato in Tcp/ip. Chiede ad altri router quali reti conoscono e a quale distanza sono, misurabile in numero di router (Hop). Il comando operativo è il TRACERT mediante il quale si può osservare il percorso della nostra richiesta attraverso i vari router di internet.

Porte

I dati vengono trasmessi attraverso delle porte o socket che identificano un servizio.

Alcune delle porte più utilizzate:

Numero di porta e nome del servizio

Uso assegnato

Descrizione

20 ftp-dati

dati FTP attivi

Controlla il flusso dei dati nella sessione FTP

21 ftp

FTP server

Trasferimento dati con protocollo Ftp

22 ssh

SSH server

Amministrazione remota di server a riga di comando su canale protetto e crittografato

23 telnet

Telnet server

Amministrazione remota di server a riga di comando su canale non sicuro

25 smtp

SMTP server

spedizione della posta

53 domain

DNS server

server dns

67 bootps

BOOTP/DHCP

server dhcp

68 bootpc

BOOTP/DHCP

Client dhcp

80 http

HTTP server

Web servers, come httpd, Apache, IIS

110 pop3

POP3

ricezione della posta dai mail server

119 nntp

NNTP server

news server

139 netbios-ssn

NetBIOS

Connessioni del protocollo Microsoft NetBIOS

143 imap

IMAP

Posta IMAP

161 snmp

SNMP

Usato da software installato sui pc per il controllo dell'ambiente operativo tramite Snmp

Conclusione

Per terminare, vediamo uno schema riassuntivo di quanto abbiamo finora esposto.

Quando avviene la trasmissione di una informazione, il flusso dei dati parte dall'alto dello schema e va verso il basso, partendo dal servizio applicativio (p.es. il browser) e attraversando le porte. Ogni informazione è suddivisa in tanti pacchetti dal protocollo TCP, i segmenti vengono passati al protocollo IP che aggiunge le informazioni relative all'indirizzo da raggiungere, quindi interviene la scheda di rete che aggiunge l'indirizzo MAC da raggiungere e trasmette i frames sul supporto fisico (cavi, wireless, ecc.).

In ricezione, i frames ethernet sono estratti dalla scheda di rete, che li ha ricevuti dal supporto fisico. Viene verificato che il MAC address ricevuto sia giusto e corrisponda alla scheda di rete, i datagram IP sono estratti e controllati, in modo che non ci siano errori. Il protocollo IP legge la header (testata) per poter estrarre i pacchetti TCP, che sono passati al relativo protocollo. TCP si accerta che tutti i segmenti appartenenti alla trasmissione siano stati ricevuti, li riassembla nel giusto ordine e passa il tutto, attraverso la porta appropriata, all'applicazione di alto livello (p.e. il web server), visualizzando la pagina internet.


Copyright Giampaolo Spaggiari, 2007, IT CONSULTANT | Modena (IT) | www.giampaolospaggiari.it