Newsgroup: it.comp.os.linux.sys
Titolo: Policy routing

Sto cercando di ottenere una configurazione in cui la rete 
10.0.0.0/24
 esca tramite il gateway 192.168.0.1 e la rete 
10.10.10.0/24
 esca tramite 192.168.0.2
 
Ho seguito questo:
http://lartc.org/howto/lartc.rpdb.html
 
 
In soldoni devo creare una nuova tabella:
# echo 200 ADSL2 >> /etc/iproute2/rt_tables
 
Buttarci dentro la rete sorgente che deve uscire tramite tale ADSL:
# ip rule add from 
10.10.10.0/24
 table ADSL2
 
Settare il gateway predefinito di tale tabella:
# ip route add default via 192.168.0.2 dev br10 table ADSL2
 
Non funziona una cippa.
Ho anche pensato ad aggiungere un riferimento alla subnet del gateway, vuoi mai che il traffico una volta entrato nella tabella ADSL2 non sappia più come raggiungere il gateway:
 
#ip route add 
192.168.0.2/32
 dev fe1 table ADSL2
 
Non cambia nulla.
 
La macchina sulla quale sto operando è un firewall che fa da gateway per alcune subnet.
Ho una seconda macchina, connessa al firewall mediante una VPN in bridge, che normalmente esce tramite l'ADSL1 (il gateway predefinito) ma mediante:
 
# mtr -a 10.10.10.2 8.8.8.8
 
(10.10.10.2 è l'ip che ha la macchina client su una delle sue interfacce, che terminano in bridge sul firewall mediante vpn)
 
dovrei riuscire ad eseguire un trace usando tale IP e di conseguenza finire nella tabella ADSL2 sul firewall.
 
Non funziona.
 
Alternative per fare una cosa del genere?

 Alternative per fare una cosa del genere?
 
La prima parte dovrebbe essere giusta, ho fatto una cosa simile tempo 
fa. Sicuro che il router ADSL 192.168.0.2 abbia il percorso di routing 
al contrario?
 
ip route show su entrambe le table?
ip rule ?
 
Enrico

 ip rule ?
 
# ip rule
0:	from all lookup local 
32764:	from 
10.10.10.0/24
 lookup ADSL2
32766:	from all lookup main 
32767:	from all lookup default 
 
 
 
Non mi è molto chiaro il concetto però.
Io ho creato due tabelle, teoriamente del tutto inpendenti tra loro.
Quindi, il traffico che va in ADSL2, deve essere in grado di gestirsi in autonomo avendo tutte le route necessarie presenti dentro la sua stessa tabella. Nel caso mancasse una route, essa non sarebbe letta dalle altre tabelle, dico bene?
 
Lasciando solo il default gw dentro tabella ADSL2, il traffico esce ma quando poi vi rientra deve avere anche la route per comunicare nuovamente con l'host
di origine, nel mio caso 
10.10.10.0/24
, dico bene?
Se rimuovo quella route, smette di funzionare tutto.
 
Ma il kernel come fa a sapere che il traffico di ritorno deve rientrare in ADSL2 e non in main ? Di default il traffico rientra sempre nella stessa table dalla quale è uscito?

 #ip route add 
192.168.0.2/32
 dev fe1 table ADSL2
  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Questo non serve a niente
Son riuscito a far funzionare (apparentemente) tutto senza mettere il riferimento al gateway ma mettendo solo la route sorgente nella tabella ADSL2:
 
# route add 
10.10.10.0/24
 dev br10 table ADSL2
 
Senza la riga di cui sopra non funziona nulla.

 Alternative per fare una cosa del genere?
 
Installi shorewall e configuri due righe in providers e rtrules
 
 
-- 
Flavio Visentin
 
Scientists discovered what's wrong with the female brain: on the left
side, there's nothing right, and on the right side, there's nothing left

 Installi shorewall e configuri due righe in providers e rtrules
 
Non posso, la rete non è semplice come ho scritto.
Cambiare script per il firewall non è difficile, ma impossibile.

 # ip route add default via 192.168.0.2 dev br10 table ADSL2
 
Deve funzionare.
Io ho tipo 5 tabelle di routing in parallelo. :)
ip route flush cache prima delle prove aiuta. :)

 ip route flush cache prima delle prove aiuta. :)
 
funziona funziona, sfiga vuole che sia saltata l'adsl proprio durante le prove.
in questi casi prima che te ne accorgi bestemmi e riconfiguri tutto 45 volte.