ADC

Vincular directivas mediante directivas avanzadas

Después de definir una directiva, se puede invocar la directiva vinculando la directiva a un punto de enlace y especificando un nivel de prioridad. Puede vincular la directiva a un solo punto de enlace. Un punto de enlace puede ser global (aplicable a todos los servidores virtuales configurados) o un punto de enlace puede ser un servidor virtual específico (un servidor virtual de equilibrio de carga o conmutación de contenido).

El orden en que se evalúan las directivas determina el orden en que se aplican. Las funciones de ADC suelen evaluar varios bancos de directivas en un orden determinado. Sin embargo, a veces, otras funciones pueden afectar el orden de evaluación. En 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 entidades aplican todas las acciones asociadas a una directiva si el resultado evaluado coincide con los datos que se están procesando.

Nota:

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, servidores virtuales específicos o etiquetas de directivas.

Sin embargo, las funciones de NetScaler difieren en el tipo de enlaces disponibles. En la tabla siguiente se resumen los enlaces de directivas en las funciones de NetScaler 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 pueden almacenarse en la memoria caché integrada del dispositivo NetScaler y servirse desde ella.
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.
Reescritura 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 en función de la dirección de la solicitud entrante o 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 URL en transacciones HTTP y archivos de texto para evaluar si se debe modificar una URL.
NetScaler Gateway (solo funciones de VPN sin cliente) Servidor VPN Directivas de acceso sin cliente VPN Global, servidor VPN Determinar cómo NetScaler Gateway realiza la autenticación, autorización, auditoría y otras funciones, y definir reglas de reescritura para el acceso web general mediante NetScaler 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. 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 NetScaler evalúa, enumerados en el orden típico de evaluación dentro de un banco de directivas

  1. Anulación del tiempo de solicitud. Cuando una solicitud fluye a través de una función, NetScaler evalúa primero las directivas de anulación de tiempo de solicitud para la función.
  2. Request-time Load Balancing virtual server. Si no se puede completar la evaluación de directivas después de evaluar todas las directivas de anulación de tiempo de solicitud, NetScaler procesa las directivas de tiempo de solicitud para los servidores virtuales de equilibrio de carga.
  3. Request-time Content Switching virtual server. Si no se puede completar la evaluación de directivas después de evaluar todas las directivas de tiempo de solicitud para los servidores virtuales de equilibrio de carga, NetScaler procesa las directivas de tiempo de solicitud para los servidores virtuales de conmutación de contenido.
  4. Tiempo de solicitud 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 el momento de la solicitud, NetScaler procesa las directivas avanzadas en el momento de la solicitud.
  5. Anulación del tiempo de respuesta. En el momento de respuesta, NetScaler 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, NetScaler 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, NetScaler procesa las directivas de tiempo de respuesta de 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, NetScaler procesa las directivas avanzadas de tiempo de respuesta.

Evaluación de directivas en todas las funciones

Además de evaluar las directivas dentro de una función, si vincula directivas a un servidor virtual de conmutación de contenido, es importante que estas directivas se evalúen antes que otras directivas. La vinculación de una directiva a un servidor virtual de conmutación de contenido produce un resultado diferente en las versiones 9.0.x y posteriores de NetScaler que en las versiones 8.x. En NetScaler 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 conmutación de contenido se evalúa como TRUE, se selecciona el servidor virtual de equilibrio de carga de destino.
  • Si todas las directivas de conmutación de contenido se evalúan como FALSE, se selecciona el servidor virtual 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 virtual 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 virtual de equilibrio de carga predeterminado.
  3. Directivas enlazadas al servidor virtual 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 virtual de equilibrio de carga predeterminado no es accesible directamente desde el exterior; por ejemplo, la dirección IP del servidor virtual puede ser 0.0.0.0.
  • Para evitar la exposición de datos internos en el servidor virtual predeterminado de equilibrio de carga, configure una directiva para que responda con el estado “Servicio 503 no disponible” y enlaza al servidor virtual 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. El banco de directivas es el grupo de directivas que están vinculadas a un punto de enlace determinado y que se pueden evaluar para cierto tráfico. Si algunas directivas están enlazadas a LB vserver de un tipo de protocolo HTTP, LB vserver es un banco de directivas. Y las directivas vinculadas a este banco de directivas se pueden evaluar para el tráfico HTTP. Si algunas directivas de reescritura están obligadas a reescribir global en el punto de enlace DNS_REQ_OVERRIDE, el punto bindpoit DNS_REQ_OVERRIDE será un banco de directivas al que están vinculadas algunas directivas.

Dado que, en la etiqueta de directiva podemos vincular un número de directivas, por lo que la etiqueta de directiva también es un banco de directivas.

Los bancos de directivas se diferencian en función de los protocolos, las condiciones y las prioridades. Supongamos que tiene un servidor virtual de 2 LB. Una es de tipo HTTP y otra de tipo DNS. Además, hay distintas directivas vinculadas a estos servidores virtuales. Por lo tanto, ambos servidores virtuales son los bancos de directivas, pero las directivas vinculadas a uno de los bancos de directivas se evalúan para el tráfico HTTP. Las directivas vinculadas a otro banco de directivas se evalúan en cuanto al tráfico DNS. Para cada evaluación de directivas, se evalúa una regla. También para NOPOLICY, se evalúa una regla true. Si un usuario quiere invocar una etiqueta de directiva para todo el tráfico, el usuario puede usar NOPOLICY como regla true.

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”. Un número entero. Opcional. Si no está configurado, ADC toma el valor predeterminado de GoToPriorityExpression. Identifica la siguiente directiva que se evaluará si la directiva actual se evalúa como verdadera o finaliza cualquier evaluación posterior Opcional. Indica que se invoca un banco de directivas externas. El 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 NetScaler vuelve al banco actual después de procesar el banco externo.

Si la directiva se evalúa como TRUE, NetScaler almacena la acción asociada a la directiva. Agregue evaluar la siguiente directiva en función del valor del campo gotoPriorityExpression. Si la directiva se evalúa como FALSE, NetScaler evalúa la siguiente directiva. Si la directiva no es VERDADERA ni FALSA, NetScaler utiliza la acción Undef (undefined) asociada. El tipo de invocación designa un tipo de banco de directivas. El valor puede ser uno de los siguientes:

  • Solicitar servidor virtual: invoca directivas de tiempo de solicitud asociadas a un servidor virtual.
  • Response Vserver: invoca directivas de tiempo de respuesta asociadas a un servidor virtual.
  • Etiqueta de directiva: invoca a otro banco de directivas, identificado por la etiqueta de directiva del banco. Valores de campo GoToPriorityExpression:
  • Goto NEXT - Vaya a la directiva con la siguiente prioridad más alta
  • Goto END - Evaluación final
  • Goto #: expresión que produce el número de prioridad de la siguiente directiva que se va a evaluar. El Goto solo puede avanzar en un banco de directivas.
  • Goto USE_INVOCATION_RESULT: aplicable si esta directiva invoca otra etiqueta de directiva. Si el goto final de la etiqueta de directiva invocada tiene el valor END, la evaluación se detiene. Si el goto final no es END, la etiqueta de directiva actual realiza un NEXT. Si omite la expresión Goto, es lo mismo que especificar END. Ejemplo de banco de directivas que utiliza la expresión Goto:
Nombre de la directiva Prioridad Ir a Invocación Banco de directivas que se invocará
Directiva de certificados de clientes 100 300 Nada Nada
Directiva de subred 200 Siguiente Nada Nada
SIN POLÍTICA 300 UTILIZAR RESULTADO DE INVOCACIÓN Servidor de solicitudes My_request_vserver
SIN POLÍTICA 350 UTILIZAR RESULTADO DE INVOCACIÓN Etiqueta de directiva My_Policy_Label
Directiva de horas de trabajo 400 FIN Nada Nada

Orden de evaluación dentro de un banco de directivas

En un banco de directivas, el orden de evaluación depende de los siguientes parámetros:

  • 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 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 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. NetScaler proporciona una entidad integrada denominada NOPOLICY que no tiene una 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:

  • PRÓXIMO.

    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 número entero, debe coincidir con el nivel de prioridad de otra directiva del banco de directivas actual.

  • FINAL.

    La 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.

  • USUARIO_RESULTADO_DE_INVOCACIÓN.

    La frase solo se puede utilizar si se invoca un banco de directivas externas. Al introducir la frase, NetScaler realizará 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, NetScaler 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 (rule: does the request contain a client certificate?) | 100 | 300 | None | None | | SubnetPolicy (rule: is the client from a private subnet?) | 200 | NEXT | None | None | NOPOLICY | 300 | USE INVOCATION RESULT | Request virtual server | My_Request_VServer | NOPOLICY | 350 | USE INVOCATION RESULT | Policy Label | My_Policy_Label | | WorkingHoursPolicy (rule: is it working hours?) | 400 | END | None | None |

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 el dispositivo NetScaler ejecuta uno de los pasos siguientes:

  • Si la evaluación de una directiva es “VERDADERA”, invoca un banco de directivas externo y su valor de declaración Goto es “USE_INVOCATION_RESULT”, y si otra directiva del banco de directivas externo también evalúa “TRUE” y el valor del extracto Goto es “END”, después de regresar del banco de directivas externo banco de directivas, no se evaluará ninguna otra directiva.

  • 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, NetScaler evalúa a continuación los bancos de directivas de tiempo de solicitud para los servidores virtuales.

  • NetScaler ha revisado todos los bancos de pólizas de esta función, pero no ha encontrado un FINAL.

Si esta es la última entrada que se evalúa en este banco de directivas, NetScaler 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), NetScaler 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 NetScaler. 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).