Configurare un semplice router locale

 

Avete un unica connessione a Internet condivisa e la vostra LAN è suddivisa in varie sottoreti.Volete che le varie sottoreti possono cominciare tra loro .Come fare?Tutto quello di cui avete bisogno è un singolo router a cui connettere tutte le sottoreti.Supponete di avere le seguenti tre sottoreti:Supponete di avere le seguenti tre sottoreti:

  • 10.25.0.0/16
  • 172.32.0.0/16
  • 192.168.254.0/24

Il router avrà bisogno di tre interfacce di rete con i seguenti indirizzi

  • eth0 = 10.25.0.10
  • eth1 = 172.32.12.100
  • eth2 = 192.168.254.31

Ciascuna sottorete ha il proprio switch e gli switch sono connessi al router, come mostrato nella seguente figura.

Ora dovete abilitare il forwarding IP sul router.Potete farlo dalla riga di comando:

# echo 1 > /proc/sys/net/ipv4/ip_forward


Questa configurazione è temporanea e quindi dovrete inserirla in /etc/sysctl.conf per non doverla reimpostare ad ogni reboot:

##/etc/sysctl.conf
net.ipv4.ip_forward = 1
# sysctl -p


Assegnare ora i tre indirizzi delle interfacce del router come gateway di default per le macchine delle tre sottoreti.Tutti gli host su 1025.0.0./16,per esempio,dovranno utilizzare 10.25.0.10 come gateway di default.Dopo aver effettuato queste configurazioni,le tre potranno scambiarsi traffico TCP/IP senza problemi.

Non dovete necessariamente utilizzare indirizzi tratti da reti private distinte come quelli nel nostro esempio.Noi lo abbiamo fatto solo per rendere evidente che si tratti di reti distinte.Potete utilizzare qualsiasi schema di indirizzamento,come in questi esempi:

  • 10.25.0.0/16
  • 10.26.0.0/16
  • 10.27.0.0/16

oppure

  • 172.16.1.0/24
  • 172.16.2.0/24
  • 172.16.3.0/24

L’unica cosa da evitare è il conflitto tra indirizzi:l’unico modo per evitare il pericolo è usare ipcalc.Quando abilitate L’IP forwarding sul router,abilitate lo smistamento automatico dei pacchetti tra le varie interfacce.Questa impostazione vale per due tipi di rete:

  • reti che utilizzano indirizzi privati:
  • reti che utilizzano indirizzi pubblici routabili.

Non funziona se dovete far condividere una connessione Internet a una rete che utlizza indirizzi privati poiche gli indirizzi privati non sono riconosciuti dai router pubblici di Internet.In questo caso,avrete bisogno di un NAT (Network Address Translator).Supponete di aver un router dotato di tre interfacce di rete connesso a due sottoreti locali che utilizzano indirizzi privati e una WAN dotata di indirizzo IP pubblico.Le due sottoreti locali private si vedranno senza problemi,ma non potranno andare sulla WAN fino a quando non configurerete il NAT.

A rigor di termine,gli indirizzi IP privati sono routabili,altrimenti le vostre sottoreti locali non potrebbero funzionar,ma gran parte degli ISP li filtrano e non li inviano verso Internet visto che,se lo facessero,Internet sarebbe inondata di pacchetti con indirizzi privati duplicati.

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.

Routing con Linux e comandi di rete

Dovrete imparare ad usare vari metodi simili tra loro per fare la stessa cosa.Il packege net-tools è lo standard per quanto riguarda la visualizzazione,creazione e la cancellazione delle route,l’elencazione dei dati sulle interfacce,l’assegnazione degli indirizzi,il loro caricamento e scaricamento e la gestione degli hosname.Il comando netstat è una utility che useremo spesso per visualizzare le route,le statistiche di traffico sulle interfacce,i socket in ascolto e le connessioni di rete attive.Questi sono i comandi contenuti nel package net-tools:

 

Continua a leggere

DNS Dinamico

# netcat is required to run this script

USERNAME=test@test.it
PASSWORD=password
HOSTNAME=web.test.dyndns.org

ADDRESS=dyndns.org
PORT=8078

connect() {
        echo -e "$USERNAME\n$PASSWORD\n$HOSTNAME" | nc $ADDRESS $PORT > /tmp/dnsninuxclient
}

if connect; then
        cat /tmp/dnsninuxclient
        if grep "KO" /tmp/dnsninuxclient > /dev/null; then
                echo "Error!"
                /bin/false
        fi
else
        echo "Connection error?"
        /bin/false
fi
1 25 26 27 28 29 30