Citrix ADC

Konvertieren von Richtlinienausdrücken mit dem NSPEPI-Tool

Hinweis:

Sie können das NSPEPI- und Preconfig-Check-Tool vom öffentlichen GitHub herunterladen. Weitere Informationen finden Sie auf GitHub NEPEPI Seite und GitHub Preconfig Seite für detaillierte Anweisungen zum Herunterladen der Tools. Wir empfehlen Kunden, die in GitHub verfügbaren Tools für die vollständigste und aktuellste Version zu verwenden.

Klassische richtlinienbasierte Merkmale und Funktionen sind ab NetScaler 12.0 Build 56.20 veraltet. Als Alternative empfiehlt Citrix die Verwendung der erweiterten Richtlinieninfrastruktur. Im Rahmen dieser Bemühungen müssen Sie beim Upgrade auf Citrix ADC 12.1 Build 56.20 oder höher die richtlinienbasierten Funktionen und Funktionen von Classic durch die entsprechenden nicht veralteten Funktionen und Funktionen ersetzen. Außerdem müssen Sie klassische Richtlinien und Ausdrücke in erweiterte Richtlinien und Ausdrücke konvertieren. Außerdem unterstützen alle neuen Citrix ADC-Funktionen nur erweiterte Richtlinieninfrastruktur.

Das nspepi Tool kann Folgendes ausführen:

  1. Konvertieren Sie klassische Richtlinienausdrücke in erweiterte Richtlinienausdrücke.
  2. Konvertieren Sie bestimmte Classic-Richtlinien und deren Entitätsbindungen in erweiterte Richtlinien und Bindungen.
  3. Konvertieren Sie ein paar weitere veraltete Funktionen in ihre entsprechenden nicht veralteten Funktionen.
  4. Konvertieren Sie klassische Filterbefehle in erweiterte Filterbefehle.

Hinweis:

Nachdem das nspepi Tool die ns.conf-Konfigurationsdatei erfolgreich konvertiert hat, zeigt das Tool die konvertierte Datei als neue Datei mit dem Präfix “new_” an. Wenn die konvertierte Konfigurationsdatei Fehler oder Warnungen enthält, müssen Sie diese im Rahmen des Konvertierungsprozesses manuell beheben. Nach der Konvertierung müssen Sie die Datei in der Testumgebung testen und dann verwenden, um die eigentliche ns.conf-Konfigurationsdatei zu ersetzen. Nach dem Testen müssen Sie die Appliance für die neu konvertierte oder feste ns.conf-Konfigurationsdatei neu starten.

Funktionen, die nur klassische Richtlinien oder Ausdrücke unterstützen, sind veraltet und können durch die entsprechenden nicht veralteten Funktionen ersetzt werden.

Hinweis:

Informationen zur älteren Version des nspepi Tools sind in einem PDF-Format verfügbar. Weitere Informationen finden Sie unter Klassische Richtlinienkonvertierung mithilfe des nspepi-Tool vor 12.1-51.16 PDF.

Konvertierungswarnungen und Fehlerdateien

Bevor Sie das Tool für Ihre Konvertierung verwenden, sollten Sie nur wenige Warnungen beachten:

  1. Alle Warnungen und Fehler werden an die Konsole ausgegeben. Es wird eine Warndatei erstellt, in der die Konfigurationsdateien gespeichert werden.
  2. Die Warnungs- und Fehlerdatei hat den gleichen Namen wie die Eingabedatei, jedoch mit dem Präfix “warn_”, das dem Dateinamen hinzugefügt wurde. Während der Ausdrucksumwandlung (bei Verwendung von -e) werden die Warnungen im aktuellen Verzeichnis mit dem Namen “warn_expr” angezeigt.

Hinweis:

Diese Datei hat ein Standard-Protokolldateiformat mit Datums-/Zeitstempel und Protokollebene. Frühere Instanzen der Datei werden mit Suffixen wie “.1”, “.2” usw. beibehalten, da das Tool mehrmals ausgeführt wird. Es werden höchstens 10 Instanzen beibehalten.

Konvertiertes Dateiformat

Beim Konvertieren einer Konfigurationsdatei (mit “-f”) wird die konvertierte Datei in dasselbe Verzeichnis abgelegt, in dem die Eingabekonfigurationsdatei mit demselben Namen, aber einem Präfix “neu_” existiert.

Befehle oder Funktionen, die vom nspepi-Konvertierungstool verarbeitet werden

Im Folgenden werden die Befehle aufgeführt, die während des automatischen Konvertierungsprozesses verarbeitet werden.

  • Die folgenden Classic-Richtlinien und ihre Ausdrücke werden in erweiterte Richtlinien und Ausdrücke umgewandelt. Die Konvertierung umfasst Entitätsbindungen und globale Bindungen.
  1. add appfw policy
  2. add cmp policy
  3. add cr policy
  4. add cs policy
  5. add tm sessionPolicy
  6. add filter action
  7. add filter policy
  8. Filterrichtlinienbindung an Lastenausgleich, Content Switching, Cache-Umleitung und global.

Hinweis:

Für “add tm sessionPolicy” können Sie jedoch nicht an globale Überschreibungen in erweiterten Richtlinien binden.

  • Der in “Add lb virtuellen Server hinzufügen” konfigurierte Regelparameter wird vom klassischen Ausdruck in den erweiterten Ausdruck konvertiert.
  • Der im Befehl “add ns HttpProfile” oder “set ns HttpProfile” konfigurierte SPDY-Parameter wird in “-http2 ENABLED” geändert.
  • Benannte Ausdrücke (Befehle “Richtlinienausdruck hinzufügen”). Jeder klassische benannte Richtlinienausdruck wird in den entsprechenden benannten erweiterten Ausdruck umgewandelt, wobei “nspepi_adv_” als Präfix festgelegt ist. Darüber hinaus wird die Verwendung benannter Ausdrücke für die konvertierten Classic-Ausdrücke in die entsprechenden erweiterten benannten Ausdrücke geändert. Darüber hinaus hat jeder benannte Ausdruck zwei benannte Ausdrücke, wobei einer Classic und der andere Advanced ist (wie unten gezeigt).
  • Tunnel TrafficPolicy Konvertierung wird unterstützt.
  • Umgang mit integrierten klassischen Richtlinienbindungen in CMP, CR und Tunnel.
  • Patclass Feature wird in Pat Set Feature umgewandelt.
  • Der Parameter “-pattern” im Befehl “add rewrite action” wird umgewandelt, um den Parameter “-search” zu verwenden.
  • SYS.EVAL_CLASSIC_EXPR wird in den entsprechenden nicht veralteten erweiterten Ausdruck umgewandelt. Diese Ausdrücke sind in jedem Befehl zu sehen, in dem erweiterte Ausdrücke zulässig sind.
  • Q- und S-Präfixe von erweiterten Ausdrücken werden in äquivalente, nicht veraltete erweiterte Ausdrücke umgewandelt. Diese Ausdrücke sind in jedem Befehl zu sehen, in dem erweiterte Ausdrücke zulässig sind.

Beispiel:

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-->
  • Der im Befehl “set cmp-Parameter” konfigurierte PolicyType-Parameter wird entfernt. Standardmäßig ist der Richtlinientyp “Advanced”.

Konvertieren von klassischen Filterbefehlen in erweiterte Filterbefehle

Das nspepi Tool kann Befehle basierend auf klassischen Filteraktionen wie Hinzufügen, Binden usw. in erweiterte Filterbefehle konvertieren.

Das nepepi-Tool unterstützt jedoch die folgenden Filterbefehle nicht.

  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

Hinweis:

  1. Wenn es in ns.conf Rewrite- oder Responder-Features gibt und ihre Richtlinien global mit dem Ausdruck GOTO als END oder USER_INVOCATION_RESULTgebunden sind und der Bindetyp ist REQ_X oder RES_X dann konvertiert das Tool Bindungsfilterbefehle teilweise und kommentiert. Eine Warnung wird angezeigt, um manuellen Aufwand zu unternehmen.
  2. Wenn es vorhandene Rewrite- oder Responder-Funktionen gibt und deren Richtlinien an virtuelle Server (z. B. Load Balancing, Content Switching oder Cache-Umleitung) vom Typ HTTPS mit GOTO - END oder USER_INVOCATION_RESULT gebunden sind , konvertiert das Tool Bindungsfilterbefehle teilweise und kommentiert dann Kommentare aus. Eine Warnung wird angezeigt, um manuellen Aufwand zu unternehmen.

Beispiel

Es folgt eine Beispieleingabe:

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
After conversion, warning/error messages will be displayed for manual effort.
Warning files:
cat warn_<input file name>:
2019-11-07 17:13:34,724: ERROR - Conversion of [add filter action fact_prebody add prebody] not supported in this tool.
2019-11-07 17:13:34,739: ERROR - Conversion of [add filter action fact_forward_act1 FORWARD svc1] not supported in this tool.
2019-11-07 17:13:38,042: ERROR - Conversion of [add filter policy fpol_prebody_req -rule ns_true -reqAction fact_prebody] not supported in this tool.
2019-11-07 17:13:38,497: ERROR - Conversion of [add filter policy fpol_prebody_res -rule ns_true -resAction fact_prebody] not supported in this tool.
2019-11-07 17:13:39,035: ERROR - Conversion of [add filter policy fpol_forward_req -rule ns_true -reqAction fact_forward_act1] not supported in this tool.
2019-11-07 17:13:39,060: WARNING - Following bind command is commented out because state is disabled. Advanced expressions only have a fixed ordering of the types of bindings without interleaving, except that global bindings are allowed before all other bindings and after all bindings. If you have global bindings in the middle of non-global bindings or any other interleaving then you will need to reorder all your bindings for that feature and direction. Refer to nspepi documentation. 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


<!--NeedCopy-->

Es folgt eine Beispielausgabe. Alle konvertierten Befehle werden kommentiert.

cat new_<input file name>
add rewrite action fact_add insert_http_header header ""value""
add filter action fact_prebody add prebody
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 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 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
set cmp parameter -policyType ADVANCED
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-->

Konvertieren Sie klassische Filterbefehle in erweiterte Feature-Befehle, wenn vorhandene Rewrite- oder Responder-Richtlinienbindungen den goto Ausdruck END oder USE_INNVOCATION haben

Wenn bei dieser Konvertierung eine Rewriterichtlinie an einen oder mehrere virtuelle Server gebunden ist und der Server über END oder USE_INVOCATION_RESULT verfügt, kommentiert das Tool die Befehle.

Beispiel

Es folgt ein Beispiel für einen Eingabebefehl:

COPY
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-->

Es folgt ein Beispiel für einen Ausgabebefehl:

COPY
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
add rewrite policy fpol1 TRUE RESET
add responder policy fpol2 TRUE RESET
#bind lb vserver v1_http -policyName fpol1 -type RESPONSE
#bind cs vserver csv1_http -policyName fpol1 -type RESPONSE
#bind rewrite global fpol1 100 -type RES_DEFAULT
#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 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 lb vserver v1_tcp -policyName pol2 -priority 100 -gotoPriorityExpression USE_INVOCATION_RESULT -type REQUEST
bind cs vserver csv1_tcp -policyName pol1 -priority 100 -gotoPriorityExpression USE_INVOCATION_RESULT -type RESPONSE
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-

<!--NeedCopy-->

Befehle oder Funktionen, die nicht vom nspepi-Konvertierungstool verarbeitet werden

Im Folgenden sind einige Befehle aufgeführt, die im Rahmen des automatischen Konvertierungsprozesses nicht behandelt werden.

  • Einige Bindungen können nicht konvertiert werden, wenn es eine gewisse Verflechung von Prioritäten zwischen globalen und nicht-globalen Bindungspunkten, zwischen Benutzern und Gruppen sowie zwischen Bindungen an verschiedene Entitäten gibt. Bei diesen wurde die betroffene Konfiguration auskommentiert und ein Fehler erzeugt. Solche Konfigurationen müssen manuell umgewandelt werden.
  • Sowohl klassische als auch erweiterte Richtlinien können an cmp global gebunden werden. Es gibt viele Fälle, in denen sich die Funktionalität ändert, sobald Classic-Richtlinien in erweiterte Richtlinien umgewandelt wurden. Wir haben Befehle umgewandelt, die durch das Auskommentieren einiger Richtlinien gelöst werden können. Dennoch gibt es einige Befehle, die nicht konvertiert werden können. In solchen Fällen wird ein Fehler erzeugt und die Konvertierung muss manuell erfolgen.
  • Nicht alle Verwendungen von in Classic integrierten benannten Ausdrücken werden in äquivalente erweiterte benannte Ausdrücke umgewandelt.
  • Client-Sicherheitsausdrücke werden nicht behandelt.
  • Die Option “-precedence” für virtuelle Server für Content Switching und Cache-Umleitung wird nicht behandelt.
  • Sicher verbinden (SC)
  • Prioritäts-Warteschlange (PQ)
  • HTTP-Diensteverweigerung (HDOS)
  • HTML Injection
  • Authentifizierung
  • Autorisierung
  • VPN
  • Syslog
  • Nslog
  • Dateibasierte Classic-Ausdrücke werden nicht behandelt.

Hinweis:

Für einige Funktionen wie PatClass/Filter wird die Befehlssyntax geändert. Wenn es cmd-Richtlinien gibt, müssen die cmd-Richtlinien möglicherweise je nach Kundenanforderung geändert werden.

Bekannte Probleme

Die folgenden Fehler können durch das nspepi Tool verursacht werden:

  • Wenn beim Konvertieren eines Ausdrucks ein Problem auftritt.
  • Wenn ein benannter Richtlinienausdruck den Parameter -ClientSecurityMessage verwendet, da dieser Parameter im erweiterten Richtlinienausdruck nicht unterstützt wird.

Hinweis:

Alle klassischen Richtlinienbindungen mit deaktivierter Option -state werden auskommentiert. Die Option -state ist für erweiterte Richtlinienbindungen nicht verfügbar.

Ausführen des nspepi-Tools

Das Folgende ist ein Befehlszeilenbeispiel zum Ausführen des nspepi Tools. Dieses Tool wird von der Befehlszeile der Shell aus ausgeführt (Sie müssen den Befehl “Shell” an den NetScaler”CLI” eingeben, um dorthin zu gelangen). Entweder “-f” oder “-e” muss angegeben werden, um eine Konvertierung durchzuführen. Die Verwendung von “-d” ist für Citrix Mitarbeiter vorgesehen, um sie zu Supportzwecken zu analysieren.

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

Beispiele für die Verwendung:

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

Im Folgenden finden Sie einige Beispiele für das Ausführen des nspepi Tools über die CLI

Beispielausgabe für den Parameter —e:

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

Beispielausgabe für den Parameter -f:

root@ns# cat sample.conf
add c\*\*Input\*\*r 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-->

Ausführen von nspepi mit dem Parameter -f:

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

Die konvertierte Konfiguration ist in einer neuen Datei verfügbar new_sample.conf. Überprüfen Sie die Datei warn_sample.conf auf Warnungen oder Fehler, die möglicherweise generiert wurden.

Beispielausgabe des Parameters -f zusammen mit dem Parameter -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-->

Die konvertierte Konfiguration ist in einer neuen Datei verfügbar new_sample.conf. Überprüfen Sie die Datei warn_sample.conf auf Warnungen oder Fehler, die möglicherweise generiert wurden.

Konvertierte Config-Datei:

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

Beispielausgabe einer Beispielkonfiguration ohne Fehler oder Warnungen:

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

Die konvertierte Konfiguration ist in einer neuen Datei verfügbar new_sample_2.conf. Überprüfen Sie die Datei warn_sample_2.conf auf Warnungen oder Fehler, die möglicherweise generiert wurden.

Beispielausgabe einer Beispielkonfiguration mit Warnungen:

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

Beispiel für das Ausführen von nspepi mit dem Parameter -f:

root@ns# nspepi -f sample_2.conf
ERROR - Error in converting expression security_expr : conversion of clientSecurityMessage based expression is not supported.
WARNING - Following bind command is commented out because state is disabled. Advanced expressions only have a fixed ordering of the types of bindings without interleaving, except that global bindings are allowed before all other bindings and after all bindings. If you have global bindings in the middle of non-global bindings or any other interleaving then you will need to reorder all your bindings for that feature and direction. Refer to nspepi documentation. 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 - Bindings of advanced CMP policies to cmp global are commented out, because initial global cmp parameter is classic but advanced policies are bound. Now global cmp parameter policy type is set to advanced. If commands are required please take a backup because comments will not be saved in ns.conf after triggering 'save ns config'. Advanced expressions only have a fixed ordering of the types of bindings without interleaving, except that global bindings are allowed before all other bindings and after all bindings. If you have global bindings in the middle of non-global bindings or any other interleaving then you will need to reorder all your bindings for that feature and direction. Refer to nspepi documentation.
root@ns#
<!--NeedCopy-->

Konvertierte Datei:

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

Warn-Datei:

root@ns# cat warn_sample_2.conf
2019-02-28 06:20:10,590: ERROR - Error in converting expression security_expr : conversion of clientSecurityMessage based expression is not supported.
2019-02-28 06:20:12,187: WARNING - Following bind command is commented out because state is disabled. Advanced expressions only have a fixed ordering of the types of bindings without interleaving, except that global bindings are allowed before all other bindings and after all bindings. If you have global bindings in the middle of non-global bindings or any other interleaving then you will need to reorder all your bindings for that feature and direction. Refer to nspepi documentation. 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
2019-02-28 06:20:12,191: WARNING - Bindings of advanced CMP policies to cmp global are commented out, because initial global cmp parameter is classic but advanced policies are bound. Now global cmp parameter policy type is set to advanced. If commands are required please take a backup because comments will not be saved in ns.conf after triggering 'save ns config'. Advanced expressions only have a fixed ordering of the types of bindings without interleaving, except that global bindings are allowed before all other bindings and after all bindings. If you have global bindings in the middle of non-global bindings or any other interleaving then you will need to reorder all your bindings for that feature and direction. Refer to nspepi documentation.
root@ns#
<!--NeedCopy-->

Verbindliche Prioritäten

Erweiterte Richtlinien erlauben kein willkürliches Interleaving nach Priorität zwischen global und nicht-global sowie zwischen verschiedenen Bindungstypen. Wenn Sie sich auf ein solches Interleaving von Classic-Richtlinienprioritäten verlassen, müssen Sie die Prioritäten anpassen, um den erweiterten Richtlinienregeln zu entsprechen und das gewünschte Verhalten zu erzielen. Prioritäten in erweiterten Richtlinien sind lokal an einem Bindepunkt. Ein Bindepunkt ist eine eindeutige Kombination aus Protokoll, Feature, Richtung und Entität (Entitäten sind bestimmte virtuelle Server, Benutzer, Gruppen, Dienste und entweder globale Überschreibung oder globale Standardeinstellung). Politische Prioritäten werden nicht über Bindepunkte hinweg befolgt.

Für ein bestimmtes Protokoll, eine bestimmte Funktion und eine bestimmte Richtung ist die Reihenfolge der Bewertung von erweiterten Richtlinien unten angegeben:

  • Globale Überschreibung.
  • (Aktueller) Authentifizierungs-, Autorisierungs- und Überwachungsbenutzer.
  • Authentifizierungs-, Autorisierungs- und Überwachungsgruppen (bei denen der Benutzer Mitglied ist) in der Reihenfolge des Gewichts - die Reihenfolge ist nicht definiert, wenn zwei oder mehr Gruppen das gleiche Gewicht haben.
  • Virtueller LB-Server, auf dem entweder die Anforderung empfangen wurde oder der Content Switching ausgewählt hat.
  • Virtueller Content Switching-Server, virtueller Cache-Umleitungsserver, auf dem die Anforderung empfangen wurde.
  • Durch Load Balancing ausgewählter Dienst.
  • Globale Standardeinstellung.

Für die Bewertung der Autorisierungsrichtlinie lautet die Reihenfolge:

  • Systeme überschreiben.
  • Virtueller Lastausgleichsserver, auf dem entweder die Anforderung empfangen wurde oder der CS ausgewählt hat.
  • Virtueller Content Switching-Server, auf dem die Anforderung empfangen wurde.
  • Standardeinstellung des Systems.

Innerhalb jedes Bindepunkts werden die Richtlinien in der Reihenfolge ihrer Priorität von der niedrigsten bis zur höchsten Nummerierung ausgewertet. Richtlinien werden nur für das verwendete Protokoll und die Richtung ausgewertet, von der die Nachricht empfangen wurde.

Klassische Richtlinienbindungen, die eine manuelle Neupriorisierung erfordern

Hier sind einige Arten von Classic-Richtlinienbindungen, die eine manuelle Neupriorisierung erfordern, um Ihre Anforderungen zu erfüllen. All dies ist für ein bestimmtes Merkmal und die Richtung.

  • Klassische Prioritäten, die die Prioritätszahl gegenüber der Richtung der oben genannten Entitätstyplisten erhöhen. Zum Beispiel ist eine Bindung eines virtuellen Content Switching-Servers niedriger als eine Bindung eines virtuellen Lastausgleichsservers.
  • Klassische Prioritäten, die Authentifizierungs-, Autorisierungs- und Überwachungsgruppen verschachten. Ein Teil einer Gruppe steht vor einer anderen Gruppe und ein weiterer Teil ist hinter einem Teil dieser anderen Gruppe her.
  • Klassische Prioritäten, deren Anzahl außer der Reihenfolge der Gewichtungen von Authentifizierungs-, Autorisierungs- und Überwachungsgruppen zunimmt.
  • Klassische globale Prioritäten, die weniger als einige nicht-globale Priorität und dieselben globalen Prioritäten sind größer als einige andere nicht-globale Priorität (d. h. jedes Segment von Prioritäten, das eine nicht-globale Priorität ist, gefolgt von einem oder mehreren Globals, gefolgt von einem nicht-globalen).