jueves, 21 de octubre de 2010

Balanceo de carga con pfSense



Hoy cambiaremos un poco de tema, ya que pfSense es una distribución mínima para utilizar como proxy pero no está basada en GNU/Linux, sino en FreeBSD.

Explicaré de forma simple como realizar balanceo de carga (en la práctica la suma de dos WAN). No voy a explicar qué direcciones IP usar, no hablaré de puertas de enlace ni DNS. Supondré que saben lo básico en redes. Aunque está en inglés, tampoco voy a explicar como instalar pfSense ya que es muy simple y hay bastante documentación sobre eso en internet.

Necesitaremos una pc con requerimientos mínimos y hardware compatible con pfSense.

La primera vez que lo iniciamos luego de tenerlo instalado en nuestro HD, debemos definir cual será nuestra placa de red de LAN, cual será la placa de red de WAN y cual será OPT1 (WAN2 para nuestros propósitos). A continuación, deberemos abrir la interface web con cualquier browser desde otra pc en la misma subred en la dirección por defecto (que podemos cambiar luego), la que será nuestra nueva puerta de enlace: http://192.168.1.1 El usuario por defecto es "admin" y la contraseña por defecto es "pfsense".

Para configurar las direcciones IP de las interfaces de red, nos dirigimos al menú Interfaces -> LAN, Interfaces -> WAN e Interfaces -> OPT1 según corresponda. Deberemos configurarlas como IPs fijas normalmente en la IP de DMZ que configuremos en los routers que usemos en cada conexión.


Tener en cuenta que mi red es así:

WAN:
IP: 192.168.101.100
Gateway: 192.168.101.1

WAN2:
IP: 192.168.5.100
Gateway: 192.168.5.1

De DNS uso los de Google:
DNS1: 8.8.8.8
DNS2: 8.8.4.4


Configuramos a continuación las reglas del balanceo e carga desde el menú Services -> Load Balance. Nos quedarán así:
La primera regla es la que hace el balanceo de carga. Las otras dos harán el failover por si se cae una u otra conexión.

Reglas del firewall: En el menú nos dirigimos a Firewall -> Rules:


Las tres primeras reglas las utilizo para poder acceder a la configuración de los routers de las dos conexiones. Normalmente ustedes no las necesitan, igual que las tres siguientes, que son para entrar a webs que nos cierran la sesión si cambiamos de IP. Las dos reglas en sí más importantes son las últimas dos, que nos permiten el balanceo de carga y navegar por sitios que usan el protocolo HTTPS, sensible a cambios de IP.

Con eso configurado, si nos dirigimos al menú Status -> Load Balancer, deberíamos ver algo como lo siguiente:

Lo que nos indica que las dos conexiones están funcionando como correspode.

Si necesitan más datos, pueden leer el tema en la wiki de pfSense, donde está explicado con más detalle. La idea del post es simplemente acercarlos y orientarlos un poco más al tema.

A continuación les dejo un par de fotos del proxy que tengo en casa.

Esta es una prueba de descarga usando DownThemAll! en Mozilla Firefox con una conexión Speedy de 2mbps y una de Telecentro de 3mbps.



 Este es mi proxy instalado, configurado y funcionando. K6-2 500Mhz @550Mhz con 256MB de ram, disco de 8GB y 3 placas de red.



Vista trasera mostrando las tres placas de red.

9 comentarios:

dexter_one dijo...

Hola!

Se te agradece tu tutorial, por otro lado tengo 2 preguntas:

1.- Segun entiendo el balanceo de carga lo que hace no es "sumar" ambas conexiones si no mas bien, ocupar ambas conexiones cuando se satura una, entonces para acelerar las descargas tendria que ocupar un acelerador de descargas verdad?

2.- De ser asi que acelerador me recomiendas para linux y para Win?

Saludos!

OzK dijo...

dexter_one: Exactamente, lo que hace es "sumar", entre comillas. Lo que hace es ir alternando los pedidos http por una u otra conexión, de forma tal que si abres un sitio web, baja algunas imágenes por una conexión y las demás por la otra. Navegando en sí no necesitás nada más. Para hacer una descarga sí necesitás un acelerador de descarga, para lograr múltiples conexiones al sitio y así poder dividir la carga.

Como acelerador de descarga uno el complemento DownThemAll! de Firefox, el cual funciona tanto en Windows como en GNU/Linux.

¡Saludos!

Anónimo dijo...

increible amigo lo estou por montar felicidades y gracias

OzK dijo...

No hay por qué. Felíz de que mi contribució a la comunidad sea útil.

Un abrazo y cualquier cosa estoy a su disposición.

Pere dijo...

hola, profundizando en el tema. ¿Cómo puedo hacer NAT a través de una de las ADSL que tengo en load-balancing?.

Saludos.

Anónimo dijo...

Muy buen manual amigo. ¿Como sería la conección para una red de 20 computadoras?

Un cordial saludo.

Hosting Chile dijo...

Excelente tutorial
saludos.
Hosting Chile

Anónimo dijo...

me gustaria saber como montaste tu servidor proxy, porque quiero armar uno , espero que subas un tutorial de como armar un servidor proxy... saludos.

Anónimo dijo...

espero que me puedas dar tu msn.. te dejo el mio es tsuujk@hotmail.com..