Avanti Indietro Indice

4. Questa cosa dell'IP

Il ruolo del livello IP è di capire come instradare i pacchetti verso la loro destinazione finale. Per rendere possibile ciò, ogni interfaccia nella rete ha bisogno di un indirizzo IP. Un indirizzo IP consiste di quattro numeri separati da punti, es. `167.216.245.249'. Ogni numero è compreso tra 0 e 255.

Le interfacce della stessa rete tendono ad avere indirizzi IP consecutivi. Per esempio `167.216.245.250' è la macchina immediatamente successiva a destra della macchina con indirizzo IP `167.216.245.249'. Ricorda che il router è un nodo con più interfacce, una per ogni rete, quindi avrà un indirizzo IP per ogni interfaccia.

Il livello IP del kernel di Linux mantiene una tabella di diversi instradamenti che descrivono come arrivare ai vari gruppi di indirizzi IP. Il più semplice è detto `default route' (instradamento di default): se il livello di rete non riesce a capire come instradare un pacchetto allora è qui che lo invierà. Puoi vedere un elenco degli instradamenti usando il comando `/sbin/route'.

Gli instradamenti possono indirizzare verso un collegamento, o verso un nodo in particolare connesso ad un'altra rete. Ad esempio, quando ti colleghi al tuo ISP, il tuo default route (instradamento di default) punta all'altro modem collegato, perché è qui che si trova il mondo intero.

   Rusty                ISP   ~~~~~~~ 
   Modem               Modem {       }
       o------------------o { La RETE }
                             {       }
                              ~~~~~~~  

Se possiedi una macchina nella tua rete connessa permanentemente con il mondo esterno allora la situazione è un po' più complicata. Nel diagramma seguente la mia macchina può dialogare direttamente con le macchine di Tridge e di Paul, e anche con il firewall, ma ha bisogno di sapere che i pacchetti destinati al resto del mondo devono passare attraverso il firewall, e da lì poi proseguire. Questo significa che ho bisogno di due instradamenti: uno dirà `se la macchina a cui sono destinati è nella mia rete, allora inviali pure lì direttamente' e quindi un instradamento di default che dirà `altrimenti, inviali al firewall'.

                         o     Macchine
                         |    di Tridge         ~~~~~~~  
  Macchine               |                     {       } 
  di Rusty      o--------+-----------------o--{  RETE   }
                         |            Firewall {       } 
                         |                      ~~~~~~~
                         o  Macchine 
                             di Paul

4.1 Gruppi di indirizzi IP: maschere di rete

C'è ancora un ultimo dettaglio, esiste una notazione standard per i gruppi di indirizzi IP, chiamati anche indirizzi di rete. Così come un numero di telefono può essere suddiviso in prefisso e numero vero e proprio anche un indirizzo IP può essere suddiviso in prefisso di rete e il resto.

Questo è il motivo per cui alcune persone parlano di `rete 1.2.3', con cui intendono in realtà tutti i 256 indirizzi da 1.2.3.0 a 1.2.3.255. Oppure se la rete è abbastanza grande, potrebbero parlare di `rete 1.2' con cui si intendono tutti gli indirizzi da 1.2.0.0 a 1.2.255.255.

Normalmente non useremo `1.2.0.0 - 1.2.255.255', ma abbrevieremo usando `1.2.0.0/16'. Il `/16' presente nella notazione (nota come maschera di rete) richiede una breve spiegazione.

Ogni numero compreso tra i punti in un indirizzo IP consiste attualmente di 8 cifre binarie (da 00000000 a 11111111), che scriveremo in forma decimale, più chiara e leggibile. Il `/16' viene usato per indicare che le prime 16 cifre binarie rappresentano l'indirizzo di rete, ossia la parte `1.2.' è la rete (ricorda che ogni numero rappresenta 8 cifre binarie). Allora questo significa che qualsiasi indirizzo IP che comincia per `1.2.' è parte della rete, quindi `1.2.3.4' e `1.2.3.50' sono parte della rete, mentre `1.3.1.1' no.

Per facilitarci la vita, useremo indirizzi di reti terminanti con `/8', `/16' e `/24'. Per esempio, `10.0.0.0/8' è una grande rete contenente qualsiasi indirizzo da 10.0.0.0 a 10.255.255.255 (oltre 24 milioni di indirizzi!). 10.0.0.0/16 è più piccola, contiene infatti gli indirizzi da 10.0.0.0 a 10.0.255.255. 10.0.0.0/24 è ancora più piccola, contiene indirizzi da 10.0.0.0 a 10.0.0.255.

Per fare ancora un po' di confusione, c'è anche un altro modo di scrivere le maschere di rete, possiamo infatti scriverle come gli indirizzi IP:

10.0.0.0/255.0.0.0

Finalmente vale la pena notare che l'indirizzo IP "maggiore" in ogni rete è riservato come `indirizzo di broadcast' ossia usato per inviare un messaggio contemporaneamente a tutte le macchine della rete.

Segue una tabella delle maschere di rete:

Forma      Forma                 Massimo            Commenti
Breve     Completa              # Macchine

/8      /255.0.0.0              16,777,215      Chiamata `classe A'
/16     /255.255.0.0            65,535          Chiamata `classe B'
/17     /255.255.128.0          32,767
/18     /255.255.192.0          16,383
/19     /255.255.224.0          8,191
/20     /255.255.240.0          4,095
/21     /255.255.248.0          2,047
/22     /255.255.252.0          1,023
/23     /255.255.254.0          511
/24     /255.255.255.0          255             Chiamata `classe C'
/25     /255.255.255.128        127
/26     /255.255.255.192        63
/27     /255.255.255.224        31
/28     /255.255.255.240        15
/29     /255.255.255.248        7
/30     /255.255.255.252        3


Avanti Indietro Indice