Netfilter iproute - marking packets

2007-01-05 Per discussione Gianluca
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Salve,
ho due link ad internet e vorrei smistare il traffico utilizzando il
mark dei pacchetti.

Ho seguito alla lettera la guida del Linux Advanced Routing  Traffic
Control qui presente:

http://lartc.org/howto/lartc.netfilter.html

Cambiando:

iptables -A PREROUTING -i eth0 -t mangle -p tcp --dport 25 -j MARK
- --set-mark 1

in

iptables -A PREROUTING -i eth0 -t mangle -d XXX.XXX.XXX.XXX -j MARK
- --set-mark 2

Dove XXX.XXX.XXX.XXX è un ip di prova reale e normalmente raggiungibile.

Cambiando:

echo 201 mail.out  /etc/iproute2/rt_tables
ip rule add fwmark 1 table mail.out

in

echo 201 link2  /etc/iproute2/rt_tables
ip rule add fwmark 2 table link2

Cambiando:

ip route add default via 195.96.98.253 dev ppp0 table mail.out

in

ip route add default via YYY.YYY.YYY.YYY dev eth2 table link2

Dove YYY.YYY.YYY.YYY è il gateway della connessione.

Cosa succede?
Succede che se da un client collegato ad eth0 richiedo l'indirizzo
XXX.XXX.XXX.XXX non ricevo nessuna risposta e se provo a fare un
traceroute si blocca sull'ip del router YYY.YYY.YYY.YYY della connessione.

La cosa strana è che se inverto le parti, cioè configuro la connessione
del link2 come default e quella di default come link succede la stessa
cosa, cioè i pacchetti marcati a 2 si fermano sul gateway.

Siccome ho a disposizione ip statici per entrambe la connessione il NAT
l'ho effettuo sulla box Debian tramite l'SNAT:

iptables -t nat -A POSTROUTING -o eth1 -s 10.10.0.0/16 -j SNAT
- --to-source AAA.AAA.AAA.AAA
iptables -t nat -A POSTROUTING -o eth2 -s 10.10.0.0/16 -j SNAT
- --to-source BBB.BBB.BBB.BBB

Dove AAA.AAA.AAA.AAA e BBB.BBB.BBB.BBB sono ip pubblici dei rispettivi ISP.

Come mai non funziona?
Uso Debian Sarge con kernel 2.6.
Grazie,

Gianluca

- --
echo aculnaiG | awk 'BEGIN { FS =  }
{ for (i = NF; i = 1; i-- )
  printf $i }'; echo
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.1 (Darwin)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFFnwbtK1z3HmyB2QIRAr/ZAJ421mAEfxNqKSdhnWTxFFLLAmloUQCeNwFE
TBykP+EoDa+o2l05w4Tm8tI=
=UcCa
-END PGP SIGNATURE-


-- 
Per REVOCARE l'iscrizione alla lista, inviare un email a 
[EMAIL PROTECTED] con oggetto unsubscribe. Per
problemi inviare un email in INGLESE a [EMAIL PROTECTED]

To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



RISOLTO - Re: Netfilter iproute - marking packets

2007-01-05 Per discussione Gianluca
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Mi rispondo da solo:

echo 0  /proc/sys/net/ipv4/conf/eth2/rp_filter

Di default è a 1.

Che idiota a quest'ora è meglio dormire invece di perdere il sonno con
il routing.

Gianluca

Gianluca ha scritto:
 Salve,
   ho due link ad internet e vorrei smistare il traffico utilizzando il
 mark dei pacchetti.
 
 Ho seguito alla lettera la guida del Linux Advanced Routing  Traffic
 Control qui presente:
 
 http://lartc.org/howto/lartc.netfilter.html
 
 Cambiando:
 
 iptables -A PREROUTING -i eth0 -t mangle -p tcp --dport 25 -j MARK
 --set-mark 1
 
 in
 
 iptables -A PREROUTING -i eth0 -t mangle -d XXX.XXX.XXX.XXX -j MARK
 --set-mark 2
 
 Dove XXX.XXX.XXX.XXX è un ip di prova reale e normalmente raggiungibile.
 
 Cambiando:
 
 echo 201 mail.out  /etc/iproute2/rt_tables
 ip rule add fwmark 1 table mail.out
 
 in
 
 echo 201 link2  /etc/iproute2/rt_tables
 ip rule add fwmark 2 table link2
 
 Cambiando:
 
 ip route add default via 195.96.98.253 dev ppp0 table mail.out
 
 in
 
 ip route add default via YYY.YYY.YYY.YYY dev eth2 table link2
 
 Dove YYY.YYY.YYY.YYY è il gateway della connessione.
 
 Cosa succede?
 Succede che se da un client collegato ad eth0 richiedo l'indirizzo
 XXX.XXX.XXX.XXX non ricevo nessuna risposta e se provo a fare un
 traceroute si blocca sull'ip del router YYY.YYY.YYY.YYY della connessione.
 
 La cosa strana è che se inverto le parti, cioè configuro la connessione
 del link2 come default e quella di default come link succede la stessa
 cosa, cioè i pacchetti marcati a 2 si fermano sul gateway.
 
 Siccome ho a disposizione ip statici per entrambe la connessione il NAT
 l'ho effettuo sulla box Debian tramite l'SNAT:
 
 iptables -t nat -A POSTROUTING -o eth1 -s 10.10.0.0/16 -j SNAT
 --to-source AAA.AAA.AAA.AAA
 iptables -t nat -A POSTROUTING -o eth2 -s 10.10.0.0/16 -j SNAT
 --to-source BBB.BBB.BBB.BBB
 
 Dove AAA.AAA.AAA.AAA e BBB.BBB.BBB.BBB sono ip pubblici dei rispettivi ISP.
 
 Come mai non funziona?
 Uso Debian Sarge con kernel 2.6.
 Grazie,
 
 Gianluca
 

- --
echo aculnaiG | awk 'BEGIN { FS =  }
{ for (i = NF; i = 1; i-- )
  printf $i }'; echo
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.1 (Darwin)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFFnwjPK1z3HmyB2QIRAkhyAJ9UuDWuTerS2cjzvrtAfX/+v1w0NgCdFcfS
M7DdmkSLS7rZr8pxWkHPZ98=
=l8nX
-END PGP SIGNATURE-


-- 
Per REVOCARE l'iscrizione alla lista, inviare un email a 
[EMAIL PROTECTED] con oggetto unsubscribe. Per
problemi inviare un email in INGLESE a [EMAIL PROTECTED]

To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]