Citrix ADC

Detección de servicios mediante registros DNS SRV

Un registro SRV (registro de servicio) es una especificación de datos en el sistema de nombres de dominio que define la ubicación, es decir, el nombre de host y el número de puerto de los servidores para los servicios especificados. El registro también define el peso y la prioridad de cada servidor.

Ejemplo de registro SRV:

_http._tcp.example.com. 100 IN SRV 10 60 5060 a.example.com.

La siguiente tabla describe cada elemento de un registro SRV:

Muestra de registros de detección de SRV

Puede utilizar los registros SRV DNS para descubrir los extremos de servicio. El dispositivo Citrix ADC está configurado para consultar periódicamente los servidores DNS con el registro SRV asociado a un servicio. Al recibir el registro SRV, cada host de destino publicado en el registro SRV está enlazado a un grupo de servicios asociado al servicio. Cada uno de los enlaces hereda el puerto, la prioridad y el peso del registro SRV. Para cada implementación de servicio, el usuario debe configurar el dispositivo Citrix ADC una vez mientras lo levanta, lo que lo convierte en una implementación de un solo toque para las aplicaciones.

Importante: El peso de los miembros del grupo de servicios aprendidos dinámicamente no se puede modificar mediante la CLI o la GUI.

Caso de uso: Microservicios de equilibrio de carga

Las aplicaciones se están moviendo hacia la arquitectura de microservicios desde arquitecturas monolíticas. El movimiento hacia la arquitectura de microservicios junto con la solución de escala automática de servidores back-end hace que la implementación de aplicaciones sea más dinámica. Para admitir una implementación dinámica de este tipo, los proxies o el ADC deben poder detectar dinámicamente las instancias de servicio o aplicación back-end y absorberlas en la configuración del proxy. La función de detección de servicios mediante registros SRV de DNS ayuda a configurar el dispositivo Citrix ADC en un caso de implementación dinámico de este tipo. Los desarrolladores de aplicaciones pueden utilizar algunas de las plataformas de orquestación para implementar la aplicación. Es posible que las plataformas de orquestación mientras se crean instancias de contenedores durante la implementación de aplicaciones no asignen el puerto estándar específico del protocolo para cada uno de estos contenedores. En tales situaciones, descubrir la información del puerto se convierte en la clave para configurar el dispositivo Citrix ADC. Los registros SRV son útiles en tal caso. Los parámetros de registro SRV, como la prioridad y el peso, se pueden utilizar para un mejor equilibrio de carga de las aplicaciones.

  • El parámetro Priority se puede utilizar para dictar la prioridad del grupo de servidores.
  • El parámetro de peso se puede utilizar para dictar la capacidad de las instancias de servicio back-end y, por lo tanto, se puede utilizar para el equilibrio de carga ponderada.
  • Cada vez que hay un cambio en el grupo de servidores back-end, por ejemplo, se quita una instancia back-end del grupo, la instancia se elimina gentilmente solo después de que se cumplan todas las conexiones de cliente existentes.

Nota:

  • Una detección de servicio basada en registros A/AAAA, todas las direcciones IP resueltas tienen el mismo peso porque asigna el peso al dominio que se está resolviendo.

  • Si el peso en la respuesta SRV es mayor que 100, entonces los servicios no se crean.

Equilibrio de carga basado en prioridad mediante registros SRV

Puede utilizar registros SRV para realizar el equilibrio de carga basado en prioridades. El grupo de servidores basado en prioridades puede ser una alternativa para los servidores virtuales de backup. El archivo ns.conf requiere una configuración mínima en comparación con los servidores virtuales de backup.

En el equilibrio de carga basado en prioridades mediante registros SRV, se asigna un número de prioridad a cada uno de los servidores. El menor número tiene la prioridad más alta. Uno de los servidores del grupo de prioridad más alta se selecciona para el equilibrio de carga en función del estado y la disponibilidad del servidor. Si todos los servidores del grupo de servidores de prioridad más alta están inactivos, los servidores que tienen la siguiente prioridad más alta se seleccionan para el equilibrio de carga. Sin embargo, si los servidores del grupo de servidores de prioridad más alta están activos de nuevo, los servidores se seleccionan de nuevo del grupo de prioridad más alta.

El cambio de un grupo de servidores de prioridad a otro grupo de servidores se produce graciosamente al purgar las transacciones de cliente existentes. Por lo tanto, los clientes actuales no ven ninguna interrupción en el acceso a la aplicación.

Para habilitar la consulta de registros SRV mediante la CLI

Realice las siguientes tareas para habilitar la consulta de registros SRV:

  1. Cree un servidor especificando el parámetro de tipo de consulta como SRV.

    En el símbolo del sistema, escriba:

    add server <name> <domain> [-queryType <queryType>])
    <!--NeedCopy-->
    

    Ejemplo:

    add server web_serv example.com -queryType SRV
    <!--NeedCopy-->
    

    Nota:

    • De forma predeterminada, se envían consultas IPv4. Para enviar consultas IPv6, debe habilitar el dominio IPv6.
    • El nombre de dominio de destino SRV no debe superar los 127 caracteres.
  2. Cree un grupo de servicios con el modo de escala automática como DNS.

    En el símbolo del sistema, escriba:

    add serviceGroup <serviceGroupName> <serviceType> [-autoScale <autoScale>]
    <!--NeedCopy-->
    

    Ejemplo:

    add servicegroup svc_grp_1 http -autoscale dns
    <!--NeedCopy-->
    
  3. Enlazar el servidor creado en el paso 1 al grupo de servicios como miembro.

    En el símbolo del sistema, escriba:

    bind serviceGroup <serviceGroupName> <serverName>
    <!--NeedCopy-->
    

    Ejemplo:

    bind servicegroup svc_grp_1 web_serv
    <!--NeedCopy-->
    

Nota:

  • Al vincular servidores a miembros del grupo de servicios, no es necesario especificar el número de puerto para los tipos de servidor SRV. En caso de que especifique un número de puerto para el tipo de servidor SRV, aparecerá un mensaje de error.

  • Opcionalmente, puede especificar un servidor de nombres y un valor TTL mientras se vincula un servidor al grupo de servicios.

Para habilitar la consulta de registros SRV mediante la interfaz gráfica de usuario

Crear un servidor

  1. Vaya a Administración del tráfico > Equilibrio de carga > Servidores y haga clic en Agregar.

    Crear servidor

  2. En la página Crear servidor, seleccione nombre de dominio.

  3. Introduzca los detalles de todos los parámetros requeridos.

  4. En Tipo de consulta, seleccione SRV.

  5. Haga clic en Crear.

Crear un grupo de servicios con el modo de escala automática como DNS

  1. Vaya a Administración del tráfico > Equilibrio de carga > Grupos de servicio.

  2. En la página Grupo de servicio de equilibrio de carga, introduzca los detalles de todos los parámetros necesarios.

  3. En Modo de Autoscale, seleccione DNS.

    Seleccionar modo como DNS

  4. Haga clic en Aceptar.

Vincular el servidor al miembro del grupo de servicios

  1. Vaya a Administración del tráfico > Equilibrio de carga > Grupos de servicio.

  2. En la página Grupos de servicios, seleccione el grupo de servicios que ha creado y haga clic en Modificar.

  3. En la página Grupos de servicio de equilibrio de carga, haga clic en Miembros del grupo de servicios.

  4. En la página Enlace de miembros del grupo de servicios, seleccione el servidor que ha creado y haga clic en Cerrar.

    Servidor de enlace

Nota:

  • Durante el enlace, no es necesario introducir el número de puerto para los tipos de servidor SRV. En caso de que introduzca un número de puerto para el tipo de servidor SRV, aparecerá un mensaje de error.

  • Opcionalmente, puede especificar un servidor de nombres y un valor TTL mientras se vincula un servidor al grupo de servicios.

Sobrescribir valores TTL

El dispositivo Citrix ADC está configurado para consultar periódicamente al servidor DNS cualquier actualización del registro SRV asociado a la aplicación durante el inicio de la aplicación. De forma predeterminada, la periodicidad de esta consulta depende del TTL publicado en el registro SRV. En aplicaciones de microservicios o cloud world, las implementaciones cambian más dinámicamente. Como resultado, los proxies tienen que ser más rápidos en la absorción de cualquier cambio en la implementación de aplicaciones. Por lo tanto, se recomienda a los usuarios establecer explícitamente el parámetro TTL del servicio basado en dominio en un valor que sea menor que el TTL del registro SRV y que sea óptimo para su implementación. Puede sobrescribir el valor TTL por dos métodos:

  • Al vincular a un miembro al grupo de servicios
  • Establecer el valor TTL globalmente mediante el comando set lb parameter.

En caso de que el valor TTL esté configurado tanto al vincular al miembro del grupo de servicios como también a nivel global, prevalece el valor TTL especificado al vincular al miembro del grupo de servicios. Si el valor TTL no se especifica mientras se vincula a un miembro del grupo de servicios o en el nivel global, el intervalo del monitor DBS se deriva del valor TTL en la respuesta DNS.

Sobrescribir los valores TTL mediante la CLI

  • Para sobrescribir el valor TTL mientras se vincula, en el símbolo del sistema, escriba:

     bind serviceGroup <serviceGroupName> (<serverName> [-dbsTTL <secs>])
     <!--NeedCopy-->
    

    Ejemplo:

     bind servicegroup svc_grp_1 web_serv -dbsTTL 10
     <!--NeedCopy-->
    
  • Para sobrescribir el valor TTL globalmente, en el símbolo del sistema, escriba:

     set lb parameter [-dbsTTL <secs>]
     <!--NeedCopy-->
    

    Ejemplo:

     set lb parameter -dbsTTL 15
     <!--NeedCopy-->
    

Sobrescribir los valores TTL mediante la GUI

Para sobrescribir el valor TTL mientras se vincula:

  1. Vaya a Administración del tráfico > Equilibrio de carga > Grupos de servicio.

  2. En la página Grupos de servicios, seleccione el grupo de servicios que ha creado y haga clic en Modificar.

  3. En la página Grupos de servicio de equilibrio de carga, haga clic en Miembros del grupo de servicios.

  4. En la página Enlace de miembros del grupo de servicios, seleccione el servidor que ha creado y haga clic en Modificar.

  5. En Domain Based Service TTL, introduzca el valor TTL.

Para sobrescribir el valor TTL en el nivel global:

  1. Acceda a Administración del tráfico > Equilibrio de carga > Cambiar Parámetros de Equilibrio de carga.

  2. En Domain Based Service TTL, introduzca el valor TTL.

Nota: Si el valor TTL del servidor basado en dominio se establece en 0, se utiliza el valor TTL del paquete de datos.

Especificar servidores de nombres diferentes para enlaces de nombres de dominio y grupos de servicios

Puede configurar diferentes servidores de nombres para diferentes nombres de dominio en un grupo específico. Establecer el parámetro NameServer es opcional mientras se vincula un servidor DBS al grupo de servicios. Cuando no se especifica un servidor de nombres mientras se vincula a un miembro al grupo de servicios, se considera el servidor de nombres configurado globalmente.

Especificar servidores de nombres al vincular un servidor a grupos de servicios mediante la CLI

En el símbolo del sistema, escriba:

bind serviceGroup <serviceGroupName> (<serverName> [-nameServer <ip_addr>] [-dbsTTL <secs>])
<!--NeedCopy-->

Ejemplo:

bind servicegroup svc_grp_1 web_serv  -ns.nameserver.com 10.102.27.155 -dbsTTL 10
<!--NeedCopy-->

Especificar servidores de nombres al enlazar un servidor a grupos de servicios mediante la GUI

  1. Vaya a Administración del tráfico > Equilibrio de carga > Grupos de servicio.

  2. En la página Grupos de servicios, seleccione el grupo de servicios que ha creado y haga clic en Modificar.

  3. En la página Grupos de servicio de equilibrio de carga, haga clic en Miembros del grupo de servicios.

  4. En la página Enlace de miembros del grupo de servicios, seleccione el servidor que ha creado y haga clic en Modificar.

  5. En Servidorde nombres, especifique el nombre del servidor de nombres al que debe enviarse la consulta del dominio enlazado.

Detección de servicios mediante registros DNS SRV