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 |