Extensions de stratégie

La fonctionnalité d’extension de stratégie vous permet d’écrire des fonctions d’extension pour des types de politiques intégrés. Les extensions peuvent être utilisées dans des expressions de politique, tout comme les fonctions intégrées. Elles sont exécutées lorsque les expressions de politique correspondantes sont évaluées. Cette fonctionnalité est utile pour :

  • Ajouter des fonctions personnalisées aux politiques existantes.
  • Mettre en œuvre des constructions logiques pour répondre aux exigences complexes des clients.

La fonctionnalité d’extension des politiques permet de remédier à ces limitations en permettant aux utilisateurs d’écrire des fonctions d’extension pour les types de politiques intégrés. Les extensions peuvent ensuite être utilisées dans les expressions de politique, tout comme les fonctions intégrées. Elles sont exécutées lorsque les expressions de politique correspondantes sont évaluées.

Le tableau suivant répertorie les types de politiques qui peuvent être utilisés lors de l’écriture d’une extension, ainsi que leurs mappages associés.

Type de stratégie Type de politique mappé Résultat
TEXT_T NSTEXT Chaîne
BOOL_AT NSBOOL Booléen
NUM_AT NSNUM Nombre (virgule flottante à double précision)
DOUBLE_AT NSDOUBLE Nombre (virgule flottante à double précision)

Conditions préalables à l’utilisation des extensions de politique

Les fonctions importées doivent être conformes aux normes de politique existantes. Par conséquent :

  • Le nom de la fonction doit commencer par une lettre et peut contenir des chiffres ou des traits de soulignement.
  • Le nom de la fonction ne fait pas la distinction entre majuscules et minuscules selon les politiques de NetScaler.
  • La fonction doit renvoyer une seule valeur même si le langage d’extension renvoie plusieurs valeurs.
  • Les fonctions comportant un nombre variable d’arguments ne sont pas prises en charge.

Comment fonctionnent les extensions de politique ?

Les politiques existantes sur une appliance NetScaler utilisent un interpréteur pour évaluer les fonctions, qui sont importées dans un fichier d’extension de politique. Lorsqu’un utilisateur importe une nouvelle fonction dans un fichier d’extension de politique :

  1. La syntaxe et d’autres conditions du fichier d’extension sont validées.
  2. Si la validation échoue, l’erreur est signalée à l’utilisateur.
  3. Si la validation aboutit, le fichier d’extension est importé dans l’appliance NetScaler et son contenu peut être utilisé dans des expressions de politique, comme n’importe quelle fonction de stratégie intégrée
    1. Si l’évaluation de l’expression de politique renvoie une erreur pendant l’exécution, elle est signalée sous la forme d’un événement undef et le compteur d’erreurs associé est incrémenté.

      Remarque : Si un événement de sous-définition de stratégie se produit et que la règle de stratégie contient une ou plusieurs fonctions d’extension de stratégie, la show ns extension <name> commande affiche les résultats undef lorsqu’elle est appliquée à ces extensions de stratégie. Si la fonction d’extension est abandonnée, la valeur du compteur d’abandon est incrémentée.

    2. Si l’évaluation de l’expression de politique aboutit, l’évaluation de l’expression reprend jusqu’à ce que l’expression soit entièrement évaluée ou jusqu’à ce qu’elle soit abandonnée en raison d’une erreur.

Si l’exécution de la fonction d’extension prend trop de temps, elle est abandonnée et le compteur d’erreurs relatif à cette fonction d’extension est incrémenté. La fonction d’extension est sandboxée, ce qui empêche :

  • Utilisation excessive du processeur sur l’appliance NetScaler.
  • Utilisation excessive de la mémoire sur l’appliance NetScaler.
  • Utilisation de bibliothèques intégrées nuisibles ou de bibliothèques ou de fichiers binaires tiers.
  • Scripts de longue durée susceptibles de provoquer le redémarrage de l’appliance NetScaler.
Extensions de stratégie