
[ Home | Liste | F.A.Q. |
Risorse | Cerca... ]
[ Data: precedente
| successivo
| indice ]
[ Argomento: precedente
| successivo
| indice ]
Archivio: Giugno 2006 ml@sikurezza.org
Soggetto: Re: [ml] Strano problema di iptables - Soluzione
Mittente: Gelpi Andrea
Data: Tue, 13 Jun 2006 22:51:29 +0200 (CEST)
Gelpi Andrea wrote:
Su una Debian testing fully patched a questa mattina ho 4 reti.
2 linee ADSL e 2 LAN.
Ho la necessità di far in modo che solo alcuni IP delle due LAN escano
su 1 ADSL, tutti gli altri devono uscire dall'altra ADSL.
Usando il comando ip route e ip rule ho creato due tabelle x le due
adsl in modo che ciò che entra da una adsl torni indietro dalla stessa
interfaccia.
Il Default gateway punta ad una sola delle adsl.
Nella tabella nat POSTROUTING ci sono le regole x fare SNAT (usate
dagli IP delle due LAN).
. . .
Ora con tcpdump vedo i pacchetti uscire dalla Adsl giusta e vedo
tornare le risposte, che però muoiono subito dopo.
Facendo del debug ho scoperto che i pacchetti di ritorno passano dalla
mangle PREROUTING table, ma non trovo traccia di questi pacchetti
nella nat PREROUTING table.
La soluzione l'ho trovata quando mi sono accorto che aggiungendo un
secondo default gateway in load balancing le cose cominciavano a
funzionare. Purtoppo però dopo una 30 minuti tornavo ad avere problemi.
Infatti nel mio caso se un certo IP della LAN esce dalla ADSL sbagliata
incappa in problemi generati sui sistemi remoti.
Banalmente non posso usare l'SMTP di Fastweb se esco tramite Telecom Italia.
Il fatto però che se esiste un default gateway per una certa interfaccia
nella tabella di routing globale (la main) i pacchetti di ritorno
entrano mi ha permesso di capire dove sta il problema.
Infatti /proc/sys/net/ipv4/conf/ethx/rp_filter è settato ad 1 di
default. Questo sulla debian con kernel 2.6.x.
E' stato sufficiente settarlo a 0 sulle due interfacce collegate ad
Internet per avere tutto funzionante senza ulteriori problemi.
A questo parametro non avevo pensato (e a dir la verità non ne parlano
nemmeno i vari HOWTO presenti sul sito di netfilter) in quanto due anni
fa avevo fatto una prova simile con una Red Hat 9.0 con kernel 2.4.x e
tutto funzionava bene. Ho infatti controllato (il sistema è ancora vivo)
e rp_filter non è settato.
La cosa carina è che usando la mangle table e la nat table e i comandi
ip route e ip rule è possibile avere un sistema perfettamente
funzionante senza un default gateway nella main table (routing table
ovviamente).
In questo caso vanno messe opportune regole anche nelle chain di output
(sia nat che mangle) o il sistema non sa come uscire su Internet. Per i
pacchetti in transito invece sono sufficienti le chain PREROUTING
(mangle) e POSTROUTING (nat).
--
ing. Andrea Gelpi
***************************************************
La Terra non la abbiamo ereditata dai nostri avi,
ma la abbiamo presa in prestito dai nostri bambini.
***************************************************
[ Home | Liste | F.A.Q. |
Risorse | Cerca... ]
www.sikurezza.org - Italian Security Mailing List
(c) 1999-2005