Está en la página 1de 6

Balanceo de carga por tipo de trafico

Introduccin
El manejo del ancho de banda es una parte escencial del trabajo diario de todo ISP,
usuario comercial o domstico. Hay varias formas diferentes de hacer esto con el
RouterOS Mikrotik ya sea usando QoS, Limite de tasa de transferencia, limite de paquetes,
solo por nombrar algunos En lo personal, el autor del presente, es administrador de un ISP
que presta servicio inalmbrico en una zona donde no hay otro proveedor de conexiones
de banda ancha (Ej.: Cable, Fibra, ADSL, etc). El autor se encuentra con el problema de
que su mas rpida conexin troncal no le provee suficiente ancho de banda como para
tener un solo vnculo contra internet. Como consecuencia de esta limitacin el balanceo de
carga es sumamente importante para el (y para el traductor del presente!) En el pasado el
autor utiliz ECMP, conexion con mantenimiento persistente de la puerta de enlace (para
mas datos vea http://wiki.mikrotik.com/wiki/Load_Balancing) como algunos otros mtodos.
Como era de esperar, el autor encontr muchos problemas de retardos (entre otros), no se
balanceaba correctamente, se cortaban las descargas largas, problemas con los
mensajeros instantneos (MSN, Yahoo, etc) son solo algunos. Asi que el autor se dedic a
investigar como obtener un mayor control de su ancho de banda tratando de minimizar los
potenciales problemas (al igual que el traductor!). El resultado fu el balanceo de carga en
funcin del trfico que se presenta. Este tutorial esta escrito para tratar este tema en forma
especfica y lo mas profunda posible, en un futuro el autor agregar informacin sobre
resistencia a fallas de enlace (fail over) y QoS (y este traductor traducir!)
(n del t: algunos trminos son dejados en ingles a fin de facilitar su ubicacin entre los
comandos del RouterOS)

Funciones del RouteOS Utilizadas aqu

Firewall mangle rules

Firewall address-lists

Routing

Paso 1 - Cmo separar el trfico?


Antes de ingresar a su RouteOS WinBox ya debe tener una idea aproximada de como
separar su trfico, y debe entender que trafico puede separarse y cual no.
Aqu tiene un ejemplo de que trfico es separable (sin orden en particular):

HTTP trfico (port 80)

SSL trfico (port 443)

POP3 trfico (port 110)

SMTP trfico (port 25)

P2P trfico (varios puertos)

Unknown trfico (varios puertos)

Despues de hacer una lista del tipo de trfico, y de los puertos en que estos trabajan,
deberamos revisar la lista y decidir si este trfico puede ser forzado a salir por una
determinada conexin a internet.
usando la lista anterior como ejemplo aqu es lo que vemos:

HTTP trfico (sin impedimentos conocidos)(n de t: si conocen alguno, avisen!)

SSL trfico (algunos problemas, para los sitios SSL normales y el 90% de todo el
software no es un problema, luego veremos por que pueden surgir)

POP3 trfico (sin impedimentos conocidos)

SMTP trfico (sin impedimentos conocidos)

P2P trfico (el p2p debe salir siempre por la misma conexin como trfico
desconocido, luego veremos por que)(n del t: aqu se usa "desconocido" como "sin
catalogar")

desconocido trfico (debe salir por la misma conexin y nombrado como P2P, mas
adelante se explica el motivo)

Ahora para una explicacin rpida de como pueden surgir algunos problemas dependiendo
del tipo de trfico. Algunos programas o sitios web no se llevan bien con los mltiples
conexiones desde direcciones IP diferentes, esta es la razn por la que ECMP tiene varios
problemas. El autor proporciona una solucin simple para los casos particulares y aislados
en los que a alguno de nuestros usuarios el balanceo de carga les resulte un estorbo.
De nuevo y usando el ejemplo anterior, veremos un problema que puede surgir.
SSL - Lo bello de un sitio web es que utiliza peticiones separadas para cada tipo de datos,
ej.: cargar 3 fotos diferentes de 3 fuentes diferentes con requerimientos a cada uno de los
respectivos servers. El resultado es que tenemos un sitio web que usa SSL y HTTP,
conocemos que en la mayora de los casos los servidores web contestan la peticin sin
ocuparse de la direccin IP origen del server. No obstante, en este tipo especial de sitio
web, el programador/diseador "revisa" desde "que direccin IP" se origin el pedido y si
encuentra diferencias entonces no completar la respuesta (esto puede ser accidental o a
propsito). El autor tuvo 2 casos as, en ambos casos fueron sitios mdicos con seguridad
para los datos de esas empresas.
P2P y desconocido - Manejamos este trfico junto por que este es un problema nico. El
RouterOS no puede identificar el P2P en una condicin simple, pero, a cambio, analiza
paquetes!, esto quiere decir que el RouterOS necesita tiempo para ver los datos ANTES y
saber si es en efecto P2P. Como resultado RouterOS no sabe si tiene un paquete P2P
hasta DESPUES que la conexin est establecida. Esto es importante por que la nica
manera de enviar este trfico a una determinada conexin a internet es conociendo el
trfico ANTES de que el mismo establezca una conexin de salida, el trfico desconocido
es eso, "desconocido". Marcndolo como tal se puede definir por que conexin saldr y se
puede especificar que enlace se usa para P2P y el trafico "en general" (muy til!)

Paso 2 - Configurando la red


Para empezar a desarrollar este tutorial, necesitamos una red ficticia que usaremos como
ejemplo

Computadoras Cliente (172.18.1.0/24)

Internet Gateways (10.0.1.1/24, 10 0.2.1/24)

RouterOS IPs (10.0.1.2/24, 10.0.2.2/24)

Asumimos que las direcciones IP, rutas por defecto y DNS ya estan correctamente
configurados para que los usuarios tengan acceso a internet
Creamos una Address-List que permita la salida de nuestros usuarios a internet
/ ip firewall address-list
add list="Allowed - Internet" address=172.18.1.0/24 comment=""
disabled=no

Creamos una Address-List para aquellos usuarios que necesitan saltarse el balanceo
/ ip firewall address-list
add list="WAN-01" address=172.18.1.24/32 comment="" disabled=no

add list="WAN-02" address=172.18.1.76/32 comment="" disabled=no

Aplicamos 'Masquerading'al trfico a cada conexin a internet


/ ip firewall nat
add chain=srcnat action=masquerade out-interface="WAN - 01" srcaddress-list="Allowed - Internet" comment="Gateway 10.0.1.1/24"
disabled=no
add chain=srcnat action=masquerade out-interface="WAN - 02" srcaddress-list="Allowed - Internet" comment="Gateway 10.0.2.1/24"
disabled=no

Los clientes deben poder navegar la internet, sin embargo una sola conexin a internet
ser usada (la que est declarada en la default route)

Paso 3 - Usando la herramienta MANGLE en RouterOS's


marcamos el trfico especfico
Lo que sigue son los comandos necesarios del RouterOS para marcar el trfico en
particular por una determinada ruta. Para esto se usa la misma tabla de trafico mostrada
en el ejemplo
/ ip firewall mangle
add chain=prerouting action=mark-routing new-routing-mark="WAN-01"
src-address-list="WAN-01" passthrough=no comment="" disabled=no
add chain=prerouting action=mark-routing new-routing-mark="WAN-02"
src-address-list="WAN-02" passthrough=no comment="" disabled=no
add chain=prerouting action=mark-routing new-routing-mark="HTTP
Trafico" passthrough=no dst-port=80 protocol=tcp comment=""
disabled=no
add chain=prerouting action=mark-routing new-routing-mark="SSL
Trafico" passthrough=no dst-port=443 protocol=tcp comment=""
disabled=no
add chain=prerouting action=mark-routing new-routing-mark="POP3
Trafico" passthrough=no dst-port=110 protocol=tcp comment=""
disabled=no
add chain=prerouting action=mark-routing new-routing-mark="SMTP
Trafico" passthrough=no dst-port=25 protocol=tcp comment=""
disabled=no
add chain=prerouting action=mark-routing new-routing-mark="P2P
Trafico" passthrough=no p2p=all-p2p comment="" disabled=no
add chain=prerouting action=mark-routing new-routing-mark="Unknown
Trafico" passthrough=no comment="" disabled=no

Las primeras dos lineas, nos dejan un mtodo para que puedan salir aquellos clientes que
no puedan salir por el balanceo de carga y necesiten una conexin determinada. Las
lneas que siguen, con marca de trfico basado en el puerto de destino, dicen que trfico
se marca y que trfico se deja pasar an si no lo conocemos, esto es siempre para
diferentes conexiones a internet tanto si sabemos que es P2P como si no pudiendo salir
tambien por la ruta por defecto. El autor tambien marca el p2p separado para que pueda
salir por la misma conexin a internet como si fuera desconocido. Hace esto por algunas
buenas razones, una es que puede detener TODO el p2p con solo deshabilitar la ruta de
salida y otra es que para su RouterOS es usa QoS que es muy sencillo de recordar como
esta configurado Asi ahora vamos a poner cada trfico en su respectiva ruta, lo que sigue
se agrega a las rutas actuales

Paso 4 - Usando la funcin de ruteo para forzar el trfico


por una determinada conexin
Lo que sigue son los comandos necesarios para agregar las rutas al RouterOS para los
paquetes marcados como HTTP, SSL, POP3, SMTP, P2P, y desconocido
/ ip route
add dst-address=0.0.0.0/0 gateway=10.0.1.1 scope=255 target-scope=10
routing-mark="WAN-01" comment="" disabled=no
add dst-address=0.0.0.0/0 gateway=10.0.2.1 scope=255 target-scope=10
routing-mark="WAN-02" comment="" disabled=no
add dst-address=0.0.0.0/0 gateway=10.0.2.1 scope=255 target-scope=10
routing-mark="HTTP Trafico" comment="" disabled=no
add dst-address=0.0.0.0/0 gateway=10.0.2.1 scope=255 target-scope=10
routing-mark="SSL Trafico" comment="" disabled=no
add dst-address=0.0.0.0/0 gateway=10.0.2.1 scope=255 target-scope=10
routing-mark="POP3 Trafico" comment="" disabled=no
add dst-address=0.0.0.0/0 gateway=10.0.1.1 scope=255 target-scope=10
routing-mark="SMTP Trafico" comment="" disabled=no
add dst-address=0.0.0.0/0 gateway=10.0.1.1 scope=255 target-scope=10
routing-mark="P2P Trafico" comment="" disabled=no
add dst-address=0.0.0.0/0 gateway=10.0.1.1 scope=255 target-scope=10
routing-mark="Unknown Trafico" comment="" disabled=no

Las primeras dos lineas proveen la ruta de salida para los clientes que NO salen por
balanceo de carga

Paso 5 - Revisin de lo que se hizo


Que fu lo que hizo?:

Usted inteligentemente separ su trfico en diferentes tipos

Usted marc paquetes usando la herramienta Mangle

Usted cre una lista especial para aquellos clientes que NO puedan salir por el
balanceo de carga

Usted asign una rura particular para cada paqueta marcado en el Mangle

Conclusin
Lo que acaba de hacer es muy potente y este tutorial le ha mostrado solo la punta del
iceberg. Los tipos de trfico que el autor list son solo una pequea cantidad del total y
usted DEBERA agregar otros (ej: DNS, terminal services, ICMP, etc). Esto puede usarse
como una solucin tambien en oficinas o pequeos comercios para, por ejemplo separar el
mail de su navegacin a internet o, en una red grande inalmbrica para balancear carga.
Algunos consejos al final:
1. Piense lo que quiere hacer antes de comenzar
2. Ponga atencin en el tipo de trfico en cada linea (si es entrante intensivo o
saliente intensivo)
3. Finalmente pruebe, nada mejor que encontrar mejores y mas rpidas e inteligentes
formas de mejorar los servicios con muy pequea inversin!
(traduccin de bmeiojas@bwnet.com.ar)

También podría gustarte