piccolo HOWTO – Instradamento con interfacce ppp0 e eth0

Ecco un modo per sfruttare il comando route di Linux per poter instradare i pacchetti a seconda dell’indirizzo ip che si vuole contattare. In pratica se, come me, avete l’esigenza di connettervi ad internet con l’interfaccia ppp0 (che nel mio caso corrisponde al modem del cellulare) e contemporaneamente di navigare all’interno di una intranet aziendale (e non) collegata a eth0 (o a qualsiasi altra interfaccia).

Questa è la tabella di routing a computer completamente scollegato, compare solo il richiamo al localhost

# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
127.0.0.0    0.0.0.0    255.0.0.0     U  0 0 0 lo

Ecco come si presenta la tabella di routing quando l’interfaccia di rete eth0 (la nostra intranet) è connessa ed attiva:

# route -n
Kernel IP routing table
Destination Gateway Genmask       Flags Metric Ref Use Iface
10.25.107.0  0.0.0.0    255.255.255.0 U  5 0 0 eth0
127.0.0.0    0.0.0.0    255.0.0.0     U  0 0 0 lo
0.0.0.0     10.25.107.1 0.0.0.0       UG 5 0 0 eth0

Se attiviamo anche la connessione ppp0 (ad internet) il computer si ritroverà nella situazione di non riuscire a determinare quale interfaccia utilizzare per poter navigare su internet o all’interno della intranet

# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.100.101 0.0.0.0    255.255.255.255 UH 45  0 0 ppp0
10.25.107.0     0.0.0.0    255.255.255.0    U  5  0 0 eth0
127.0.0.0       0.0.0.0    255.0.0.0        U  0  0 0 lo
0.0.0.0        10.15.107.1 0.0.0.0         UG  5  0 0 eth0
0.0.0.0         0.0.0.0    0.0.0.0          U 45  0 0 ppp0

Infatti in questa tabella compaiono 2 regole che come destinazione di default (0.0.0.0) rimandano a 2 interfacce diverse (eth0 e ppp0)… e non è bello. 8)

Tutto quello che dobbiamo fare, preferibilmente subito dopo l’aver attivato l’interfaccia eth0 e subito prima dell’attivazione della connessione ppp0 è lanciare i seguenti comandi da root:

# route add -net 10.0.0.0 gw 10.25.107.1 netmask 255.0.0.0 dev eth0
# route del -net default dev eth0
# route del -net 10.25.107.0 netmask 255.255.255.0 dev eth0

Con la prima riga inseriamo in tabella la nuova regola per l’instradamento dei pacchetti delle nostra rete aziendale (per tutti gli ip 10.*) attraverso il gateway predefinito definito dallo stesso dhcp che ci fornisce l’indirizzo ip (10.25.107.1) ed attraverso l’interfaccia di rete eth0.

Con la seconda riga cancelliamo la regola che reindirizza tutte le nostre chiamate di default (0.0.0.0) verso il gateway predefinito dalla rete (10.15.107.1), dato che la cosa non avrebbe senso, in quanto noi vogliamo limitare le chiamate al gateway interno solo nel caso in cui dobbiamo navigare all’interno della rete aziendale.

Con la terza ed ultima riga andiamo a cancellare anche l’altra regola, inservibile dato che per connetterci alla rete interna dovremo per forza passare dal gateway, mentre qui ci reindirizzebbe all’interfaccia ppp0.

Ecco il risultato finale delle nostre modifiche.

# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.100.101 0.0.0.0    255.255.255.255 UH 45 0 0 ppp0
10.0.0.0       10.25.107.1 255.0.0.0       UG  0 0 0 eth0
127.0.0.0       0.0.0.0    255.0.0.0       U   0 0 0 lo
0.0.0.0         0.0.0.0    0.0.0.0         U  45 0 0 ppp0

Buon lavoro!

Annunci

Lascia un commento

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...