Calcolare le sottoreti con ipcalc
Leggete spesso nella documentazione frasi come “affinchè funzioni,dovete usare sottoreti distinte”,oppure “assicuratevi che tutti gli host siano sulla stessa rete” e avete qualche dubbio sul loro esatto significato e su come calcolare gli indirizzi.
Il comando ipcalc serve al calcolo degli indirizzi delle sottoreti.E’ un comando standard disponibile in tutte le distribuzioni Linux.Il comanndo che segue mostra tutto ciò che è necessario sapere su una rete:
$ ipcalc 192.168.10.0/24 Address: 192.168.10.0 11000000.10101000.00001010. 00000000 Netmask: 255.255.255.0 = 24 11111111.11111111.11111111. 00000000 Wildcard: 0.0.0.255 00000000.00000000.00000000. 11111111
Network: 192.168.10.0/24 11000000.10101000.00001010. 00000000 HostMin: 192.168.10.1 11000000.10101000.00001010. 00000001 HostMax: 192.168.10.254 11000000.10101000.00001010. 11111110 Broadcast: 192.168.10.255 11000000.10101000.00001010. 11111111 Hosts/Net: 254 Class C, Private Internet
L’output del comando visualizza gli indirizzi nella normale notazione a punti e in quella CIDRS,gli intervalli di indirizzi disponibili,il numero di host che è possibile configurare e gli indirizzi binari.ipcalc mostra la parte di indirizzi relativa alla rete,192.168.10,e quella relativa agli host,che è 1-254.Questo comando è anche utile per impostare la maschera di rete.
Sotto Fedora,ipcalc è molto diverso e meno utile di quello delle altre distribuzioni Linux.Potete installare il “vero” ipcalc dai sorgenti che potete scaricare da http://freecode.com/projects/ipcalc , oppure provare whatmask che è molto simile a ipcalc ed è disponibile negli archivi di Fedora e lo potete installare tramite il comando.
yum install whatmask
Nel caso non sia /24 (o 255.255.255.0) dovete specificare la maschera di rete.Le più comuni maschere CIDR sono:
- /8
- /16
- /24
Ecco i loro equivalenti nella notazione a punti:
- 255.0.0.0
- 255.255.0.0
- 255.255.255.0
Usare le maschere di rete per differenziare le parti degli indirizzi relative alla rete e all’host.Questi sono intervalli di indirizzi IPV4 privati:
- 10.0.0.0 – 10.255.255.255
- 172.16.0.0 – 172.32.255.255
- 192.168.0.0 – 192.168.255.255
Il primo 10.0.0.0 – 10.255.255.255 è quello che contiene più indirizzi.Se usate il primo numero del quartetto come indirizzo di rete e gli ultimi tre per gli indirizzi degli host potete avere fino a 16.777.214 indirizzi diversi in un unica rete gigante,come potete verificare con il seguente comando:
$ipcalc 10.0.0.0/8 Address: 10.0.0.0 00001010. 00000000.00000000.00000000 Netmask: 255.0.0.0 = 8 11111111. 00000000.00000000.00000000 Wildcard: 0.255.255.255 00000000. 11111111.11111111.11111111
Network: 10.0.0.0/8 00001010. 00000000.00000000.00000000 HostMin: 10.0.0.1 00001010. 00000000.00000000.00000001 HostMax: 10.255.255.254 00001010. 11111111.11111111.11111110 Broadcast: 10.255.255.255 00001010. 11111111.11111111.11111111 Hosts/Net: 16777214 Class A, Private Internet
Probabilmente una singola rete con 16.777.214 host non è esattamente ideale,quindi potete spezzarla in sottoreti.Questo esempio mostra tre sottoreti che utilizzano i primi due quartetti (evidenziati in grassetto) per la porzione degli indirizzi relativi alla rete:
$ ipcalc 10.1.0.0/16 $ ipcalc 10.2.0.0/16 $ ipcalc 10.3.0.0/16
Le altre sottoreti sono quelle che arrivano fino a 10.255.0.0/16.Potete configurare sottoreti ancora più piccole utilizzando maschere puù grandi:
$ ipcalc 10.1.1.0/24 $ ipcalc 10.1.2.0/24 $ ipcalc 10.1.3.0/24
Le altre sottoreti sono quelle che arrivano fino a 10.255.255.0/16
Le parti degli indirizzi che identificano gli host sono 1-254.Ricordate che l’indirizzo di broadcast è sempre quello più alto nella sottorete.ipcalc ha un altra funzionalità:permette di calcolare varie sottoreti con un solo comando.Supponete di voler suddividere la rete 10.150.0.0 in tre sottoreti per un totale di 100 host.Basterà dare a ipcalc la maschera e il numero di host desiderato in ciascun segmento:
$ipcalc 10.150.0.0/16 --s 25 25 50
ipcalc visualizzerà quindi le numerazioni e mostrerà gli intervalli gli indirizzi liberi.
ipcalc prevede alcune semplici opzioni,che potete vedere eseguendo:
$ipcalc --help
La notazione Classless Inter-Domain Routing (CIDR) è compatta e permette di specificare le sottoreti fino al livello di singolo host tramite il suffisso /32.