Newsgroup: it.comp.os.linux.sys
Titolo: entrare da 2 interfaccie in lan

Salve a tutti,
   ho un problemino con le rotte del firewall.
In pratica on 3 interfaccie:
eth0: lan
eth1: adsl1
eth2: adsl2
Il gateway predefinito è eth2, quindi su internet esco con quello. 
Inoltre da internet entro da eth2 senza problemi (ho un server web da 
raggiungere).
Premetto che sono in grado di marcare i pacchetti e redirigerli verso 
eth1, o mettere eth1 come predefinito e mandare alcuni pacchetti su 
eth2. Insomma, sembra funzionare tutto.
Il problema è che vorrei raggiungere il server web anche entrando su 
eth1, ma non ci riesco. Il browser sta un po' a pensare e poi da errore.
Se durante le prove mi metto in ascolto con "tcptrack -i eth1" vedo che 
arriva la richiesta, ma non so che fine faccia (ora che ci penso, non ho 
guardato i log del server http).
Avete idee da darmi? Grazie
Alessandro
PS: per arrivare fin qui ho messo a zero tutti i 
/proc/sys/net/ipv4/conf/*/rp_filter

 eth1, ma non ci riesco. Il browser sta un po' a pensare e poi da errore.
E dove sta, il server web?
-- 
           |Save our planet!
    Ciao   |Save wildlife!
   roberto |For your E-MAIL use ONLY recycled Bytes  !!
           |roberto poggi   
rpo...@softhome.net

 
Escono da eth2, visto che e' quello il gw predefinito!
Saluti.

 Avete idee da darmi? Grazie
Per vedere se e' un problema di routing, prova a mettere sul server una
route statica tramite eth1 che punta all'IP da cui ti connetti, cosi' eviti
un eventuale routing asimmetrico.

 E dove sta, il server web?
In realtà sta in un altro server; su questo dove c'e' il firewall c'e' 
comunque apache che risponde sulla 80 ed effettua un redirect 
trasparente sul server interno.
Alessandro

 ha scritto:

Io ho risolto questo problema con iproute2.
In pratica ho aggiunto una tabella in /etc/iproute2/rt_tables
(aggiungendo ad esempio la riga 200 adsl2)
poi in rc.local:
---
ip rule add from $ip_pubblico_eth1 table adsl2
ip route add default via $gateway_per_eth1 dev eth1 table adsl2
ip route flush cache
---
In pratica viene creata una nuova tabella di routing chiamata adsl2 che come 
gateway ha l'IP del router della LAN a cui è collegata la eth1 e tutti i 
pacchetti che vengono dall'IP della eth1 vengono instradati lì.
In questo modo il server può rispondere anche a queste chiamate (perché 
saranno dirette verso il suo IP eth1 e lui risponderà da quello e quindi 
verrà instradato correttamente).
P.S.: La soluzione non è mia, è merito di altri consigli che ho ricevuto 
sempre su questo newsgroup tempo fa.

 sempre su questo newsgroup tempo fa.
Allora non vale ;-)
Alessandro

 sembra non arrivare al server http.
Probabilmente non viene stabilito nemmeno l'handshake della sessione TCP.
Sempre per via del fatto che il tuo server non risponde correttamente o per 
via del fatto che usa un gateway sbagliato (prova ping 
www.libero.it
 -s 
$ip_eth1 per vedere se funziona, così emetti i pacchetti da quello specifico 
indirizzo).
 

 indirizzo).
... e invece funziona tutto (probabilmente intendevi l'opzione -I)
Ora ho però una nuova informazione: se collego un pc sullo stesso router 
di eth1 allora riesco a connettermi, ma solo se metto l'ip di eth1. Se 
metto l'ip pubblico non mi fa connettere (ma comunque tcptrack rileva il 
tentativo di collegamento), eppure eth1 è nattato full 1 a 1 con l'ip 
pubblico e sul router il firewall è disattivato.
Cosa cambia fra i due casi?
Se collego il pc sul router che sta su eth2 e cerco di entrare su eth1 
dall'ip pubblico allora non riesco a collegarmi, stesso caso dell'ip 
pubblico di cui sopra.
O il router è andato, oppure altre regole di firewall censurano qualcosa.
Alessandro

 qualcosa.
A questo punto sospetto anche io che ci sia qualcosa che non va sul router.