Reescritura
Advertencia:
Las funciones de filtro que utilizan directivas clásicas están obsoletas y, como alternativa, Citrix recomienda utilizar las funciones de reescritura y respuesta con una infraestructura de directivas avanzada.
Rewrite se refiere a la reescritura de cierta información en las solicitudes o respuestas manejadas por el dispositivo NetScaler. La reescritura puede ayudar a proporcionar acceso al contenido solicitado sin exponer detalles innecesarios sobre la configuración real del sitio web. Algunas situaciones en las que la función de reescritura resulta útil son las siguientes:
Para mejorar la seguridad, NetScaler puede reescribir todos los
http://links
comohttps://
en el cuerpo de respuesta.En la implementación de descarga de SSL, los enlaces inseguros de la respuesta deben convertirse en enlaces seguros. Con la opción de reescritura, puede reescribir todo
http://links
https://
para asegurarse de que las respuestas salientes de NetScaler al cliente tengan los enlaces seguros.Si un sitio web tiene que mostrar una página de error, puede mostrar una página de error personalizada en lugar de la página de error 404 predeterminada. Por ejemplo, si muestra la página principal o el mapa del sitio web en lugar de una página de error, el visitante permanece en el sitio en lugar de alejarse del sitio web.
Si quieres lanzar un nuevo sitio web, pero usas la URL anterior, puede usar la opción Reescribir.
Cuando un tema de un sitio tiene una URL complicada, puede reescribirlo con una URL sencilla y fácil de recordar (también conocida como “URL interesante”).
Puede agregar el nombre de página predeterminado a la URL de un sitio web. Por ejemplo, si la página predeterminada del sitio web de una empresa es
http://www.abc.com/index.php
, cuando el usuario escribe “abc.com” en la barra de direcciones del explorador, puede volver a escribir la URL en “abc.com/index.php”.
Al habilitar la función de reescritura, NetScaler puede modificar los encabezados y el cuerpo de las solicitudes y respuestas HTTP.
Para reescribir solicitudes y respuestas HTTP, puede utilizar expresiones de directivas NetScaler con reconocimiento de protocolo en las directivas de reescritura que configure. Los servidores virtuales que administran las solicitudes y respuestas HTTP deben ser de tipo HTTP o SSL. En el tráfico HTTP, puede realizar las siguientes acciones:
- Modificar la URL de una solicitud
- Agregar, modificar o eliminar encabezados
- Agrega, reemplaza o elimina cualquier cadena específica del cuerpo o de los encabezados.
Para reescribir las cargas útiles TCP, considere la carga útil como un flujo de bytes sin procesar. Cada uno de los servidores virtuales que administran las conexiones TCP debe ser de tipo TCP o SSL_TCP. El término reescritura TCP se utiliza para referirse a la reescritura de cargas útiles TCP que no son datos HTTP. En el tráfico TCP, puede agregar, modificar o eliminar cualquier parte de la carga útil TCP.
Para ver ejemplos para utilizar la función de reescritura, consulte比如s de directivas y acciones de reescritura.
Comparación entre las opciones de Reescritura y Responder
La principal diferencia entre la función de reescritura y la función de respuesta es la siguiente:
Responder no se puede utilizar para expresiones de respuesta o basadas en servidor. Responder solo se puede utilizar en los siguientes casos según los parámetros del cliente:
- Redirigir una solicitud HTTP a nuevos sitios web o páginas web
- Responder con alguna respuesta personalizada
- Dejar o restablecer una conexión en el nivel de solicitud
Si hay una directiva de respuesta, NetScaler examina la solicitud del cliente, actúa de acuerdo con las directivas aplicables, envía la respuesta al cliente y cierra la conexión con el cliente.
Si hay una directiva de reescritura, NetScaler examina la solicitud del cliente o la respuesta del servidor, actúa de acuerdo con las directivas aplicables y reenvía el tráfico al cliente o al servidor.
En general, se recomienda utilizar un respondedor si quiere que NetScaler restablezca o interrumpe una conexión en función de un cliente o un parámetro basado en solicitudes. Usa el respondedor para redirigir el tráfico o responder con mensajes personalizados. Utilice la reescritura para manipular datos en solicitudes y respuestas HTTP.
Cómo funciona la reescritura
Una directiva de reescritura consiste en una regla y una acción. La regla determina el tráfico al que se aplica la reescritura y la acción determina la acción que debe realizar NetScaler. 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 del flujo de tráfico en el que NetScaler examina el tráfico para comprobar si se le puede aplicar alguna directiva de reescritura. Puede enlazar una directiva a un servidor virtual de equilibrio de carga o conmutación de contenido específico, o hacer que la directiva sea global si quiere que la directiva se aplique a todo el tráfico que gestiona NetScaler. Estas directivas se denominan directivas globales.
Además de las directivas definidas por el usuario, NetScaler tiene algunas directivas predeterminadas. No se puede modificar ni eliminar una directiva predeterminada.
Para evaluar las directivas, NetScaler sigue el siguiente orden:
- Directivas globales
- Directivas vinculadas a servidores virtuales específicos
- Directivas predeterminadas
Nota:
NetScaler solo puede aplicar una directiva de reescritura cuando está vinculada a un punto.
NetScaler implementa la función de reescritura en los siguientes pasos:
El dispositivo NetScaler comprueba si hay directivas globales y, a continuación, busca directivas en puntos de enlace individuales.
Si hay varias directivas enlazadas a un punto de enlace, NetScaler evalúa las directivas en el orden de prioridad. La directiva con mayor prioridad se evalúa en primer lugar. Después de evaluar cada directiva, si la directiva se evalúa como TRUE, agrega la acción asociada a la directiva en la que se realiza la acción asociada. 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 la expresión”. Para cualquier directiva, si se especifica Ir a expresión (GoToPriorityExtr), NetScaler evalúa la directiva Ir a expresión. Ignora la directiva con la siguiente prioridad máxima.
Puede especificar la prioridad de la directiva para indicar la directiva Ir a expresión; no puede usar el nombre de la directiva. Si quiere que NetScaler deje de evaluar otras directivas después de evaluar una directiva concreta, puede establecer la expresión Ir a la 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, NetScaler comienza a realizar las acciones de acuerdo con la lista de acciones.
Para obtener más información sobre la configuración de directivas de reescritura, consulteConfiguración de una directiva de reescrituray acerca de las directivas de reescritura vinculantes, consulteVinculación de una directiva de reescritura.
La siguiente figura ilustra cómo NetScaler procesa una solicitud o respuesta cuando se utiliza la función de reescritura.
Figura 1. El proceso de reescritura
Evaluación de directivas
La directiva con mayor prioridad se evalúa en primer lugar. NetScaler no detiene la evaluación de las directivas de reescritura cuando encuentra una coincidencia. Evalúa todas las directivas de reescritura configuradas en NetScaler.
- Si una directiva se evalúa como TRUE, NetScaler sigue el procedimiento que se indica a continuación:
- Si la directiva tiene la opción Ir a expresión establecida en END, NetScaler deja de evaluar todas las demás directivas y comienza a reescribir.
GoToPriorityExpression se puede establecer en ‘NEXT’, ‘END’, algún entero o ‘INVOCATION_LIST’. El valor determina la directiva con la siguiente prioridad. La siguiente tabla muestra la acción realizada por NetScaler para cada valor de la expresión.
Valor de la expresión Acción PRÓXIMO Se evalúa la directiva con la siguiente prioridad. FIN Se detiene la evaluación de las directivas. 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, NetScaler continúa la evaluación por orden de prioridad.
- Si una directiva se evalúa como UNDEFINED (no se puede evaluar en el tráfico recibido debido a un error), NetScaler realiza la acción asignada a la condición UNDEFINED (denominada UnDefaction) y detiene la evaluación adicional de las directivas.
NetScaler inicia la reescritura propiamente dicha solo una vez finalizada la evaluación. Hace referencia a la lista de acciones identificadas por las directivas que se evalúan como TRUE e inicia la reescritura. Tras implementar todas las acciones de la lista, NetScaler 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, ni en la carga útil TCP. Cuando se produce un conflicto de este tipo, NetScaler encuentra una situación indefinida y anula la reescritura.
Acciones de reescritura
En el dispositivo NetScaler, especifique las acciones que se van a realizar, como agregar, reemplazar o eliminar texto del cuerpo, o agregar, modificar o eliminar encabezados o cualquier cambio en la carga útil de TCP como acciones de reescritura. Para obtener más información sobre las acciones de reescritura, consulteConfiguración de una acción de reescritura.
En la siguiente tabla se describen los pasos que puede realizar NetScaler 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 vuelve a escribir. NetScaler reenvía el tráfico sin reescribir ninguna parte del mensaje. |
RESET | La conexión se anula en el nivel TCP. |
DROP | Se descarta el mensaje. |
Nota:
Para cualquier directiva, puede configurar la acción inferior (acción que se realizará cuando la directiva se evalúe como UNDEFINED) como NOREWRITE, RESET o DROP.
Para utilizar la función de reescritura, realice los siguientes pasos:
- Habilite la función en NetScaler.
- Defina acciones de reescritura.
- Defina directivas de reescritura.
- Enlazar las directivas a un punto de enlace para que la directiva entre en vigor.
Habilitar reescritura
Habilite la función de reescritura en el dispositivo NetScaler si quiere volver a escribir las solicitudes o respuestas HTTP o TCP. Si la función está habilitada, NetScaler realiza una acción de reescritura de acuerdo con las directivas especificadas. Para obtener más información, consulteCómo funciona la reescritura.
Para habilitar la entidad de reescritura mediante la interfaz de línea de comandos
En el símbolo del sistema, escriba los siguientes comandos para habilitar la función de reescritura y verificar la configuración:
- habilitar función ns REESCRIBIR
- función show ns
比如:
> enable ns feature REWRITE Done > show ns feature Feature Acronym Status ------- ------- ------ 1) Web Logging WL OFF 2) Surge Protection SP ON . . . 1) Rewrite REWRITE ON . . 1) NetScaler Push push OFF Done
Para habilitar la función de reescritura mediante la interfaz gráfica de usuario
- En el panel de navegación, haga clic enSistemay, a continuación, enConfiguración.
- En el面板de detalles, en Modos y funciones, haga clic enConfigurar funciones básicas.
- En el cuadro de diálogoConfigurar funciones básicas, active la casilla de verificación Reescritura y, a continuación, haga clic enAceptar.
- En el cuadro de diálogoHabilitar/inhabilitar funciones, haga clic enSí.Aparece un mensaje en la barra de estado que indica que la función seleccionada se ha habilitado.
Configurar una acción de reescritura
Advertencia
La función Pattern en una acción de reescritura está en desuso a partir de la versión 56.20 de NetScaler 12.0 y, como alternativa, Citrix recomienda utilizar el parámetro de acción de reescritura de búsqueda.
Una acción de reescritura indica los cambios realizados en una solicitud o respuesta antes de enviarla a un servidor o cliente.
Las expresiones definen lo siguiente:
Tipo de acción de reescritura.
Ubicación de la acción de reescritura.
Tipo de configuración de acción de reescritura.
Por ejemplo, una acción DELETE solo utiliza una expresión de destino. Una acción REEMPLAZAR utiliza una expresión de destino y una expresión para configurar el texto de sustitución.
Después de habilitar la función de reescritura, debe configurar una o varias acciones a menos que sea suficiente con una acción de reescritura integrada. Todas las acciones integradas tienen nombres que comienzan por la cadena ns_cvpn, seguidos de una cadena de letras y caracteres de guión bajo. Las acciones integradas realizan tareas útiles y complejas, como decodificar partes de una solicitud o respuesta de VPN sin cliente o modificar datos JavaScript o XML. Las acciones integradas se pueden ver, habilitar y inhabilitar, pero no se pueden modificar ni eliminar.
Nota:
Los tipos de acción que solo se pueden utilizar para la reescritura HTTP se identifican en la columnaTipo de acción de reescritura.
Para obtener más información, consulteParámetro Type.
Crear una acción de reescritura mediante la interfaz de línea de comandos
En el símbolo del sistema, escriba los siguientes comandos para crear una acción de reescritura y comprobar la configuración:
add rewrite action
[ ] [-search ] [refineSearch ] [-comment ] show rewrite action
Para obtener más información, consulte la tablaTipos de acción de reescritura y sus argumentos.
La función de reescritura tiene las siguientes acciones integradas:
Norewrite-envía la solicitud o respuesta al usuario sin volver a escribirla.
RESET: restablece la conexión y notifica al explorador del usuario para que el usuario pueda reenviar la solicitud.
DROP: interrumpe la conexión sin enviar una respuesta al usuario.
Uno de los siguientes tipos de flujo está asociado implícitamente a cada acción:
Solicitud: la acción se aplica a la solicitud.
Respuesta: la acción se aplica a la respuesta.
Neutral: la acción se aplica tanto a las solicitudes como a las respuestas.
Name
Nombre de la acción de reescritura definida por el usuario. Debe comenzar con una letra, un número o un carácter de guión bajo (_) y debe contener solo letras, números y guión (-), punto (.), guión (.), espacio(), at (@), igual a (=), dos puntos (:) y guión bajo. Se puede cambiar después de agregar la directiva de reescritura.
parámetro Type
El parámetroTypemuestra el tipo de acción de reescritura definida por el usuario.
A continuación se indican los valores del parámetroType:
REPLACE
.Sustituye la cadena de destino por la expresión generadora de cadenas.
比如:
> add rewrite action replace_http_act replace http.res.body(100) '"new_replaced_data"' Done > sh rewrite action replace_http_act Name: replace_http_act Operation: replace Target:http.res.body(100) Value:"new_replaced_data" Hits: 0 Undef Hits: 0 Action Reference Count: 0 Done
REPLACE_ALL
- En la solicitud o respuesta especificada por-(search)
, reemplaza todas las apariciones de la cadena definida por por
la cadena definida por
.Puede utilizar la opción de búsqueda para encontrar las cadenas que se van a reemplazar.
比如:
>添加政策patset pat_list_2 >绑定完成政策patset pat_list_2 "www.abc.com" Done > bind policy patset pat_list_2 "www.def.com" Done > add rewrite action refineSearch_act_31 replace_all "HTTP.RES.BODY(100000)" ""https://""-search "patset("pat_list_2")" -refineSearch "EXTEND(7,0).REGEX_SELECT(re#http://#)" Done > sh rewrite action refineSearch_act_31 Name: refineSearch_act_31 Operation: replace_all Target:HTTP.RES.BODY(100000) Refine Search:EXTEND(7,0).REGEX_SELECT(re#http://#) Value:"https://" Search: patset("pat_list_2") Hits: 0 Undef Hits: 0 Action Reference Count: 0 Done
REPLACE_HTTP_RES
.Reemplaza la respuesta HTTP completa por la cadena definida por la expresión del generador de cadenas.
比如:
> add rewrite action replace_http_res_act replace_http_res '"HTTP/1.1 200 OK\r\n\r\nSending from ADC"' Done > sh rewrite action replace_http_res_act Name: replace_http_res_act Operation: replace_http_res Target:"HTTP/1.1 200 OK Sending from ADC" Hits: 0 Undef Hits: 0 Action Reference Count: 0 Done
REPLACE_SIP_RES
.Reemplaza la respuesta SIP completa por la cadena especificada por
.
比如:
> add rewrite action replace_sip_res_act replace_sip_res '"HTTP/1.1 200 OK\r\n\r\nSending from ADC"' Done > sh rewrite action replace_sip_res_act Name: replace_sip_res_act Operation: replace_sip_res Target:"HTTP/1.1 200 OK Sending from ADC" Hits: 0 Undef Hits: 0 Action Reference Count: 0 Done
INSERT_HTTP_HEADER
.Inserta el encabezado HTTP especificado porheader_string
y el contenido del encabezado especificado porcontents_string_builder_expr
.
比如:
> add rewrite action ins_cip_header insert_http_header "CIP" "CLIENT.IP.SRC" Done > sh rewrite action ins_cip_header Name: ins_cip_header Operation: insert_http_header Target:CIP Value:CLIENT.IP.SRC Hits: 0 Undef Hits: 0 Action Reference Count: 0 Done
DELETE_HTTP_HEADER
.Elimina el encabezado HTTP especificado por
比如:
> add rewrite action del_true_client_ip_header delete_http_header "True-Client-IP" Done > sh rewrite action del_true_client_ip_header Name: del_true_client_ip_header Operation: delete_http_header Target:True-Client-IP Hits: 0 Undef Hits: 0 Action Reference Count: 0 Done
CORRUPT_HTTP_HEADER
.Reemplaza el nombre del encabezado de todas las apariciones del encabezado HTTP especificado por
un nombre dañado, de modo que el receptor no lo reconozca. Ejemplo: MY_HEADER se cambia a MHEY_ADER.
比如:
> add rewrite action corrupt_content_length_hdr corrupt_http_header "Content-Length" Done > sh rewrite action corrupt_content_length_hdr Name: corrupt_content_length_hdr Operation: corrupt_http_header Target:Content-Length Hits: 0 Undef Hits: 0 Action Reference Count: 0 Done
INSERT_BEFORE
.Busca la cadena especificada en
e inserta la cadena
delante de ella.
> add rewrite action insert_before_ex_act insert_before http.res.body(100) '"Add this string in the starting"' Done > sh rewrite action insert_before_ex_act Name: insert_before_ex_act Operation: insert_before Target:http.res.body(100) Value:"Add this string in the starting" Hits: 0 Undef Hits: 0 Action Reference Count: 0 Done
INSERT_BEFORE_ALL
.En la solicitud o respuesta especificada por-(search)
, localiza todas las apariciones de la cadena especificada ene inserta la cadena especificada en antes de eso. Puede utilizar la opción de búsqueda para encontrar las cadenas.
比如:
> add policy patset pat Done > bind policy patset pat abcd Done > add rewrite action refineSearch_act_1 insert_before_all http.res.body(10) 'target.prefix(10) + "refineSearch_testing"' -search patset("pat") -refineSearch extend(10,10) Done > sh rewrite action refineSearch_act_1 Name: refineSearch_act_1 Operation: insert_before_all Target:http.res.body(10) Refine Search:extend(10,10) Value:target.prefix(10) + "refineSearch_testing" Search: patset("pat") Hits: 0 Undef Hits: 0 Action Reference Count: 0 Done
INSERT_AFTER
.Inserta la cadena especificada porstring_builder_expr2
después de la cadenastring_builder_expr1
.
比如:
> add rewrite action insert_after_act insert_after http.req.body(100) '"add this string after 100 bytes"' Done > sh rewrite action insert_after_act Name: insert_after_act Operation: insert_after Target:http.req.body(100) Value:"add this string after 100 bytes" Hits: 0 Undef Hits: 0 Action Reference Count: 0 Done
INSERT_AFTER_ALL
.En la solicitud o respuesta especificada por-(search)
, localiza todas las apariciones de la cadena especificada por
e inserta la cadena especificada por
después de ella. Puede usar la función de búsqueda para encontrar las cadenas.
比如:
> add rewrite action refineSearch_act_2 insert_after_all http.res.body(100) '"refineSearch_testing"' -search text("abc") -refineSearch extend(0, 10) Done > sh rewrite action refineSearch_act_2 Name: refineSearch_act_2 Operation: insert_after_all Target:http.res.body(100) Refine Search:extend(0, 10) Value:"refineSearch_testing" Search: text("abc") Hits: 0 Undef Hits: 0 Action Reference Count: 0 Done
DELETE
.Elimina la cadena especificada por el destino.
比如:
> add rewrite action delete_ex_act delete http.req.header("HDR") Done > sh rewrite action delete_ex_act Name: delete_ex_act Operation: delete Target:http.req.header("HDR") Hits: 0 Undef Hits: 0 Action Reference Count: 0 Done
DELETE_ALL
.En la solicitud o respuesta especificada por-(search)
, localiza y elimina todas las apariciones de la cadena especificada por
.Puede usar la función de búsqueda para encontrar las cadenas.
比如:
>add rewrite action refineSearch_act_4 delete_all "HTTP.RES.BODY(50000)" -search text("Windows Desktops") -refineSearch "EXTEND(40,40).REGEX_SELECT(re#\s`\*`.`\*`\s`\*`<\\/AppData>#)" Done > show REWRITE action refineSearch_act_4 Name: refineSearch_act_4 Operation: delete_all Target:HTTP.RES.BODY(50000) Refine Search:EXTEND(40,40).REGEX_SELECT(re#\s`\*`.`\*`\s`\*` #) Search: text("Windows Desktops") Hits: 0 Undef Hits: 0 Action Reference Count: 0 Done
REPLACE_DIAMETER_HEADER_FIELD
.En la solicitud o respuestas, modifique el campo de encabezado especificado por
.UseDiameter.req.flags.SET(
o) Diameter.req.flags.UNSET
comostringbuilderexpression
para configurar o desconfigurar banderas.
比如:
> add rewrite action replace_diameter_field_ex_act replace_diameter_header_field diameter.req.flags diameter.req.flags.set(PROXIABLE) Done > sh rewrite action replace_diameter_field_ex_act Name: replace_diameter_field_ex_act Operation: replace_diameter_header_field Target:diameter.req.flags Value:diameter.req.flags.set(PROXIABLE) Hits: 0 Undef Hits: 0 Action Reference Count: 0 Done
REPLACE_DNS_HEADER_FIELD
.En la solicitud o respuesta modifica el campo de encabezado especificado por
.
比如:
> add rewrite action replace_dns_hdr_act replace_dns_header_field dns.req.header.flags.set(AA) Done > sh rewrite action replace_dns_hdr_act Name: replace_dns_hdr_act Operation: replace_dns_header_field Target:dns.req.header.flags.set(AA) Hits: 0 Undef Hits: 0 Action Reference Count: 0 Done
REPLACE_DNS_ANSWER_SECTION
.Reemplaza la sección de respuestas DNS en la respuesta. Esto se aplica únicamente a los registros A y AAAA. Use expresionesDNS.NEW_RRSET_A
yNS.NEW_RRSET_AAAA
para configurar la nueva sección de respuestas.
比如:
> add rewrite action replace_dns_ans_act replace_dns_answer_section DNS.NEW_RRSET_A("1.1.1.1", 10) Done > sh rewrite action replace_dns_ans_act Name: replace_dns_ans_act Operation: replace_dns_answer_section Target:DNS.NEW_RRSET_A("1.1.1.1", 10) Hits: 0 Undef Hits: 0 Action Reference Count: 0 Done
CLIENTLESS_VPN_DECODE
.Decodifica el patrón especificado por el destino en formato VPN sin cliente.
比如:
> add rewrite action cvpn_decode_act_1 clientless_vpn_decode http.req.body(100) Done > sh rewrite action cvpn_decode_act_1 Name: cvpn_decode_act_1 Operation: clientless_vpn_decode Target:http.req.body(100) Hits: 0 Undef Hits: 0 Action Reference Count: 0 Done
CLIENTLESS_VPN_DECODE_ALL
.Decodifica TODOS los patrones especificados por el parámetro de búsqueda en formato VPN sin cliente.-search
比如:
> add rewrite action act1 clientless_vpn_decode_all http.req.body(100) -search text("abcd") Done > sh rewrite action act1 Name: act1 Operation: clientless_vpn_decode_all Target:http.req.body(100) Search: text("abcd") Hits: 0 Undef Hits: 0 Action Reference Count: 0 Done
CLIENTLESS_VPN_ENCODE
.Codifica el patrón especificado por target en formato VPN sin cliente.
比如:
> add rewrite action cvpn_encode_act_1 clientless_vpn_encode http.req.body(100) Done > sh rewrite action cvpn_encode_act_1 Name: cvpn_encode_act_1 Operation: clientless_vpn_encode Target:http.req.body(100) Hits: 0 Undef Hits: 0 Action Reference Count: 0 Done
CLIENTLESS_VPN_ENCODE_ALL
.Codifica TODOS los patrones especificados en el parámetro de búsqueda en formato VPN sin cliente.-search
比如:
> add rewrite action act2 clientless_vpn_encode_all http.req.body(100) -search text("abcd") Done > sh rewrite action act2 Name: act1 Operation: clientless_vpn_encode_all Target:http.req.body(100) Search: text("abcd") Hits: 0 Undef Hits: 0 Action Reference Count: 0 Done
CORRUPT_SIP_HEADER
.Reemplaza el nombre del encabezado de todas las apariciones del encabezado SIP especificado por
con un nombre dañado, de modo que el receptor no lo reconozca.
比如:
> add rewrite action corrupt_sip_hdr_act corrupt_sip_header SIP_HDR Done > sh rewrite action corrupt_sip_hdr_act Name: corrupt_sip_hdr_act Operation: corrupt_sip_header Target:SIP_HDR Hits: 0 Undef Hits: 0 Action Reference Count: 0 Done
INSERT_SIP_HEADER
.Inserta el encabezado SIP especificado por
y el contenido del encabezado especificado por
.
比如:
> add rewrite action insert_sip_hdr_act insert_sip_header SIP_HDR '"inserting_sip_header"' Done >sh rewrite action insert_sip_hdr_act Name: insert_sip_hdr_act Operation: insert_sip_header Target:SIP_HDR Value:"inserting_sip_header" Hits: 0 Undef Hits: 0 Action Reference Count: 0 Done
DELETE_SIP_HEADER
.Elimina el encabezado SIP especificado por
比如:
> add rewrite action delete_sip_hdr delete_sip_header SIP_HDR Done > sh rewrite action delete_sip_hdr Name: delete_sip_hdr Operation: delete_sip_header Target:SIP_HDR Hits: 0 Undef Hits: 0 Action Reference Count: 0 Done
Parámetro objetivo
El parámetro Target es una expresión que especifica qué parte de la solicitud o respuesta se va a reescribir.
StringBuilderExpr
StringBuilderExpr es una expresión que especifica el contenido que se va a insertar en la solicitud o respuesta en la ubicación especificada. Esta expresión sustituye a una cadena especificada.
比如1. Inserción de un encabezado HTTP con la IP del cliente:
> add rewrite action insertact INSERT_HTTP_HEADER "client-IP" CLIENT.IP.SRC Done > show rewrite action insertact Name: insertact Operation: insert_http_header Target:Client-IP Value:CLIENT.IP.SRC BypassSafetyCheck : NO Hits: 0 Undef Hits: 0 Action Reference Count: 0 Done
比如2. Reemplazo de cadenas en una carga útil TCP (reescritura TCP):
> add rewrite action client_tcp_payload_replace_all REPLACE_ALL 'client.tcp.payload(1000)' '"new-string"' -search text("old-string") Done > show rewrite action client_tcp_payload_replace_all Name: client_tcp_payload_replace_all Operation: replace_all Target:client.tcp.payload(1000) Value:"new-string" Search: text("old-string") BypassSafetyCheck : NO Hits: 0 Undef Hits: 0 Action Reference Count: 0 Done >
Buscar una parte de la solicitud o respuesta para volver a escribirla
La funcionalidad de búsqueda ayuda a encontrar todas las instancias del patrón requerido en la solicitud o respuesta.
La funcionalidad de búsqueda se debe utilizar en los siguientes tipos de acción:
- INSERT_BEFORE_ALL
- INSERT_AFTER_ALL
- REPLACE_ALL
- DELETE_ALL
- CLIENTLESS_VPN_ENCODE_ALL
- CLIENTLESS_VPN_DECODE_ALL
La funcionalidad de búsqueda no se puede utilizar con los siguientes tipos de acción:
- INSERT_HTTP_HEADER
- INSERT_BEFORE
- INSERT_AFTER
- REEMPLAZAR
- SUPRIMIR
- DELETE_HTTP_HEADER
- CORRUPT_HTTP_HEADER
- REPLACE_HTTP_RES
- CLIENTLESS_VPN_ENCODE
- CLIENTLESS_VPN_DECODE
- INSERT_SIP_HEADER
- DELETE_SIP_HEADER
- CORRUPT_SIP_HEADER
- REPLACE_DIAMETER_HEADER_FIELD
- REPLACE_DNS_ANSWER_SECTION
- REPLACE_DNS_HEADER_FIELD
- REPLACE_SIP_RES
Se admiten los siguientes tipos de búsqueda:
- Text - Una cadena literal Ejemplo: -search text (“hola”)
- Expresión regular: patrón que se utiliza para hacer coincidir varias cadenas en la solicitud o respuesta Ejemplo ፦expresión regular de búsqueda (re~^hello*~)
- XPATH: expresión XPATH para buscar XML. Ejemplo ፦buscar xpath (xp%/a/b%)
- JSON: XPATH表达式的值对位buscar en JSON。比如፦search xpath_json (xp%/a/b%) HTML - Expresión XPATH para buscar HTML Ejemplo ፦search xpath_html (xp%/html/body%) Patset - Busca todos los patrones enlazados a la entidad patset. Ejemplo: -search patset(“patset1”)
- Datset: busca todos los patrones enlazados a la entidad de conjunto de datos. Ejemplo: -search dataset(“dataset1”)
- AVP: número AVP que se utiliza para hacer coincidir varios AVP en un mensaje de diámetro/radio Ejemplo ፦search avp (999)
Afinar los resultados de la búsqueda
Puede utilizar la funcionalidad Perfeccionar búsqueda para especificar los criterios adicionales para refinar los resultados de la búsqueda. La funcionalidad Perfeccionar búsqueda solo se puede utilizar si se utiliza la funcionalidad de búsqueda. El parámetro Refine search siempre comienza con la operación “extend (m, n)”, donde ‘m’ especifica algunos bytes a la izquierda del resultado de la búsqueda y ‘n’ especifica varios bytes a la derecha del resultado de la búsqueda para ampliar el área seleccionada.
Si la acción de reescritura configurada es:
> add rewrite action test_refine_search replace_all http.res.body(10) '”testing_refine_search”' -search text("abc") -refineSearch extend(1,1) And the HTTP response body is abcxxxx456.
A continuación, el parámetro search encuentra el patrón “abc” y, dado que el parámetro RefineSearch también está configurado para comprobar un byte adicional a la izquierda y un byte adicional a la derecha del patrón coincidente. El texto sustituido resultante es: abcx. Por lo tanto, el resultado de esta acción estesting_refine_searchxxx456
.
比如1:Uso de la funcionalidad Perfeccionar búsqueda en el tipo de acción INSERT_BEFORE_ALL.
> add policy patset pat Done > bind policy patset pat abcd Done > add rewrite action refineSearch_act_1 insert_before_all http.res.body(10) 'target.prefix(10) + "refineSearch_testing"' -search patset("pat") -refineSearch extend(10,10) Done > sh rewrite action refineSearch_act_1 Name: refineSearch_act_1 Operation: insert_before_all Target:http.res.body(10) Refine Search:extend(10,10) Value:target.prefix(10) + "refineSearch_testing" Search: patset("pat") Hits: 0 Undef Hits: 0 Action Reference Count: 0 Done
比如2: Uso de la funcionalidad Perfeccionar búsqueda en el tipo de acción INSERT_AFTER_ALL.
> add rewrite action refineSearch_act_2 insert_after_all http.res.body(100) '"refineSearch_testing"' -search text("abc") -refineSearch extend(0, 10) Done > sh rewrite action refineSearch_act_2 Name: refineSearch_act_2 Operation: insert_after_all Target:http.res.body(100) Refine Search:extend(0, 10) Value:"refineSearch_testing" Search: text("abc") Hits: 0 Undef Hits: 0 Action Reference Count: 0 Done
比如3: Uso de la funcionalidad Perfeccionar búsqueda en el tipo de acción REPLACE_ALL.
>添加政策patset pat_list_2 >绑定完成政策patset pat_list_2 "www.abc.com" Done > bind policy patset pat_list_2 "www.def.com" Done > add rewrite action refineSearch_act_31 replace_all "HTTP.RES.BODY(100000)" ""https://"" -search "patset("pat_list_2")" -refineSearch "EXTEND(7,0).REGEX_SELECT(re#http://#)" Done > sh rewrite action refineSearch_act_31 Name: refineSearch_act_31 Operation: replace_all Target:HTTP.RES.BODY(100000) Refine Search:EXTEND(7,0).REGEX_SELECT(re#http://#) Value:"https://" Search: patset("pat_list_2") Hits: 0 Undef Hits: 0 Action Reference Count: 0 Done
比如4: Uso de la funcionalidad Perfeccionar búsqueda en el tipo de acción DELETE_ALL.
>add rewrite action refineSearch_act_4 delete_all "HTTP.RES.BODY(50000)" -search text("Windows Desktops") -refineSearch "EXTEND(40,40).REGEX_SELECT(re#\s*.\*\s\*<\\/AppData>#)" > show REWRITE action refineSearch_act_4 Name: refineSearch_act_4 Operation: delete_all Target:HTTP.RES.BODY(50000) Refine Search:EXTEND(40,40).REGEX_SELECT(re#\s*.\*\s\* #) Search: text("Windows Desktops") Hits: 0 Undef Hits: 0 Action Reference Count: 0 Done >
比如5: Uso de la funcionalidad Refinar búsqueda en el tipo de acción CLIENTLESS_VPN_ENCODE_ALL.
’’’
add rewrite action act2 clientless_vpn_encode_all http.req.body(100) -search text(“abcd”) Done sh rewrite action act2 Name: act1 Operation: clientless_vpn_encode_all Target:http.req.body(100) Search: text(“abcd”) Hits: 0 Undef Hits: 0 Action Reference Count: 0 Done
’’’
比如6: Uso de la funcionalidad Refinar búsqueda en el tipo de acción CLIENTLESS_VPN_DECODE_ALL.
> add rewrite action act1 clientless_vpn_decode_all http.req.body(100) -search text("abcd") Done > sh rewrite action act1 Name: act1 Operation: clientless_vpn_decode_all Target:http.req.body(100) Search: text("abcd") Hits: 0 Undef Hits: 0 Action Reference Count: 0 Done >
Modificar una acción de reescritura existente mediante la interfaz de línea de comandos
En el símbolo del sistema, escriba los siguientes comandos para modificar una acción de reescritura existente y compruebe la configuración:
设置重写行动<名称>[—target <表达式>][-stringBuilderExpr
] [-search ] [-refineSearch ] [-comment ]
En el símbolo del sistema, escriba los siguientes comandos para verificar la configuración modificada
show rewrite action
比如:
> set rewrite action insertact -target "Client-IP" Done > show rewrite action insertact Name: insertact Operation: insert_http_header Target:Client-IP Value:CLIENT.IP.SRC Hits: 0 Undef Hits: 0 Action Reference Count: 0 Done
Eliminar una acción de reescritura mediante la interfaz de línea de comandos
En el símbolo del sistema, escriba los siguientes comandos para quitar una acción de reescritura:
rm rewrite action
比如:
> rm rewrite action insertact Done
Configurar una acción de reescritura mediante la utilidad de configuración
- Vaya aAppExpert > Rewrite > Actions.
- En el面板de detalles, realice una de las acciones siguientes:
- Para crear una acción, haga clic enAgregar.
- Para modificar una acción existente, selecciónela y, a continuación, haga clic enModificar.
- Haga clic enCrearoAceptar.Aparece un mensaje en la barra de estado que indica que la acción se ha configurado correctamente.
- Repita los pasos 2 a 4 para crear o modificar tantas acciones de reescritura como quiera.
- Haga clic enCerrar.
Agregue una expresión mediante el cuadro de diálogo Agregar expresión
- En el cuadro de diálogoCrear accióndereescritura o Configurar acciónde reescritura, en el área de texto del argumento de tipo que quiera introducir, haga clic enAgregar.
En el cuadro de diálogoAgregar expresión, en el primer cuadro de lista, elija el primer término de la expresión.
- HTTP. El protocolo HTTP. Elija esta opción si quiere examinar algún aspecto de la solicitud que pertenece al protocolo HTTP.
- SYS. Los sitios web protegidos. Elija esta opción si quiere examinar algún aspecto de la solicitud que pertenece al destinatario de la solicitud.
- CLIENT. El equipo que envió la solicitud. Elija esta opción si quiere examinar algún aspecto del remitente de la solicitud.
Al elegir, el cuadro de lista situado más a la derecha muestra los términos apropiados para la siguiente parte de la expresión.
En el segundo cuadro de lista, elige el segundo término para su expresión. Las elecciones dependen de la elección que haya realizado en el paso anterior y son apropiadas para el contexto. Después de hacer la segunda elección, la ventana de Ayuda situada debajo de la ventana Construir expresión (que estaba en blanco) muestra ayuda para describir el propósito y el uso del término que acaba de elegir.
Siga eligiendo términos en los cuadros de lista que aparecen a la derecha del cuadro de lista anterior o escribiendo cadenas o números en los cuadros de texto que aparecen para pedirle que escriba un valor hasta que finalice la expresión. Para obtener más información sobre el lenguaje de expresiones PI y la creación de expresiones para directivas de respuesta, consulte “Directivas y expresiones.“
Si quiere probar el efecto de una acción de reescritura cuando se utiliza en datos HTTP de ejemplo, puede utilizar el Evaluador de expresiones de reescritura.
Reescritura de cargas útiles TCP
Las expresiones de destino de las acciones de reescritura de TCP deben comenzar con uno de los prefijos de expresión siguientes:
- CLIENT.TCP.PAYLOAD.Para reescribir cargas útiles TCP en solicitudes de clientes. Por ejemplo, CLIENT.TCP.PAYLOAD(10000).AFTER_STR(“string1”).
- SERVIDOR.TCP.PAYLOAD。Para reescribir cargas útiles TCP en las respuestas del servidor. Por ejemplo, SERVER.TCP.PAYLOAD(1000).B64DECODE.BETWEEN(“string1”,”string2”).
Evaluar una acción de reescritura mediante el cuadro de diálogo Rewrite Action Evaluator
- En el面板de detallesAcciones de reescritura, seleccione la acción de reescritura que quiere evaluar y, a continuación, haga clic enEvaluar.
En el cuadro de diálogo Reescribir evaluador de expresiones, especifique los valores de los siguientes parámetros. (Un asterisco indica un parámetro obligatorio).
Acción de reescritura: si la acción de reescritura que quiere evaluar no está seleccionada, selecciónela en la lista desplegable. Tras seleccionar una acción de reescritura, en la sección Detalles se muestran los detalles de la acción de reescritura seleccionada. Nuevo: seleccione Nuevo para abrir el cuadro de diálogo Crear acción de reescritura y crear una acción de reescritura. Modificar (Modify): seleccione Modificar para abrir el cuadro de diálogo Configurar acción de reescritura y modificar la acción de reescritura seleccionada. Tipo de flujo: especifica si se debe probar la acción de reescritura seleccionada con datos de solicitud HTTP o datos de respuesta HTTP. El valor predeterminado es Solicitud. Si quieres probar con datos de respuesta, seleccione Respuesta. Datos de solicitud o respuesta HTTP*: proporciona espacio para proporcionar los datos HTTP que el evaluador de acciones de reescritura utiliza para las pruebas. Puede pegar los datos directamente en la ventana o hacer clic en Muestra para insertar algunos encabezados HTTP de ejemplo. Mostrar fin de línea: especifica si se deben mostrar caracteres de final de línea de estilo UNIX (\ n) al final de cada línea de datos HTTP de muestra. Ejemplo: inserta datos HTTP de ejemplo en la ventana Datos de solicitud/respuesta HTTP. Puede elegir datos GET o POST. Examinar: abre una ventana de exploración local para que pueda elegir un archivo que contenga datos HTTP de ejemplo de una ubicación local o de red. Borrar: borra los datos HTTP de muestra actuales de la ventana Datos de solicitud/respuesta HTTP.
- Haga clic en Evaluar. Elevaluador de acciones de reescrituraevalúa el efecto de la acción Reescribir en los datos de ejemplo elegidos y muestra los resultados modificados por la acciónReescrituraseleccionada en la ventanaResultados.拉进iones y eliminaciones se resaltan como se indica en la leyenda de la esquina inferior izquierda del cuadro de diálogo.
Continúa evaluando las acciones de reescritura hasta que hayas determinado que todas tus acciones tienen el efecto que querías.
- 测试modificar la accion reescritura seleccionada y probar la versión modificada haciendo clic enModificarpara abrir el cuadro de diálogoConfigurar acción de reescritura, realizar y guardar los cambios y, a continuación, volver a hacer clic en Evaluar.
- Puede evaluar una acción de reescritura diferente con los mismos datos de solicitud o respuesta seleccionándola en la lista desplegableAcción de reescrituray, a continuación, haciendo clic enEvaluarde nuevo.
Haga clic enCerrarpara cerrar elevaluador de reescritura de expresionesy volver al panelAcciones de reescritura.
- Para eliminar una acción de reescritura, seleccione la acción de reescritura que quiera eliminar y, a continuación, haga clic enEliminary, cuando se le solicite, confirme su elección haciendo clic enAceptar.
Configurar la directiva de reescritura
Después de crear las acciones de reescritura necesarias, debe crear al menos una directiva de reescritura para seleccionar las solicitudes que quiere que reescriba el dispositivo NetScaler.
Una directiva de reescritura consiste en una regla, que a su vez consta de una o más expresiones, y una acción asociada que se lleva a cabo si una solicitud o respuesta coincide con la regla. Las reglas de directiva para evaluar las solicitudes y respuestas HTTP se pueden basar en casi cualquier parte de una solicitud o respuesta.
Aunque no se pueden utilizar acciones de reescritura de TCP para reescribir datos que no sean la carga útil TCP, puede basar las reglas de directiva para las directivas de reescritura de TCP en la información de la capa de transporte y en las capas situadas debajo de la capa de transporte.
Si una regla configurada coincide con una solicitud o respuesta, se desencadena la directiva correspondiente y se lleva a cabo la acción asociada a ella.
Nota:
Puede utilizar la interfaz de línea de comandos o la GUI para crear y configurar directivas de reescritura. Los usuarios que no están completamente familiarizados con la interfaz de línea de comandos y el lenguaje de expresión de directivas de NetScaler normalmente encontrarán mucho más fácil utilizar la interfaz gráfica de usuario.
Para agregar una nueva directiva de reescritura mediante la interfaz de línea de comandos
En el símbolo del sistema, escriba los siguientes comandos para agregar una nueva directiva de reescritura y compruebe la configuración:
[ ]
比如1. Reescritura de contenido HTTP
> add rewrite policyNew "HTTP.RES.IS_VALID" insertact NOREWRITE Done > show rewrite policyNew Name: policyNew Rule: HTTP.RES.IS_VALID RewriteAction: insertact UndefAction: NOREWRITE Hits: 0 Undef Hits: 0 Done
比如2. Reescritura de una carga útil TCP (reescritura TCP):
> add rewrite policy client_tcp_payload_policy CLIENT.IP.SRC.EQ(172.168.12.232) client_tcp_payload_replace_all Done > show rewrite policy client_tcp_payload_policy Name: client_tcp_payload_policy Rule: CLIENT.IP.SRC.EQ(172.168.12.232) RewriteAction: client_tcp_payload_replace_all UndefAction: Use Global LogAction: Use Global Hits: 0 Undef Hits: 0 Done >
Para modificar una directiva de reescritura existente mediante la interfaz de línea de comandos
En el símbolo del sistema, escriba los siguientes comandos para modificar una directiva de reescritura existente y compruebe la configuración:
-rule -action [ ]
比如:
> set rewrite policyNew -rule "HTTP.RES.IS_VALID" -action insertaction Done > show rewrite policyNew Name: policyNew Rule: HTTP.RES.IS_VALID RewriteAction: insertaction UndefAction: NOREWRITE Hits: 0 Undef Hits: 0 Done
Para quitar una directiva de reescritura mediante la interfaz de línea de comandos
En el símbolo del sistema, escriba el siguiente comando para quitar una directiva de reescritura:
rm rewrite policy
比如:
> rm rewrite policyNew Done
帕拉configurar una directiva de reescritura媒体nte la interfaz gráfica de usuario
- Vaya aAppExpert > Rewrite > Policies.
- En el面板de detalles, realice una de las acciones siguientes:
- Para crear una directiva, haga clic en Agregar.
- Para modificar una directiva existente, selecciónela y, a continuación, haga clic en Abrir.
- Haga clic enCrearoAceptar.Aparece un mensaje en la barra de estado que indica que la directiva se ha configurado correctamente.
- Repita los pasos 2 a 4 para crear o modificar tantas acciones de reescritura como quiera.
- Haga clic enCerrar.Para eliminar una directiva de reescritura, seleccione la directiva de reescritura que quiera eliminar, haga clic enQuitary, cuando se le solicite, confirme su elección haciendo clic enAceptar.
Vincular la directiva de reescritura
Después de crear una directiva de reescritura, debe vincularla para que se aplique. Puede enlazar su directiva a Global si quiere aplicarla a todo el tráfico que pasa por su NetScaler, o puede enlazar su directiva a un servidor virtual o punto de enlace específico para dirigir únicamente ese servidor virtual o enlazar el tráfico entrante del punto a esa directiva. Si una solicitud entrante coincide con una directiva de reescritura, se lleva a cabo la acción asociada a esa directiva.
Las directivas de reescritura para evaluar las solicitudes y respuestas HTTP se pueden enlazar a servidores virtuales de tipo HTTP o SSL, o a los puntos de enlace REQ_OVERRIDE, REQ_DEFAULT, RES_OVERRIDE y RES_DEFAULT. Las directivas de reescritura para la reescritura de TCP solo pueden enlazarse a servidores virtuales de tipo TCP o SSL_TCP, o a los puntos de enlace OTHERTCP_REQ_OVERRIDE, OTHERTCP_REQ_DEFAULT, OTHERTCP_RES_OVERRIDE y OTHERTCP_RES_DEFAULT.
Nota:
El término OTHERTCP se utiliza en el contexto del dispositivo NetScaler para referirse a todas las solicitudes y respuestas TCP o SSL_TCP que quiere tratar como un flujo de bytes sin procesar, independientemente de los protocolos que encapsulen los paquetes TCP.
Cuando vincula una directiva, le asigna una prioridad. La prioridad determina el orden en que se evalúan las directivas que defina. Puede establecer la prioridad en cualquier número entero positivo.
En el sistema operativo NetScaler prioridades拉斯维加斯directivas funcionan en orden inverso: cuanto mayor sea el número, menor será la prioridad. Por ejemplo, si tiene tres directivas con prioridades de 10, 100 y 1000, la directiva asignada con una prioridad de 10 se aplica primero, luego a la directiva se le asigna una prioridad de 100 y, por último, a la directiva se le asigna un orden de 1000.
A diferencia de la mayoría de las demás funciones del sistema operativo NetScaler, la función de reescritura continúa evaluando e implementando directivas después de que una solicitud coincida con una directiva. Sin embargo, el efecto de una directiva de acción concreta en una solicitud o respuesta suele ser diferente en función de si se realiza antes o después de otra acción. La prioridad es importante para obtener los resultados deseados.
Puede dejar suficiente espacio para agregar otras directivas en cualquier orden y configurarlas para que se evalúen en el orden que quiera, estableciendo prioridades con intervalos de 50 o 100 entre cada directiva cuando la vincule. Si lo hace, puede agregar más directivas en cualquier momento sin tener que reasignar la prioridad de una directiva existente.
Al enlazar una directiva de reescritura, también tiene la opción de asignar una expresión goto (goToPriorityExpression) a la directiva. Una expresión goto puede ser cualquier entero positivo que coincida con la prioridad asignada a una directiva diferente que tenga una prioridad superior a la directiva que contiene la expresión goto. Si asigna una expresión goto a una directiva y una solicitud o respuesta coincide con la directiva, NetScaler irá inmediatamente a la directiva cuya prioridad coincida con la expresión goto. Omitirá todas las directivas con números de prioridad inferiores a los de la directiva actual, pero superiores al número de prioridad de la expresión goto, y no las evalúa.
Para enlazar globalmente una directiva de reescritura mediante la interfaz de línea de comandos
En el símbolo del sistema, escriba los siguientes comandos para enlazar globalmente una directiva de reescritura y compruebe la configuración:
bind rewrite global
[ ] [-type ] [-invoke ( )] show rewrite global
比如:
>bind rewrite global policyNew 10 Done > show rewrite global 1) Global bindpoint: RES_DEFAULT Number of bound policies: 1 2) Global bindpoint: REQ_OVERRIDE Number of bound policies: 1 Done
Para enlazar la directiva de reescritura a un servidor virtual específico mediante la interfaz de línea de comandos
En el símbolo del sistema, escriba los siguientes comandos para enlazar la directiva de reescritura a un servidor virtual específico y compruebe la configuración:
绑定磅vserver
@ ( @ [-weight ]) | @ | (-policyName @ [-priority ] [-gotoPriorityExpression ] [-type ( REQUEST | RESPONSE )] [-invoke ( )] ) show lb vserver
比如:
> bind lb vserver lbvip -policyName ns_cmp_msapp -priority 50 Done > > show lb vserver lbvip lbvip (8.7.6.6:80) - HTTP Type: ADDRESS State: DOWN Last state change was at Wed Jul 15 05:54:24 2009 (+226 ms) Time since last state change: 28 days, 01:57:26.350 Effective State: DOWN Client Idle Timeout: 180 sec Down state flush: ENABLED Disable Primary Vserver On Down : DISABLED Port Rewrite : DISABLED No. of Bound Services : 0 (Total) 0 (Active) Configured Method: LEASTCONNECTION Mode: IP Persistence: NONE Vserver IP and Port insertion: OFF Push: DISABLED Push VServer: Push Multi Clients: NO Push Label Rule: none 1) Policy : ns_cmp_msapp Priority:50 2) Policy : cf-pol Priority:1 Inherited Done
Para enlazar una directiva de reescritura a un punto de enlace mediante la interfaz gráfica de usuario
- Vaya aAppExpert>Reescribir>Directivas.
- En el面板de detalles, seleccione la directiva de reescritura que quiere enlazar globalmente y, a continuación, haga clic enAdministrador de directivas.
- En el cuadro de diálogoReescribir el Administrador de directivas, en el menúEnlazar puntos, realice una de las siguientes acciones:
- Si quiere configurar enlaces para directivas de reescritura HTTP, haga clic enHTTPy, a continuación, enSolicitudoRespuesta, en función de si quiere configurar directivas de reescritura basadas en solicitudes o directivas de reescritura basadas en respuestas.
- Si quiere configurar enlaces para directivas de reescritura TCP, haga clic enTCPy, a continuación, haga clic enClienteoServidor, en función de si quiere configurar directivas de reescritura TCP del lado del cliente o directivas de reescritura TCP del lado del servidor.
- Haga clic en el punto de enlace al que quiere enlazar la directiva de reescritura. El cuadro de diálogoRewrite Policy Managermuestra todas las directivas de reescritura enlazadas al punto de enlace seleccionado.
- Haga clic enInsertar directivapara insertar una nueva fila y mostrar una lista desplegable con todas las directivas de reescritura independientes disponibles.
- Haga clic en la directiva que quiera enlazar al punto de enlace. La directiva se inserta en la lista de directivas de reescritura vinculadas al punto de enlace.
- En la columnaPrioridad, puede cambiar la prioridad a cualquier entero positivo. Para obtener más información sobre este parámetro, consulte prioridad en “Parámetros para vincular una directiva de reescritura”. “
- 如果您愿意omitir directivas e ir directamente联合国a directiva específica si la directiva actual coincide, cambie el valor de la columna Goto Expression para que sea igual a la prioridad de la siguiente directiva que se aplicará. Para obtener más información sobre este parámetro, consulte GoToPriorityExpression en “Parámetros para vincular una directiva de reescritura. “
- Para modificar una directiva, haga clic en la directiva y, a continuación, enModificar directiva.
- Para desvincular una directiva, haga clic en la directiva y, a continuación, haga clic enDesvincular directiva.
- Para modificar una acción, en la columna Acción, haga clic en la acción que quiera modificar y, a continuación, haga clic enModificar acción.
- Para modificar una etiqueta de invocación, en la columnaInvocar, haga clic en la etiqueta de invocación que quiera modificar y, a continuación, haga clic enModificar etiqueta de invocación.
- Para regenerar las prioridades de todas las directivas enlazadas al punto de enlace que está configurando actualmente, haga clic enRegenerar prioridades.Las directivas mantienen sus prioridades existentes en relación con las demás directivas, pero las prioridades se renumeran en múltiplos de 10.
- Haga clic enAplicar cambios.
- Haga clic enCerrar.Aparece un mensaje en la barra de estado que indica que la directiva se ha configurado correctamente.
Para enlazar una directiva de reescritura a un servidor virtual específico mediante la interfaz gráfica de usuario
- Vaya aAdministración del tráfico>Equilibrio de carga>Servidores virtuales.
- En la lista de servidores virtuales del panel de detalles, seleccione el servidor virtual al que quiere enlazar la directiva de reescritura y, a continuación, haga clic enAbrir.
- En el cuadro de diálogoConfigurar servidor virtual (equilibrio de carga), seleccione la fichaDirectivas.Todas las directivas configuradas en su NetScaler aparecen en la lista.
- Seleccione la casilla de verificación situada junto al nombre de la directiva que quiere enlazar a este servidor virtual.
- Haga clic enAceptar.Aparece un mensaje en la barra de estado que indica que la directiva se ha configurado correctamente.
Configurar etiquetas de directivas de reescritura
Si quiere crear una estructura de directivas más compleja que la admitida por directivas individuales, puede crear rótulos de directiva y, a continuación, enlazarlos como lo haría con directivas. Una etiqueta de directiva es un punto definido por el usuario al que están vinculadas las directivas. Cuando se invoca una etiqueta de directiva, todas las directivas vinculadas a ella se evalúan en el orden de prioridad configurado. Una etiqueta de directiva puede incluir una o varias directivas, a cada una de las cuales se le puede asignar su propio resultado. Una coincidencia en una directiva del rótulo de directiva puede dar lugar a pasar a la siguiente directiva, invocar una etiqueta de directiva diferente o un recurso apropiado, o poner fin inmediatamente a la evaluación de la directiva y devolver el control a la directiva que invocó la etiqueta de directiva.
Una etiqueta de directiva de reescritura consta de un nombre, un nombre de transformación que describe el tipo de directiva incluida en la etiqueta de directiva y una lista de directivas enlazadas a la etiqueta de directiva. Cada directiva enlazada a la etiqueta de directiva contiene todos los elementos descritos enConfiguración de una directiva de reescritura.
Nota: Puede utilizar la interfaz de línea de comandos o la GUI para crear y configurar etiquetas de directivas de reescritura. Los usuarios que no están completamente familiarizados con la interfaz de línea de comandos y el lenguaje NetScaler Policy Infrastructure (PI) suelen encontrar que utilizar la GUI es mucho más fácil.
Para configurar una etiqueta de directiva de reescritura mediante la interfaz de línea de comandos
Para agregar una etiqueta de directiva de reescritura, en el símbolo del sistema, escriba el siguiente comando:
add rewrite policylabel
Por ejemplo, para agregar una etiqueta de directiva de reescritura denominada PollabelHttpResponses para agrupar todas las directivas que funcionan con respuestas HTTP, debe escribir lo siguiente:
add rewrite policy label polLabelHTTPResponses http_res
Para modificar una etiqueta de directiva de reescritura existente, en el símbolo del sistema deNetScaler, escriba el siguiente comando:
set rewrite policy
Nota:
El comando set rewrite policy utiliza las mismas opciones que el comando add rewrite policy.
Para quitar una etiqueta de directiva de reescritura, en el símbolo del sistema deNetScaler, escriba el siguiente comando:
rm rewrite policy
比如,帕拉quitar una etiqueta de directivade reescritura denominada PollabelHttpResponses, escribiría lo siguiente:
rm rewrite policy polLabelHTTPResponses
Para configurar una etiqueta de directiva de reescritura mediante la interfaz gráfica de usuario
- Vaya aAppExpert>Reescribir>Etiquetas de directivas.
- En el面板de detalles, realice una de las acciones siguientes:
- Para crear una etiqueta de directiva, haga clic enAgregar.
- Para modificar una etiqueta de directiva existente, selecciónela y, a continuación, haga clic enAbrir.
- Agregar o quitar directivas de la lista vinculada a la etiqueta de directiva.
- Para agregar una directiva a la lista, haga clic enInsertar directivay elija una directiva en la lista desplegable. Puede crear una directiva y agregarla a la lista si selecciona Nueva directiva en la lista y sigue las instrucciones deConfiguración de una directiva de reescritura.
- Para quitar una directiva de la lista, selecciónela y, a continuación, haga clic en Desenlazar directiva.
- Modifique la prioridad de cada directiva editando el número de la columna Prioridad. También puede volver a numerar las directivas automáticamente haciendo clic en Regenerar prioridades.
- Haga clic enCrearoAceptary, a continuación, enCerrar.Para quitar una etiqueta de directiva, selecciónela y, a continuación, haga clic enQuitar.Para cambiar el nombre de una etiqueta de directiva, selecciónela y haga clic enCambiar nombre.Modifique el nombre de la directiva y, a continuación, haga clic enAceptarpara guardar los cambios.
En este artículo
- Comparación entre las opciones de Reescritura y Responder
- Cómo funciona la reescritura
- Acciones de reescritura
- Habilitar reescritura
- Configurar una acción de reescritura
- Crear una acción de reescritura mediante la interfaz de línea de comandos
- Modificar una acción de reescritura existente mediante la interfaz de línea de comandos
- Eliminar una acción de reescritura mediante la interfaz de línea de comandos
- Configurar una acción de reescritura mediante la utilidad de configuración
- Agregue una expresión mediante el cuadro de diálogo Agregar expresión
- Reescritura de cargas útiles TCP
- Evaluar una acción de reescritura mediante el cuadro de diálogo Rewrite Action Evaluator
- Configurar la directiva de reescritura
- Vincular la directiva de reescritura
- Configurar etiquetas de directivas de reescritura