Citrix ADC

Cómo funciona la reescritura

Una directiva de reescritura consiste en una regla y una acción. La regla determina el tráfico en el que se aplica la reescritura y la acción determina la acción que debe realizar el dispositivo Citrix ADC. Puede definir varias directivas de reescritura. Para cada directiva, especifique el punto de enlace y la prioridad.

Un punto de enlace hace referencia a un punto en el flujo de tráfico en el que Citrix ADC examina el tráfico para verificar si se puede aplicar alguna directiva de reescritura. Puede enlazar una directiva a un servidor virtual de equilibrio de carga o cambio de contenido específico, o hacer que la directiva sea global si quiere que la directiva se aplique a todo el tráfico controlado por Citrix ADC. Estas directivas se denominan directivas globales.

Además de las directivas definidas por el usuario, Citrix ADC tiene algunas directivas predeterminadas. No se puede modificar ni eliminar una directiva predeterminada.

Para evaluar las directivas, Citrix ADC sigue el orden que se indica a continuación:

  • Directivas globales
  • Directivas vinculadas a servidores virtuales específicos
  • Directivas predeterminadas

Nota: Citrix ADC solo puede aplicar una directiva de reescritura cuando está enlazada a un punto.

Citrix ADC implementa la función de reescritura en los siguientes pasos:

  • El dispositivo Citrix ADC comprueba si existen directivas globales y, a continuación, las directivas en puntos de enlace individuales.

  • Si varias directivas están enlazadas a un punto de enlace, Citrix ADC evalúa las directivas en el orden de prioridad. La directiva con la máxima prioridad se evalúa en primer lugar. Después de evaluar cada directiva, si la directiva se evalúa como TRUE (el tráfico coincide con la regla), agrega la acción asociada a la directiva a una lista de acciones que se van a realizar. Se produce una coincidencia cuando las funciones especificadas en la regla de directiva coinciden con las funciones de la solicitud o respuesta que se está evaluando.

  • Para cualquier directiva, además de la acción, puede especificar la directiva que debe evaluarse después de evaluar la directiva actual. Esta directiva se conoce como ‘Ir a Expresión’. Para cualquier directiva, si se especifica Ir a Expresión (GoToPriorityExpr), Citrix ADC evalúa la directiva Ir a Expresión; ignora la directiva con la siguiente prioridad más alta.

    Puede especificar la prioridad de la directiva para indicar la directiva Ir a Expresión; no puede utilizar el nombre de la directiva. Si quiere que Citrix ADC deje de evaluar otras directivas después de evaluar una directiva en particular, puede establecer Ir a Expresión en ‘FIN’.

  • Una vez evaluadas todas las directivas o cuando una directiva tiene la opción Ir a expresión establecida como END, Citrix ADC comienza a realizar las acciones de acuerdo con la lista de acciones.

Para obtener más información acerca de la configuración de directivas de reescritura, consulte Configuración de una directiva de reescritura, y acerca de directivas de reescritura de enlace, consulte Vinculación de una directiva de reescritura.

La siguiente figura ilustra cómo Citrix ADC procesa una solicitud o respuesta cuando se utiliza la función de reescritura.

Ilustración 1. El proceso de reescritura

imagen

Evaluación de directivas

La directiva con la máxima prioridad se evalúa en primer lugar. Citrix ADC no detiene la evaluación de directivas de reescritura cuando encuentra una coincidencia; evalúa todas las directivas de reescritura configuradas en Citrix ADC.

  • Si una directiva se evalúa como TRUE, Citrix ADC sigue el procedimiento siguiente:
    • Si la directiva tiene la opción Ir a expresión establecida en END, Citrix ADC deja de evaluar todas las demás directivas y comienza a realizar la reescritura.
    • gotoPriorityExpressionse puede establecer en ‘NEXT’, ‘END’, algún entero o ‘INVOCATION_LIST’. El valor determina la directiva con la siguiente prioridad. En la tabla siguiente se muestra la acción realizada por Citrix ADC para cada valor de la expresión.

      Valor de la expresión Acción
      NEXT Se evalúa la directiva con la siguiente prioridad.
      END Se detiene la evaluación de las directivas.
      <an integer> Se evalúa la directiva con prioridad especificada.
      INVOCATION_LIST GoTo NEXT o END se aplica en función del resultado de la lista de invocación.
  • Si una directiva se evalúa como FALSE, Citrix ADC continúa la evaluación en el orden de prioridad.
  • Si una directiva se evalúa como INDEFINED (no se puede evaluar en el tráfico recibido debido a un error), Citrix ADC realiza la acción asignada a la condición INDEFINED (denominada UndeFaction) y detiene la evaluación posterior de directivas.

El dispositivo Citrix ADC inicia la reescritura real solo después de completar la evaluación. Se refiere a la lista de acciones identificadas por las directivas que se evalúan como TRUE e inicia la reescritura. Después de implementar todas las acciones de la lista, Citrix ADC reenvía el tráfico según sea necesario.

Nota:

Asegúrese de que las directivas no especifican acciones conflictivas o superpuestas en la misma parte del encabezado o cuerpo HTTP, o la carga útil TCP. Cuando se produce un conflicto de este tipo, Citrix ADC encuentra una situación indefinida y aborta la reescritura.

Acciones de reescritura

En el dispositivo Citrix ADC, especifique las acciones que se deben realizar, como agregar, reemplazar o eliminar texto dentro del cuerpo, o agregar, modificar o eliminar encabezados, o cualquier cambio en la carga útil TCP como acciones de reescritura. Para obtener más información acerca de las acciones de reescritura, consulte Configuración de una acción de reescritura.

En la siguiente tabla se describen los pasos que puede realizar Citrix ADC cuando una directiva se evalúa como TRUE.

Acción Resultado
Insertar Se lleva a cabo la acción de reescritura especificada para la directiva.
NOREWRITE La solicitud o respuesta no se reescribe. Citrix ADC reenvía el tráfico sin volver a escribir ninguna parte del mensaje.
RESTABLECER La conexión se aborta en el nivel TCP.
DROP Se ha eliminado el mensaje.

Nota:

Para cualquier directiva, puede configurar la desfacción (acción que se debe realizar cuando la directiva se evalúa como INDEFINED) como NOREWRITE, RESTABLECER o DROP.

Para utilizar la función de reescritura, siga los siguientes pasos:

  • Habilite la función en Citrix ADC.
  • Definir acciones de reescritura.
  • Definir directivas de reescritura.
  • Enlazar las directivas a un punto de enlace para que una directiva entre en vigor.

Cómo funciona la reescritura