Alguém chamou uma política de EXPORT-STATIC, ligou-a e agora pergunta-se por que um prefixo da instância de encaminhamento VPN nunca chega ao extremo remoto. O nome não tem qualquer efeito na seleção. Uma política é uma definição mais uma ligação, e o que exporta é decidido pelas suas condições de correspondência, pelos seus termos ordenados e pelo contexto que a utiliza. Leia esses três nessa ordem, e o mistério costuma reduzir-se a um termo que nunca correspondeu.

O nome é um rótulo, não uma condição

O Junos não interpreta os nomes das políticas. Uma política que sensatamente se chamaria exportação estática pode corresponder ao protocolo static, pode corresponder a um prefixo de endereço, ou pode não corresponder a nada e aceitar tudo o que passa. O rótulo é documentação escrita por quem a criou, e é exatamente tão fiável como a memória dessa pessoa sobre a intenção.

Trate um resultado de exportação surpreendente como um pedido para ler a definição, não como prova de que a ligação está quebrada. Leia a definição e deixe que ela contradiga o rótulo.

Encontre a ligação antes dos termos

Uma definição correta ligada no lugar errado altera outra troca. Determine qual instância de encaminhamento, protocolo e vizinho ou grupo fazem realmente referência à política, porque uma política ligada sob um grupo BGP não afeta outro, e uma política ligada à instância não se aplica necessariamente a todos os protocolos dentro dela. O Junos distingue estes níveis, e uma exportação em falta ao nível do grupo é comum quando a intenção foi expressa ao nível da instância.

Anote o caminho da ligação antes de ler um único termo. Metade destas investigações termina aí, com a definição intacta e a instrução de exportação movida. Registe a diferença no registo de alterações para que ninguém a reverta como um erro.

Os termos são avaliados por ordem, e a primeira decisão ganha

Os termos vão do primeiro ao último, e um termo que aceita ou rejeita é uma decisão terminante. Um termo posterior que parece a exceção prevista nunca é executado se um termo anterior já decidiu o destino da rota, e é por isso que uma política pode ler-se corretamente de cima para baixo e ainda assim comportar-se contra a intenção. Verifique a ordem em relação à rota que lhe interessa, não em relação à ordem em que os termos foram escritos.

Um termo que omite a sua ação não termina; a avaliação continua para o termo seguinte, e o resultado final depende do que se segue e do valor predefinido aplicável. É uma construção realmente útil e uma fonte fiável de surpresas quando não é intencional.

Um exemplo que exporta apenas rotas estáticas, com a ligação no grupo:

policy-options {
    policy-statement EXPORT-STATIC {
        term statics { from protocol static; then accept; }
    }
}
protocols bgp group TO-PEER { export EXPORT-STATIC; }

Um prefixo aprendido por OSPF em vez de configurado como rota estática falha a correspondência e cai, seja qual for o nome da política.

As ações alteram uma cópia, não a rota original

As ações da política operam sobre a rota tal como é avaliada para esse anúncio, ou seja, sobre uma cópia e não sobre a entrada da tabela de encaminhamento. Por isso, um comando local show route pode mostrar uma rota com um conjunto de atributos enquanto a versão exportada transporta outros, e a original não é reescrita pela exportação. Essa distinção explica várias discussões sobre qual saída está correta: ambas estão, e descrevem objetos diferentes. Diga qual vista está a citar sempre que dois engenheiros discordam sobre um atributo de rota.

Aceitar e rejeitar são decisões terminantes; as alterações de atributos não o são necessariamente. Não assuma que definir uma community termina a política, porque a avaliação pode continuar em termos que não considerou.

Compare a vista anunciada com a expectativa

Use a vista específica do protocolo no par real, como show route advertising-protocol bgp 192.0.2.1, e leia-a no contexto correto da instância de encaminhamento. Uma rota presente numa VRF não passou necessariamente a política de exportação, e uma rota que aparece na saída anunciada não foi necessariamente aceite pelo extremo remoto. São três estados separados e falham de formas diferentes.

Aceite o desenho com um prefixo que deve ser anunciado e outro que deve permanecer local. Isso dá à política um contrato que pode testar, e evita a correção alternativa de alargar a exportação até finalmente aparecer uma única rota com nome.

Artigos relacionados