Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Descripción de las expresiones de política

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

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 al valor de TRUE o FALSE. A continuación, este valor se evalúa con el operador lógico especificado para producir resultados de TRUE o FALSE. A continuación, el resultado se convierte de nuevo en una acción de control de flujo de aceptar, rechazar o directiva siguiente. El resultado de la expresión de política se aplica como se aplicaría a una sola política; La ruta es aceptada o rechazada y la evaluación termina, o se evalúa la siguiente política.

Tabla 1 resume las acciones de política y sus valores correspondientes TRUE y FALSE y 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 expresiones de política, consulte .Evaluación de expresiones de políticas

Debe incluir una expresión de directiva entre paréntesis. Puede colocar una expresión de política en cualquier parte de las instrucciones o y de la instrucción.importexportfrom policy

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

Acción política

Valor de conversión

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

Aceptar

VERDAD

Aceptar

Rechazar

FALSO

Rechazar

Siguiente política

VERDAD

Siguiente 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 expresiones de política

&& (Lógica Y)

Lógico Y requiere que todos los valores sean TRUE 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 directiva de enrutamiento devuelve el valor de TRUE, se evalúa la siguiente directiva. Si la primera política devuelve el valor de FALSE, la evaluación de la expresión finaliza y las directivas posteriores de la expresión no se evalúan.

|| (Lógica O)

La lógica OR 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 genera 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 directiva de enrutamiento devuelve el valor de TRUE, la evaluación de la expresión finaliza y las directivas posteriores de la expresión no se evalúan. Si la primera directiva devuelve el valor de FALSE, se evalúa la siguiente directiva.

! (NOT lógico)

Lógico NO invierte el valor de VERDADERO a FALSO y de FALSO a VERDADERO. También invierte las acciones de aceptar y la siguiente política de rechazar y rechazar de aceptar.

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

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

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

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

Ejemplos de expresiones de política

En los ejemplos siguientes se muestra cómo utilizar los operadores lógicos para crear expresiones de directiva:

  • Lógica Y: en el ejemplo siguiente, se evalúa primero.policy1 Si se evalúa after , se devuelve un valor de TRUE, se evalúa.policy1policy2 Si se devuelve un valor de FALSE, no se evalúa.policy2

  • Lógica O: en el ejemplo siguiente, se evalúa primero.policy1 Si se evalúa after, no se evalúa un valor de TRUE. policy1policy2 Si se devuelve un valor de FALSE, se evalúa.policy2

  • Lógica O y lógica Y: en el ejemplo siguiente, se evalúa primero.policy1 Si se evalúa after , se devuelve un valor de TRUE, se omite y se evalúa.policy1policy2policy3 Si se evalúa after, se devuelve un valor de FALSE. policy1policy2 Si devuelve un valor de TRUE, se evalúa.policy2policy3 Si devuelve un valor de FALSE, no se evalúa.policy2policy3

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

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

La lista secuencial se evalúa sobre la base de una ruta que coincide con una política de enrutamiento. Por ejemplo, si las coincidencias y la acción son o , y no se evalúan.policy1acceptrejectpolicy2policy3 Si no coincide, se evalúa y así sucesivamente hasta que se produce una coincidencia y la acción es o .policy1policy2acceptreject

Las expresiones de política se evalúan en función de la acción de una política de enrutamiento que se convierte al valor de TRUE o FALSE y la lógica del operador lógico especificado. (Para obtener información completa acerca de la evaluación de expresiones de política, consulte .) Por ejemplo, si devuelve un valor de FALSE y no se evalúan.Evaluación de expresiones de políticaspolicy1policy2policy3 Si devuelve un valor de TRUE, se evalúa.policy1policy2 Si devuelve un valor de FALSE, no se evalúa.policy2policy3 Si devuelve un valor de TRUE, se evalúa.policy2policy3

También puede combinar expresiones de política y listas secuenciales. En el ejemplo siguiente, si devuelve un valor de FALSE, se evalúa.policy1policy2 Si devuelve un valor de TRUE y contiene una acción, se evalúa.policy2next policypolicy3 Si devuelve un valor de TRUE pero no contiene una acción, incluida una acción, se sigue evaluando (ya que si no especifica una acción, las acciones predeterminadas son el siguiente término o la siguiente directiva).policy2next policypolicy3 Si devuelve un valor de TRUE y contiene una acción, no se evalúa.policy2acceptpolicy3

Evaluación de expresiones de políticas

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 del marco de políticas evalúa una expresión de política de la siguiente manera:

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

  2. El software toma el valor de TRUE o FALSE y lo evalúa en función del 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 debe evaluar o no la siguiente política, si hay una presente.

    El software del marco de políticas utiliza un método abreviado de evaluación: Si el resultado de la evaluación de una política predetermina el valor de toda la expresión de política, el software no evalúa las directivas posteriores de la expresión. Por ejemplo, si la expresión de política utiliza el operador lógico AND y la evaluación de una política devuelve el valor de FALSE, el software no evalúa las directivas posteriores en la expresión porque se garantiza que el valor final de la expresión será 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 evaluarlas.

  4. Después de evaluar la última política de enrutamiento, si es apropiado, el software evalúa el valor de VERDADERO o FALSO obtenido de cada evaluación de política de enrutamiento. Basándose en el operador lógico utilizado, calcula una salida de TRUE o FALSE.

  5. El software convierte la salida de TRUE o FALSE en una acción. (Para obtener información acerca de los valores de conversión de acciones de directiva, consulte .) La acción se realiza.Tabla 1

    Si cada política de la expresión devuelve un valor de TRUE, el software convierte el resultado de TRUE en la acción de control de flujo especificada en la última directiva. Por ejemplo, si se especifica la expresión de directiva y especifica y especifica , se realiza la acción.(policy1 && policy2)policy1acceptpolicy2next termnext term

    Si una acción especificada en una de las políticas manipula una característica de ruta, el software del 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 definidos en la siguiente política.metric 500 Sin embargo, si se especifica una acción de manipulación de característica de ruta en una política situada en el medio o al final de una expresión de política, es posible, debido a la evaluación de accesos directos, que la directiva nunca se evalúe y que nunca se produzca la manipulación de la característica de ruta.

Evaluación de expresiones de política

La siguiente directiva de enrutamiento de ejemplo utiliza tres expresiones de directiva:

El software del marco de políticas evalúa la ruta BGP de tránsito 10.10.1.0/24 con respecto a 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 con respecto a . 10.10.1.0/24 coincide con la lista de rutas especificada en , por lo que se devuelve la acción especificada de. se convierte en un valor de FALSE y FALSE se evalúa con el AND lógico especificado.policy-Apolicy-Arejectreject Debido a que el resultado de FALSE es cierto sin importar cuáles sean los resultados de la evaluación de (en la lógica de expresión de política, cualquier resultado Y un valor de FALSE produce el resultado de FALSE), no se evalúa y se produce el resultado de FALSE.policy-Bpolicy-B El resultado FALSE se convierte en , y se rechaza 10.10.1.0/24.reject

  • (política-A || política-B): 10.10.1.0/24 se evalúa con respecto a . 10.10.1.0/24 coincide con la lista de rutas especificada en , por lo que se devuelve la acción especificada de. se convierte en un valor de FALSE y, a continuación, FALSE se evalúa con respecto al OR lógico especificado. policy-Apolicy-Arejectreject Dado que OR lógico requiere al menos un valor de TRUE para producir un resultado de TRUE, 10.10.1.0/24 se evalúa con . 10.10.1.0/24 no coincide con , por lo que se devuelve la acción predeterminada de.policy-Bpolicy-Bnext-policy El se convierte en un valor de TRUE, luego el valor de FALSE (para evaluación) y TRUE (para evaluación) se evalúan con respecto al OR lógico especificado.next-policypolicy-Apolicy-B En lógica de expresión de políticas, FALSE O TRUE producen un resultado de TRUE. El resultado de TRUE se convierte en .next-policy (TRUE se convierte en porque fue la última acción retenida por el software del marco de políticas.) es la última política de enrutamiento de la expresión de política, por lo que se lleva a cabo la acción especificada por la directiva de exportación predeterminada para BGP.next-policynext-policypolicy-B

  • (!policy-A): 10.10.1.0/24 se evalúa con respecto a . 10.10.1.0/24 coincide con la lista de rutas especificada en , por lo que se devuelve la acción especificada de. se convierte en un valor de FALSE y FALSE se evalúa con el NOT lógico especificado. policy-Apolicy-Arejectreject El valor de FALSE se invierte en una salida de TRUE basada en las reglas de NOT lógico. El resultado de TRUE se convierte a , y se acepta la ruta 10.10.1.0/24.accept