ADC

Conversión de expresiones de directiva mediante la herramienta NSPEPI

Nota:

Puede descargar la herramienta de comprobación de preconfiguración y NSPEPI desde el GitHub público. Para obtener más información, consulta la página NSPEPI de GitHub y la página README para obtener instrucciones detalladas para descargar, instalar y usar las herramientas. Recomendamos a los clientes que utilicen las herramientas disponibles en GitHub para obtener la versión más completa y actualizada.

Las funciones y funcionalidades clásicas basadas en directivas han sido obsoletas a partir de NetScaler 12.0 build 56.20. Como alternativa, NetScaler recomienda utilizar la infraestructura de políticas avanzada para las funciones compatibles con la herramienta NSPEPI. Para ver la lista de funciones compatibles, consulte Comandos o funciones gestionadas por la herramienta de conversión nspepi. Las funciones que no admite la herramienta NSPEPI siguen siendo compatibles con las directivas clásicas. Para ver la lista de funciones no compatibles, consulte Funciones no compatibles de la herramienta NSPEPI.

La herramienta nspepi puede realizar lo siguiente:

  1. Convertir expresiones de directiva clásicas en expresiones de directiva avanzadas.
  2. Convierta determinadas directivas clásicas y sus vinculaciones de entidad en directivas y enlaces avanzados.
  3. Convierta algunas funciones obsoletas más en sus correspondientes funciones no obsoletas.
  4. Convierta los comandos de filtro clásicos en comandos de filtro avanzados.

Nota:

Una vez que la herramienta nspepi convierte correctamente el archivo de configuración ns.conf, la herramienta muestra el archivo convertido como un archivo nuevo con el prefijo “new_”. Si el archivo de configuración convertido contiene errores o advertencias, debe corregirlos manualmente como parte del proceso de conversión. Una vez convertido, debe probar el archivo en el entorno de prueba y utilizarlo para reemplazar el archivo de configuración ns.conf real. Después de realizar la prueba, debe reiniciar el dispositivo para el archivo de configuración ns.conf recién convertido o corregido.

Las funciones que solo admiten directivas o expresiones clásicas quedan obsoletas y se pueden sustituir por las funciones no obsoletas correspondientes.

Nota:

La información relativa a la versión anterior de la herramienta nspepi está disponible en formato PDF. Para obtener más información, consulte Conversión de directivas clásica con la herramienta nspepi anterior a la versión 12.1-51.16 PDF.

Advertencias de conversión y archivos de error

Antes de utilizar la herramienta para la conversión, hay algunas advertencias que debes tener en cuenta:

  1. Todas las advertencias y errores se envían a la consola. Se ha creado un archivo de advertencia en el que se almacenan los archivos de configuración.
  2. El archivo de advertencias y errores tiene el mismo nombre que el archivo de entrada pero con el prefijo “warn_” agregado al nombre del archivo. Durante la conversión de expresiones (cuando se utiliza -e), las advertencias aparecen en el directorio actual con el nombre “warn_expr”.

Nota:

Este archivo tiene un formato de archivo de registros estándar, con sello de fecha/hora y nivel de registro. Las instancias anteriores del archivo se conservan con sufijos como “.1”, “.2”, etc., ya que la herramienta se ejecuta varias veces. Se conservarán como máximo 10 instancias.

Formato de archivo convertido

Al convertir un fichero de configuración (mediante “-f”), el fichero convertido se coloca en el mismo directorio donde existe el fichero de configuración de entrada con el mismo nombre pero con el prefijo “new_”.

Comandos o funciones gestionados por la herramienta de conversión nspepi

A continuación se indican los comandos que se manejan durante el proceso de conversión automática.

  • Las siguientes directivas clásicas y sus expresiones se convierten en directivas y expresiones avanzadas. La conversión incluye vinculaciones de entidades y vinculaciones globales.
  1. add appfw policy
  2. add cmp policy
  3. add cr policy
  4. add cs policy
  5. agregar directiva ssl
  6. add filter action
  7. add filter policy
  8. filter policy binding a load balancing, content switching, cache redirection y global.
  • El parámetro de regla configurado en “add lb virtual server” se convierte de expresión clásica a expresión avanzada.
  • El parámetro SPDY configurado en el comando “add ns httpProfile” o “set ns httpProfile” se cambia a “-http2 ENABLED”.
  • Expresiones con nombre (comandos “add policy expression”). Cada expresión de directiva clásica con nombre se convierte en su expresión denominada avanzada correspondiente con “nspepi_adv_” establecido como prefijo. Además, el uso de expresiones con nombre para las expresiones clásicas convertidas se cambia a las expresiones con nombre avanzadas correspondientes. Además, cada expresión con nombre tiene dos expresiones con nombre, una es Clásica y la otra Avanzada (como se muestra a continuación).
  • Manejo de las vinculaciones de directivas clásicas integradas en CMP y CR.
  • La función Patclass se convierte en una función de conjunto de Pat.
  • El parámetro “-pattern” del comando “agregar acción de reescritura” se convierte para usar el parámetro “-search”.
  • Los prefijos Q y S de las expresiones avanzadas se convierten en expresiones avanzadas equivalentes no obsoletas. Estas expresiones se pueden ver en cualquier comando en el que se permitan expresiones avanzadas.

Por ejemplo:

add policy expression classic_expr ns_true
Converts to:
add policy expression classic_expr ns_true
add policy expression nspepi_adv_classic_expr TRUE
<!--NeedCopy-->
  • Se elimina el parámetro policyType configurado en el comando “set cmp parameter”. De forma predeterminada, el tipo de directiva es “Avanzada”.

Convertir comandos de filtro clásicos en comandos de filtro avanzados

La herramienta nspepi puede convertir comandos basados en acciones de filtro clásicas como agregar, enlazar, etc. en comandos de filtro avanzados.

Sin embargo, la herramienta nspepi no admite los siguientes comandos de filtro.

  1. add filter action <action Name> FORWARD <service name>
  2. add filter action <action name> ADD prebody
  3. add filter action <action name> ADD postbody

Nota:

  1. Si existen entidades de reescritura o respuesta en ns.conf y sus directivas están enlazadas globalmente con la expresión GOTO como END o USER_INVOCATION_RESULT y el tipo de enlace es REQ_X o RES_X, la herramienta convierte parcialmente los comandos de filtro de enlace y los comenta. Se muestra un error en la conversión manual.
  2. Si existen funciones de reescritura o respuesta existentes y sus directivas están enlazadas a servidores virtuales (por ejemplo, equilibrio de carga, cambio de contenido o redirección de caché) de tipo HTTPS con GOTO - END o USER_INVOCATION_RESULT, la herramienta convierte parcialmente los comandos de filtro de enlace y, a continuación, comenta. Aparece una advertencia para la conversión manual.

Ejemplo

A continuación se muestra un ejemplo de entrada:

add lb vserver v1 http 1.1.1.1 80 -persistenceType NONE -cltTimeout 9000
add cs vserver csv1 HTTP 1.1.1.2 80 -cltTimeout 180 -persistenceType NONE
add cr vserver crv1 HTTP 1.1.1.3 80 -cacheType FORWARD
add service svc1 1.1.1.4 http 80
add filter action fact_add add 'header:value'
add filter action fact_variable add 'H1:%%HTTP.TRANSID%%'
add filter action fact_prebody add prebody
add filter action fact_error_act1 ERRORCODE 200 "<HTML>Good URL</HTML>"
add filter action fact_forward_act1 FORWARD svc1
add filter policy fpol_add_res -rule ns_true -resAction fact_add
add filter policy fpol_error_res -rule ns_true -resAction fact_error_act1
add filter policy fpol_error_req -rule ns_true -reqAction fact_error_act1
add filter policy fpol_add_req -rule ns_true -reqAction fact_add
add filter policy fpol_variable_req -rule ns_true -reqAction fact_variable
add filter policy fpol_variable_res -rule ns_true -resAction fact_variable
add filter policy fpol_prebody_req -rule ns_true -reqAction fact_prebody
add filter policy fpol_prebody_res -rule ns_true -resAction fact_prebody
add filter policy fpol_forward_req -rule ns_true -reqAction fact_forward_act1
bind lb vserver v1 -policyName fpol_add_res
bind lb vserver v1 -policyName fpol_add_req
bind lb vserver v1 -policyName fpol_error_res
bind lb vserver v1 -policyName fpol_error_req
bind lb vserver v1 -policyName fpol_variable_res
bind lb vserver v1 -policyName fpol_variable_req
bind lb vserver v1 -policyName fpol_forward_req
bind cs vserver csv1 -policyName fpol_add_req
bind cs vserver csv1 -policyName fpol_add_res
bind cs vserver csv1 -policyName fpol_error_res
bind cs vserver csv1 -policyName fpol_error_req
bind cr vserver crv1 -policyName fpol_add_req
bind cr vserver crv1 -policyName fpol_add_res
bind cr vserver crv1 -policyName fpol_error_res
bind cr vserver crv1 -policyName fpol_error_req
bind cr vserver crv1 -policyName fpol_forward_req
bind filter global fpol_add_req
bind filter global fpol_add_res
bind filter global fpol_error_req
bind filter global fpol_error_res
bind filter global fpol_variable_req
bind filter global fpol_variable_res
bind filter global fpol_variable_res -state DISABLED
bind filter global fpol_prebody_req
bind filter global fpol_forward_req
<!--NeedCopy-->

Tras la conversión, se muestran advertencias o mensajes de error para el esfuerzo manual.

ERROR - Conversion of HTMLInjection feature related command [add filter action fact_prebody add prebody] is not supported in this tool.
ERROR - Conversion of FORWARD action type related command [add filter action fact_forward_act1 FORWARD svc1] not supported in this tool
ERROR - Conversion of HTMLInjection feature reated command [add filter policy fpol_prebody_req -rule ns_true -reqAction fact_prebody]not supported in this tool.
ERROR - Conversion of HTMLInjection feature reated command [add filter policy fpol_prebody_res -rule ns_true -resAction fact_prebody]not supported in this tool.
ERROR - Conversion of FORWARD action type related command [add filter policy fpol_forward_req -rule ns_true -reqAction fact_forward_act1]not supported in this tool.
ERROR - Conversion of FORWARD action type related command [bind lb vserver v1 -policyName fpol_forward_req]not supported in this tool.
ERROR - Conversion of FORWARD action type related command [bind cr vserver crv1 -policyName fpol_forward_req]not supported in this tool.
WARNING - Following bind command is commented out because state is disabled. If state is disabled, then command is not in use. Since state parameter is not supported with the advanced configuration, so if we convert this config then functionality will change. If command is required please take a backup because comments will not be saved in ns.conf after triggering 'save ns config': bind filter global fpol_variable_res -state DISABLED
ERROR - Conversion of HTMLInjection feature related command [bind filter global fpol_prebody_req]not supported in this tool.
ERROR - Conversion of FORWARD action type related command [bind filter global fpol_forward_req]not supported in this tool.
<!--NeedCopy-->

A continuación se presenta un ejemplo de salida. Todos los comandos convertidos se comentan.

add lb vserver v1 http 1.1.1.1 80 -persistenceType NONE -cltTimeout 9000
add cs vserver csv1 HTTP 1.1.1.2 80 -cltTimeout 180 -persistenceType NONE
add cr vserver crv1 HTTP 1.1.1.3 80 -cacheType FORWARD
add service svc1 1.1.1.4 http 80
add rewrite action fact_add insert_http_header header ""value""
add filter action fact_prebody add prebody
add responder action fact_error_act1 respondwith "HTTP.REQ.VERSION.APPEND(" 200 OK\r
nConnection: close\r
nContent-Length: 21\r\n\r
n<HTML>Good URL</HTML>")"
add rewrite action nspepi_adv_fact_error_act1 replace_http_res "HTTP.REQ.VERSION.APPEND(" 200 OK\r
nConnection: close\r
nContent-Length: 21\r\n\r
n<HTML>Good URL</HTML>")"
add filter action fact_forward_act1 FORWARD svc1
add filter policy fpol_prebody_req -rule ns_true -reqAction fact_prebody
add filter policy fpol_prebody_res -rule ns_true -resAction fact_prebody
add filter policy fpol_forward_req -rule ns_true -reqAction fact_forward_act1
bind lb vserver v1 -policyName fpol_forward_req
bind cr vserver crv1 -policyName fpol_forward_req
#bind filter global fpol_variable_res -state DISABLED
bind filter global fpol_prebody_req
bind filter global fpol_forward_req
add rewrite action nspepi_adv_fact_variable insert_http_header H1 HTTP.RES.TXID
add rewrite action fact_variable insert_http_header H1 HTTP.REQ.TXID
add rewrite policy fpol_add_res TRUE fact_add
add rewrite policy fpol_error_res TRUE nspepi_adv_fact_error_act1
add responder policy fpol_error_req TRUE fact_error_act1
add rewrite policy fpol_add_req TRUE fact_add
add rewrite policy fpol_variable_req TRUE fact_variable
add rewrite policy fpol_variable_res TRUE nspepi_adv_fact_variable
bind rewrite global fpol_add_req 100 NEXT -type REQ_DEFAULT
bind rewrite global fpol_variable_req 200 NEXT -type REQ_DEFAULT
bind rewrite global fpol_add_res 100 NEXT -type RES_DEFAULT
bind rewrite global fpol_error_res 200 NEXT -type RES_DEFAULT
bind rewrite global fpol_variable_res 300 NEXT -type RES_DEFAULT
bind responder global fpol_error_req 100 END -type REQ_DEFAULT
bind lb vserver v1 -policyName fpol_add_res -type RESPONSE -priority 100 -gotoPriorityExpression NEXT
bind lb vserver v1 -policyName fpol_error_res -type RESPONSE -priority 200 -gotoPriorityExpression NEXT
bind lb vserver v1 -policyName fpol_variable_res -type RESPONSE -priority 300 -gotoPriorityExpression NEXT
bind lb vserver v1 -policyName fpol_add_req -type REQUEST -priority 100 -gotoPriorityExpression NEXT
bind lb vserver v1 -policyName fpol_variable_req -type REQUEST -priority 200 -gotoPriorityExpression NEXT
bind lb vserver v1 -policyName fpol_error_req -type REQUEST -priority 100 -gotoPriorityExpression END
bind cs vserver csv1 -policyName fpol_add_req -type REQUEST -priority 100 -gotoPriorityExpression NEXT
bind cs vserver csv1 -policyName fpol_add_res -type RESPONSE -priority 100 -gotoPriorityExpression NEXT
bind cs vserver csv1 -policyName fpol_error_res -type RESPONSE -priority 200 -gotoPriorityExpression NEXT
bind cs vserver csv1 -policyName fpol_error_req -type REQUEST -priority 100 -gotoPriorityExpression END
bind cr vserver crv1 -policyName fpol_add_req -type REQUEST -priority 100 -gotoPriorityExpression NEXT
bind cr vserver crv1 -policyName fpol_add_res -type RESPONSE -priority 100 -gotoPriorityExpression NEXT
bind cr vserver crv1 -policyName fpol_error_res -type RESPONSE -priority 200 -gotoPriorityExpression NEXT
bind cr vserver crv1 -policyName fpol_error_req -type REQUEST -priority 100 -gotoPriorityExpression END
<!--NeedCopy-->

Convierta los comandos de filtro clásicos en comandos de funciones avanzadas si los enlaces de directivas de reescritura o respuesta existentes tienen la expresión goto END o USE_INNVOCATION

En esta conversión, si una directiva de reescritura vinculada a uno o más servidores virtuales y si el servidor tiene END o USE_INVOCATION_RESULT, la herramienta comenta los comandos.

Ejemplo

A continuación se muestra un comando de entrada de ejemplo:

add lb vserver v1_tcp TCP
add lb vserver v1_http HTTP
add lb vserver v2_http HTTP
add cs vserver csv1_tcp TCP 1.1.1.1 12345
add cs vserver csv1_http HTTP 2.2.2.1 80
add cs vserver csv2_http HTTP 2.2.2.5 180
add cr vserver crv1_tcp TCP 1.1.1.2 2345
add cs vserver crv2_http HTTP 2.2.2.2 90
add filter policy fpol1 -rule ns_true -resAction reset
add filter policy fpol2 -rule ns_true -reqAction reset
add rewrite policy pol1 true NOREWRITE
add rewrite policylabel pl http_res
bind rewrite policylabel pl pol1 1
bind rewrite global NOPOLICY 1 USE_INVOCATION_RESULT -type RES_DEFAULT -invoke policylabel pl
add responder policy pol2 true NOOP
add responder policylabel pl -policylabeltype HTTP
bind responder policylabel pl pol2 1
bind responder global NOPOLICY 1 USE_INVOCATION_RESULT -type REQ_DEFAULT -invoke policylabel pl
bind lb vserver v1_tcp -policyName pol1 -priority 100 -gotoPriorityExpression USE_INVOCATION_RESULT -type RESPONSE
bind cs vserver csv1_tcp -policyName pol1 -priority 100 -gotoPriorityExpression USE_INVOCATION_RESULT -type RESPONSE
bind lb vserver v1_tcp -policyName pol2 -priority 100 -gotoPriorityExpression USE_INVOCATION_RESULT -type REQUEST
bind cs vserver csv1_tcp -policyName pol2 -priority 100 -gotoPriorityExpression USE_INVOCATION_RESULT -type REQUEST
bind cr vserver crv1_tcp -policyName pol2 -priority 100 -gotoPriorityExpression USE_INVOCATION_RESULT -type REQUEST
bind lb vserver v1_http -policyName fpol1
bind cs vserver csv1_http -policyName fpol1
bind lb vserver v2_http -policyName fpol2
bind cs vserver csv2_http -policyName fpol2
bind cr vserver crv2_http -policyName fpol2
bind filter global fpol1 -priority 100
bind filter global fpol2 -priority 100
<!--NeedCopy-->

A continuación se muestra un ejemplo de comando de salida:

add lb vserver v1_tcp TCP
add lb vserver v1_http HTTP
add lb vserver v2_http HTTP
add cs vserver csv1_tcp TCP 1.1.1.1 12345
add cs vserver csv1_http HTTP 2.2.2.1 80
add cs vserver csv2_http HTTP 2.2.2.5 180
add cr vserver crv1_tcp TCP 1.1.1.2 2345
add cs vserver crv2_http HTTP 2.2.2.2 90
add rewrite policy pol1 true NOREWRITE
add rewrite policylabel pl http_res
bind rewrite policylabel pl pol1 1
add responder policy pol2 true NOOP
add responder policylabel pl -policylabeltype HTTP
bind responder policylabel pl pol2 1
bind lb vserver v1_tcp -policyName pol1 -priority 100 -gotoPriorityExpression USE_INVOCATION_RESULT -type RESPONSE
bind cs vserver csv1_tcp -policyName pol1 -priority 100 -gotoPriorityExpression USE_INVOCATION_RESULT -type RESPONSE
bind lb vserver v1_tcp -policyName pol2 -priority 100 -gotoPriorityExpression USE_INVOCATION_RESULT -type REQUEST
bind cs vserver csv1_tcp -policyName pol2 -priority 100 -gotoPriorityExpression USE_INVOCATION_RESULT -type REQUEST
bind cr vserver crv1_tcp -policyName pol2 -priority 100 -gotoPriorityExpression USE_INVOCATION_RESULT -type REQUEST
add rewrite policy fpol1 TRUE RESET
add responder policy fpol2 TRUE RESET
#bind lb vserver v2_http -policyName fpol2 -type REQUEST
#bind cs vserver csv2_http -policyName fpol2 -type REQUEST
#bind cr vserver crv2_http -policyName fpol2 -type REQUEST
#bind responder global fpol2 100 -type REQ_DEFAULT
bind rewrite global NOPOLICY 1 USE_INVOCATION_RESULT -type RES_DEFAULT -invoke policylabel pl
bind rewrite global fpol1 100 NEXT -type RES_DEFAULT
bind responder global NOPOLICY 1 USE_INVOCATION_RESULT -type REQ_DEFAULT -invoke policylabel pl
bind lb vserver v1_http -policyName fpol1 -type RESPONSE -priority 100 -gotoPriorityExpression NEXT
bind cs vserver csv1_http -policyName fpol1 -type RESPONSE -priority 100 -gotoPriorityExpression NEXT
<!--NeedCopy-->

Ejecución de la herramienta nspepi

A continuación se muestra un ejemplo de línea de comandos para ejecutar la herramienta nspepi. Esta herramienta se ejecuta desde la línea de comandos del shell (debe escribir el comando “shell” en la “CLI” de NetScaler para llegar a eso). Se debe especificar “-f” o “-e” para realizar una conversión. El uso de “-d” está pensado para que el personal de Citrix lo analice con fines de asistencia técnica.

usage: nspepi [-h] (-e <classic policy expression> | -f <path to ns config file>)[-d] [-v] [-V

Convert classic policy expressions to advanced policy expressions and deprecated commands to non-deprecated
commands.

optional arguments:
-h, --help show this help message and exit
-e <classic policy expression>, --expression <classic policy expression>
convert classic policy expression to advanced policy
expression (maximum length of 8191 allowed)
-f <path to ns config file>, --infile <path to ns config file>
convert netscaler config file
-d, --debug log debug output
-v, --verbose show verbose output
-V, --version show program's version number and exit
<!--NeedCopy-->

Ejemplos de uso:

  1. nspepi -e "req.tcp.destport == 80"
  2. nspepi -f /nsconfig/ns.conf

A continuación se presentan algunos ejemplos de ejecución de la herramienta nspepi mediante la CLI

Salida de ejemplo para el parámetro —e:

root@ns# nspepi -e "req.http.header foo == "bar""
"HTTP.REQ.HEADER("foo").EQ("bar")"
<!--NeedCopy-->

Salida de ejemplo para el parámetro -f:

root@ns# cat sample.conf
add cr vserver cr_vs HTTP -cacheType TRANSPARENT -cltTimeout 180 -originUSIP OFF
add cr policy cr_pol1 -rule ns_true
bind cr vserver cr_vs -policyName cr_pol1
<!--NeedCopy-->

Ejecutar nspepi con el parámetro -f:

nspepi -f sample.conf
<!--NeedCopy-->

La configuración convertida está disponible en un nuevo archivo new_sample.conf. Compruebe si hay advertencias o errores que se hayan generado en el archivo warn_sample.conf.

Ejemplo de salida del parámetro -f junto con el parámetro -v

nspepi -f sample.conf -v
INFO - add cr vserver cr_vs HTTP -cacheType TRANSPARENT -cltTimeout 180 -originUSIP OFF
INFO - add cr policy cr_pol1 -rule TRUE -action ORIGIN
INFO - bind cr vserver cr_vs -policyName cr_pol1 -priority 100 -gotoPriorityExpression END -type REQUEST
<!--NeedCopy-->

La configuración convertida está disponible en un nuevo archivo new_sample.conf. Compruebe si hay advertencias o errores que se hayan generado en el archivo warn_sample.conf.

Archivo de configuración convertido:

root@ns# cat new_sample.conf
add cr vserver cr_vs HTTP -cacheType TRANSPARENT -cltTimeout 180 -originUSIP OFF
add cr policy cr_pol1 -rule TRUE -action ORIGIN
set cmp parameter -policyType ADVANCED
bind cr vserver cr_vs -policyName cr_pol1 -priority 100 -gotoPriorityExpression END -type REQUEST

<!--NeedCopy-->

Ejemplo de salida de una configuración de ejemplo sin errores ni advertencias:

nspepi -f sample_2.conf
<!--NeedCopy-->

La configuración convertida está disponible en un nuevo archivo new_sample_2.conf. Compruebe si hay advertencias o errores que se hayan generado en el archivo warn_sample_2.conf.

Ejemplo de salida de una configuración de ejemplo con advertencias:

root@ns# cat sample_2.conf
add policy expression security_expr "req.tcp.destport == 80" -clientSecurityMessage "Not allowed"
set cmp parameter -policyType CLASSIC
add cmp policy cmp_pol1 -rule ns_true -resAction COMPRESS
add cmp policy cmp_pol2 -rule ns_true -resAction COMPRESS
add cmp policy cmp_pol3 -rule TRUE -resAction COMPRESS
bind cmp global cmp_pol1
bind cmp global cmp_pol2 -state DISABLED
bind cmp global cmp_pol3 -priority 1 -gotoPriorityExpression END -type RES_DEFAULT
bind lb vserver lb_vs -policyName cmp_pol2
root@ns#
<!--NeedCopy-->

Archivo convertido:

root@ns# cat new_sample_2.conf  
add policy expression security_expr "req.tcp.destport == 80" -clientSecurityMessage "Not allowed"
set cmp parameter -policyType ADVANCED
add cmp policy cmp_pol1 -rule TRUE -resAction COMPRESS
add cmp policy cmp_pol2 -rule TRUE -resAction COMPRESS
add cmp policy cmp_pol3 -rule TRUE -resAction COMPRESS
#bind cmp global cmp_pol2 -state DISABLED
#bind cmp global cmp_pol3 -priority 1 -gotoPriorityExpression END -type RES_DEFAULT
bind cmp global cmp_pol1 -priority 100 -gotoPriorityExpression END -type RES_DEFAULT
bind lb vserver lb_vs -policyName cmp_pol2 -priority 100 -gotoPriorityExpression END -type RESPONSE
root@ns#
<!--NeedCopy-->

Archivo de advertencias:

WARNING - Following bind command is commented out because state is disabled. If state is disabled, then command is not in use. Since state parameter is not supported with the advanced configuration, so if we convert this config then functionality will change. If command is required please take a backup because comments will not be saved in ns.conf after triggering 'save ns config': bind cmp global cmp_pol2 -state DISABLED
WARNING - Initial global cmp parameter is classic and in this case advanced policies's bindings are not evaluated. Now global cmp parameter policy type is set to advanced, so existing advanced policies's bindings will be evaluted and can change the functionality. So, bindings of advanced CMP policies to cmp global are commented out. If commands are required please take a backup because comments will not be saved in ns.conf after triggering 'save ns config'.
<!--NeedCopy-->

Vincular prioridades

Las directivas avanzadas no permiten el entrelazado arbitrario por prioridad entre globales y no globales ni entre distintos tipos de enlace. Si confía en este tipo de intercalado de prioridades de directivas clásicas, deberá ajustar las prioridades para que se ajusten a las reglas de directivas avanzadas y para obtener el comportamiento deseado. Las prioridades de las directivas avanzadas son locales hasta un punto de enlace. Un punto de enlace es una combinación única de protocolo, función, dirección y entidad (las entidades son servidores virtuales específicos, usuarios, grupos, servicios y anulación global o predeterminada global). Las prioridades directivas no se siguen a través de los puntos vinculantes.

Para un protocolo, una función y una dirección determinados, el siguiente es el orden de evaluación de las directivas avanzadas:

  • Anulación global.
  • Usuario de autenticación, autorización y auditoría (actual).
  • Grupos de autenticación, autorización y auditoría (de los que el usuario es miembro) por orden de peso: el orden no está definido si dos o más grupos tienen el mismo peso.
  • Servidor virtual LB en el que se recibió la solicitud o que ha seleccionado Content Switching.
  • Servidor virtual de conmutación de contenido, servidor virtual de redirección de caché en el que se recibió la solicitud.
  • Servicio seleccionado por equilibrio de carga.
  • Valor predeterminado global.

Dentro de cada punto de enlace, las directivas se evalúan en orden de prioridad, desde el número más bajo hasta el número más alto. Las directivas solo se evalúan para el protocolo utilizado y la dirección desde la que se recibió el mensaje.

Vinculación de directivas clásicas que requieren una nueva priorización manual

Estos son algunos tipos de vinculaciones de directivas clásicas que requieren una nueva priorización manual para satisfacer sus necesidades. Todo esto es para una función determinada y la dirección.

  • Prioridades clásicas que aumentan en número de prioridad opuesto a la dirección de las listas de tipos de entidad anteriores. Por ejemplo, un enlace de servidor virtual de conmutación de contenido inferior a un enlace de servidor virtual de equilibrio de carga.
  • Prioridades clásicas que aumentan en número distinto del orden de ponderación de los grupos de autenticación, autorización y auditoría.
  • Las prioridades mundiales clásicas que son menos que algunas prioridades no mundiales y las mismas prioridades mundiales son mayores que otras prioridades no mundiales (en otras palabras, cualquier segmento de prioridades que sean no globales, seguido de uno o más globales, seguido de uno o más globales, seguido de uno no global).

Las herramientas NSPEPI y check_invalid_config se pueden ejecutar en los sistemas CentOS y Ubuntu

Los siguientes módulos son requisitos previos para utilizar estas herramientas:

  • Python
  • Perl
  • Módulo pip de Python
  • Módulo Ply para Python
  • Switch.pm para Perl

Si Python 3 está instalado, cree un enlace suave, por ejemplo "ln -s /usr/bin/python3 /usr/bin/python".

Para instalar el módulo pip de Python, el módulo PLY para Python y Switch.pm para Perl en CentOS, ejecute los siguientes comandos:

  • sudo yum install -y perl-Switch
  • sudo yum install python-pip
  • sudo yum install python-ply

Para instalar el módulo pip de Python, el módulo PLY para Python y Switch.pm para Perl en Ubuntu, ejecuta los siguientes comandos:

  • sudo apt install libswitch-perl
  • sudo apt install python-ply
  • sudo apt install python-pip or sudo apt install python3-pip