Konvertieren Sie Richtlinienausdrücke mit dem NSPEPI-Tool
Hinweis:
Sie können das NSPEPI- und Preconfig-Check-Tool vom öffentlichen GitHub herunterladen. Weitere Informationen finden Sie auf der GitHub NSPEPI-Seite und auf der README-Seite mit detaillierten Anweisungen zum Herunterladen, Installieren und Verwenden der Tools. Wir empfehlen Kunden, die in GitHub verfügbaren Tools für die vollständigste und aktuellste Version zu verwenden.
Klassische richtlinienbasierte Features und Funktionen sind ab NetScaler 12.0 Build 56.20 veraltet. Als Alternative empfiehlt NetScaler, die erweiterte Richtlinieninfrastruktur für die vom NSPEPI-Tool unterstützten Funktionen zu verwenden. Eine Liste der unterstützten Funktionen finden Sie unter Befehle oder Funktionen, die vom nspepi Konvertierungstool verarbeitet werden. Die Funktionen, die vom NSPEPI-Tool nicht unterstützt werden, unterstützen weiterhin klassische Richtlinien. Eine Liste der nicht unterstützten Funktionen finden Sie unter Nicht unterstützte Funktionen des NSPEPI-Tools.
Das nspepi
Tool kann die folgenden Aufgaben ausführen:
- Konvertieren Sie klassische Richtlinienausdrücke in erweiterte Richtlinienausdrücke.
- Konvertieren Sie bestimmte Classic-Richtlinien und deren Entitätsbindungen in erweiterte Richtlinien und Bindungen.
- Konvertieren Sie ein paar weitere veraltete Funktionen in ihre entsprechenden nicht veralteten Funktionen.
- Konvertieren Sie klassische Filterbefehle in erweiterte Filterbefehle.
Hinweis:
Nachdem das Tool
nspepi
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 Tools
nspepi
sind in einem PDF-Format verfügbar. Weitere Informationen finden Sie unter Klassische Richtlinienkonvertierung mit dem Nspepi Tool vor 12.1-51.16 PDF.
Konvertierungswarnungen und Fehlerdateien
Bevor Sie das Tool für Ihre Konvertierung verwenden, sollten Sie einige Warnungen beachten:
- Alle Warnungen und Fehler werden an die Konsole ausgegeben. Es wird eine Warndatei erstellt, in der die Konfigurationsdateien gespeichert werden.
- 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.
- add appfw policy
- add cmp policy
- add cr policy
- add cs policy
- SSL-Richtlinie hinzufügen
- add filter action
- add filter policy
- Filterrichtlinienbindung an Lastausgleich, Content Switching, Cache-Umleitung und global.
- Der in “add lb virtual server” 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).
- Umgang mit integrierten klassischen Policy-Bindings in CMP und CR.
- Patclass Feature wird in Pat Set Feature umgewandelt.
- Der Parameter “-pattern” im Befehl “add rewrite action” wird umgewandelt, um den Parameter “-search” zu verwenden.
- 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 klassischer Filterbefehle in erweiterte Filterbefehle
Das Tool nspepi
kann Befehle basierend auf klassischen Filteraktionen wie Hinzufügen, Binden usw. in erweiterte Filterbefehle konvertieren.
Das Tool nspepi
unterstützt jedoch nicht die folgenden Filterbefehle.
- add filter action
<action Name>
FORWARD<service name>
- add filter action
<action name>
ADD prebody - add filter action
<action name>
ADD postbody
Hinweis:
- Wenn es in ns.conf Rewrite- oder Responder-Features gibt und ihre Richtlinien global mit dem Ausdruck
GOTO
alsEND
oderUSER_INVOCATION_RESULT
gebunden sind und der Bindetyp istREQ_X
oderRES_X
dann konvertiert das Tool Bindungsfilterbefehle teilweise und kommentiert. Bei der manuellen Konvertierung wird ein Fehler angezeigt.- 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
oderUSER_INVOCATION_RESULT
gebunden sind , konvertiert das Tool Bindungsfilterbefehle teilweise und kommentiert dann Kommentare aus. Für die manuelle Konvertierung wird eine Warnung angezeigt.
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
<!--NeedCopy-->
Nach der Konvertierung werden bei manuellem Aufwand Warnungen oder Fehlermeldungen angezeigt.
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-->
Es folgt eine Beispielausgabe. Alle konvertierten Befehle werden kommentiert.
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-->
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:
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-->
Es folgt ein Beispiel für einen Ausgabebefehl:
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-->
Ausführen des nspepi-Tools
Das Folgende ist ein Befehlszeilenbeispiel zum Ausführen des Tools nspepi
. 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:
nspepi -e "req.tcp.destport == 80"
nspepi -f /nsconfig/ns.conf
Im Folgenden finden Sie einige Beispiele für das Ausführen des Tools nspepi
ü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 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-->
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-->
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:
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-->
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 Richtung ist die Reihenfolge der Bewertung der erweiterten Richtlinien wie folgt:
- 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.
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, 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).
NSPEPI
und check_invalid_config
können auf den Systemen CentOS
und Ubuntu
ausgeführt werden
Die Tools Die folgenden Module sind die Voraussetzungen für die Verwendung dieser Tools:
- Python
- Perl
- Python-Pip-Modul
- PLY-Modul für Python
- Switch.pm für Perl
Wenn Python 3 installiert ist, erstellen Sie beispielsweise einen Softlink "ln -s /usr/bin/python3 /usr/bin/python"
.
Führen Sie die folgenden Befehle aus, um das Python-Pip-Modul, das PLY-Modul für Python und Switch.pm für Perl in CentOS zu installieren:
sudo yum install -y perl-Switch
sudo yum install python-pip
sudo yum install python-ply
Führen Sie die folgenden Befehle aus, um das Python-Pip-Modul, das PLY-Modul für Python und Switch.pm für Perl in Ubuntu zu installieren:
sudo apt install libswitch-perl
sudo apt install python-ply
sudo apt install python-pip or sudo apt install python3-pip
In diesem Artikel
- Konvertierungswarnungen und Fehlerdateien
- Konvertiertes Dateiformat
- Befehle oder Funktionen, die vom nspepi-Konvertierungstool verarbeitet werden
- Konvertieren klassischer Filterbefehle in erweiterte Filterbefehle
- Konvertieren Sie klassische Filterbefehle in erweiterte Feature-Befehle, wenn vorhandene Rewrite- oder Responder-Richtlinienbindungen den goto Ausdruck END oder USE_INNVOCATION haben
- Ausführen des nspepi-Tools
- Verbindliche Prioritäten
- Klassische Richtlinienbindungen, die eine manuelle Neupriorisierung erfordern
- Die Tools NSPEPI und check_invalid_config können auf den Systemen CentOS und Ubuntu ausgeführt werden