Vincular directivas mediante directivas avanzadas

Después de definir una directiva, indica cuándo se va a invocar la directiva vinculando la directiva a un punto de enlace y especificando un nivel de prioridad. Puede enlazar una directiva a un solo punto de enlace. Un punto de enlace puede ser global, es decir, puede aplicarse a todos los servidores virtuales que haya configurado. O bien, un punto de enlace puede ser específico de un servidor virtual concreto, que puede ser un equilibrio de carga o un servidor virtual 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 el que se aplican, y las entidades suelen evaluar los distintos bancos de directivas en un orden determinado. A veces, sin embargo, 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 todas las acciones asociadas con 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 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 en cuanto a 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 la funcionalidad 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 Ninguno Directivas DNS Global Para determinar cómo realizar la resolución DNS de las solicitudes.
Content Switching (Nota: Esta función puede admitir directivas clásicas o avanzadas, pero no ambas). Conmutación de contenido (CS) Directivas de conmutación 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 servir 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 Ninguno Directivas de almacenamiento en caché Anulación global, valor predeterminado global, etiqueta de directiva, equilibrio de carga, conmutación de contenido o servidor virtual de descarga SSL Determinar si las respuestas HTTP se pueden almacenar en la caché integrada del dispositivo Citrix ADC y servirse desde ella.
Responder Ninguno Directivas de Responder Anulación global, valor predeterminado global, etiqueta de directiva, equilibrio de carga, conmutación de contenido o servidor virtual de descarga SSL Para configurar el comportamiento de la función Responder.
Reescribir Ninguno Volver a escribir directivas Anulación global, valor predeterminado global, etiqueta de directiva, equilibrio de carga, conmutación de contenido o servidor virtual de descarga SSL Para 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 en función de la dirección de la solicitud entrante, o para enmascarar la información del servidor en una respuesta con fines de seguridad.
Función de transformación de URL en la función Rewrite Ninguno Directivas de transformación Anulación global, Valor predeterminado global, Etiqueta de directiva Identificar direcciones URL en transacciones HTTP y archivos de texto con el fin de evaluar si se debe modificar una dirección URL.
Citrix Gateway (solo funciones VPN sin cliente) Servidor VPN Directivas de acceso sin cliente VPN Global, servidor VPN Determinar cómo Citrix Gateway realiza la autenticación, la autorización, la auditoría y otras funciones, y definir reglas de reescritura para el acceso web general mediante Citrix Gateway.

Puntos de enlace y orden de evaluación

Para que una directiva surta efecto, debe asegurarse de que la directiva se invoca en algún momento durante el procesamiento. Para ello, asocie la directiva con un punto de enlace. La colección de directivas enlazadas a un punto de enlace se conoce como banco de directivas.

Los siguientes son los puntos de enlace que evalúa Citrix ADC, enumerados en el orden típico de evaluación dentro de un banco de directivas

  1. Request-time override. 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 no se puede completar después de evaluar todas las directivas de reemplazo de 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 no se puede completar después de evaluar todas las directivas de tiempo de solicitud para servidores virtuales de equilibrio de carga, Citrix ADC procesa las directivas de tiempo de solicitud para servidores virtuales de conmutación de contenido.
  4. Request-time default. Si la evaluación de directivas no se puede completar después de que se hayan evaluado todas las directivas específicas del servidor virtual en tiempo de solicitud, Citrix ADC procesa las directivas avanzadas en tiempo de solicitud.
  5. Response-time override. En el momento de respuesta, Citrix ADC comienza con directivas enlazadas al punto de enlace de anulación del tiempo de respuesta.
  6. Response-time Load Balancing virtual server. Si la evaluación de directivas no se puede completar después de evaluar 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 no se puede completar la evaluación de directivas después de que se hayan evaluado todas las directivas para servidores virtuales de equilibrio de carga, el dispositivo Citrix ADC procesa las directivas de tiempo de respuesta para el cambio de contenido de servidores virtuales.
  8. Response-time default. Si la evaluación de directivas no se puede completar después de que se hayan 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

Además de asistir a la evaluación de directivas dentro de una función, si tiene directivas enlazadas a un servidor virtual de cambio de contenido, tenga en cuenta que estas 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 conmutación de contenido se evalúan antes que otras directivas. Si una directiva de conmutación 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 vserver de equilibrio de carga predeterminado en el VIP de conmutación de contenido.

Después de seleccionar un servidor vserver de equilibrio de carga de destino mediante el proceso de conmutación de contenido, las directivas se evalúan en el siguiente orden:

  1. Directivas enlazadas al punto de enlace de anulación global.
  2. Directivas que están enlazadas al servidor vserver de equilibrio de carga predeterminado.
  3. Directivas que están enlazadas al 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 directrices:

  • Asegúrese de que el vserver de equilibrio de carga predeterminado no sea accesible directamente desde el exterior; por ejemplo, la dirección IP del vserver puede ser 0.0.0.0.
  • Para evitar que se expongan datos internos en el servidor vserver predeterminado de equilibrio de carga, configure una directiva para que responda con el estado “503 Service Unavailable” y enlaza al 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 basado en prioridades y configurar entradas que invoquen bancos de directivas externos.

En la siguiente tabla se resumen cada entrada de un banco de directivas.

Nombre de la directiva Prioridad Expresión de GoTo Tipo de invocación Banco de directivas a ser invocado
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 siguiente directiva en el banco para evaluar, o termina cualquier evaluación posterior Opcional. Indica que se invocará un banco de directivas externo. 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. Esta es la etiqueta de un banco de directivas o un nombre de servidor virtual. El dispositivo Citrix ADC vuelve 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 TRUE ni FALSE, 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érico. Cuanto menor sea el número, mayor será la prioridad.

  • Una expresión GoTo.

    Si se proporciona, 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, una configuración de banco de directivas no es válida si una instrucción GoTo apunta hacia atrás en el banco.

  • Invocación de otros bancos de directivas.

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

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

  • NEXT.

    Esta palabra clave selecciona la directiva con el siguiente nivel de prioridad más alto en el banco de directivas actual.

  • Un número entero.

    Si proporciona un entero, debe coincidir con el nivel de prioridad de otra directiva en el banco de directivas actual.

  • END.

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

  • Vacío.

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

  • Una 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 está invocando un banco de directivas externo. Al escribir esta frase, el dispositivo Citrix ADC realice una de las siguientes acciones:

    • Si el GoTo final en el banco de directivas invocado tiene un valor de 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 en el banco de directivas invocado es algo distinto de END, Citrix ADC realiza un NEXT.

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

Nombre de la directiva Prioridad GoTo Invocación Banco de directivas a ser invocado
ClientCertificatePolicy (regla: ¿contiene la solicitud un certificado de cliente?) 100 300 Ninguna Ninguna
SubnetPolicy (regla: ¿es el cliente de una subred privada?) 200 NEXT Ninguna Ninguna
NOPOLICY 300 USE INVOCATION RESULT Solicitar vserver My_Request_VServer
NOPOLICY 350 USE INVOCATION RESULT Etiqueta de directiva My_Policy_Label
WorkinghoursPolicy (regla: ¿son horas de trabajo?) 400 END Ninguna Ninguna

Cuadro 3. Ejemplo de un banco de directivas que utiliza Gotos e invocaciones de bancos externos

Cómo termina la evaluación de directivas

La evaluación de un banco de directivas finaliza cuando se realiza una de las siguientes acciones:

  • Una directiva se evalúa como TRUE y su valor de declaración GoTo es END.

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

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

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

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

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

Cómo utilizan las funciones las acciones después de la evaluación de directivas

Después de evaluar todas las directivas relevantes para un punto de datos determinado (por ejemplo, una solicitud HTTP), Citrix ADC almacena todas las acciones asociadas con 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 a medida que sale del dispositivo 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 de las directivas específicas del servidor virtual).