MULTIPLE INBOUND CONNECTIONS ON A SINGLE SERVER
ACCEDERE AD UN SERVER DA PIU’ IP E PIU’ GATEWAY
L’esigenza è quella di poter raggiungere lo stesso server, dall’esterno della propria intranet tramite differenti IP e connessioni. Avere più linee di connessione ad internet anche con tecnologie diverse aumenta notevolmente l’affidabilità e lo SLA di un servizio esposto sul Web, immaginate di disporre di due lienee che si appoggiano a due centrali differenti,anche se una delle due va a fuoco avrete sempre il vs server on-line.
Qundi supponiamo di avere due linee , ad esempio due ADSL connesse a due router con due ip distinti, avremo anche un gateway per ciascun router. Se avessimo due schede di rete la cosa sarebbe ancora più semplice, facciamo finta invece di averne una. Ci tocca creare una sk virtuale, o meglio dire un alias di rete detta eth0:0, se ne possono creare a volontà tipo eth0:1 , eth0:2 etc.
Per fare ciò è necessario editare /etc/network/interfaces come segue :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
GNU nano 2.0.7 File: /etc/network/interfaces # This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). # The loopback network interface auto lo iface lo inet loopback # The primary network interface auto eth0 #iface eth0 inet dhcp iface eth0 inet static address 192.168.3.22 netmask 255.255.255.0 network 192.168.3.0 broadcast 192.168.3.255 gateway 192.168.3.1 auto eth0:0 iface eth0:0 inet static address 10.10.20.22 netmask 255.255.255.0 network 10.10.20.0 broadcast 10.10.20.255 gateway 10.10.20.1 |
vediamo se facendo ripartire le interfaccie tutto funziona (mi tocco come a mio solito) :
1 |
sudo /etc/init.d/networking restart |
evvai !!!! pingo il mio cisco e risponde!!
salviamo il ns. bel file e passiao al passo successivo, definire le tabelle di routing per inbound traffic. Già come eravamo messi per la rete interna tutto già filava liscio, ma bisogna dire alla sk di rete virtuale di usare il gateway nuovo quando le richieste arrivano sul suo ip. Come fare? semplice mettendo mano a quel casino detto routing!!
Volendo fare le cose nel più semplice dei modi procedo con il creare due belle tabelle che se ne stanno per i cazzi loro editanto il file sudo nano /etc/iproute2/rt_tables. (bisogna spedire sti pacchetti a pedate nel culo, un po come i ns politici). Mi creo le due tabelle con un alias che mi ricorda in modo facile a chi faccio riferimento, ho due router un 3com e un cisco quindi la prima la chiamo tre_com e la seconda cisco come segue:
1 |
sudo nano /etc/iproute2/rt_tables |
1 2 3 4 5 6 7 8 9 10 11 12 13 |
# # reserved values # 255 local 254 main 253 default 0 unspec # # local # #1 inr.ruhep 1 tre_com 2 cisco |
definisco l’intstradamento per eth0 su tb tre_com :
1 |
ip route add default via 192.168.3.1 dev eth0 table tre_com |
1 |
sudo ip rule add from 192.168.3.1/24 table tre_com |
definisco l’intstradamento per eth0:0 su tb cisco :
1 |
ip route add default via 10.10.20.1 dev eth0 table cisco |
1 |
sudo ip rule add from 10.10.20.1/24 table cisco |
e qui sul server ho quasi chiuso. Tutto dovrebbe funzionare senza la necessità di riavviare nulla, ho modificato real time la tabella di routing.
L’ultimo problema è che sti quattro comandi se riavvio me li perdo, quindi li schiaffo nel file “/etc/rc.local”
1 2 3 4 5 |
ip route add default via 192.168.3.1 dev eth0 table tre_com ip rule add from 192.168.3.1/24 table tre_com ip route add default via 10.10.20.1 dev eth0 table cisco ip rule add from 10.10.20.1/24 table cisco exit 0 |