Introduzione

In questa pratica guida scopriremo come si gestiscono due o più reti lan dedicando ad ognuna una connessione internet sfruttando un solo dispositivo hardware.

Un esempio di questa realtà la si può trovare all’interno di un hotel. Infatti in genere si trova una rete interna e un’altra rete dedicata al wifi dei clienti.

Come hardware è necessario un mini pc con almeno 4 schede di rete. In quest’articolo viene considerato come sistema operativo Debian o altre distro.

In realtà, per chi possiede delle conoscenze più avanzate, è sufficiente anche solo 3 interfacce. E’ necessario impostare la porta lan in trunk, ma serve anche uno switch compatibile.

Per raggiungere tale obiettivo è necessario creare tante tabelle di routing quante sono le connessioni internet da gestire. Inoltre è indispensabile aggiungere dei comandi nelle impostazioni delle schede di rete da far eseguire in automatico.

Situazione ipotetica

Supponiamo di trovarci in questa situazione come nella seguente immagine.

schema di rete di esempio

Ed abbiamo i seguinti indirizzi sulle schede di rete:

  • eth0: ip 10.10.10.20/24 con gateway 10.10.10.1
  • eth1: ip 10.10.11.20/24 con gateway 10.10.11.1
  • eth2: ip 192.168.1.1/24
  • eth3: ip 192.168.2.1/24

Creazione tabelle di routing

Creare le tabelle di routing è molto semplice in realtà.

E’ necessario modificare il file /etc/iproute2/rt_tables ed aggiungere queste due righe alla fine:

200 uplink1
201 uplink2

Regole di nat

Per il corretto funzionamento è necessario eseguire queste regole di nat:

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
iptables -A FORWARD -s 192.168.1.0/24 -o eth0 -j ACCEPT
iptables -A FORWARD -d 192.168.1.0/24 -i eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -s 192.168.2.0/24 -o eth1 -j ACCEPT
iptables -A FORWARD -d 192.168.2.0/24 -i eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT

Abilitazione dell’ip forwarding

Bisogna ricordarsi anche abilitare l’ip forwarding tra le interfacce, modificando il file /etc/sysctl.conf:

# /etc/sysctl.conf
# Togliere l'hashtag all'inizio della riga
net.ipv4.ip_forward=1

Configurazione schede di rete

L’ultimo step da eseguire consiste nel configurare le schede di rete modificando il file /etc/network/interfaces in questo modo.

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
address 10.10.10.20
netmask 255.255.255.0
post-up ip route add default via 10.10.10.1 table uplink1
post-up ip route add 192.168.1.0/24 dev eth2 table uplink1
post-up ip rule add from 192.168.1.0/24 table uplink1

auto eth1
iface eth1 inet static
address 10.10.11.20
netmask 255.255.255.0
post-up ip route add default via 10.10.11.1 table uplink2
post-up ip route add 192.168.2.0/24 dev eth3 table uplink2
post-up ip rule add from 192.168.2.0/24 table uplink2
auto eth2
iface eth2 inet static
address 192.168.1.0
netmask 255.255.255.0

auto eth3
iface eth3 inet static
address 192.168.2.1
netmask 255.255.255.0

Adesso abbiamo ciò che volevamo.