Balanceo de Carga con Squid

Balanceo de Carga con Squid Proxy y dos Proveedores de Internet (ISP)

Aunque Squid Proxy puede configurarse con cientos de parámetros (dependiendo del contexto), vamos a aprender aquí una forma de hacer balanceo de carga con Squid Proxy y dos proveedores de Internet (ISP).

En algunos casos se usa el balanceo de carga con dos ISP, para poner a funcionar uno en caso de falla del otro (es decir, uno es contingencia del otro). Pero en este caso vamos a usar los dos proveedores de Internet, diviendo el tráfico normal del día entre ellos con Squid Proxy.

En este artículo voy a presentar tres métodos para balancear el tráfico, aunque de esos tres, tu puedes implementar el que consideres más adecuado para tu red.

La topología del primer caso es la siguiente:

Topología 1. El proveedor ISP 2 es el principal. ISP 1 es el proveedor alterno.

 

Primera Configuración del Balanceo de Carga con Squid Proxy


Tal como vemos en la topología, esta solución requiere tener dos servidores Proxys: uno con IP 192.168.0.72 conectado a  ISP 2, y el otro con IP 192.168.0.74 conectado a ISP 1.

El Proxy con IP 192.168.0.74 funciona como Padre, y el Proxy con IP 192.168.0.72 funciona como Hijo. Vamos a hacer que el tráfico hacía ciertos dominios circule a través del Padre, y el resto a través del Hijo.

Ambos servidores Proxys tienen la misma configuraci√≥n en su archivo /etc/squid/squid.conf. La √ļnica diferencia es que el Hijo tiene esta configuraci√≥n adicional:

acl REDIRECCIONA dstdomain .adobe.com .akamaized.net .cdn946.net .elpais.com.co .eltiempo.com .espaciotecnologico.co .googlevideo.com .habrox.xyz .kaspersky-labs.com .kaspersky.com .letio.com .uplynk.com .youtube.com

cache_peer 192.168.0.74 parent 8080 0 no-query default
cache_peer_access 192.168.0.74 allow REDIRECCIONA
never_direct allow REDIRECCIONA

Lo anterior significa que toda conexión que los clientes necesiten hacer hacía los dominios listados en la ACL REDIRECCIONA, deben salir a través del servidor Proxy Padre, el cual también está escuchando por el puerto 8080.

Tan f√°cil como eso.

Nota: Este método solo funciona para tráfico seguro SSL. El tráfico netamente http (puerto 80), queda bloqueado en su transito hacía el Proxy Padre.

Segunda Configuración de Balanceo de Carga con Squid Proxy


Este segundo m√©todo nos ofrece una soluci√≥n de balanceo de carga con Squid Proxy, sin necesidad de tener un cl√ļster tipo Padre – Hijo. Se trata de seleccionar una IP de cliente, o una subred privada, y redireccionarles todo su tr√°fico hac√≠a otro ISP directamente.

Para este caso es necesario que nuestro servidor Proxy cuente con otra tarjeta de red, y vinculada al otro Proveedor de Internet, al que yo llamo también Proveedor Alterno (ISP 1 en la topología).

Esta configuración requiere una ruta estática a nivel de kernel, es para que funcione el redireccionamiento. La configuración en Squid y en Linux, es así:

En Squid

acl DESVIADOS src 192.168.0.60 192.168.150.220

server_persistent_connections off
tcp_outgoing_address 192.168.5.2 DESVIADOS

En Linux

_# echo 10 squid >> /etc/iproute2/rt_tables
_# ip route add default via 192.168.5.1 table squid metric 101
_# ip rule add from 192.168.5.2 table squid

Podemos confirmar la existencia de la tabla squid, así:

_# ip route show table squid

Aquí la dirección IP 192.168.5.1 es la interfaz ethernet del router de nuestro ISP Alterno. Y la 192.168.5.2 es la tarjeta de red de nuestro servidor que se vincula al mismo ISP alterno (ver topología 2).

Entonces, todo, absolutamente todo el tráfico de aquella dirección IP que esté en la ACL DESVIADOS, será desviado directamente hacía el proveedor alterno (ISP 1 en la topología).

Tercera Configuración


La siguiente y √ļltima configuraci√≥n de balanceo de carga con Squid que ofrezco, es en realidad una combinaci√≥n de la primera y la segunda. Esta es su topolog√≠a:

Topología 2

A continuación su configuración:

cache_peer 192.168.0.74 parent 8080 0 no-query default
cache_peer_access 192.168.0.74 allow REDIRECCIONA
never_direct allow REDIRECCIONA !DESVIADOS

server_persistent_connections off
tcp_outgoing_address 192.168.5.2 DESVIADOS

Su configuración en Linux

echo 10 squid >> /etc/iproute2/rt_tables
ip route add default via 192.168.5.1 table squid metric 101
ip rule add from 192.168.5.2 table squid

Ahora tenemos ambas configuración juntas para hacer una balanceo más completo. La diferencia ahora es esta línea:

never_direct allow REDIRECCIONA !DESVIADOS

Ahí, le decimos a la directiva que no, no bloquee a los que están en la ACL DESVIADOS. Ojo!, si no lo específicamos, todos los del grupo DESVIADOS no podrán conectarse a los dominios que estén en la ACL REDIRECCIONA.

Siguiente Parte

En nuestra siguiente entrega verémos como habilitar Windows Update en Squid Proxy.

Décima Parte >


Valora este artículo:

Balanceo de carga con Squid y dos ISP
5,0 rating based on 12.345 ratings
Overall rating: 5 out of 5 based on 2 reviews.

 

Name
Email
Review Title
Rating
Review Content

 

De lujo

★★★★★
‚Äú De lujo, todo bien explicado.‚ÄĚ
- Juan David

Rejio

★★★★★
‚Äú Justo lo que buscaba‚ÄĚ
- Jhonnier Salazar
Comparte esto en
Publicado en Servidor Proxy.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *