barra de menu

miércoles, 4 de diciembre de 2019

A10 - ADC - BALANCEO DE CARGA

El objetivo del balanceo es repartir la carga entre varios servidores y así  proveer de alta disponibilidad de los servicios finales ubicados en esos servidores.


Los diferentes algoritmos que podemos aplicar para hacer el balanceo son:

  • Round Robin
  • Least Connection
  • Service Least Connection
  • Weighted Round Robin
  • Weighted Least Connection
  • Service Weighted Least Connection
  • Fastest Response Time
  • Least Request
  • Round Robin Strict
  • Stateless - con 4 opciones dependiendo de la ip origen/destino y el puerto de origen/destino


El servicio de Balanceo de carga de servidores (SLB) tiene 3 elementos principales.

  • Servers: nombre, ip (o nombre DNS) y puertos
    • (config)#slb server
    • #show slb server
  • Service Group: nombre, tipo (tcp/udp), Algoritmo LB, Servers y Puertos


  • Virtual Servers (VIPs)



TOPOLOGÍAS DE SLB

Tenemos 4 tipos de topologías que podemos configurar:

  • Routed (L3) sin Source NAT



    • No requiere cambios ni en cliente ni en servidores
    • Provee una capa de seguridad adicional
    • Hay que configurar en los servidores al SLB como puerta de enlace



Como vemos en el gráfico, el cliente apunta a la dirección VIP (100.0.0.10). Cuando pasa por el A10 el origen sigue siendo el mismo pero el destino cambia a la 100.0.1.100. Vemos que en la vuelta del tráfico sigue el mismo proceso.

  •  Routed (L3) con Source NAT



    • No requiere cambios ni en cliente ni en servidores
    • Fácil de comprobar
    • Hay que configurar en el SLB la opción Source Nat
    • Los servidores pierden la visibilidad IP del cliente, aunque se puede insertar la IP en la cabecera


Como vemos en el gráfico, el cliente apunta a la dirección VIP (100.0.0.10). Cuando pasa por el A10 el origen cambia a la 100.0.1.50 y el destino cambia a la 100.0.1.100. Vemos que en la vuelta del tráfico sigue el mismo proceso.


  • One-Armed (L2) 





    • No requiere cambios ni en cliente ni en servidores
    • Fácil de comprobar
    • Hay que configurar en el SLB la opción Source Nat
    • Los servidores pierden la visibilidad IP del cliente, aunque se puede insertar la IP en la cabecera
La única diferencia con L3 con Source Nat es que el cliente puede estar en la misma subred que el servidor


  • DSR (Direct Server Return)





    • Hay que configurar la VIP como loopback en los servidores
    • No puede usar funciones de capa 7. aFleX se puede aplicar a nivel de puerto virtual
    • Solo hay proceso de SLB en el tráfico de entrada

El cliente apunta a una VIP y los servidores devuelven el tráfico directamente con la VIP como Source ya que la tienen configurada como loopback.


HEALTH MONITOR

Para comprobar la disponibilidad del servicio final usamos los "health monitor". Estos pueden ser aplicados a:
  • Server - por defecto es icmp
  • Server:Port - por defecto el tcp del hadnsahake
  • Service Group - no tiene por defecto

La disponibilidad la testamos con lo siguiente:
  • Capa 3: ping (icmp)
  • Capa 4: tcp o udp
  • Capa 7: http, https, ftp, smtp, pop3, snmp, dns, radius, ldap, rtsp, sip, ntp
  • Scripts 


Si el Health Monitor falla en:
  • Server - el servidor es considerado en "down" y los Service Groups para ese servidor dejan de balancearse
  • Server:Port -  el puerto de ese servidor es considerado en "down" y los Service Groups para ese puerto de ese servidor dejan de balancearse
  • Service Group. cuando falla para un miembro específico, deja de balancear para ese miembro



SOURCE IP PERSISTENCE

Esta opción se usa para que los clientes, una vez se conectan a uno de los servidores, las siguientes conexiones sigan yendo hacia el mismo servidor.



Para configurar la persistencia se hace a través de una plantilla:
  • (config)#slb template persist source-ip


La plantilla tendrá las siguientes opciones:
  • VIP
  • Port
  • Serice Group
  • Timeout: por defecto son 5 minutos
  • Don't Honnor Conn Rules: ignora los límites de conexiones definidos en Servers y Server Ports y permite nuevas conexiones al Server. Está deshabilitado por defecto.
  • Netmask: máscara de red


Una vez creada la plantilla, se asigna al Virtual Server Port.


SOURCE NAT

Necesitamos configurar Source Nat para asegurarnos que la respuesta del tráfico del servidor hacia nuestro equipo A10 antes de devolverlo al cliente. También se hace a través de una plantilla.

Lo primero es crear un Pool:
  • (config)#ip nat pool Ip Incio Ip Final netsmask /X
  • (config)#ip nat pool NATPLANTILLA 10.0.0.1 10.0.0.10 netsmask /24 - Ejemplo
Opcionalmente podemos configurar en la plantilla el vRID y el HA Group que queremos sean asociados a ella.

Si la IP de Inicio y Final es la misma, se hará NAT solo con un IP pero con un  ma´ximo de 64 flujos.

Nota: la IP de Inicio puede ser la IP real de la interface nuestro equipo A10, y a esto le llama Smart Nat.

Una vez creada la plantilla, se asigna al Virtual Server Port.


Smart NAT (Automatic NAT)

Las direcciones IP que usa el Smart NAT para crear los mapeos dependen de si el VRRP-A o el HA están habilitados y las "Floating IP"  que tengan configuradas.
  • Si VRRP-A o HA están habilitados, Smart NAT usará la "Floating-Ip" como la IP NAT.
  • Si no están habiltado ninguno de los dos, usará la dirección primaria del A10 que esté conectada al servidor real.
Un Virtual Port puede usar Smart NAT y Source NAT a la vez. Por defecto, usará Source NAT primero pero esto lo podemos cambiar usando el comando:

  • source nat auto precedence



GRUPOS DE POOL CON NAT

Los grupos de Pool con NAT pueden contener múltiples Pools. Se usan cuando el espacio de direcciones NAT no es contiguo.

  • (config)#ip nat pool-group


Se aplica en el Virtual Port con el mismo comando que los Pools de NAT:

  • (config-slb vserver-vport)#source-nat pool-group
Nota: si tenemos configurado VVRP-A o HA, los Grupos de Pool necesitan los IDs de estos.



SLB con Virtual Server (VIP) y Virtual Port (VPort)

La configuración mínima para crearlo debe ser:
  • VIP
    • Nombre
    • Dirección IP a la que apuntan los clientes
    • Virtual Server Ports


  • VPort
    • Tipo: tcp, udp, hhtp, https, fast-http, rtsp, ftp, mms, ssl-proxy, smtp, sip, sip-tls, otros
    • Número de puerto o rango de puertos
    • Grupo de Servicio
Nota: cuando configuramos pools de nat, plantillas o scripts, al aplicarlos al nivel de Virtual Port se crea el Servicio Virtual.









1 comentario:

  1. Sirve muy util la configuración del Load Balancer A10

    ResponderEliminar