Você está na página 1de 7

BALANCEO DE CARGA POR TIPO DE TRFICO

Introduccin

El manejo del ancho de banda es una parte esencial 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, lmite 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 ms 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,

conexin con mantenimiento persistente de la puerta de enlace (para ms 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. As que el autor se dedic a investigar cmo obtener un

mayor control de su ancho de banda tratando de minimizar los potenciales problemas (al

igual que el traductor!). El resultado fue el balanceo de carga en funcin del trfico que se

presenta. Este tutorial est escrito para tratar este tema en forma especfica y lo ms

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):

1
HTTP trfico (port 80)

SSL trfico (port 443)

POP3 trfico (port 110)

SMTP trfico (port 25)

P2P trfico (varios puertos)

Unknown trfico (varios puertos)

Despus 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 qu 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 qu)(n del t: aqu se usa "desconocido" como "sin catalogar")

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

Ahora para una explicacin rpida de cmo 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.

2
P2P y desconocido - Manejamos este trfico junto porque 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 porque 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 porque conexin saldr y se puede

especificar que enlace se usa para P2P y el trfico "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)

3
Asumimos que las direcciones IP, rutas por defecto y DNS ya estn 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

4
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" src-


address-list="Allowed - Internet" comment="Gateway 10.0.1.1/24"
disabled=no

add chain=srcnat action=masquerade out-interface="WAN - 02" src-


address-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

5
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 lneas, 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 tambin por la ruta por

defecto. El autor tambin 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 cmo est configurado As 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

6
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 lneas proveen la ruta de salida para los clientes que NO salen por balanceo

de carga

Paso 5 - Revisin de lo que se hizo

Que fue 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 ruta particular para cada paquete 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 tambin 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 lnea (si es entrante intensivo o saliente
intensivo)

3. Finalmente pruebe, nada mejor que encontrar mejores y ms rpidas e inteligentes


formas de mejorar los servicios con muy pequea inversin.

Você também pode gostar