Vous êtes sur la page 1sur 6

Page

View source

modified on 14 August 2008 at 13:42 37,493 views

Balanceo de carga por tipo de trafico


NOTE: This article is a spanish translation of their original found here : http://wiki.mikrotik.com/wiki/PerTraffic_Load_Balancing

Contents
[hide]

1 Intro
duccin
1
.
1
F
u
n
c
i
o
n
e
s
d
e
l
R
o
u
t
e
O
S
U
t
il
i
z
a
d
a
s
a
q
u

2 Paso
1Cmo
separa
r el
trfico
?
3 Paso
2-

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" 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-addresslist="WAN-01" passthrough=no comment="" disabled=no
add chain=prerouting action=mark-routing new-routing-mark="WAN-02" src-addresslist="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 routingmark="WAN-01" comment="" disabled=no
add dst-address=0.0.0.0/0 gateway=10.0.2.1 scope=255 target-scope=10 routingmark="WAN-02" comment="" disabled=no
add dst-address=0.0.0.0/0 gateway=10.0.2.1 scope=255 target-scope=10 routingmark="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 routingmark="POP3 Trafico" comment="" disabled=no
add dst-address=0.0.0.0/0 gateway=10.0.1.1 scope=255 target-scope=10 routingmark="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 routingmark="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)

Vous aimerez peut-être aussi