Richtlinienerweiterungen

Mit der Funktion zur Richtlinienerweiterung können Sie Erweiterungsfunktionen für integrierte Richtlinientypen schreiben. Die Erweiterungen können in Richtlinienausdrücken verwendet werden, genau wie integrierte Funktionen. Sie werden ausgeführt, wenn die entsprechenden Richtlinienausdrücke ausgewertet werden. Diese Funktion ist nützlich für:

  • Hinzufügen benutzerdefinierter Funktionen zu bestehenden Richtlinien.
  • Implementierung logischer Konstrukte für komplexe Kundenanforderungen.

Die Funktion zur Richtlinienerweiterung behebt diese Einschränkungen, indem sie es Benutzern ermöglicht, Erweiterungsfunktionen für integrierte Richtlinientypen zu schreiben. Die Erweiterungen können dann in den Richtlinienausdrücken verwendet werden, genau wie integrierte Funktionen. Sie werden ausgeführt, wenn die entsprechenden Richtlinienausdrücke ausgewertet werden.

In der folgenden Tabelle sind die Richtlinientypen aufgeführt, die beim Schreiben einer Erweiterung verwendet werden können, sowie die zugehörigen Zuordnungen.

Richtlinientyp Zugeordneter Richtlinientyp Ausgabe
TEXT_T NSTEXT Zeichenfolge
BOOL_AT NSBOOL Boolescher Wert
NUM_AT NSNUM Zahl (Gleitkommazahl mit doppelter Genauigkeit)
DOUBLE_AT NSDOUBLE Zahl (Gleitkommazahl mit doppelter Genauigkeit)

Voraussetzungen für die Verwendung von Richtlinienerweiterungen

Die importierten Funktionen müssen den bestehenden Richtlinienstandards entsprechen. Deshalb:

  • Der Funktionsname muss mit einem Buchstaben beginnen und kann Zahlen oder Unterstriche enthalten.
  • Der Funktionsname wird in den NetScaler-Richtlinien so behandelt, dass Groß- und Kleinschreibung nicht berücksichtigt wird.
  • Die Funktion muss einen einzelnen Wert zurückgeben, auch wenn die Erweiterungssprache mehrere Werte zurückgibt.
  • Funktionen mit einer variablen Anzahl von Argumenten werden nicht unterstützt.

Wie funktionieren Policenerweiterungen?

Die vorhandenen Richtlinien auf einer NetScaler-Appliance verwenden einen Interpreter, um die Funktionen auszuwerten, die in eine Richtlinienerweiterungsdatei importiert werden. Wenn ein Benutzer eine neue Funktion in eine Richtlinienerweiterungsdatei importiert:

  1. Die Erweiterungsdatei wird auf Syntax und andere Bedingungen überprüft.
  2. Schlägt die Validierung fehl, wird der Fehler dem Benutzer gemeldet.
  3. Wenn die Überprüfung erfolgreich ist, wird die Erweiterungsdatei in die NetScaler-Appliance importiert und ihr Inhalt kann wie jede integrierte Richtlinienfunktion in Richtlinienausdrücken verwendet werden.
    1. Wenn die Auswertung des Richtlinienausdrucks während der Laufzeit einen Fehler zurückgibt, wird dieser als Undef-Ereignis gemeldet und der zugehörige Fehlerzähler wird erhöht.

      Hinweis: Wenn ein Policy-Undef-Ereignis eintritt und die Richtlinienregel eine oder mehrere Funktionen zur Richtlinienerweiterung enthält, zeigt der show ns extension <name> Befehl die untergeordneten Treffer an, wenn er auf diese Richtlinienerweiterungen angewendet wird. Wenn die Erweiterungsfunktion abgebrochen wird, wird der Wert des Abbruchzählers erhöht.

    2. Wenn die Bewertung des Richtlinienausdrucks erfolgreich ist, wird die Ausdrucksauswertung fortgesetzt, bis der gesamte Ausdruck ausgewertet ist oder bis sie aufgrund eines Fehlers abgebrochen wird.

Wenn die Ausführung der Erweiterungsfunktion zu lange dauert, wird sie abgebrochen und der Fehlerzähler für diese Erweiterungsfunktion wird erhöht. Die Erweiterungsfunktion ist in einer Sandbox ausgeführt, wodurch Folgendes verhindert wird:

  • Übermäßige CPU-Auslastung auf der NetScaler-Appliance.
  • Übermäßiger Speicherverbrauch auf der NetScaler-Appliance.
  • Verwendung schädlicher integrierter Bibliotheken oder Bibliotheken oder Binärdateien von Drittanbietern.
  • Langfristige Skripts, die möglicherweise einen Neustart der NetScaler Appliance verursachen könnten.
Richtlinienerweiterungen