Buscar en SafeKit

Prueba de la dirección IP virtual de equilibrio de carga en un clúster farm de SafeKit

Esta guía describe cómo comprobar que un SafeKit Farm (módulo Farm, equilibrio de carga en una dirección IP virtual) funciona correctamente en su red: distribución de conexiones entre los nodos y redireccionamiento de la IP virtual (VIP) cuando el nodo de distribución se detiene.

1. Principios clave

Requisito previo: todos los nodos de la Farm deben estar en la misma subred IP de capa 2: una LAN o una VLAN extendida entre sitios remotos.

  • La IP virtual (VIP) se configura localmente en cada nodo de la Farm: se establece como un alias de la dirección IP física, en la tarjeta de red de esa dirección, cuando la Farm se inicia en el nodo.
  • Un solo nodo, el servidor de distribución, recibe el tráfico de red para la IP virtual (VIP) (configuración vmac_directed, el valor predeterminado de SafeKit): su dirección MAC es la asociada con la IP virtual (VIP) en las tablas ARP (router, gateway, clientes en la misma subred).
  • El filtro del kernel de este nodo distribuye las conexiones TCP entre los nodos de la Farm, reescribiendo la dirección MAC de destino de los paquetes a la del nodo de procesamiento (la dirección IP de destino sigue siendo la IP virtual (VIP)). Las respuestas se envían directamente desde el nodo que procesa la conexión al cliente.
  • La distribución realizada por el filtro es determinista: el nodo de procesamiento se calcula a partir de la identidad del cliente, de acuerdo con la regla de equilibrio de carga configurada:
    • en la dirección IP del cliente (filter="on_addr"): un cliente determinado siempre es atendido por el mismo nodo, lo que garantiza la afinidad de sesión;
    • en el puerto TCP del cliente (filter="on_port"): cada conexión TCP del mismo cliente puede ser atendida por un nodo diferente. Esta es la regla utilizada para el mosaico (sección 2), que por lo tanto muestra todos los nodos desde una sola estación de trabajo.
  • Si el servidor de despacho se detiene, otro nodo asume este rol y envía GARP (ARP gratuito) para que la red asocie la IP virtual (VIP) con su propia dirección MAC.

Por lo tanto, lo que debe probar es:

  1. que las conexiones se distribuyan correctamente entre todos los nodos;
  2. que la red (enrutador, puerta de enlace, virtualización) tenga en cuenta el GARP cuando el servidor de distribución cambia.

2. Requisito previo: el mosaico de SafeKit

El mosaico es una página de prueba proporcionada por SafeKit. Abre muchas conexiones TCP a la IP virtual (VIP) y muestra, para cada una, el nombre del nodo que respondió. Esto muestra la distribución de un vistazo.

  1. En el userconfig.xml del módulo Farm, en la sección <vip>, agregue la regla de equilibrio de carga en el puerto del servidor web SafeKit. Ejemplo con el servidor web SafeKit en HTTP en el puerto 9010:

    <loadbalancing_list>
      <group name="FarmProto">
        <rule port="9010" proto="tcp" filter="on_port"/>
      </group>
    </loadbalancing_list>
    

    Si el servidor web y la consola de SafeKit se han configurado para usar HTTPS, reemplace el 9010 por el 9453.

  2. Aplique la configuración en todos los nodos.

  3. Desde un navegador en una estación de trabajo cliente fuera de la Farm, conéctese a:

    http://<VIP>:9010/safekit/mosaic.html
    

    luego ingrese el nombre del módulo Farm y ejecute la prueba. Cada celda del mosaico muestra el nombre del nodo que respondió a la conexión TCP, y se asocia un color a cada nodo para mostrar claramente los bloques del mosaico servidos por el mismo nodo.

    En HTTPS, utilice https://<VIP>:9453/safekit/mosaic.html, con la regla de equilibrio de carga en el puerto 9453.

Pruebe la dirección IP virtual de una farm de SafeKit con el mosaico

Vea el vídeo de prueba mosaico en la sección « Demostración de la solución farm SafeKit ».

3. Prueba 1 – Distribución de las conexiones

Pasos

  1. Inicie la Farm en todos los nodos (estado UP).
  2. Abra el mosaico desde una estación de trabajo cliente.

Resultado esperado: el mosaico muestra los nombres de todos los nodos de la Farm, con un color diferente para cada nodo de procesamiento.

Esto demuestra que el enrutador o la puerta de enlace ascendente llega a uno de los nodos a través de su dirección MAC y que este nodo distribuye correctamente las conexiones.

4. Prueba 2 – Cambio de servidor de envío

Esta prueba verifica que el Farm siga respondiendo cuando el servidor de despacho se detiene.

Pasos

  1. Detenga la Farm, es decir, todos los nodos de SafeKit.
  2. Inicie un único nodo. Este nodo se convierte en el servidor de distribución. → Resultado esperado: el mosaico muestra solo este nodo.
  3. Inicie los otros nodos. → Resultado esperado: el mosaico muestra todos los nodos.
  4. Detenga el primer nodo, el que actúa como servidor de distribución. → Resultado esperado: el mosaico muestra los nodos restantes.

Limitación de esta prueba: un resultado correcto en el paso 4 no demuestra que GARP funcione. Cuando el módulo Farm se inicia en los otros nodos (paso 3), la dirección IP virtual se configura en estos nodos, lo que genera mensajes en la red que pueden redirigir la asociación de la dirección IP virtual/dirección MAC. Solo las pruebas 3 y 4 prueban realmente GARP.

Al detener cualquier otro nodo de la Farm (que no sea el servidor de distribución) solo se prueba la reconfiguración de la distribución.

5. Prueba 3: Comprobación del redireccionamiento GARP con arp -a

Junto con la prueba 4, esta prueba realmente verifica GARP: anote la dirección MAC del servidor de distribución antes de detenerlo y luego verifique que la asociación de IP virtual (VIP)/MAC haya cambiado después.

Esta prueba solo es posible si la estación de trabajo del cliente que muestra el mosaico se encuentra en la misma subred IP que la Farm.

Si hay un enrutador entre el cliente y la Farm, la tabla ARP del cliente no contiene la IP virtual (VIP), sino la dirección de la puerta de enlace utilizada para llegar a la red de la Farm. En ese caso, compruebe la tabla ARP del enrutador o la puerta de enlace con el equipo de red.

Pasos

  1. Inicie la Farm en todos los nodos.
  2. En la estación de trabajo del cliente, ejecute arp -a y anote la dirección MAC asociada con la IP virtual (VIP). Esta identifica el servidor de distribución.
  3. Detenga el nodo Farm que tiene esta dirección MAC.
  4. Comprueba que el mosaico sigue funcionando con los nodos restantes.
  5. Ejecute arp -a de nuevo para leer la nueva asociación de IP virtual (VIP)/MAC e identificar el nuevo servidor de distribución.

6. Prueba 4: Comprobación de extremo a extremo con Wireshark (Windows) o tcpdump (Linux)

Puede seguir una conexión TCP a la IP virtual (VIP) capturando paquetes en el cliente y en los nodos Farm: con Wireshark en máquinas Windows y con tcpdump en máquinas Linux.

Debe mirar los encabezados MAC (Ethernet) de los paquetes, no solo las direcciones IP: el filtro del kernel del servidor de distribución distribuye las conexiones reescribiendo la dirección MAC de destino de los paquetes a la del nodo de procesamiento. La dirección IP de destino sigue siendo la IP virtual (VIP) a lo largo de toda la ruta.

Lo que debe observar para el mismo paquete SYN:

PasoDónde capturar paquetesDirecciones MAC observadas
1. El cliente envía a la IP virtual (VIP)clienteMAC del cliente → MAC del servidor de despacho
2. El servidor de despacho reenvía la conexión.servidor de despachoMAC del servidor de envío → MAC del nodo de procesamiento
3. El nodo de procesamiento recibenodo de procesamientoMAC del servidor de envío → MAC del nodo
4. El nodo responde directamente al cliente.nodo de procesamientoMAC del nodo → MAC del cliente
5. El cliente recibe la respuesta.clienteMAC del nodo → MAC del cliente

Si la estación de trabajo del cliente se encuentra en una subred diferente de la Farm, la “MAC del cliente” que se ve en los nodos Farm es la dirección MAC de la puerta de enlace (enrutador) que conecta las dos subredes, no la de la estación de trabajo del cliente.

Repita la captura después de detener el servidor de distribución (prueba 2, paso 4): el paso 1 debe mostrar ahora la dirección MAC del nuevo servidor de distribución.

7. Desde qué estaciones de trabajo realizar las pruebas

El comportamiento depende de la ruta de red entre el cliente y la Farm. Ejecute las pruebas 1 y 2 desde cada tipo de cliente relevante para su arquitectura:

Ubicación del clienteQué comprueba la prueba
El cliente está en la misma subred que la FarmActualización de las tablas ARP de los clientes mediante GARP (prueba 3 posible)
Cliente en una subred diferente (router, puerta de enlace, red virtual del hipervisor)Gestión GARP por parte del enrutador o la puerta de enlace
Máquina virtual de cliente en un hipervisor que también aloja una máquina virtual FarmComportamiento del conmutador virtual del hipervisor, que también gestiona la conmutación y el enrutamiento internos.

8. Resumen de los resultados esperados

PruebaAcciónResultado esperado
1Todos los nodos UP, mosaicoAparecen todos los nodos.
2.2Se inició un solo nodo.Solo aparece este nodo.
2.3Todos los nodos se han iniciado.Aparecen todos los nodos.
2.4El servidor de envío se detuvo.Los nodos restantes aparecen sin interrupción duradera.
3arp -a antes y después de la paradaLa dirección MAC asociada a la IP virtual (VIP) cambia.
4Captura de Wireshark o tcpdump antes y después de la detenciónEl cliente envía a la dirección MAC del nuevo servidor de reenvío.

9. Solución de problemas

Demostración de la solución farm de SafeKit

Vídeo de SafeKit: Balanceo de carga de red y gestión de IP virtual (5:03)

En este vídeo, aprenda a implementar una dirección IP virtual para proporcionar un único punto de entrada para un clúster de 2 nodos. SafeKit simplifica el equilibrio de carga de la red gestionando automáticamente la IP virtual, lo que garantiza que el tráfico del cliente se distribuya entre los nodos y se redirija instantáneamente durante una conmutación por error. Aunque esta demostración utiliza Apache en Windows, la solución funciona de forma idéntica con otras aplicaciones.

Capítulos

  1. 🎬 Arquitectura: Preparación de 2 nodos para una IP virtual compartida (0:13)
  2. 🎬 Configuración: Configuración del módulo farm.safe y de la dirección IP virtual (2:20)
  3. 🎬 Validación: Prueba de conmutación por error y redireccionamiento de IP virtual en caso de fallo del servidor (2:30)

Implementación paso a paso

Para más información:

SafeKit AI Chat SafeKit AI