Citrix ADC

Vincular directivas mediante directivas avanzadas

Después de definir una directiva, indica cuándo se va a activar la directiva vinculando la directiva a un punto de enlace. A continuación, especifique un nivel de prioridad.

Vincular una directiva a un solo punto de enlace. Un punto de enlace puede ser global. El punto de enlace global se aplica a los servidores virtuales configurados. O bien, un punto de enlace puede ser específico de un servidor virtual concreto; ya sea de un servidor virtual de equilibrio de carga o de conmutación de contenido. No todos los puntos de enlace están disponibles para todas las entidades.

El orden en que se evalúan las directivas determina el orden en que se aplican las directivas. Por lo general, las funciones evalúan varios bancos de directivas en un orden determinado.

A veces, otras funciones pueden afectar el orden de evaluación dentro de un banco de directivas. El orden de evaluación depende de los valores de los parámetros configurados en las directivas. La mayoría de las funciones aplican acciones asociadas a las directivas cuya evaluación da como resultado una coincidencia con los datos que se están procesando. La función de almacenamiento en caché integrada es una excepción.

Diferencias específicas de las funciones en los enlaces de directivas

Puede enlazar directivas a puntos de enlace globales (o bancos) integrados, a servidores virtuales o a etiquetas de directivas.

Sin embargo, las funciones de Citrix ADC difieren según los tipos de enlaces disponibles. En la siguiente tabla se resume cómo se utilizan los enlaces de directivas en varias funciones de Citrix ADC que utilizan directivas.

Nombre de función Servidores virtuales configurados en la función Directivas configuradas en la función Puntos de enlace configurados para las directivas Uso de directivas en la función
DNS none Directivas DNS Global Determinar cómo llevar a cabo la resolución DNS de las solicitudes.
Cambio de contenido (Nota: Esta función puede admitir directivas avanzadas, pero no ambas). Cambio de contenido (CS) Directivas de cambio de contenido Servidor virtual de conmutación de contenido o redirección de caché; etiqueta de directiva Determinar qué servidor o grupo de servidores es responsable de atender las respuestas, en función de las funciones de una solicitud entrante. Las funciones de solicitud incluyen el tipo de dispositivo, el idioma, las cookies, el método HTTP, el tipo de contenido y el servidor de caché asociado.
Almacenamiento en caché integrado none Directivas de almacenamiento en caché Anulación global, valor predeterminado global, etiqueta de directiva, equilibrio de carga, cambio de contenido o servidor virtual de descarga SSL Para determinar si las respuestas HTTP se pueden almacenar y servir desde la memoria caché integrada del dispositivo Citrix ADC.
Responder none Directivas de respuesta Anulación global, valor predeterminado global, etiqueta de directiva, equilibrio de carga, cambio de contenido o servidor virtual de descarga SSL Configurar el comportamiento de la función Responder.
Reescribe none Directivas de reescritura Anulación global, valor predeterminado global, etiqueta de directiva, equilibrio de carga, cambio de contenido o servidor virtual de descarga SSL Identificar los datos HTTP que quiere modificar antes de servir. Las directivas proporcionan reglas para modificar los datos. Por ejemplo, puede modificar los datos HTTP para redirigir una solicitud a un servidor seleccionado. Esta modificación se basa en la dirección de la solicitud entrante. O bien, para enmascarar la información del servidor en una respuesta por motivos de seguridad.
Función de transformación de URL en la función Rewrite none Directivas de transformación Anulación global, Valor predeterminado global, Etiqueta de directiva Identificar las URL de las transacciones HTTP y los archivos de texto para evaluar si se debe modificar una URL.
Citrix Gateway (solo funciones VPN sin cliente) Servidor VPN Directivas de acceso sin cliente VPN Global, servidor VPN Para determinar cómo funciona Citrix Gateway: autenticación, autorización, auditoría y otras funciones, y para definir reglas de reescritura para el acceso web general mediante Citrix Gateway.

Puntos de enlace y orden de evaluación

Para que una directiva entre en vigor, debe confirmar que la directiva está activada en algún momento durante el procesamiento. Para ello, asocie la directiva con un punto de enlace. El conjunto de directivas vinculado a un punto de enlace se conoce como banco de directivas.

A continuación se presentan los puntos de enlace que Citrix ADC evalúa, enumerados en el orden típico de evaluación dentro de un banco de directivas

  1. Anulación de hora de solicitud. Cuando una solicitud fluye a través de una función, Citrix ADC evalúa primero las directivas de anulación de tiempo de solicitud para la función.
  2. Request-time Load Balancing virtual server. Si la evaluación de directivas está incompleta después de la evaluación de directivas de anulación del tiempo de solicitud, Citrix ADC procesa las directivas de tiempo de solicitud para servidores virtuales de equilibrio de carga.
  3. Request-time Content Switching virtual server. Si la evaluación de directivas está incompleta después de las directivas de tiempo de solicitud para la evaluación de servidores virtuales de equilibrio de carga, Citrix ADC procesa las directivas de tiempo de solicitud para los servidores virtuales de conmutación de contenido.
  4. Por defecto de hora de solicitud. Si no se puede completar la evaluación de directivas después de haber evaluado todas las directivas específicas del servidor virtual en el momento de la solicitud, Citrix ADC procesa las directivas avanzadas en el momento de la solicitud.
  5. Anulación del tiempo de respuesta. En el momento de respuesta, Citrix ADC comienza con directivas vinculadas al punto de enlace de anulación de tiempo de respuesta.
  6. Servidor virtual de equilibrio de carga de tiempo de respuesta. Si no se puede completar la evaluación de directivas después de haber evaluado todas las directivas de anulación de tiempo de respuesta, Citrix ADC procesa las directivas de tiempo de respuesta para los servidores virtuales de equilibrio de carga.
  7. Response-time Content Switching virtual server. Si una evaluación de directivas está incompleta después de la evaluación de directivas para servidores virtuales de equilibrio de carga, Citrix ADC procesa las directivas de tiempo de respuesta para los servidores virtuales de conmutación de contenido.
  8. Tiempo de respuesta predeterminado. Si no se puede completar la evaluación de directivas después de haber evaluado todas las directivas específicas del servidor virtual en tiempo de respuesta, Citrix ADC procesa las directivas avanzadas de tiempo de respuesta.

Evaluación de directivas en todas las funciones

Si una directiva está vinculada a un servidor virtual de conmutación de contenido. Además de la evaluación de directivas dentro de una función. Las directivas se evalúan antes que otras directivas.

La vinculación de una directiva a un servidor vserver de conmutación de contenido produce un resultado diferente en las versiones 9.0.x de Citrix ADC y posteriores que en las versiones 8.x. En Citrix ADC 9.0 y versiones posteriores, la evaluación se realiza de la siguiente manera:

  • Las directivas de cambio de contenido se evalúan antes que otras directivas. Si una directiva de cambio de contenido se evalúa como TRUE, se selecciona el servidor vserver de equilibrio de carga de destino.
  • Si todas las directivas de conmutación de contenido se evalúan como FALSE, se selecciona el servidor vserver de equilibrio de carga predeterminado en el VIP de conmutación de contenido.

Una vez que el proceso de conmutación de contenido selecciona un servidor vserver de equilibrio de carga de destino, las directivas se evalúan en el siguiente orden:

  1. Directivas vinculadas al punto de enlace de anulación global.
  2. Directivas enlazadas al servidor vserver de equilibrio de carga predeterminado.
  3. Directivas enlazadas al servidor vserver de conmutación de contenido de destino.
  4. Directivas enlazadas al punto de enlace predeterminado global.

Para asegurarse de que las directivas se evalúan en el orden previsto, siga estas pautas:

  • Asegúrese de que el servidor vserver de equilibrio de carga predeterminado no sea accesible directamente desde el exterior; por ejemplo, la dirección IP de vserver puede ser 0.0.0.0.
  • Para evitar la exposición de datos internos en el servidor vserver predeterminado de equilibrio de carga, configure una directiva para que responda con el estado “Servicio 503 no disponible” y enlaza el servidor vserver de equilibrio de carga predeterminado.

Entradas en un banco de directivas

Cada entrada en un banco de directivas tiene, como mínimo, una directiva y un nivel de prioridad. También puede configurar entradas que cambien el orden de evaluación basada en prioridades y configurar entradas que invoquen bancos de directivas externos.

En la tabla siguiente se resumen todas las entradas de un banco de directivas.

Nombre de la directiva Prioridad Expresión Goto Tipo de invocación Banco de directivas que se invocará
El nombre de la directiva o una directiva “ficticia” denominada NOPOLICY. La entrada NOPOLICY controla el flujo de evaluación sin procesar una regla. Un número entero. Opcional. Identifica la próxima directiva del banco que se va a evaluar o finaliza cualquier evaluación posterior Opcional. Indica que se invocará un banco de directivas externas. Este campo restringe las opciones a una etiqueta de directiva global o a un servidor virtual. Opcional. Se utiliza con el tipo de invocación. Es la etiqueta de un banco de directivas o el nombre de un servidor virtual. El Citrix ADC regresa al banco actual después de procesar el banco externo.

Si la directiva se evalúa como TRUE, Citrix ADC almacena la acción asociada a la directiva. Si la directiva se evalúa como FALSE, Citrix ADC evalúa la siguiente directiva. Si la directiva no es VERDADERA ni FALSA, Citrix ADC utiliza la acción Undef (undefined) asociada.

Orden de evaluación dentro de un banco de directivas

Dentro de un banco de directivas, el orden de evaluación depende de los siguientes elementos:

  • Una prioridad.

    La cantidad mínima de información sobre el orden de evaluación es un nivel de prioridad numérica. Cuanto menor sea el número, mayor será la prioridad.

  • Una expresión Goto.

    Si se suministra, la expresión Goto indica la siguiente directiva que se va a evaluar, normalmente dentro del mismo banco de directivas. Las expresiones Goto solo pueden avanzar en un banco. Para evitar el bucle, la configuración de un banco de directivas no es válida si un extracto Goto apunta hacia atrás en el banco.

  • Invocación de otros bancos de directivas.

    Cualquier entrada puede invocar un banco de directivas externas. Citrix ADC proporciona una entidad integrada denominada NOPOLICY que no tiene regla. Puede agregar una entrada NOPOLICY en un banco de directivas cuando quiera invocar otro banco de directivas, pero no quiere procesar ninguna otra regla antes de la invocación. Puede tener varias entradas NOPOLICY en varios bancos de directivas.

Los valores de una expresión Goto son los siguientes:

  • SIGUIENTE.

    Esta palabra clave selecciona la directiva con el siguiente nivel de prioridad más alto en el banco de directivas actual. Las directivas se evalúan en orden de prioridad desde la prioridad numerada inferior a la prioridad numerada más alta.

  • Un número entero.

    Si proporciona un número entero, debe coincidir con el nivel de prioridad de otra directiva del banco de directivas actual.

  • FINAL.

    Esta palabra clave detiene la evaluación tras procesar la directiva actual y no se procesan directivas adicionales en este banco.

  • En blanco.

    Si la expresión Goto está vacía, es lo mismo que especificar END.

  • Expresión numérica.

    Se trata de una expresión de directiva avanzada que se resuelve en un número de prioridad para otra directiva del banco actual.

  • USE_INVOCATION_RESULT.

    Esta frase solo se puede utilizar si se invoca un banco de directivas externas. Al introducir esta frase, Citrix ADC realiza una de las siguientes acciones:

    • Si el Goto final del banco de directivas invocado tiene el valor END o está vacío, el resultado de la invocación es END y la evaluación se detiene.
    • Si la expresión Goto final del banco de directivas invocado no es END, Citrix ADC realiza un NEXT.

En la siguiente tabla se muestra un banco de directivas que utiliza extractos de Goto e invocaciones bancarias de directivas.

Nombre de la directiva Prioridad Ir a Invocación Banco de directivas que se invocará
clientCertificatePolicy (regla: ¿contiene la solicitud un certificado de cliente?) 100 300 Ninguno Ninguno
SubnetPolicy (regla: ¿el cliente pertenece a una subred privada?) 200 PRÓXIMO Ninguno Ninguno
SIN POLÍTICA 300 UTILIZAR RESULTADO DE INVOCACIÓN Solicitar vserver My_request_vserver
SIN POLÍTICA 350 UTILIZAR RESULTADO DE INVOCACIÓN Etiqueta de directiva My_Policy_Label
workingHoursPolicy (regla: ¿son horas de trabajo?) 400 FIN Ninguno Ninguno

Tabla 3. Ejemplo de banco de directivas que utiliza invocaciones bancarias externas y Gotos

Cómo finaliza la evaluación de directivas

La evaluación de un banco de directivas finaliza cuando se produce una de las siguientes situaciones:

  • Una directiva se evalúa como VERDADERO y su valor de sentencia Goto es END.

    No se evalúan más directivas ni bancos de directivas de esta función.

  • Se invoca un banco de directivas externo, su evaluación devuelve un END y la sentencia Goto utiliza un valor de USE_INVOCATION_RESULT o END.

    La evaluación continúa con el próximo banco de directivas de esta función. Por ejemplo, si el banco actual es el banco de anulación de tiempo de solicitud, Citrix ADC evalúa a continuación los bancos de directivas de tiempo de solicitud para los servidores virtuales.

  • Citrix ADC ha revisado todos los bancos de directivas de esta función, pero no ha encontrado un END.

    Si esta es la última entrada que se evalúa en este banco de directivas, Citrix ADC pasa a la siguiente función.

Cómo utilizan las funciones las acciones tras la evaluación de directivas

Tras evaluar todas las directivas relevantes para un punto de datos concreto (por ejemplo, una solicitud HTTP), Citrix ADC almacena todas las acciones asociadas a cualquier directiva que coincida con los datos.

Para la mayoría de las funciones, todas las acciones de las directivas coincidentes se aplican a un paquete de tráfico cuando sale de Citrix ADC. La función Almacenamiento en caché integrado solo aplica una acción: CACHE o NOCACHE. Esta acción está asociada a la directiva con el valor de prioridad más bajo en el banco de directivas de “prioridad más alta” (por ejemplo, las directivas de anulación de tiempo de solicitud se aplican antes que las directivas específicas del servidor virtual).