Muy buenas.

Tengo una máquina con tres placas de red:
una conectada a la red interna, y las otras dos conectadas a dos adsl.
En el equipo tengo un proxy (Squid) y quiero que el tráfico web salga
por uno de esos adsl y todo el resto del tráfico, por la otra conexión.


eth0 (red interna): 192.168.1.1

eth1 conexion adsl1: 192.168.20.2/24
        gateway adsl1: 192.168.20.1  (GATEWAY por defecto del equipo)

eth2 conexion adsl2: 192.168.30.2/24
        gateway adsl2: 192.168.30.1 (no está configurado en
/etc/network/interfaces)


Para eso agregué "10     adsl2" en /etc/iproute2/rt_tables
y configuré un script más o menos así:

#!/bin/bash
$NET_INTERNA=192.168.1.0/24
$NET_ADSL1=192.168.20.0/24
$NET_ADSL2=192.168.30.0/24
$IF_INTERNA=eth0
$IF_ADSL1=eth1
$IF_ADSL2=eth2
$IP_INTERNA=192.168.1.1
$IP_ADSL1=192.168.20.2
$IP_ADSL2=192.168.30.2
$GW_ADSL2=192.168.30.1

#armo una tabla donde el gateway por defecto es la conexión del ADSL2

ip route add 127.0.0.0/8 dev lo scope link table adsl2
ip route add $NET_INTERNA dev $IF_INTERNA scope link table adsl2 proto
kernel src $IP_INTERNA
ip route add $NET_ADSL1 dev $IF_ADSL1 scope link table adsl2 proto
kernel src $IP_ADSL1
ip route add $NET_ADSL2 dev $IF_ADSL2 scope link table adsl2 proto
kernel src $IP_ADSL2
ip route add default via $GW_ADSL2 dev $IF_ADSL2 table adsl2

# Establezco políticas de ruteo:
# si el paquete está marcado, se rutea con la tabla de adsl2
# si el paquete viene desde la ip del adsl2, se rutea con la tabla adsl2
# si no, usa la tabla por defecto

ip rule add fwmark 1 table adsl2 prio 100
ip rule add from $IP_ADSL2 table adsl2 prio 200
ip route flush cache


#Políticas por defecto
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP

# Marco los paquetes que salen de la máquina dirigidos a los puertos 80
y 443 para que salgan por la conexión del adsl2
iptables -t mangle -A OUTPUT -p tcp -m multiport --dports 80,443 -j MARK
--set-mark 1

# Preruteo los paquetes que llegan a la máquina hacia el proxy
iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 3128

iptables -A INPUT -i $IF_INTERNA -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

iptables -A FORWARD -i $IF_INTERNA -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

iptables -A POSTROUTING -o $IF_ADSL1 -j DNAT --to $IP_ADSL1
iptables -A POSTROUTING -o $IF_ADSL2 -j DNAT --to $IP_ADSL2


-------------------------------
Pero no logro que funcione.  Veo que salen los paquetes por la conexión
del ADSL2, pero no llegan los de regreso.
Probé cambiando la cadena mangle en PREROUTING en vez de OUTPUT, pero
tampoco.


Alguno/a se da cuenta de dónde puede estar el error?

Desde ya, gracias por el tiempo dedicado.


Javier.-
_______________________________________________
Lug mailing list
[email protected]
http://listas.fi.uba.ar/mailman/listinfo/lug
http://www.sindominio.net/ayuda/preguntas-inteligentes.html

Responder a