PDF de programación - Balanceo de carga

Imágen de pdf Balanceo de carga

Balanceo de cargagráfica de visualizaciones

Publicado el 10 de Julio del 2019
236 visualizaciones desde el 10 de Julio del 2019
1,8 MB
56 paginas
Creado hace 3a (24/02/2016)
1

BALANCEO DE CARGA

Alejandro Teixeira G.

ateixeira@mkx.cl

MikroTik Certified Trainer

MikroTik Trainer ID #TR0163

Alejandro Teixeira

Topicos

2

 ¿Qué es balanceo de carga?

 Consideraciones

 Mecanismos de balanceo

 ECMP

 PCC

 NTH

 Soluciones a posibles problemas

 Failover

3

Nuestros clientes

4



5

¿Qué es balanceo de carga?

¿Qué es balanceo de carga?

6

 Proceso a través del cual el tráfico saliente

es distribuido por múltiples enlaces



¿Qué es balanceo de carga?

7

2 ISP

Ejemplos

8

Ejemplos

9

Aplicación para configuración

10

Consideraciones

11

 Cuando se emplea algún mecanismo de

balanceo, lo que realmente se balancea son
el número total de conexiones entre la
cantidad de enlaces disponibles.

 No se balancea el consumo de tráfico ni se

“suma” literalmente.

12

Mecanismos de balanceo

Herramientas involucradas

13

 /ip firewall mangle

 /ip route

 /system scripts

 /system scheduler

 /ip firewall filter

ECMP: Equal Cost Multi-Path

14

 Simple de implementar
 Balanceo persistente por conexión
 Se agregan todas las puertas de enlace

 En la misma ruta

 No se puede controlar la forma de balanceo
 No funciona con puertas de enlace iguales

 Mas de una por proveedor

 Failover automatico

 No es práctico

ECMP: Implementación

15

/ip route add
gateway=1.1.1.1,2.2.2.1
check-gateway=ping

PCC: Peer Connection Classifier

16

 Sofisticado
 No distribuye de forma equitativa la cantidad de

conexiones

 PCC toma algunos campos de la cabecera IP

 Alguna combinación

 IP (origen/destino) y puerto (origen/destino)

 La cabecera se divide por el número de ISP activos
 El resultado indica

 Clasificadores

 src-address
 dst-address
 src-port
 dst-port

PCC: ¿Cómo funciona?

17

 Número de enlaces wan: 3
 Posibles resultados: 0, 1 o 2



 Hash 1: 14350 / 3 = 1
 Hash 2: 3480 / 3 = 0
 Hash 3: 13468 / 3 = 1
 Hash 4: 5390 / 3 = 2
 Hash 5: 7894 / 3 = 1



 Link 0: 1
 Link 1: 3
 Link 2: 1

ALEATORIO

PCC: Implementación

18

Marcas de nuevas

conexiones

/ip firewall mangle add
chain=prerouting
in-interface=lan
connection-mark=no-mark
action=mark-connection
new-connection-mark=wan1_conn
per-connection-classifier=both-addresses:2/1

/ip firewall mangle add
chain=prerouting
in-interface=lan
connection-mark=wan1_conn
action=mark-routing
new-routing-mark=to_wan1
passthrough=no

Repetir

para
cada
WAN

Marca de rutas para

cada conexión marcada

PCC:MANGLE

19



PCC: implementación

20

/ip route add
distance=1
gateway=1.1.1.1
routing-mark=to_wan1

/ip route add
distance=1
gateway=2.2.2.1
routing-mark=to_wan2

Rutas

Balanceo con 4 enlaces de 10M

21

NTH

22

 Permite distribuir de forma equitativa

 Cada regla del NTH tiene su propio contador

 Cuando una regla recibe un paquete se

incrementa el contador

 Cuando el contador llega al máximo se reinicia

Nuevas marcas de

conexión

NTH: implementación

23

/ip firewall mangle add
chain=prerouting
in-interface=lan
connection-mark=no-mark
action=mark-connection
new-connection-mark=wan[link number]_conn
nth=[link number],1

/ip firewall mangle add
chain=prerouting
in-interface=lan
connection-mark=wan1_conn
action=mark-routing
new-routing-mark=to_wan1
passthrough=no

Repetir

para
cada
WAN

Marca de rute para cada

marca de conexión

NTH: implementación

24

/ip route add
distance=1
gateway=1.1.1.1
routing-mark=to_wan1

/ip route add
distance=1
gateway=2.2.2.1
routing-mark=to_wan2

Rutas iguales que PCC

25

Poderación de enlaces

MikroTik Xperts Chile @ cursos@mkx.cl

¿Dónde puedo aplicar ponderación?

26

 ECMP

 Simple de implementar

 PCC

 Complejo de implementar

 Robusto y escalable

 NTH

 No permite implementar

Ponderación: ECMP

27

Ponderación: PCC

28

 add action=mark-connection chain=prerouting

comment="SIN PONDERACION - 2 WAN /
PCC" connection-mark=no-mark in-
interface=ether2_laptop new-connection-
mark=mc_to-wan1 per-connection-
classifier=both-addresses-and-ports:8/x

29

Failover

Failover

30

Cómo manejar Failover

31

 Formas comúmes

 Scripts

 Haciendo ping a links externos.

 Netwatch

 Haciendo ping a links externos.

 Sin scripts ni Netwatch
 Routes Nexthop Lookup

 Rutas recursivas
 Usando scope=10
 check-gateway=ping

Failover: scripts

32

/ip dhcp-client disable [find interface=ether1_wan1]
:delay 1s
/ip dhcp-client enable [find interface=ether1_wan1]

:local pingip
:set pingip [/ping 1.1.1.1 count=10]
:if ($pingip = 0) do={



}
:global gateway1a [/ip dhcp-client get [find interface=wan1] gateway]
:global gateway1b [/ip route get [find routing-mark=mr_to-wan1
comment=mr_to-wan1] gateway]
:if ($gateway1a != $gateway1b) do={

gateway=$gateway1a
}

/ip route set [find comment=mr_to-wan1]

Failover: consideraciones

33

 Debe existir una o mas rutas por defecto

 Se usa como desborde cuando una tabla de

enrutamiento no está disponible

 Se puede aplicar la opción check-

gateway=ping para revisar estado de la
puerta de enlace
 Esto no garantiza que el servicio esté caído dado

que solo revisa la conexión con la puerta de
enlace

 Se debe hacer chequeo externo

Resolviendo el Next-Hop Recursivo

34

 Es posible especificar el gateway a una red
incluso si el gateway no se puede alcanzar
directamente. Esto se puede lograr usando
Resolución de Next-Hop Recursivo desde
cualquier ruta existente



 Una ruta debe estar en el scope (al alcance)

de otra ruta para que la Resolución de Next-
Hop Recursivo funcione.

©Academy Xperts / MikroTik Xperts 2016

Nexthop Lookup: scope

35

 Nexthop 10.2.0.1 es resuelta por una ruta conectada,

su estado es alcanzable

 Nexthop 10.3.0.1 es resuelto a través de la ruta

10.3.0.0/16, su estado es recursivo, y utiliza 10.2.0.1
como valor de próximo salto instalado en el FIB.

Failover

36

Failover usando scope y check-gateway by ping



/ip route

add dst-address=8.8.8.8 gateway=1.1.1.1 scope=10
add dst-address=8.8.4.4 gateway=2.2.2.1 scope=10

add distance=1 dst-adress=0.0.0.0/0 gateway=8.8.8.8
routing-mark=to_wan1 check-gateway=ping

add distance=2 gateway=8.8.4.4 routing-
mark=to_wan2 check-gateway=ping


Failover: chequeo ping recursivo

37

Failover: chequeo ping recursivo

38

Failover: chequeo ping recursivo

39

Failover recursivo

40

 Importante: Éste método de implementar

failover no funciona cuando se tienen
múltiples links con el mismo gateway. En éste
caso es necesario scripts o netwatch
chequeando enlaces externos.

 Si el enlace no tiene IP y gateway fijo también

son necesarios scripts.



41

Failover con desborde

Failover con desborde

42

 Redistribuye las conexiones

correspondientes a la wan sin servicio por el
resto de las wan.

 La redistribución se puede llevar a cabo

usando diferentes lógicas. Depende
directamente del criterio del administrador
 Redistribución en base a ponderaciones
 Redistribución en base a cantidad de wan

 Técnica complicada y compleja de desarrollar

 Se recomienda emplear herramientas API



Ejercicio: failover con desborde

43

1

2

3

2,3

1,3

1,2

1,2,3

2,3

1,3

1,2

6/0

6/1

6/2

6/3

6/4

6/5

1

1

1

2

2

3

2

2

3

2

2

3

1

1

1

1

1

3

1

1

1

2

2

1

1

1

1

1

1

1

1

2

2

2

2

2

2

2

3

3

3

3

3

3

3

Ejercicio: failover con desborde

44

45

Posibles problemas

Posibles problemas balanceando

46

 Problemas con páginas HTTPS

 Problemas con conexiones al mismo router

 Permitir acceso a servidores internos por una

WAN específica (DST-NAT)

 Forzar un host por una wan específica.

 Varios links con el mismo gateway

Problema con SSL páginas HTTPS

47

 Sitios como Gmail y bancos no permiten

establecer múltiples conexiones provenientes
de diferentes enlaces simultáneamente.
 Phishing

 Comunmente se usa el 443



Problema con SSL páginas HTTPS

48

Colocar de primera en el mangle

/ ip firewall mangle

add action=accept chain=prerouting dst-port=443 in-
interface=lan passthrough=no protocol=tcp


Ruta por defecto para conexiones
delmismo router o no marcadas.

/ip route

add distance=1 gateway=1.1.1.1
add distance=1 gateway=2.2.2.1

Problema con conexiones dirigidas
al router

49

 Paquetes salientes utilizan la misma decisión de
ruteo que los paquetes que atraviesan el router.

 Las respuestas de un paquete que fue recibida

por wan1 podría ser enviada de vuelta y
enmascarada por wan2

wan1 wan2

Problema con conexiones dirigidas
al router

50

Marcamos conexiones de

entrada

Repetim
os para

cada wan

/ip firewall mangle add
action=mark-connection
chain=input
connection-mark=no-mark
in-interface=wan1
new-connection-mark=wan1_conn

/ip firewall mangle add
action=mark-routing
chain=output
connection-mark=wan1_conn
new-routing-mark=to_wan1
passthrough=no

Forzamos que la conexión
sea ruteada por una wan

específica.

Permitir acceso a servidores
internos desde una wan específica

51

 add action=mark-connection chain=forward

connection-mark=no-mark in-interface=wan1
new-connection-mark=mc_to-wan1 out-
interface=ether2_laptop passthrough=no



 add action=mark-routing chain=prerouting

connection-mark=mc_to-wan1 in-
interface=ether2_laptop new-routing-
mark=mr_to-wan1 passthrough=no

Forzar acceso a internet por una
wan específica

52

 add action=mark-routing chain=prerouting

comment=EXCEPCION dst-
address=54.165.129.249 new-routing-
mark=mr_to-wan2

Múltiples enlaces con el mismo
Gateway

53

Forza el tráfico respetando cada routing-mark

/ip route
  • Links de descarga
http://lwp-l.com/pdf16262

Comentarios de: Balanceo de carga (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios
Es necesario revisar y aceptar las políticas de privacidad

Revisar política de publicidad