Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Descripción de expresiones de política

Las expresiones de política le dan al software de marco de políticas una forma diferente de evaluar las políticas de enrutamiento. Una expresión de política usa operadores lógicos booleanos con políticas. Los operadores lógicos establecen reglas mediante las cuales se evalúan las políticas.

Durante la evaluación de una política de enrutamiento en una expresión de política, la acción de política de aceptar, rechazar o siguiente política se convierte en el valor de TRUE o FALSE. A continuación, este valor se evalúa en el operador lógico especificado para producir la salida de TRUE o FALSE. Luego, el resultado se convierte de nuevo en una acción de control de flujo de aceptar, rechazar o siguiente política. El resultado de la expresión de política se aplica como se aplicaría a una sola política; la ruta se acepta o rechaza y finaliza la evaluación, o se evalúa la siguiente política.

Tabla 1 resume las acciones de política y sus correspondientes valores TRUE y FALSE, y los valores de acción de control de flujo. Tabla 2 describe los operadores lógicos. Para obtener información completa acerca de la evaluación de expresión de política, consulte Evaluación de expresión de política.

Debe adjuntar una expresión de política entre paréntesis. Puede colocar una expresión de política en cualquier lugar de las import instrucciones o export y en la from policy instrucción.

Tabla 1: Valores de conversión de acción de política

Acción de política

Valor de conversión

Valor de conversión de acción de control de flujo

Aceptar

VERDAD

Aceptar

Rechazar

FALSO

Rechazar

Próxima política

VERDAD

Próxima política

Tabla 2: Operadores lógicos de expresión de política

Operador lógico

Lógica de expresión de política

Cómo afecta el operador lógico a la evaluación de expresión de política

&& (Lógica Y)

AND lógica requiere que todos los valores sean VERDADEROs para producir la salida de TRUE.

El valor de la política de enrutamiento de TRUE y TRUE produce la salida de TRUE. El valor de TRUE y FALSE produce la salida de FALSE. El valor de FALSE y FALSE produce la salida de FALSE.

Si la primera política de enrutamiento devuelve el valor de TRUE, se evalúa la siguiente política. Si la primera política devuelve el valor de FALSE, la evaluación de la expresión termina y las políticas posteriores en la expresión no se evalúan.

|| (Lógica O)

Or lógica requiere que al menos un valor sea TRUE para producir la salida de TRUE.

El valor de la política de enrutamiento de TRUE y FALSE produce la salida de TRUE. El valor de TRUE y TRUE produce la salida de TRUE. El valor de FALSE y FALSE produce la salida de FALSE.

Si la primera política de enrutamiento devuelve el valor de TRUE, la evaluación de la expresión termina y las políticas posteriores en la expresión no se evalúan. Si la primera política devuelve el valor de FALSE, se evalúa la siguiente política.

! (NOT lógico)

EL NOT lógico invierte el valor de TRUE a FALSE y de FALSE a TRUE. También revierte las acciones de aceptar y la política siguiente a rechazar, y rechazar para aceptar.

Si se usa con el operador AND lógico y el primer valor de política de enrutamiento de FALSE se invierte a TRUE, se evalúa la siguiente política. Si el valor de TRUE se invierte a FALSE, la evaluación de la expresión termina y las políticas posteriores en la expresión no se evalúan.

Si se usa con el operador O lógico y el primer valor de política de enrutamiento de FALSE se invierte a TRUE, la evaluación de la expresión termina y las políticas posteriores en la expresión no se evalúan. Si el valor de TRUE se invierte en FALSE, se evalúa la siguiente política.

Si se usa con una política y la acción de control de flujo es aceptar o la siguiente política, estas acciones se revertirán para rechazar. Si la acción de control de flujo se rechaza, esta acción se invierte para aceptar.

Para obtener más información, consulte las siguientes secciones:

Ejemplos de expresión de política

En los ejemplos siguientes se muestra cómo usar los operadores lógicos para crear expresiones de política:

  • AND lógica: en el ejemplo siguiente, policy1 se evalúa primero. Si después policy1 de evaluarse, se devuelve un valor de TRUE y policy2 se evalúa. Si se devuelve un valor de FALSE, policy2 no se evalúa.

  • OR lógica: en el ejemplo siguiente, policy1 se evalúa primero. Si después policy1 se evalúa, se devuelve un valor de TRUE, policy2 no se evalúa. Si se devuelve un valor de FALSE, policy2 se evalúa.

  • OR lógica y AND lógica: en el ejemplo siguiente, policy1 se evalúa primero. Si después policy1 se evalúa, se devuelve un valor de TRUE, policy2 se omite y policy3 se evalúa. Si después policy1 se evalúa, se devuelve un valor de FALSE y policy2 se evalúa. Si policy2 devuelve un valor de TRUE, policy3 se evalúa. Si policy2 devuelve un valor de FALSE, policy3 no se evalúa.

  • NOT lógico: en el ejemplo siguiente, policy1 se evalúa primero. Si después policy1 de evaluarse, se devuelve un valor de TRUE, el valor se invierte a FALSE y policy2 no se evalúa. Si se devuelve un valor de FALSE, el valor se invierte a TRUE y policy2 se evalúa.

La lista [policy1 policy2 policy3] secuencial no es lo mismo que la expresión (policy1 && policy2 && policy3)de política .

La lista secuencial se evalúa sobre la base de una ruta que coincide con una política de enrutamiento. Por ejemplo, si policy1 las coincidencias y la acción es accept o , rejectpolicy2 y policy3 no se evalúan. Si policy1 no coincide, se evalúa y policy2 así sucesivamente hasta que se produzca una coincidencia y la acción sea accept o reject.

Las expresiones de política se evalúan sobre la base de la acción en una política de enrutamiento que se convierte en el valor de TRUE o FALSE y en la lógica del operador lógico especificado. (Para obtener información completa acerca de la evaluación de expresión de política, consulte Evaluación de expresión de políticael .) Por ejemplo, si policy1 devuelve un valor de FALSE policy2 y policy3 no se evalúa. Si policy1 devuelve un valor de TRUE, policy2 se evalúa. Si policy2 devuelve un valor de FALSE, policy3 no se evalúa. Si policy2 devuelve un valor de TRUE, policy3 se evalúa.

También puede combinar expresiones de política y listas secuenciales. En el ejemplo siguiente, si policy1 devuelve un valor de FALSE, policy2 se evalúa. Si policy2 devuelve un valor de TRUE y contiene una next policy acción, policy3 se evalúa. Si policy2 devuelve un valor de TRUE, pero no contiene una acción, incluida una next policy acción, policy3 se sigue evaluando (porque si no se especifica una acción, el siguiente término o la política siguiente son las acciones predeterminadas). Si policy2 devuelve un valor de TRUE y contiene una accept acción, policy3 no se evalúa.

Evaluación de expresión de política

Durante la evaluación, el software del marco de políticas convierte las acciones de política en valores de TRUE o FALSE, que son factores para determinar la acción de control de flujo que se realiza en una ruta. Sin embargo, el software no realiza realmente una acción de control de flujo en una ruta hasta que evalúa una expresión de política completa.

El software de marco de políticas evalúa una expresión de política de la siguiente manera:

  1. El software evalúa una ruta en comparación con la primera política de enrutamiento de una expresión de política y convierte la acción especificada o predeterminada en un valor de TRUE o FALSE. (Para obtener más información acerca de los valores de conversión de acción de política, consulte Tabla 1.)

  2. El software toma el valor de TRUE o FALSE y lo evalúa en relación con el operador lógico utilizado en la expresión de política (consulte Tabla 2). Según el operador lógico utilizado, el software determina si se va a evaluar o no la próxima política, si está presente.

    El software de marco de políticas utiliza un método de evaluación de acceso directo: si el resultado de evaluar una política predetermina el valor de toda la expresión de política, el software no evalúa las políticas posteriores en la expresión. Por ejemplo, si la expresión de política usa el operador LÓGICO AND y la evaluación de una política devuelve el valor de FALSE, el software no evalúa las políticas posteriores en la expresión, ya que se garantiza que el valor final de la expresión sea FALSE, independientemente de los valores de las políticas no evaluadas.

  3. El software realiza los pasos 1 y 2 para cada política de enrutamiento posterior en la expresión de política, si están presentes y es necesario evaluarlos.

  4. Después de evaluar la última política de enrutamiento, si corresponde, el software evalúa el valor de TRUE o FALSE obtenido de cada evaluación de política de enrutamiento. Según el operador lógico utilizado, calcula una salida de TRUE o FALSE.

  5. El software convierte el resultado de TRUE o FALSE en una acción. (Para obtener más información acerca de los valores de conversión de acción de política, consulte Tabla 1.) La acción se realiza.

    Si cada política de la expresión devuelve un valor de TRUE, el software convierte la salida de TRUE de nuevo en la acción de control de flujo especificada en la última política. Por ejemplo, si la expresión (policy1 && policy2) de política se especifica y policy1 especifica accept , policy2next termse realiza la next term acción.

    Si una acción especificada en una de las políticas manipula una característica de ruta, el software de marco de políticas lleva la nueva característica de ruta hacia adelante durante la evaluación de las políticas restantes. Por ejemplo, si la acción especificada en la primera política de una expresión de política establece la métrica de una ruta en 500, esta ruta coincide con los criterios metric 500 definidos en la siguiente política. Sin embargo, si se especifica una acción de manipulación de características de ruta en una política ubicada en el medio o al final de una expresión de política, es posible, debido a la evaluación de acceso directo, que la política nunca se evalúe y que la manipulación de la característica de ruta nunca se produzca.

Evaluación de expresiones de políticas

La siguiente política de enrutamiento de ejemplo utiliza tres expresiones de política:

El software de marco de políticas evalúa la ruta de BGP de tránsito 10.10.1.0/24 en contra de las tres expresiones de política especificadas en la política de enrutamiento de ejemplo de la siguiente manera:

  • (policy-A && policy-B)—10.10.1.0/24 se evalúa en comparación con policy-A. 10.10.1.0/24 coincide con la lista de rutas especificada en , por lo que la acción especificada de reject se devuelve. reject se convierte a policy-Aun valor false, y FALSE se evalúa en la Y lógica especificada. Dado que el resultado de FALSE es cierto, independientemente de cuáles sean los resultados de la evaluación de (en la lógica de expresión de policy-B política, cualquier resultado Y un valor de FALSE produce la salida de FALSE), policy-B no se evalúa y la salida de FALSE se produce. El resultado FALSE se convierte a reject, y 10.10.1.0/24 se rechaza.

  • (policy-A || policy-B)—10.10.1.0/24 se evalúa en comparación con policy-A. 10.10.1.1.0/24 coincide con la lista de rutas especificada en , de modo que la acción especificada de reject se devuelve. reject se convierte a policy-Aun valor FALSE y, luego, FALSE se evalúa en el OR lógico especificado. Dado que or lógico requiere al menos un valor de TRUE para producir una salida de TRUE, 10.10.1.0/24 se evalúa con policy-B. 10.10.10.1.0/24 no coincide policy-B, por lo que la acción predeterminada de next-policy se devuelve. El next-policy valor se convierte a un valor de TRUE y, luego, el valor de FALSE (para policy-A la evaluación) y TRUE (para policy-B la evaluación) se evalúan en el O lógico especificado. En la lógica de expresión de política, FALSE O TRUE produce una salida de TRUE. El resultado de TRUE se convierte en next-policy. (TRUE se convierte en next-policy porque next-policy fue la última acción conservada por el software de marco de políticas.) policy-B es la última política de enrutamiento en la expresión de política, por lo que se realiza la acción especificada por la política de exportación predeterminada para el BGP.

  • (!policy-A)—10.10.1.0/24 se evalúa en comparación con policy-A. 10.10.1.0/24 coincide con la lista de rutas especificada en , de modo que la acción especificada de reject se devuelve. reject se convierte en policy-Aun valor de FALSE y FALSE se evalúa en el NO lógico especificado. El valor de FALSE se invierte en una salida de TRUE basada en las reglas de NOT lógicas. El resultado de TRUE se convierte a accept, y se acepta la ruta 10.10.1.0/24.