ADC

Detección de servicios mediante registros SRV DNS

Un registro SRV (registro de servicio) es una especificación de datos del Sistema de nombres de dominio que define la ubicación, es decir, el nombre del 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 EN 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 uno de los hosts de destino publicados 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 activa, lo que lo convierte en una implementación de aplicaciones con un solo toque.

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 desplazando hacia arquitecturas 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 descubrimiento de servicios mediante registros SRV de DNS ayuda a configurar el dispositivo Citrix ADC en un escenario de implementación tan dinámico. 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 NetScaler ADC. Los registros SRV son útiles en este caso. Los parámetros del registro SRV, como la prioridad y el peso, se pueden utilizar para equilibrar mejor la carga de las aplicaciones.

  • El parámetro de prioridad se puede utilizar para determinar la prioridad del grupo de servidores.
  • El parámetro de peso se puede usar para determinar la capacidad de las instancias de servicio de fondo y, por lo tanto, se puede usar para equilibrar la carga ponderada.
  • Siempre que se produzca un cambio en el grupo de servidores de fondo (por ejemplo, se elimina una instancia de fondo del grupo), la instancia se elimina por cortesía solo después de que se respeten todas las conexiones de cliente existentes.

Nota:

  • Un servicio de descubrimiento basado en registros A/AAAA, todas las direcciones IP resueltas tienen el mismo peso porque se asigna el peso al dominio que se está resolviendo.

  • Si el peso en la respuesta SRV es superior a 100, no se crean los servicios.

Equilibrio de carga basado en prioridades mediante registros SRV

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

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 mayor prioridad están inactivos, se seleccionan los servidores que tengan la siguiente prioridad más alta para equilibrar la carga. Sin embargo, si los servidores del grupo de servidores de mayor prioridad vuelven a estar activos, se vuelven a seleccionar los servidores del grupo de mayor prioridad.

El cambio de un grupo de servidores prioritarios a otro grupo de servidores se realiza sin problemas al reducir las transacciones de los clientes 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 del 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 de SRV no debe superar los 127 caracteres.
  2. Cree un grupo de servicios con el modo de escalabilidad 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 de grupos de servicios, no es necesario introducir el número de puerto para los tipos de servidores SRV. Si especifica un número de puerto para el tipo de servidor SRV, aparecerá un mensaje de error.

  • Si lo desea, puede especificar un servidor de nombres y un valor TTL al vincular un servidor al grupo de servicios.

Para habilitar la consulta de registros SRV mediante la GUI

Crear un servidor

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

  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.

Cree un grupo de servicios con modo de escalabilidad 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.

  4. Haga clic en Aceptar.

Enlazar 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 servicios de equilibrio de carga, haga clic en Miembros del grupode

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

Nota:

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

  • Si lo desea, puede especificar un servidor de nombres y un valor TTL al vincular un servidor al grupo de servicios.

Sobrescribir valores TTL

El dispositivo NetScaler 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 las aplicaciones de microservicios o en el mundo de la nube, las implementaciones cambian de forma más dinámica. Como resultado, los proxies deben absorber más rápidamente cualquier cambio en la implementación de la aplicación. Por lo tanto, se recomienda a los usuarios configurar el parámetro TTL del servicio basado en el dominio de forma explícita en un valor inferior al TTL del registro SRV y que sea óptimo para su implementación. Puede sobrescribir el valor TTL mediante 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 de TTL mediante la CLI

  • Para sobrescribir el valor TTL durante el enlace, en la línea de comandos, escriba:

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

    Ejemplo:

     bind servicegroup svc_grp_1 web_serv -dbsTTL 10
     <!--NeedCopy-->
    
  • Para sobrescribir el valor TTL de forma global, en la línea de comandos, escriba:

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

    Ejemplo:

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

Sobrescribir los valores de TTL mediante la GUI

Para sobrescribir el valor TTL durante el enlace:

  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 servicios de equilibrio de carga, haga clic en Miembros del grupode

  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 a nivel global:

  1. Vaya 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 al vincular a un miembro al grupo de servicios, se tiene en cuenta 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 vincular 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 servicios de equilibrio de carga, haga clic en Miembros del grupode

  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 SRV DNS