VMware NSX para los más pequeños. Parte 5. Configurar el equilibrador de carga



Primera parte Introductorio
Segunda parte Configurar firewall y reglas NAT
Tercera parte Configuración de DHCP
Parte cuatro Configuración de enrutamiento

La última vez que hablamos sobre las capacidades de NSX Edge en términos de enrutamiento estático y dinámico, y hoy trataremos con el equilibrador.

Antes de continuar con la configuración, me gustaría recordar brevemente los principales tipos de equilibrio.

Teoría


Todas las soluciones actuales de equilibrio de carga útil se dividen con mayor frecuencia en dos categorías: equilibrio en el cuarto (transporte) y el séptimo (aplicado) niveles del modelo OSI . El modelo OSI no es el mejor punto de referencia cuando se describen métodos de equilibrio. Por ejemplo, si el equilibrador L4 también admite la terminación TLS, ¿se convierte entonces en un equilibrador L7? Pero eso es, eso es.

  • El equilibrador L4 suele ser el que se interpone entre el cliente y el conjunto de backends intermedios de proxy disponibles, que termina las conexiones TCP (es decir, responde independientemente a SYN), selecciona un backend e inicia una nueva sesión TCP en su dirección, enviando SYN. Este tipo es uno de los básicos, otras opciones son posibles.
  • El equilibrador L7 distribuye el tráfico a los backends disponibles "más sofisticados" que el equilibrador L4. Puede decidir un backend basado, por ejemplo, en el contenido de un mensaje HTTP (URL, cookie, etc.).

Independientemente del tipo, el equilibrador puede admitir las siguientes funciones:

  • El descubrimiento de servicios es el proceso de determinar el conjunto de backends disponibles (Estático, DNS, Cónsul, Etcd, etc.).
  • Comprobación del estado de los backends detectados ("ping" activo del backend mediante una solicitud HTTP, detección pasiva de problemas en las conexiones TCP, la presencia de varios códigos HTTP 503 en las respuestas seguidas, etc.).
  • Equilibrio en sí mismo (round robin, selección aleatoria, hash de IP de origen, URI).
  • Terminación de TLS y verificación del certificado.
  • Opciones relacionadas con la seguridad (autenticación, prevención de ataques DoS, límite de velocidad) y mucho más.

NSX Edge ofrece soporte para dos modos de implementación de balanceador:

Modo proxy, o un brazo . En este modo, cuando envía una solicitud a uno de los servidores, NSX Edge usa su dirección IP como la dirección de origen. Por lo tanto, el equilibrador realiza las funciones NAT de origen y de destino. El backend ve todo el tráfico enviado desde el equilibrador y responde directamente a él. En este esquema, el equilibrador debe estar en el mismo segmento de red con los servidores internos.

Así es como va:

  1. El usuario envía una solicitud a la dirección VIP (dirección equilibradora) que está configurada en Edge.
  2. Edge selecciona uno de los backends y realiza el NAT de destino, reemplazando la dirección VIP con la dirección del backend seleccionado.
  3. Edge ejecuta NAT de origen, reemplazando la dirección del usuario que envió la solicitud por la suya.
  4. El paquete se envía al backend seleccionado.
  5. El backend no responde directamente al usuario, pero Edge, ya que la dirección original del usuario se ha cambiado a la dirección del equilibrador.
  6. Edge envía la respuesta del servidor al usuario.

Esquema a continuación.



Modo transparente o en línea. En este escenario, el equilibrador tiene interfaces en la red interna y externa. Sin embargo, no hay acceso directo a la red interna desde el externo. El equilibrador de carga incorporado actúa como una puerta de enlace NAT para máquinas virtuales en la red interna.

El mecanismo es el siguiente:

  1. El usuario envía una solicitud a la dirección VIP (dirección equilibradora) que está configurada en Edge.
  2. Edge selecciona uno de los backends y realiza el NAT de destino, reemplazando la dirección VIP con la dirección del backend seleccionado.
  3. El paquete se envía al backend seleccionado.
  4. El backend recibe una solicitud con la dirección original del usuario (no se ejecutó el NAT de origen) y responde directamente a ella.
  5. El equilibrador de carga acepta nuevamente el tráfico, ya que en el esquema en línea generalmente actúa como la puerta de enlace predeterminada para la granja de servidores.
  6. Edge ejecuta NAT de origen para enviar tráfico al usuario, utilizando su VIP como la dirección IP de origen.

Esquema a continuación.



Practica


En mi banco de pruebas, se configuran 3 servidores con Apache, que está configurado para funcionar en HTTPS. Edge equilibrará las solicitudes HTTPS utilizando el método round robin, enviando cada nueva solicitud a un nuevo servidor.

Empecemos

Generando un certificado SSL que usará NSX Edge


Puede importar un certificado de CA válido o usar uno autofirmado. En esta prueba, usaré autofirmado.

  1. En la interfaz de vCloud Director, vaya a la configuración de los servicios perimetrales.

  2. Vaya a la pestaña Certificados. De la lista de acciones, seleccione la adición de una nueva CSR.

  3. Rellene los campos obligatorios y haga clic en Guardar.

  4. Seleccione la CSR recién creada y seleccione la opción de CSR autofirmado.

  5. Seleccione el período de validez del certificado y haga clic en Mantener

  6. Un certificado autofirmado apareció en la lista de disponibles.


Configurar perfil de aplicación


Los perfiles de aplicación le brindan más control sobre el tráfico de red y hacen que administrarlo sea simple y eficiente. Con su ayuda, puede determinar el comportamiento para tipos específicos de tráfico.

  1. Vaya a la pestaña Load Balancer y encienda el balanceador. La opción de aceleración habilitada aquí permite que el equilibrador use un equilibrio L4 más rápido en lugar de L7.

  2. Vaya a la pestaña Perfil de la aplicación para configurar el perfil de la aplicación. Haz clic en +.

  3. Establezca el nombre del perfil y seleccione el tipo de tráfico para el que se aplicará el perfil. Explicaré algunos parámetros.

    Persistencia : guarda y rastrea los datos de la sesión, por ejemplo: qué servidor específico del grupo atiende una solicitud del usuario. Esto garantiza que las solicitudes de los usuarios se envíen al mismo miembro del grupo durante toda la vida de la sesión o las sesiones posteriores.

    Habilitar paso a través de SSL : cuando se selecciona esta opción, NSX Edge deja de terminar SSL. En cambio, la terminación se produce directamente en los servidores para los que se realiza el equilibrio.

    Insertar encabezado HTTP X-Fordered-For : le permite determinar la dirección IP de origen del cliente que se conecta al servidor web a través del equilibrador.

    Habilitar SSL del grupo de servidores: le permite especificar que el grupo seleccionado esté formado por servidores HTTPS.

  4. Como equilibraré el tráfico HTTPS, necesito habilitar el SSL del lado del grupo y seleccionar el certificado generado previamente en la pestaña Certificados de servidor virtual -> Certificado de servicio.

  5. Del mismo modo para los certificados de grupo -> Certificado de servicio.


Creamos un grupo de servidores, el tráfico al que se equilibrarán los grupos


  1. Vaya a la pestaña Grupos. Haz clic en +.

  2. Establezca el nombre del grupo, seleccione el algoritmo (usaré round robin) y el tipo de monitoreo para la verificación del estado del backend. La opción Transparente indica si los clientes IP de origen iniciales son visibles para los servidores internos.

    • Si esta opción está desactivada, el tráfico para los servidores internos proviene de la IP de origen del equilibrador.
    • Si esta opción está habilitada, los servidores internos ven los clientes IP de origen. En esta configuración, NSX Edge debe actuar como la puerta de enlace predeterminada para garantizar que los paquetes devueltos pasen por NSX Edge.

    NSX admite los siguientes algoritmos de equilibrio:

    • IP_HASH : selección del servidor basada en los resultados de la función hash para la IP de origen y destino de cada paquete.
    • LEASTCONN : equilibra las conexiones entrantes, dependiendo del número de ya disponibles en un servidor en particular. Las nuevas conexiones se dirigirán al servidor con el menor número de conexiones.
    • ROUND_ROBIN : se envían nuevas conexiones a cada servidor por turno, de acuerdo con el peso especificado.
    • URI : la parte izquierda del URI (antes del signo de interrogación) se divide en hash y se divide por el peso total de los servidores en el grupo. El resultado indica qué servidor recibe la solicitud, asegurando que la solicitud siempre se enruta al mismo servidor, siempre y cuando todos los servidores permanezcan disponibles.
    • HTTPHEADER : equilibrio basado en un encabezado HTTP específico, que se puede especificar como parámetro. Si falta el encabezado o no tiene ningún significado, se utiliza el algoritmo ROUND_ROBIN.
    • URL : cada solicitud HTTP GET busca el parámetro URL especificado como argumento. Si el parámetro va seguido de un signo y un valor iguales, el valor se divide en hash y se divide por el peso total de los servidores en ejecución. El resultado indica qué servidor recibe la solicitud. Este proceso se utiliza para rastrear los identificadores de usuario en las solicitudes y para garantizar que la misma identificación de usuario se envíe siempre al mismo servidor, siempre que todos los servidores permanezcan disponibles.

  3. En el bloque Miembros, haga clic en + para agregar servidores al grupo.



    Aquí debe especificar:

    • nombre del servidor
    • Dirección IP del servidor;
    • el puerto al que el servidor recibirá tráfico;
    • puerto para control de salud (Monitor de control de salud);
    • Peso: con este parámetro puede ajustar la cantidad proporcional de tráfico recibido para un miembro específico del grupo;
    • Conexiones máximas: la cantidad máxima de conexiones al servidor;
    • Conexiones mín .: la cantidad mínima de conexiones que el servidor debe procesar antes de que el tráfico se redirija al siguiente miembro del grupo.



    Así es como se ve el grupo final de tres servidores.


Agregar servidor virtual


  1. Vaya a la pestaña Servidores virtuales. Haz clic en +.

  2. Activamos el servidor virtual usando Enable Virtual Server.

    Le asignamos un nombre, seleccionamos el Perfil de aplicación, el Grupo creado anteriormente y especificamos la dirección IP a la que el Servidor virtual aceptará solicitudes externas. Especifique el protocolo HTTPS y el puerto 443.
    Parámetros opcionales aquí:

    Límite de conexión : el número máximo de conexiones simultáneas que un servidor virtual puede manejar;
    Límite de velocidad de conexión (CPS) : el número máximo de nuevas solicitudes entrantes por segundo.



Esto completa la configuración del equilibrador, puede verificar su rendimiento. Los servidores tienen la configuración más simple, lo que le permite comprender qué servidor del grupo procesó la solicitud. Durante la configuración, seleccionamos el algoritmo de equilibrio Round Robin, y el parámetro Peso para cada servidor es igual a uno, por lo que el próximo servidor del grupo procesará cada solicitud siguiente.

Ingrese la dirección externa del equilibrador en el navegador y vea:



Después de actualizar la página, la solicitud será procesada por el siguiente servidor:



Y de nuevo, para verificar el tercer servidor del grupo:



Al verificar, puede ver que el certificado que Edge nos envía es el mismo que generamos al principio.

Verifique el estado del equilibrador desde la consola de la puerta de enlace Edge. Para hacer esto, ingrese al grupo de carga del equilibrador de carga del servicio show .



Configure el Monitor de servicio para verificar el estado de los servidores en el grupo


Con Service Monitor, podemos monitorear el estado de los servidores en el grupo de servidores. Si la respuesta a la solicitud no coincide con lo esperado, el servidor puede retirarse del grupo para que no reciba ninguna solicitud nueva.

Por defecto, se configuran tres métodos de verificación:

  • Monitor TCP
  • Monitor HTTP
  • HTTPS-monitor.

Crea uno nuevo.

  1. Vaya a la pestaña Supervisión del servicio, haga clic en +.

  2. Elegir:

    • nombre para el nuevo método;
    • intervalo en el que se enviarán las solicitudes,
    • tiempo de espera de respuesta
    • el tipo de monitoreo es la solicitud HTTPS utilizando el método GET, el código de estado esperado es 200 (OK) y la URL de solicitud.
  3. Esto completa la configuración del nuevo Service Monitor, ahora podemos usarlo al crear un grupo.


Configurar reglas de aplicación


Reglas de aplicación es una forma de manipular el tráfico en función de desencadenantes específicos. Con esta herramienta, podemos crear reglas avanzadas de equilibrio de carga, que pueden no ser posibles de configurar a través de los perfiles de la Aplicación o utilizando otros servicios disponibles en Edge Gateway.

  1. Para crear una regla, vaya a la pestaña Reglas de aplicación del equilibrador.

  2. Elija un nombre, un script que usará la regla y haga clic en Conservar.

  3. Después de crear la regla, necesitamos editar el servidor virtual ya configurado.

  4. En la pestaña Avanzado, agregue la regla que creamos.



En el ejemplo anterior, hemos incluido soporte para tlsv1.

Un par de ejemplos más:

Redirigir el tráfico a otro grupo.

Con este script, podemos redirigir el tráfico a otro grupo de equilibrio si el grupo principal no funciona. Para que la regla funcione, se deben configurar varios grupos en el equilibrador y todos los miembros del grupo principal deben estar en estado inactivo. Especifique el nombre del grupo, no su ID.

acl pool_down nbsrv(PRIMARY_POOL_NAME) eq 0 use_backend SECONDARY_POOL_NAME if PRIMARY_POOL_NAME 

Redirigir el tráfico a un recurso externo.

Aquí redirigimos el tráfico a un sitio web externo si todos los miembros del grupo principal están en estado inactivo.

 acl pool_down nbsrv(NAME_OF_POOL) eq 0 redirect location http://www.example.com if pool_down 

Más ejemplos aquí .

Eso es todo sobre el equilibrador. Si tiene alguna pregunta, pregunte, estoy listo para responder.

Source: https://habr.com/ru/post/448540/


All Articles