Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Entendendo expressões de políticas

As expressões de política oferecem ao software de estrutura de política uma maneira diferente de avaliar as políticas de roteamento. Uma expressão de política usa os operadores lógicos Boolean com políticas. Os operadores lógicos estabelecem regras pelas quais as políticas são avaliadas.

Durante a avaliação de uma política de roteamento em uma expressão de política, a ação política de aceitação, rejeição ou próxima política é convertida ao valor de TRUE ou FALSE. Esse valor é então avaliado em relação ao operador lógico especificado para produzir saída de TRUE ou FALSE. A saída é então convertida de volta a uma ação de controle de fluxo de aceitação, rejeição ou próxima política. O resultado da expressão da política é aplicado conforme seria aplicado a uma política única; a rota é aceita ou recusada e a avaliação termina, ou a próxima política é avaliada.

Tabela 1 resume as ações de políticas e seus valores verdadeiros e FALSOS correspondentes e valores de ação de controle de fluxo. Tabela 2 descreve os operadores lógicos. Para obter informações completas sobre a avaliação da expressão da política, consulte Avaliação da expressão da política.

Você deve incluir uma expressão política em parênteses. Você pode colocar uma expressão de política em qualquer lugar nas import declarações ou export declarações e na from policy declaração.

Tabela 1: Valores de conversão de ação de políticas

Ação de política

Valor de conversão

Valor de conversão de ação de controle de fluxo

Aceitar

VERDADEIRO

Aceitar

Rejeitar

FALSO

Rejeitar

Próxima política

VERDADEIRO

Próxima política

Tabela 2: Operadores lógicos de expressão de políticas

Operador lógico

Lógica de expressão de política

Como o operador lógico afeta a avaliação da expressão da política

&& (Lógica E)

A Logical AND exige que todos os valores devem ser VERDADEIROs para produzir a saída da TRUE.

O valor da política de roteamento de TRUE e TRUE produz a saída do TRUE. O valor de TRUE e FALSE produz saída de FALSE. O valor de FALSO e FALSO produz saída de FALSE.

Se a primeira política de roteamento devolver o valor do TRUE, a próxima política será avaliada. Se a primeira política devolver o valor do FALSE, a avaliação da expressão termina e as políticas subsequentes na expressão não serão avaliadas.

|| (Lógico OU)

O OR lógico exige que pelo menos um valor seja verdadeiro para produzir a saída de TRUE.

O valor da política de roteamento de TRUE e FALSE produz saída de TRUE. O valor de TRUE e TRUE produz saída de TRUE. O valor de FALSO e FALSO produz saída de FALSE.

Se a primeira política de roteamento devolver o valor do TRUE, a avaliação da expressão termina e as políticas subsequentes na expressão não serão avaliadas. Se a primeira política devolver o valor do FALSE, a próxima política será avaliada.

! (Lógico NÃO)

A Lógica NÃO inverte o valor do TRUE para FALSO e do FALSO para VERDADEIRO. Também inverte as ações de aceitar e próxima política para rejeitar, e rejeitar aceitar.

Se usado com o operador e o operador lógico e o primeiro valor de política de roteamento do FALSE forem revertidos para TRUE, a próxima política é avaliada. Se o valor do TRUE for revertido para FALSO, a avaliação da expressão termina e as políticas subsequentes na expressão não serão avaliadas.

Se usado com o operador de OR lógico e o primeiro valor de política de roteamento do FALSE for revertido para TRUE, a avaliação da expressão termina e as políticas subseqüentes na expressão não são avaliadas. Se o valor do TRUE for revertido para FALSO, a próxima política será avaliada.

Se usadas com uma política e a ação de controle de fluxo for aceita ou política seguinte, essas ações serão revertidas para rejeitar. Se a ação de controle de fluxo for rejeitada, esta ação é revertida para aceitar.

Para obter mais informações, veja as seguintes seções:

Exemplos de expressão de políticas

Os exemplos a seguir mostram como usar os operadores lógicos para criar expressões de política:

  • Lógico E — No exemplo a seguir, policy1 é avaliado primeiro. Se depois policy1 for avaliado, um valor do TRUE é devolvido, policy2 é avaliado. Se um valor de FALSO for devolvido, policy2 não será avaliado.

  • OR lógico — No exemplo a seguir, policy1 é avaliado primeiro. Se depois policy1 for avaliado, um valor do TRUE é devolvido, policy2 não será avaliado. Se um valor de FALSO for devolvido, policy2 é avaliado.

  • OR lógico e lógico E — No exemplo a seguir, policy1 é avaliado primeiro. Se depois policy1 for avaliado, um valor do TRUE é devolvido, policy2 é indispensado e policy3 avaliado. Se depois policy1 for avaliado, um valor do FALSE é devolvido, policy2 é avaliado. Se policy2 devolver um valor de TRUE, policy3 é avaliado. Se policy2 devolver um valor de FALSE, policy3 não será avaliado.

  • Lógico NÃO — No exemplo a seguir, policy1 é avaliado primeiro. Se depois policy1 for avaliado, um valor do TRUE é devolvido, o valor é revertido para FALSO e policy2 não é avaliado. Se um valor do FALSE for devolvido, o valor é revertido para TRUE e policy2 é avaliado.

A lista [policy1 policy2 policy3] sequencial não é a mesma da expressão (policy1 && policy2 && policy3)da política.

A lista sequencial é avaliada com base em uma rota que corresponde a uma política de roteamento. Por exemplo, se policy1 as correspondências e a ação forem accept ourejectpolicy2, e policy3 não forem avaliadas. Se policy1 não corresponder, policy2 é avaliado e assim por diante até que ocorra uma partida e a ação seja accept ou reject.

As expressões da política são avaliadas com base na ação em uma política de roteamento que é convertida ao valor de TRUE ou FALSE e à lógica do operador lógico especificado. (Para obter informações completas sobre a avaliação da expressão da política, veja Avaliação da expressão da política.) Por exemplo, se policy1 devolver um valor de FALSE e policy2policy3 não for avaliado. Se policy1 devolver um valor de TRUE, policy2 é avaliado. Se policy2 devolver um valor de FALSE, policy3 não será avaliado. Se policy2 devolver um valor de TRUE, policy3 é avaliado.

Você também pode combinar expressões de políticas e listas sequenciais. No exemplo a seguir, se policy1 devolver um valor de FALSE, policy2 é avaliado. Se policy2 devolver um valor de TRUE e conter uma next policy ação, policy3 será avaliado. Se policy2 devolver um valor de TRUE, mas não conter uma ação, incluindo uma next policy ação, policy3 ainda será avaliado (porque se você não especificar uma ação, o próximo prazo ou a próxima política são as ações padrão). Se policy2 devolver um valor de TRUE e conter uma accept ação, policy3 não será avaliado.

Avaliação da expressão da política

Durante a avaliação, o software da estrutura de políticas converte ações de políticas em valores de TRUE ou FALSE, que são fatores para determinar a ação de controle de fluxo que é realizada em uma rota. No entanto, o software não realiza realmente uma ação de controle de fluxo em uma rota até que ele avalie toda uma expressão de política.

O software de estrutura de políticas avalia uma expressão de política da seguinte forma:

  1. O software avalia uma rota contra a primeira política de roteamento em uma expressão de política e converte a ação especificada ou padrão em um valor de TRUE ou FALSE. (Para obter informações sobre os valores de conversão de ação de políticas, veja Tabela 1.)

  2. O software leva o valor de TRUE ou FALSE e o avalia em relação ao operador lógico usado na expressão da política (ver Tabela 2). Com base no operador lógico usado, o software determina se deve ou não avaliar a próxima política, se uma está presente.

    O software de estrutura de políticas usa um método de avaliação de atalho: se o resultado da avaliação de uma política predeterminar o valor de toda a expressão da política, o software não avaliará as políticas subsequentes na expressão. Por exemplo, se a expressão da política usar o operador lógico e a avaliação de uma política devolver o valor do FALSE, o software não avalia políticas subseqüentes na expressão porque o valor final da expressão é garantido como FALSO, independentemente dos valores das políticas não avaliadas.

  3. O software executa a Etapa 1 e a Etapa 2 para cada política de roteamento subseqüente na expressão da política, se estiverem presentes e for necessário avaliá-las.

  4. Após avaliar a última política de roteamento, se for apropriado, o software avalia o valor de TRUE ou FALSE obtido em cada avaliação de política de roteamento. Com base no operador lógico usado, ele calcula uma saída de TRUE ou FALSE.

  5. O software converte a saída de TRUE ou FALSE de volta para uma ação. (Para obter informações sobre os valores de conversão de ação de políticas, veja Tabela 1.) A ação é realizada.

    Se cada política na expressão devolver um valor de TRUE, o software converte a saída de TRUE de volta à ação de controle de fluxo especificada na última política. Por exemplo, se a expressão (policy1 && policy2) da política for especificada, policy1 especificar accept e policy2 especificar next term, a ação next term será realizada.

    Se uma ação especificada em uma das políticas manipular uma característica de rota, o software de estrutura de políticas leva a nova rota característica adiante durante a avaliação das políticas restantes. Por exemplo, se a ação especificada na primeira política de uma expressão de política definir a métrica de uma rota para 500, essa rota corresponde aos critérios definidos metric 500 na próxima política. No entanto, se uma ação de manipulação característica de rota for especificada em uma política localizada no meio ou no final de uma expressão de política, é possível, por causa da avaliação de atalho, que a política nunca seja avaliada e a manipulação da característica da rota nunca ocorra.

Avaliação das expressões da política

A política de roteamento de amostra a seguir usa três expressões de política:

O software de estrutura de políticas avalia a rota BGP de trânsito 10.10.1.0/24 em relação às três expressões de política especificadas na política de roteamento de amostra da seguinte forma:

  • (política A e política-B)— 10.10.1.1.0/24 é avaliado em comparação com policy-A. 10.10.1.1.0/24 corresponde à lista de rotas especificada policy-A, de reject modo que a ação especificada é devolvida reject para um valor de FALSO, e o FALSE é avaliado em relação ao lógico E especificado. Como o resultado do FALSE é certo, não importa quais são os resultados da avaliação (na lógica de expressão de policy-B política, qualquer resultado e um valor de FALSE produz a saída de FALSE), policy-B não é avaliado e a saída do FALSE é produzida. A saída FALSE é convertida em reject, e 10,10,1,0/24 é recusada.

  • (política-A || policy-B)— 10.10.1.0/24 é avaliado em comparação com policy-A. 10.10.1.1.0/24 corresponde à lista de rotas especificada, de reject modo que a ação especificada é devolvida reject para um valor de FALSO, em seguida, o FALSE é avaliado em policy-Arelação ao OR lógico especificado. Como o OR lógico requer pelo menos um valor de TRUE para produzir uma saída true, 10.10.1.0/24 é avaliado em comparação policy-Bcom . 10.10.10.1.0/24 não corresponde policy-B, de modo que a ação padrão é next-policy devolvida. A next-policy conversão para um valor de TRUE, em seguida, o valor de FALSO (para policy-A avaliação) e TRUE (para policy-B avaliação) são avaliados em relação ao OR lógico especificado. Na lógica de expressão de políticas, FALSOS OU VERDADEIROs produzem uma saída de TRUE. A saída do TRUE é convertida em next-policy. (TRUE é convertido porque next-policynext-policy foi a última ação retida pelo software de estrutura de políticas.) policy-B é a última política de roteamento na expressão da política, de modo que a ação especificada pela política de exportação padrão para BGP é tomada.

  • (!policy-A)— 10.10.1.1.0/24 é avaliado em comparação com policy-A. 10.10.1.0/24 corresponde à lista de rotas especificada, de reject modo que a ação especificada é devolvida reject para um valor de FALSO, e o FALSE é avaliado em policy-Arelação à LÓGICA NÃO especificada. O valor do FALSE é revertido para uma saída de TRUE com base nas regras do lógico NÃO. A saída do TRUE é convertida em accept, e a rota 10.10.1.0/24 é aceita.