Política de exportação do Junos: o nome não é a condição de correspondência
Uma política chamada EXPORT-STATIC não seleciona nada pelo nome. Leia a ligação, os termos ordenados e as ações, depois compare a vista anunciada.
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.