Capitolo 18.  Networking di base

Sommario

18.1. Indirizzi IP e instradamento
18.2. IPv6, la generazione futura di Internet
18.3. Risoluzione del nome
18.4. Configurazione di una connessione di rete con YaST
18.5. Gestione delle connessioni di rete con NetworkManager
18.6. Configurazione manuale di una connessione di rete
18.7. smpppd come assistente di connessione remota

Estratto

In Linux sono disponibili le funzionalità e gli strumenti di networking necessari per l'integrazione in qualsiasi tipo di struttura di rete. Il protocollo TCP/IP utilizzato in Linux dispone di funzionalità speciali e vari servizi illustrati di seguito. È possibile configurare l'accesso alla rete mediante una scheda di rete, un modem o un altro dispositivo utilizzando YaST oppure manualmente. In questo capitolo vengono descritti solo i meccanismi fondamentali e i relativi file di configurazione di rete.

In Linux, come in altri sistemi operativi UNIX, viene utilizzato il protocollo TCP/IP che non è un protocollo di rete unico, ma una famiglia di protocolli di rete in grado di offrire numerosi servizi. I protocolli elencati nella Tabella 18.1, "Numerosi protocolli della famiglia TCP/IP" vengono forniti allo scopo di consentire lo scambio di dati tra due computer tramite TCP/IP. Le reti unite mediante TCP/IP, che costituiscono una rete mondiale, vengono identificate complessivamente come "Internet."

RFC è l'acronimo di Request for Comments. In questi documenti sono descritti i diversi protocolli Internet e le procedure di implementazione per il sistema operativo e le relative applicazioni. Nei documenti RFC viene descritta la configurazione dei protocolli Internet. Per ulteriori informazioni su uno qualsiasi di questi protocolli, fare riferimento ai relativi documenti RFC disponibili in linea all'indirizzo http://www.ietf.org/rfc.html (in lingua inglese).

Tabella 18.1. Numerosi protocolli della famiglia TCP/IP

Protocollo

Descrizione

TCP

Transmission Control Protocol: protocollo sicuro orientato alla connessione. I dati da trasmettere vengono inizialmente inviati dall'applicazione come un flusso di dati, quindi convertiti dal sistema operativo nel formato appropriato. I dati pervengono alla rispettiva applicazione sull'host di destinazione nel formato del flusso di dati originale in cui sono stati inviati inizialmente. Il protocollo TCP determina se si sono verificate perdite o scambi di pacchetti di dati durante la trasmissione, per questo viene implementato ovunque sia importante mantenere la corretta sequenza dei dati.

UDP

User Datagram Protocol: protocollo non sicuro senza connessione. I dati da trasmettere vengono inviati sotto forma di pacchetti generati dall'applicazione. L'ordine in cui i dati pervengono al destinatario non è garantito ed è possibile che si verifichino perdite di dati. Il protocollo UDP è adatto per le applicazioni orientate ai record e presenta un periodo di latenza inferiore rispetto al TCP.

ICMP

Internet Control Message Protocol: essenzialmente non si tratta di un protocollo per l'utente finale, ma di uno speciale protocollo di controllo che genera un rapporto degli errori ed è in grado di controllare il comportamento dei computer che partecipano al trasferimento di dati TCP/IP. Dispone, inoltre, di una speciale modalità echo che è possibile visualizzare utilizzando il programma PING.

IGMP

Internet Group Management Protocol: controlla il comportamento del computer quando viene implementato l'IP multicast.

Come illustrato nella Figura 18.1, "Modello a strati semplificato per TCP/IP", lo scambio dei dati avviene in diversi strati. Nello strato Rete vero e proprio avviene il trasferimento dei dati non sicuro tramite IP (Internet Protocol). Oltre all'IP, il protocollo TCP (Transmission Control Protocol) garantisce, fino a un certo punto, la sicurezza del trasferimento dei dati. Lo strato IP è supportato dal sottostante protocollo dipendente dall'hardware, ad esempio Ethernet.

Figura 18.1. Modello a strati semplificato per TCP/IP

Modello a strati semplificato per TCP/IP

Nel diagramma vengono forniti uno o due esempi per ogni strato. L'ordinamento degli strati avviene in base ai livelli di astrazione. Lo strato più basso si trova molto vicino all'hardware, mentre lo strato più alto è quasi un'astrazione completa dall'hardware. Ogni strato ha una speciale funzione e le funzioni speciali di ogni strato sono per lo più implicite nella relativa descrizione. Gli strati Collegamento dati e Fisico rappresentano la rete fisica utilizzata, ad esempio Ethernet.

Quasi tutti i protocolli hardware funzionano in base a un'architettura orientata ai pacchetti. I dati da trasmettere vengono inclusi in pacchetti, in quanto non possono essere inviati tutti simultaneamente. La dimensione massima di un pacchetto TCP/IP è di circa 64 KB, tuttavia i pacchetti sono normalmente molto più piccoli poiché l'hardware della rete può rappresentare un fattore limitante. La dimensione massima di un pacchetto di dati su una rete Ethernet è di circa 1500 byte, pertanto la dimensione di un pacchetto TCP/IP inviato su una rete Ethernet è limitata a tale valore. Se la quantità di dati da trasferire è maggiore, dovranno essere inviati più pacchetti da parte del sistema operativo.

Affinché gli strati possano svolgere le funzioni designate, è necessario che nel pacchetto di dati siano salvate informazioni aggiuntive relative a ogni strato. Questo processo avviene nell'intestazione del pacchetto. All'inizio di ogni pacchetto generato viene aggiunto un piccolo blocco di dati per ogni strato, definito intestazione del protocollo. Nella Figura 18.2, "Pacchetto Ethernet TCP/IP" è illustrato un pacchetto di dati TCP/IP di esempio trasmesso su un cavo Ethernet. Il valore proof sum si trova alla fine del pacchetto anzichè all'inizio, per semplificare la trasmissione dei pacchetti da parte dell'hardware di rete.

Figura 18.2. Pacchetto Ethernet TCP/IP

Pacchetto Ethernet TCP/IP

I dati inviati da un'applicazione in rete passano attraverso ogni strato. Tutti gli strati sono implementati nel kernel Linux ad eccezione dello strato Fisico. Ogni strato è preposto alla preparazione dei dati affinché possano essere passati allo strato successivo. Allo strato più basso è infine affidato il compito di inviare i dati. Alla ricezione dei dati l'intera procedura viene invertita, rimuovendo in successione da ogni strato le intestazioni del protocollo dai dati trasportati. Lo strato Trasporto rende infine disponibili i dati affinché possano essere utilizzati dalle applicazioni alla destinazione. In questo modo, un solo strato comunica con lo strato direttamente precedente o successivo. Per le applicazioni è irrilevante il fatto che i dati vengano trasmessi su una rete FDDI a 100 MBit/s o su una linea modem a 56-kbit/s. In modo analogo, a condizione che il formato dei pacchetti sia corretto, per la linea dati è irrilevante il tipo di dati trasmesso.


18.1. Indirizzi IP e instradamento

In questa sezione vengono descritte solo le reti IPv4. Per informazioni sul protocollo IPv6, la versione successiva a IPv4, fare riferimento alla Sezione 18.2, "IPv6, la generazione futura di Internet".

18.1.1. Indirizzi IP

A ogni computer su Internet è associato un indirizzo a 32 bit univoco. Questi 32 bit (o 4 byte) sono normalmente scritti come illustrato nella seconda riga dell'Esempio 18.1, "Scrittura di indirizzi IP".

Esempio 18.1. Scrittura di indirizzi IP

IP Address (binary):  11000000 10101000 00000000 00010100
IP Address (decimal):      192.     168.       0.      20

Nel formato decimale i quattro byte sono scritti in base al sistema numerico decimale, separati da punti. L'indirizzo IP viene assegnato a un host o a un'interfaccia di rete e non può essere utilizzato in alcun'altra parte del mondo. Esistono eccezioni a questa regola, che tuttavia sono ininfluenti nei passaggi che seguono.

I punti negli indirizzi IP indicano il sistema gerarchico. Fino agli anni '90 gli indirizzi IP erano rigidamente suddivisi in categorie di classi, tuttavia questo sistema è stato abbandonato essendosi rivelato troppo inflessibile. Attualmente viene utilizzato l'instradamento senza classe (CIDR, Classless Interdomain Routing).

18.1.2. Maschere di rete e instradamento

Le maschere di rete vengono utilizzate per definire l'intervallo di indirizzi di una sottorete. Se due host si trovano nella stessa sottorete, possono connettersi direttamente. In caso contrario devono disporre dell'indirizzo di un gateway che gestisca tutto il traffico tra la sottorete e il resto della rete mondiale. Per verificare se due indirizzi IP si trovano nella stessa sottorete, collegare semplicemente entrambi gli indirizzi con la maschera di rete mediante "AND". Se il risultato è identico, significa che entrambi gli indirizzi IP si trovano nella stessa rete locale. Se sono presenti differenze, l'indirizzo IP remoto e quindi l'interfaccia remota possono essere raggiunti solo attraverso un gateway.

Per comprendere il funzionamento della maschera di rete, vedere l'Esempio 18.2, "Collegamento di indirizzi IP alla maschera di rete". La maschera di rete è composta da 32 bit che identificano la parte dell'indirizzo IP che appartiene alla rete. Tutti i bit uguali a 1 contrassegnano il bit corrispondente nell'indirizzo IP come appartenente alla rete. Tutti i bit uguali a 0 contrassegnano i bit all'interno della sottorete. Ciò significa che a un maggior numero di bit uguali a 1 corrisponde una sottorete più piccola. Poiché la maschera di rete è sempre composta da più bit uguali a 1 in successione, è inoltre possibile contare semplicemente il numero di bit nella maschera di rete. Nell'Esempio 18.2, "Collegamento di indirizzi IP alla maschera di rete" la prima rete con 24 bit potrebbe inoltre essere scritta nel formato 192.168.0.0/24.

Esempio 18.2. Collegamento di indirizzi IP alla maschera di rete

IP address (192.168.0.20):  11000000 10101000 00000000 00010100
Netmask   (255.255.255.0):  11111111 11111111 11111111 00000000
---------------------------------------------------------------
Result of the link:         11000000 10101000 00000000 00000000
In the decimal system:           192.     168.       0.       0

IP address (213.95.15.200): 11010101 10111111 00001111 11001000
Netmask    (255.255.255.0): 11111111 11111111 11111111 00000000
---------------------------------------------------------------
Result of the link:         11010101 10111111 00001111 00000000
In the decimal system:           213.      95.      15.       0

Per fare un altro esempio, tutti i computer connessi con lo stesso cavo Ethernet si trovano di solito nella stessa sottorete e sono accessibili direttamente. Anche se la sottorete è fisicamente divisa mediante commutatori o bridge, questi host possono comunque essere raggiunti direttamente.

Gli indirizzi IP all'esterno della sottorete locale possono essere raggiunti solo se per la rete di destinazione è configurato un gateway. Nel caso più comune viene utilizzato un solo gateway per la gestione di tutto il traffico esterno, tuttavia è possibile configurare più gateway per diverse sottoreti.

Se è stato configurato un gateway, tutti i pacchetti esterni vengono inviati al gateway appropriato, il quale tenta di inoltrarli allo stesso modo, ovvero da host a host, finché raggiungono la destinazione oppure si verifica la scadenza del TTL (Time-To-Live) del pacchetto.

Tabella 18.2. Indirizzi specifici

Tipo di indirizzo

Descrizione

Indirizzo di rete di base

Corrisponde alla maschera di rete AND per tutti gli indirizzi della rete, come illustrato nella sezione Result dell'Esempio 18.2, "Collegamento di indirizzi IP alla maschera di rete". Questo indirizzo non può essere assegnato a qualsiasi host.

Indirizzo di diffusione

Sostanzialmente significa che è possibile "accedere a tutti gli host della sottorete". Per generare questo indirizzo, la maschera di rete viene invertita in formato binario e collegata all'indirizzo di rete di base mediante un operatore logico OR. L'esempio precedente restituisce quindi 192.168.0.255. Questo indirizzo non può essere assegnato a qualsiasi host.

Host locale

L'indirizzo 127.0.0.1 viene assegnato al "dispositivo di loopback" su ogni host. È possibile configurare una connessione al proprio computer utilizzando questo indirizzo.

Poiché gli indirizzi IP devono essere univoci su tutta la rete mondiale, non è possibile selezionare indirizzi casuali. Per configurare una rete privata basata su IP sono disponibili tre domini di indirizzi che non possono tuttavia ricevere connessioni da Internet, in quanto non possono essere trasmessi su Internet. Questi indirizzi sono specificati nel documento RFC 1597 ed elencati nella Tabella 18.3, "Domini di indirizzi IP privati".

Tabella 18.3. Domini di indirizzi IP privati

Rete/Maschera di rete

Dominio

10.0.0.0/255.0.0.0

10.x.x.x

172.16.0.0/255.240.0.0

172.16.x.x172.31.x.x

192.168.0.0/255.255.0.0

192.168.x.x