Foro de Soporte Foro de Soporte

« Volver a Herramientas de Monitoreo

proxy iptables subredes.

Vista combinada Visión Plana Vista de árbol
toggle
Hola a todos, soy nuevo en este foro presento aquí mi gran y eterno problema que me lleva persiguiendo varias semanas. espero encontrar por fin una solución.

Mi problema es el siguiente.

Dispongo de un server linux ( centOS ) con tres tarjetas de red.
eth0 = 192.168.1.10 (LAN)
eth1 = 192.168.5.50 => puerta enlace 192.168.5.10 (router adsl 1)
eth2 = 192.168.5.60 => puerta enlace 192.168.5.20 (router adsl 2)


Estoy intentando hacer que a partir de un rango de ip's de LAN me salga a internet por un adsl determinado. es decir:
Necesito que de la ip 192.168.1.1 hasta 192.168.1.125 salga a internet por la puerta de enlace del (adsl1) 192.168.5.10 i el resto ( o otro rango de ip's) por la (adsl2) 192.168.5.20.

He configurado iptables haciendo nat para pasar los paquetes por el squid y luego dirigirlos a la puerta de enlace que yo quiera, pero no hay manera, parece ser que solo me funciona el primer rango que sale por el (adsl1) que es el que coincide con la salida por defecto (getaway) a internet del proxy, he intentado poner las dos adsl por defecto ( por probar ) pero no hay manera, desde la LAN hago ping a las targetas eth1 y eth2 pero no a los routerts adsl.

He estado mirando y dan una posible solución creando tablas de enrutamiento, pero he intentado crearlas y no ha dado resultado he utilizado. ROUTE ADD -NET .... pero sin éxito, ya no se identificar donde esta el problema...

Dejo la configuración de las Iptables que estoy utilizando, por si alguien puede detectar algún error que estoy pasando por alto.

SQUID_SERVER="192.168.1.10"
# Interface connected to Internet
INTERNET_A="eth1"
INTERNET_B="eth2"
# Interface connected to LAN
LAN_IN="eth0"
# Squid port
SQUID_PORT="3128"
# DO NOT MODIFY BELOW
# Clean old firewall
/sbin/iptables -F
/sbin/iptables -X
/sbin/iptables -t nat -F
/sbin/iptables -t nat -X
/sbin/iptables -t mangle -F
/sbin/iptables -t mangle -X
# Load IPTABLES modules for NAT and IP conntrack support
/sbin/modprobe ip_conntrack
/sbin/modprobe ip_conntrack_ftp
# For win xp ftp client
/sbin/modprobe ip_nat_ftp
echo 1 > /proc/sys/net/ipv4/ip_forward
# Setting default filter policy
/sbin/iptables -P INPUT DROP
/sbin/iptables -P OUTPUT ACCEPT
# Unlimited access to loop back
/sbin/iptables -A INPUT -i lo -j ACCEPT
/sbin/iptables -A OUTPUT -o lo -j ACCEPT
# Allow UDP, DNS and Passive FTP
/sbin/iptables -A INPUT -i $INTERNET_A -m state --state ESTABLISHED,RELATED -j ACCEPT
/sbin/iptables -A INPUT -i $INTERNET_B -m state --state ESTABLISHED,RELATED -j ACCEPT
# set this system as a router for Rest of LAN
/sbin/iptables -t nat -A POSTROUTING -m iprange --src-range 192.168.1.1-192.168.1.30 -o $INTERNET_A -j MASQUERADE
/sbin/iptables -t nat -A POSTROUTING -m iprange --src-range 192.168.1.31-192.168.1.60 -o $INTERNET_B -j MASQUERADE
/sbin/iptables --append FORWARD --in-interface $LAN_IN -j ACCEPT
# unlimited access to LAN
/sbin/iptables -A INPUT -i $LAN_IN -j ACCEPT
/sbin/iptables -A OUTPUT -o $LAN_IN -j ACCEPT
# DNAT port 80 request comming from LAN systems to squid 3128 ($SQUID_PORT) aka transparent proxy
/sbin/iptables -t nat -A PREROUTING -i $LAN_IN -p tcp --dport 80 -j DNAT --to $SQUID_SERVER:$SQUID_PORT
# if it is same system
/sbin/iptables -t nat -A PREROUTING -i $INTERNET_A -p tcp --dport 80 -j REDIRECT --to-port $SQUID_PORT
/sbin/iptables -t nat -A PREROUTING -i $INTERNET_B -p tcp --dport 80 -j REDIRECT --to-port $SQUID_PORT
# DROP everything and Log it
/sbin/iptables -A INPUT -j LOG
/sbin/iptables -A INPUT -j DROP

mi tabla de rutas del kernel es la siguiente:

# /sbin/route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.5.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
192.168.5.0 0.0.0.0 255.255.255.0 U 0 0 0 eth2
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth2
0.0.0.0 192.168.5.10 0.0.0.0 UG 0 0 0 eth1

Espero me haya explicado bien, he buscado post relacionados con este tema pero no he encontrado alguno que coincida con mi caso.

Gracias de antemano!

Hola jefco.


Por lo que se Squid tiene la habilidad de administrar varios enlaces hacia internet por me dio del metodo de balanceo de carga, con esto el squid administra que usuarios salen por un enlace o por otro.

Tambien se puede hacer por medio del firewall

Te mando lo siguientes links con informacion.

http://www.linuxquestions.org/questions/linux-networking-3/squid-proxy-with-multi-wan-links-and-load-balancer-792457/?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+linuxquestions%2Flatest+%28LQ+-+Latest+Threads%29
http://soad1982.blogspot.com/2010/02/advance-routing-on-linux.html
http://wiki.squid-cache.org/ConfigExamples/Strange/RotatingIPs#Example:_Rotating_three_IPs_based_on_time_of_day

Espero esto te pueda ayudar.............