PCC y Balanceo de Carga en Mikrotik RouterOS · Políticas de Enrutamiento •Método que permite...

44
PCC y Balanceo de Carga en Mikrok RouterOS Por Freddy Bohorquez Quevedo

Transcript of PCC y Balanceo de Carga en Mikrotik RouterOS · Políticas de Enrutamiento •Método que permite...

Page 1: PCC y Balanceo de Carga en Mikrotik RouterOS · Políticas de Enrutamiento •Método que permite crear políticas distintas para tráficos diferenciados mediante tablas de enrutamiento

PCC y Balanceo de Carga en Mikrotik RouterOS

Por Freddy Bohorquez Quevedo

Page 2: PCC y Balanceo de Carga en Mikrotik RouterOS · Políticas de Enrutamiento •Método que permite crear políticas distintas para tráficos diferenciados mediante tablas de enrutamiento

Objetivo

• Conocer y comprender el funcionamiento del Balanceo de Carga por Conexiones (PCC en RouterOS)

• Comparar los distintos métodos de Balanceo de Carga y sus ámbitos de aplicación práctica.

2

Page 3: PCC y Balanceo de Carga en Mikrotik RouterOS · Políticas de Enrutamiento •Método que permite crear políticas distintas para tráficos diferenciados mediante tablas de enrutamiento

Contenido

3

Introducción

Métodos de Balanceo

PCC: Per Connection Classifier

Análisis

Page 4: PCC y Balanceo de Carga en Mikrotik RouterOS · Políticas de Enrutamiento •Método que permite crear políticas distintas para tráficos diferenciados mediante tablas de enrutamiento

4

El bosque no sería el mismo si sólo cantaran los pájaros que

mejor lo hacen.

Rabindranath Tagore; premio Nobel de Literatura 1913.

Page 5: PCC y Balanceo de Carga en Mikrotik RouterOS · Políticas de Enrutamiento •Método que permite crear políticas distintas para tráficos diferenciados mediante tablas de enrutamiento

Balanceo de Carga

• Técnica que distribuye carga de trabajo en dos o más enlaces de red.

• Permite maximizar el rendimiento, minimizar el tiempo de respuesta y evitar la sobrecarga.

• Múltiples enlaces de red balanceados, en lugar de enlaces simples, incrementan la disponibilidad: redundancia.

5

Page 6: PCC y Balanceo de Carga en Mikrotik RouterOS · Políticas de Enrutamiento •Método que permite crear políticas distintas para tráficos diferenciados mediante tablas de enrutamiento

Métodos de Balanceo

• ECMP (Equal Cost Multi-Path).

• Etiquetado y políticas de enrutamiento.

• Bonding.

• NTH (N-esimo).

• PCC Per Connection Classifier.

6

Page 7: PCC y Balanceo de Carga en Mikrotik RouterOS · Políticas de Enrutamiento •Método que permite crear políticas distintas para tráficos diferenciados mediante tablas de enrutamiento

ECMP (Equal Cost Multi-Path)

• Utiliza varios gateway con el mismo costo.

• Simple de implementar.

• Balanceo persistente por conexión.

• No se puede controlar la forma de balanceo.

• No funciona con puertas de enlace iguales.

• Failover automático.

• Mismo gateway puede estar varias veces.

7

Page 8: PCC y Balanceo de Carga en Mikrotik RouterOS · Políticas de Enrutamiento •Método que permite crear políticas distintas para tráficos diferenciados mediante tablas de enrutamiento

ECMP (Equal Cost Multi-Path)

8

Page 9: PCC y Balanceo de Carga en Mikrotik RouterOS · Políticas de Enrutamiento •Método que permite crear políticas distintas para tráficos diferenciados mediante tablas de enrutamiento

Etiquetado y políticas de enrutamiento

• Fácil de implementar

• Se tiene control exacto del tráfico

• No dinámico (problemas de escalabilidad)

Internet

ISP1 ISP2

Router

9

Page 10: PCC y Balanceo de Carga en Mikrotik RouterOS · Políticas de Enrutamiento •Método que permite crear políticas distintas para tráficos diferenciados mediante tablas de enrutamiento

Bonding• Fácil de implementar.

• Redundancia automática con failover.

• Es necesario controlar ambos extremos del enlace.

10

Page 11: PCC y Balanceo de Carga en Mikrotik RouterOS · Políticas de Enrutamiento •Método que permite crear políticas distintas para tráficos diferenciados mediante tablas de enrutamiento

NTH (N-th)

• Cada regla tiene su propio contador.

• De cada M paquetes inspeccionados (every) hace match con el N-esimo paquete.

11

Page 12: PCC y Balanceo de Carga en Mikrotik RouterOS · Políticas de Enrutamiento •Método que permite crear políticas distintas para tráficos diferenciados mediante tablas de enrutamiento

PCC: Per Connection Classifier

• Opción tipo match usada normalmente en mangle.

• PCC matcher permite clasificar el tráfico en flujos “similares”.

• Puede mantener los paquetes en un flujo específico basado en parámetros.

• Conjunto de opciones: src-address, src-port, dst-address, dst-port no del todo excluyentes entre si.

12

Page 13: PCC y Balanceo de Carga en Mikrotik RouterOS · Políticas de Enrutamiento •Método que permite crear políticas distintas para tráficos diferenciados mediante tablas de enrutamiento

PCC: Per Connection Classifier

13

Page 14: PCC y Balanceo de Carga en Mikrotik RouterOS · Políticas de Enrutamiento •Método que permite crear políticas distintas para tráficos diferenciados mediante tablas de enrutamiento

PCC: función Hash

• Función computable mediante un algoritmo.

• Ejemplos: CRC, SHA1,SHA-1,SHA-512,MD5…

14

Page 15: PCC y Balanceo de Carga en Mikrotik RouterOS · Políticas de Enrutamiento •Método que permite crear políticas distintas para tráficos diferenciados mediante tablas de enrutamiento

PCC: función Hash propiedades

• Unidireccionalidad.

• Compresión.

• Facilidad de cálculo.

• Difusión.

• ….

• Uniformidad: valores hash distribuidos con la misma probabilidad

• Determinista: misma cadena de entrada devuelve el mismo valor hash.

15

Page 16: PCC y Balanceo de Carga en Mikrotik RouterOS · Políticas de Enrutamiento •Método que permite crear políticas distintas para tráficos diferenciados mediante tablas de enrutamiento

PCC: Aritmética modular

• Algoritmo PCC usa división modular.

• División de números enteros:

• R (valor que nos interesa) suele llamarse residuo o resto y se escribe como:

• Ejemplos:

127 mod 2 = 1

151567 mod 5 = 2

16

Page 17: PCC y Balanceo de Carga en Mikrotik RouterOS · Políticas de Enrutamiento •Método que permite crear políticas distintas para tráficos diferenciados mediante tablas de enrutamiento

PCC: Funcionamiento (match)

17

Page 18: PCC y Balanceo de Carga en Mikrotik RouterOS · Políticas de Enrutamiento •Método que permite crear políticas distintas para tráficos diferenciados mediante tablas de enrutamiento

PCC: ValuesToHash

• both-addresses|both-ports|dst-address-and-port|src-address|src-port|both-addresses-and-ports|dst-address|dst-port|src-address-and-port

18

per-connection-classifier= PerConnectionClassifier ::= [!]ValuesToHash:Denominator/Remainder Remainder ::= 0..4294967295 (integer number) Denominator ::= 1..4294967295 (integer number) ValuesToHash ::= both-addresses|both-ports|dst-address-and-port| src-address| src-port|both-addresses-and-ports|dst-address|dst-port|src-address-and-port

Page 19: PCC y Balanceo de Carga en Mikrotik RouterOS · Políticas de Enrutamiento •Método que permite crear políticas distintas para tráficos diferenciados mediante tablas de enrutamiento

PCC: Dónde se encuentra?

19

Page 20: PCC y Balanceo de Carga en Mikrotik RouterOS · Políticas de Enrutamiento •Método que permite crear políticas distintas para tráficos diferenciados mediante tablas de enrutamiento

PCC: Ejemplo 1

• Clasificación con 2 flujos simétricos requiere 2 reglas:

20

Page 21: PCC y Balanceo de Carga en Mikrotik RouterOS · Políticas de Enrutamiento •Método que permite crear políticas distintas para tráficos diferenciados mediante tablas de enrutamiento

PCC: Ejemplo 2

• Para clasificación de 2 flujos asimétricos de 1M y 2M se requerirán 3 reglas:

21

Page 22: PCC y Balanceo de Carga en Mikrotik RouterOS · Políticas de Enrutamiento •Método que permite crear políticas distintas para tráficos diferenciados mediante tablas de enrutamiento

PCC: Ejemplo 2

• En general si se tienen “n” flujos de a1, a2,... ,

an velocidades siendo ai enteros.

• Se tendrán m reglas donde m=(a1+a2+... +an)/D

con D=MCD(a1, a2,... , an).

• Cada flujo tendrá ai/D reglas (i=1,2,…,n)

• Se deben realizar consideraciones prácticas para no incrementar el número de reglas (mayor tiempo de procesamiento)

22

Page 23: PCC y Balanceo de Carga en Mikrotik RouterOS · Políticas de Enrutamiento •Método que permite crear políticas distintas para tráficos diferenciados mediante tablas de enrutamiento

Ejercicio

• Se tiene 3 WAN con 4,5Mbps, 3Mbps y 9Mbps. ¿Cuántas reglas recomendaría para clasificar el tráfico con PCC y cuáles para cada WAN? .

• Similar considerando 7 Mbps, 6 Mbps y 3 Mbps respectivamente.

23

Page 24: PCC y Balanceo de Carga en Mikrotik RouterOS · Políticas de Enrutamiento •Método que permite crear políticas distintas para tráficos diferenciados mediante tablas de enrutamiento

Balanceo de carga usando PCC

• Escenario:

24

Page 25: PCC y Balanceo de Carga en Mikrotik RouterOS · Políticas de Enrutamiento •Método que permite crear políticas distintas para tráficos diferenciados mediante tablas de enrutamiento

Pasos Requeridos

• Configuración base:

– Direcciones IP.

– Default gateway’s.

– Enmascaramiento.

• Configuración Mangle.

• Configuración tablas de enrutamiento.

25

Page 26: PCC y Balanceo de Carga en Mikrotik RouterOS · Políticas de Enrutamiento •Método que permite crear políticas distintas para tráficos diferenciados mediante tablas de enrutamiento

Configuración Base

/interface ethernetset 0 name=ISP1set 1 name=ISP2set 4 name=LAN

/ip address add address=192.168.0.1/24 interface=LANadd address=10.111.0.2/24 interface=ISP1add address=10.112.0.2/24 interface=ISP2

/ip route add gateway=10.111.0.1 distance=1 check-gateway=pingadd gateway=10.112.0.1 distance=2 check-gateway=ping

/ip firewall nat add chain=srcnat out-interface=ISP1 action=masqueradeadd chain=srcnat out-interface=ISP2 action=masquerade

26

Page 27: PCC y Balanceo de Carga en Mikrotik RouterOS · Políticas de Enrutamiento •Método que permite crear políticas distintas para tráficos diferenciados mediante tablas de enrutamiento

Políticas de Enrutamiento

• Método que permite crear políticas distintas para tráficos diferenciados mediante tablas de enrutamiento personalizadas.

• En RouterOS las tablas de enrutamiento se crean:– Por cada tabla especificada en /ip route rule.– Por cada routing-mark en mangle.

• El tráfico “marcado” es asignado de forma automática a la tabla de enrutamiento correspondiente.

27

Page 28: PCC y Balanceo de Carga en Mikrotik RouterOS · Políticas de Enrutamiento •Método que permite crear políticas distintas para tráficos diferenciados mediante tablas de enrutamiento

routing-mark

• Atributo asignado a cada paquete (seguido en conntrack).

• routing-mark se cambia con un action en /ip firewall mangle antes de cualquier decisión de enrutamiento:

– chain prerouting para todo el tráfico entrante.

– chain output para el tráfico saliente del router.

• Cada nueva routing-mark tiene su propia tabla de enrutamiento del mismo nombre.

• De forma predeterminada, todos los paquetes tienen la marca de enrutamiento main.

28

Page 29: PCC y Balanceo de Carga en Mikrotik RouterOS · Políticas de Enrutamiento •Método que permite crear políticas distintas para tráficos diferenciados mediante tablas de enrutamiento

Mangle: Tráfico a redes conectadas

• Las rutas conectadas sólo están disponibles en la tabla “main”.

• Debemos asegurarnos que el tráfico a estas redes permanezca en la tabla “main” (“no- mark”).

• Esto permite la comunicación adecuada entre clientes conectados local y remotamente.

29

Page 30: PCC y Balanceo de Carga en Mikrotik RouterOS · Políticas de Enrutamiento •Método que permite crear políticas distintas para tráficos diferenciados mediante tablas de enrutamiento

Mangle: Conexiones remotas

• Conexiones iniciadas desde una interface pública, deben responderse por esa misma interface.

• Marcar estas conexiones para luego ponerlas en la tabla de enrutamiento adecuada (chain output).

30

Page 31: PCC y Balanceo de Carga en Mikrotik RouterOS · Políticas de Enrutamiento •Método que permite crear políticas distintas para tráficos diferenciados mediante tablas de enrutamiento

Mangle: PCC

• Para reducir el consumo de recursos y el tiempo de procesamiento se identifican las conexiones (no-mark o new).– Primero se identifica el tráfico (PCC) y con action se marca la conexión.

31

Page 32: PCC y Balanceo de Carga en Mikrotik RouterOS · Políticas de Enrutamiento •Método que permite crear políticas distintas para tráficos diferenciados mediante tablas de enrutamiento

Mangle: Marcado de rutas

– Segundo, en cada paquete de la conexión se procede al mark-routing.

32

Page 33: PCC y Balanceo de Carga en Mikrotik RouterOS · Políticas de Enrutamiento •Método que permite crear políticas distintas para tráficos diferenciados mediante tablas de enrutamiento

Route: Tabla de Enrutamiento

• Se agrega las rutas por defecto en la tabla de enrutamiento correspondiente:

33

Page 34: PCC y Balanceo de Carga en Mikrotik RouterOS · Políticas de Enrutamiento •Método que permite crear políticas distintas para tráficos diferenciados mediante tablas de enrutamiento

Consideración de excepciones

• De acuerdo a la configuración propuesta en PCC, se aplican políticas de enrutamiento especificas para los paquetes originados en la LAN, esto puede traer problemas.

• Un enfoque simple y extensible consiste en crear primero una lista de direcciones que contenga todas las redes locales, incluidas las redes de enlace WAN, y luego aceptar todo el tráfico entre redes en la lista de direcciones.

34

Page 35: PCC y Balanceo de Carga en Mikrotik RouterOS · Políticas de Enrutamiento •Método que permite crear políticas distintas para tráficos diferenciados mediante tablas de enrutamiento

Solución: excepciones con accept

• Address list:

• Reemplazar las reglas accept por:

35

Page 36: PCC y Balanceo de Carga en Mikrotik RouterOS · Políticas de Enrutamiento •Método que permite crear políticas distintas para tráficos diferenciados mediante tablas de enrutamiento

Route: Fail-Over

• Ciertamente no basta el check-gateway.

• El uso de scripts para este caso puede complejizar la configuración.

• Usar rutas recursivas, esta suficientemente utilizado y documentado y escapa a esta presentación por tiempo.

36

Page 37: PCC y Balanceo de Carga en Mikrotik RouterOS · Políticas de Enrutamiento •Método que permite crear políticas distintas para tráficos diferenciados mediante tablas de enrutamiento

Análisis: D=2, dst-port, 4 test

37

Page 38: PCC y Balanceo de Carga en Mikrotik RouterOS · Políticas de Enrutamiento •Método que permite crear políticas distintas para tráficos diferenciados mediante tablas de enrutamiento

Análisis: D=20, dst-port, 1 test

38

Page 39: PCC y Balanceo de Carga en Mikrotik RouterOS · Políticas de Enrutamiento •Método que permite crear políticas distintas para tráficos diferenciados mediante tablas de enrutamiento

Análisis: D=3, both addresses, real

39

Page 40: PCC y Balanceo de Carga en Mikrotik RouterOS · Políticas de Enrutamiento •Método que permite crear políticas distintas para tráficos diferenciados mediante tablas de enrutamiento

Análisis: D=25, both addresses, real

40

Page 41: PCC y Balanceo de Carga en Mikrotik RouterOS · Políticas de Enrutamiento •Método que permite crear políticas distintas para tráficos diferenciados mediante tablas de enrutamiento

Rememoremos

• Balanceo de Carga.

• Diferentes problemas-diferentes soluciones.

• PCC solución propietaria de Mikrotik.

• Análisis.

41

Page 42: PCC y Balanceo de Carga en Mikrotik RouterOS · Políticas de Enrutamiento •Método que permite crear políticas distintas para tráficos diferenciados mediante tablas de enrutamiento

Material de Consulta

• Manual:PCC - MikroTik Wiki. http://wiki.mikrotik.com/wiki/Manual:PCC

• Load Balancing Using PCC & RouterOS - MUM US12 - MikroTik, Steve Discher.

• MikroTik RouterOS Workshop Load Balancing Best Practice. Las Vegas, MUM USA 2011, Jānis Meģis

42

Page 43: PCC y Balanceo de Carga en Mikrotik RouterOS · Políticas de Enrutamiento •Método que permite crear políticas distintas para tráficos diferenciados mediante tablas de enrutamiento

www.themegallery.com

Gracias...

Page 44: PCC y Balanceo de Carga en Mikrotik RouterOS · Políticas de Enrutamiento •Método que permite crear políticas distintas para tráficos diferenciados mediante tablas de enrutamiento

44

El bosque no sería el mismo si sólo cantaran los pájaros que

mejor lo hacen.

Rabindranath Tagore; premio Nobel de Literatura 1913.