Comprendre les expressions de stratégie
Les expressions de stratégie offrent au logiciel Policy Framework une manière différente d’évaluer les stratégies de routage. Une expression de stratégie utilise des opérateurs logiques booléens avec des stratégies. Les opérateurs logiques établissent les règles d’évaluation des stratégies.
Lors de l’évaluation d’une stratégie de routage dans une expression de stratégie, l’action de stratégie d’acceptation, de rejet ou de stratégie suivante est convertie en valeur TRUE ou FALSE. Cette valeur est ensuite évaluée par rapport à l’opérateur logique spécifié pour produire une sortie TRUE ou FALSE. La sortie est ensuite reconvertie en une action de contrôle de flux d’acceptation, de rejet ou de stratégie suivante. Le résultat de l’expression de stratégie est appliqué comme il le serait à une seule stratégie ; L’itinéraire est accepté ou rejeté et l’évaluation se termine, ou la stratégie suivante est évaluée.
Tableau 1 récapitule les actions de stratégie et leurs valeurs TRUE et FAUX correspondantes, ainsi que les valeurs d’action de contrôle de flux. Tableau 2 décrit les opérateurs logiques. Pour plus d’informations sur l’évaluation des expressions de stratégie, reportez-vous à la section Évaluation de l’expression de stratégie.
Vous devez placer une expression de stratégie entre parenthèses. Vous pouvez placer une expression de stratégie n’importe où dans les import
instructions ou export
et dans l’instruction from policy
.
Mesures politiques |
Valeur de conversion |
Valeur de conversion de l’action de contrôle de flux |
---|---|---|
Accepter |
VRAI |
Accepter |
Rejeter |
FAUX |
Rejeter |
Politique suivante |
VRAI |
Politique suivante |
Opérateur logique |
Logique d’expression de stratégie |
Incidence de l’opérateur logique sur l’évaluation des expressions de stratégie |
---|---|---|
&& (ET logique) |
Logical AND exige que toutes les valeurs soient TRUE pour produire une sortie de TRUE. La valeur de stratégie de routage TRUE et TRUE produit la sortie TRUE. Les valeurs de TRUE et FALSE produisent la sortie de FALSE. Les valeurs de FALSE et FALSE produisent la sortie de FALSE. |
Si la première stratégie de routage renvoie la valeur TRUE, la stratégie suivante est évaluée. Si la première stratégie renvoie la valeur FALSE, l’évaluation de l’expression se termine et les stratégies suivantes ne sont pas évaluées. |
|| (OU logique) |
Le OU logique exige qu’au moins une valeur soit TRUE pour produire une sortie de TRUE. La valeur de stratégie de routage TRUE et FALSE produit la sortie TRUE. La valeur de TRUE et TRUE produit la sortie de TRUE. Les valeurs de FALSE et FALSE produisent la sortie de FALSE. |
Si la première stratégie de routage renvoie la valeur TRUE, l’évaluation de l’expression se termine et les stratégies suivantes ne sont pas évaluées. Si la première stratégie renvoie la valeur FALSE, la stratégie suivante est évaluée. |
! (Logique NON) |
Logical NOT inverse la valeur de TRUE en FALSE et de FALSE en TRUE. Il inverse également les actions d’acceptation et de politique suivante pour rejeter, et rejeter pour accepter. |
Si elle est utilisée avec l’opérateur logique AND et que la première valeur de la stratégie de routage FALSE est inversée en TRUE, la stratégie suivante est évaluée. Si la valeur de TRUE est inversée à FALSE, l’évaluation de l’expression se termine et les stratégies suivantes dans l’expression ne sont pas évaluées. S’il est utilisé avec l’opérateur logique OR et que la première valeur de stratégie de routage FALSE est inversée en TRUE, l’évaluation de l’expression se termine et les stratégies suivantes dans l’expression ne sont pas évaluées. Si la valeur de TRUE est inversée sur FALSE, la stratégie suivante est évaluée. S’il est utilisé avec une stratégie et que l’action de contrôle de flux est accepter ou stratégie suivante, ces actions sont inversées et rejetées. Si l’action de contrôle de flux est rejetée, cette action est annulée pour accepter. |
Pour plus d’informations, consultez les sections suivantes :
Exemples d’expressions de stratégie
Les exemples suivants montrent comment utiliser les opérateurs logiques pour créer des expressions de stratégie :
AND logique : dans l’exemple suivant,
policy1
est évalué en premier. Si afterpolicy1
est évalué, une valeur de TRUE est renvoyée,policy2
est évaluée. Si la valeur FALSE est renvoyée,policy2
elle n’est pas évaluée.export (policy1 && policy2)
OU logique : dans l’exemple suivant,
policy1
est évalué en premier. Si afterpolicy1
est évalué, une valeur de TRUE est renvoyée,policy2
n’est pas évaluée. Si une valeur FALSE est renvoyée,policy2
est évaluée.export (policy1 || policy2)
Logical OR et logical AND : dans l’exemple suivant,
policy1
est évalué en premier. Si afterpolicy1
est évalué, une valeur de TRUE est renvoyée,policy2
est ignorée etpolicy3
est évaluée. Si afterpolicy1
est évalué, une valeur FALSE est renvoyée,policy2
est évaluée. Sipolicy2
renvoie la valeur TRUE,policy3
est évalué. Sipolicy2
renvoie la valeur FALSE,policy3
elle n’est pas évaluée.export [(policy1 || policy2) && policy3]
Logical NOT (Logique) : dans l’exemple suivant,
policy1
est évalué en premier. Si afterpolicy1
est évalué, une valeur de TRUE est renvoyée, la valeur est inversée à FALSE etpolicy2
n’est pas évaluée. Si une valeur FALSE est renvoyée, la valeur est inversée à TRUE etpolicy2
est évaluée.export (!policy1 && policy2)
La liste [policy1 policy2 policy3]
séquentielle n’est pas la même que l’expression (policy1 && policy2 && policy3)
de stratégie .
La liste séquentielle est évaluée sur la base d’un itinéraire correspondant à une stratégie de routage. Par exemple, si policy1
correspond et que l’action est accept
ou reject
, policy2
et policy3
ne sont pas évalués. Si policy1
ne correspond pas, policy2
est évalué et ainsi de suite jusqu’à ce qu’une correspondance se produise et que l’action soit accept
ou reject
.
Les expressions de stratégie sont évaluées sur la base de l’action dans une stratégie de routage convertie avec la valeur TRUE ou FALSE et de la logique de l’opérateur logique spécifié. (Pour plus d’informations sur l’évaluation des expressions de stratégie, reportez-vous à la section Évaluation de l’expression de stratégie.) Par exemple, if policy1
renvoie la valeur FALSE policy2
et policy3
ne sont pas évalués. Si policy1
renvoie la valeur TRUE, policy2
est évalué. Si policy2
renvoie la valeur FALSE, policy3
elle n’est pas évaluée. Si policy2
renvoie la valeur TRUE, policy3
est évalué.
Vous pouvez également combiner des expressions de stratégie et des listes séquentielles. Dans l’exemple suivant, si policy1
renvoie la valeur FALSE, policy2
est évalué. Si policy2
renvoie la valeur TRUE et contient une next policy
action, policy3
est évalué. Si policy2
renvoie la valeur TRUE mais ne contient pas d’action, y compris une next policy
action, policy3
est toujours évaluée (car si vous ne spécifiez pas d’action, la prochaine période ou la prochaine stratégie sont les actions par défaut). Si policy2
renvoie la valeur TRUE et contient une accept
action, policy3
n’est pas évalué.
export [(policy1 || policy2) policy3]
Évaluation de l’expression de stratégie
Au cours de l’évaluation, le logiciel Policy Framework convertit les actions de stratégie en valeurs TRUE ou FALSE, qui sont des facteurs permettant de déterminer l’action de contrôle de flux effectuée sur une route. Toutefois, le logiciel n’effectue pas réellement d’action de contrôle de flux sur une route tant qu’il n’a pas évalué l’intégralité d’une expression de stratégie.
Le logiciel Policy Framework évalue une expression de stratégie comme suit :
Le logiciel évalue un itinéraire par rapport à la première stratégie de routage dans une expression de stratégie et convertit l’action spécifiée ou par défaut en une valeur TRUE ou FALSE. (Pour plus d’informations sur les valeurs de conversion des actions de stratégie, reportez-vous à la section Tableau 1.)
Le logiciel prend la valeur TRUE ou FALSE et l’évalue par rapport à l’opérateur logique utilisé dans l’expression de stratégie (reportez-vous à la section Tableau 2). En fonction de l’opérateur logique utilisé, le logiciel détermine s’il faut ou non évaluer la stratégie suivante, le cas échéant.
Le logiciel de cadre stratégique utilise une méthode d’évaluation par raccourci : Si le résultat de l’évaluation d’une stratégie prédétermine la valeur de l’expression de stratégie entière, le logiciel n’évalue pas les stratégies suivantes dans l’expression. Par exemple, si l’expression de stratégie utilise l’opérateur logique AND et que l’évaluation d’une stratégie renvoie la valeur FALSE, le logiciel n’évalue pas les stratégies suivantes dans l’expression, car la valeur finale de l’expression est garantie FALSE, quelles que soient les valeurs des stratégies non évaluées.
Le logiciel effectue les étapes 1 et 2 pour chaque stratégie de routage suivante dans l’expression de stratégie, si elles sont présentes et qu’il est nécessaire de les évaluer.
Après avoir évalué la dernière stratégie de routage, le cas échéant, le logiciel évalue la valeur TRUE ou FAUX obtenue à partir de chaque évaluation de stratégie de routage. En fonction de l’opérateur logique utilisé, il calcule une sortie TRUE ou FALSE.
Le logiciel reconvertit la sortie de TRUE ou FALSE en une action. (Pour plus d’informations sur les valeurs de conversion des actions de stratégie, reportez-vous à la section Tableau 1.) L’action est exécutée.
Si chaque stratégie de l’expression renvoie la valeur TRUE, le logiciel reconvertit la sortie de TRUE en l’action de contrôle de flux spécifiée dans la dernière stratégie. Par exemple, si l’expression
(policy1 && policy2)
de stratégie est spécifiée etpolicy1
spécifieaccept
etpolicy2
spécifienext term
, l’actionnext term
est exécutée.Si une action spécifiée dans l’une des stratégies manipule une caractéristique d’itinéraire, le logiciel d’infrastructure de stratégie transfère la nouvelle caractéristique d’itinéraire lors de l’évaluation des stratégies restantes. Par exemple, si l’action spécifiée dans la première stratégie d’une expression de stratégie définit la métrique d’un itinéraire sur 500, cet itinéraire correspond aux critères de
metric 500
défini dans la stratégie suivante. Toutefois, si une action de manipulation de caractéristique de route est spécifiée dans une stratégie située au milieu ou à la fin d’une expression de stratégie, il est possible, en raison de l’évaluation du raccourci, que la stratégie ne soit jamais évaluée et que la manipulation de la caractéristique de route ne se produise jamais.
Évaluation des expressions de stratégie
L’exemple de stratégie de routage suivant utilise trois expressions de stratégie :
[edit] policy-options { policy-statement policy-A { from { route-filter 10.10.0.0/16 orlonger; } then reject; } } policy-options { policy-statement policy-B { from { route-filter 10.20.0.0/16 orlonger; } then accept; } } protocols { bgp { neighbor 192.168.1.1 { export (policy-A && policy-B); } neighbor 192.168.2.1 { export (policy-A || policy-B); } neighbor 192.168.3.1 { export (!policy-A); } } }
Le logiciel d’infrastructure de stratégies évalue la route BGP de transit 10.10.1.0/24 par rapport aux trois expressions de stratégie spécifiées dans l’exemple de stratégie de routage, comme suit :
(policy-A && policy-B) : 10.10.1.0/24 est évalué par rapport à
policy-A
. 10.10.1.0/24 correspond à la liste de routes spécifiée danspolicy-A
, de sorte que l’action spécifiée dereject
est renvoyée.reject
est convertie en une valeur de FALSE, et FALSE est évalué par rapport au AND logique spécifié. Parce que le résultat de FALSE est certain, quels que soient les résultats de l’évaluation de (dans la logique d’expression depolicy-B
stratégie, tout résultat ET une valeur de FALSE produit la sortie de FALSE),policy-B
n’est pas évalué et la sortie de FALSE est produite. La sortie FAUX est convertie enreject
, et 10.10.1.0/24 est rejeté.(policy-A || policy-B) : 10.10.1.0/24 est évalué par rapport à
policy-A
. 10.10.1.0/24 correspond à la liste de routes spécifiée danspolicy-A
, de sorte que l’action spécifiée dereject
est renvoyée.reject
est convertie en une valeur de FALSE, alors FALSE est évalué par rapport au OU logique spécifié. Étant donné que le OU logique nécessite au moins une valeur de TRUE pour produire une sortie de TRUE, 10.10.1.0/24 est évalué par rapport àpolicy-B
. 10.10.1.0/24 ne correspondpolicy-B
pas à , de sorte que l’action par défaut denext-policy
est renvoyée. Lenext-policy
est converti en une valeur de VRAI, puis les valeurs de FALSE (pourpolicy-A
l’évaluation) et TRUE (pourpolicy-B
l’évaluation) sont évaluées par rapport au OU logique spécifié. Dans la logique d’expression de stratégie, FALSE OU TRUE produit une sortie de TRUE. La sortie de TRUE est convertie ennext-policy
. (TRUE est converti ennext-policy
car c’estnext-policy
la dernière action retenue par le logiciel Policy Framework.)policy-B
est la dernière stratégie de routage de l’expression de stratégie, de sorte que l’action spécifiée par la stratégie d’exportation par défaut pour BGP est effectuée.( !policy-A) : 10.10.1.0/24 est évalué par rapport à
policy-A
. 10.10.1.0/24 correspond à la liste de routes spécifiée danspolicy-A
, de sorte que l’action spécifiée dereject
est renvoyée.reject
est convertie en une valeur de FALSE, et FALSE est évalué par rapport au NOT logique spécifié. La valeur de FALSE est inversée en une sortie de TRUE basée sur les règles de NOT logique. La sortie de TRUE est convertie enaccept
, et route 10.10.1.0/24 est acceptée.