Nesta página
Exemplo: Configuração de uma política de roteamento para anunciar a melhor rota externa para pares internos
A especificação do protocolo BGP, conforme definido na RFC 1771, especifica que um peer BGP deve anunciar a seus pares internos o caminho externo de maior preferência, mesmo que esse caminho não seja o melhor geral (em outras palavras, mesmo que o melhor caminho seja um caminho interno). Na prática, implementações BGP implantadas não seguem essa regra. Os motivos para desviar-se da especificação são os seguintes:
Minimizando a quantidade de informações anunciadas. O BGP é dimensionado de acordo com o número de caminhos disponíveis.
Evitando loops de roteamento e encaminhamento.
Existem, no entanto, vários cenários em que o comportamento, especificado na RFC 1771, de anunciar a melhor rota externa pode ser benéfico. Limitar as informações do caminho nem sempre é desejável, pois a diversidade de caminhos pode ajudar a reduzir os tempos de restauração. Publicidade O melhor caminho externo também pode resolver problemas internos de oscilação de rota BGP (IBGP), conforme descrito na RFC 3345, Condição de oscilação persistente de rota (BGP) do Border Gateway Protocol (BGP).
A declaração modifica o comportamento de um orador BGP para anunciar o melhor caminho externo para os pares do IBGP, mesmo quando o melhor caminho geral é um caminho interno.advertise-external
A declaração é apoiada tanto no nível do grupo quanto do vizinho.advertise-external
Se você configurar a declaração no nível vizinho, você deve configurá-la para todos os vizinhos de um grupo. Caso contrário, o grupo é automaticamente dividido em diferentes grupos.
A opção limita o comportamento da configuração, de forma que a rota externa seja anunciada apenas se o processo de seleção de rota chegar ao ponto em que a métrica discriminatória de saída múltipla (MED) é avaliada.conditional
advertise-external
Assim, uma rota externa não é anunciada se tiver, por exemplo, um caminho DE pior (mais longo) do que o do caminho ativo. A opção restringe o anúncio de caminho externo para quando o melhor caminho externo e o caminho ativo são iguais até a etapa MED do processo de seleção de rotas.conditional
Observe que os critérios usados para selecionar o melhor caminho externo são os mesmos se a opção estiver configurada ou não.conditional
O Junos OS também oferece suporte para a configuração de uma política de exportação BGP que corresponda ao estado de uma rota anunciada. Você pode combinar rotas ativas ou inativas da seguinte forma:
policy-options { policy-statement name{ from state (active|inactive); } }
Este qualificador só corresponde quando usado no contexto de uma política de exportação. Quando uma rota está sendo anunciada por um protocolo que pode anunciar rotas inativas (como BGP), corresponde a rotas anunciadas como resultado das declarações e declarações.state inactive
advertise-inactive
advertise-external
Por exemplo, a configuração a seguir pode ser usada como uma política de exportação BGP para pares internos para marcar rotas anunciadas devido à configuração com uma comunidade definida pelo usuário.advertise-external
Essa comunidade pode ser usada mais tarde pelos roteadores receptores para filtrar tais rotas a partir da tabela de encaminhamento. Esse mecanismo pode ser usado para resolver preocupações de que caminhos de publicidade não usados para o encaminhamento pelo remetente possam levar a loops de encaminhamento.
user@host# show policy-options policy-statement mark-inactive { term inactive { from state inactive; then { community set comm-inactive; } } term default { from protocol bgp; then accept; } then reject; } community comm-inactive members 65536:65284;
Requisitos
O Junos OS 9.3 ou posterior é necessário.
Visão geral
Este exemplo mostra três dispositivos de roteamento. O dispositivo R2 tem uma conexão BGP (EBGP) externa ao dispositivo R1. O dispositivo R2 tem uma conexão IBGP com o dispositivo R3.
O dispositivo R1 anuncia 172.16.6.0/24. O dispositivo R2 não define a preferência local em uma política de importação para as rotas do Dispositivo R1 e, portanto, 172.16.6.0/24 tem a preferência local padrão de 100.
O dispositivo R3 anuncia 172.16.6.0/24 com uma preferência local de 200.
Quando a declaração não está configurada no Dispositivo R2, 172.16.6.0/24 não é anunciado pelo Dispositivo R2 em direção ao Dispositivo R3.advertise-external
Quando a declaração é configurada no Dispositivo R2 na sessão em direção ao Dispositivo R3, 172.16.6.0/24 é anunciado pelo Dispositivo R2 em direção ao Dispositivo R3.advertise-external
Quando está configurado no dispositivo R2 na sessão em direção ao Dispositivo R3, 172.16.6.0/24 não é anunciado pelo dispositivo R2 em direção ao Dispositivo R3.advertise-external conditional
Se você remover a configuração no Dispositivo R3 e adicionar a configuração no Dispositivo R2 (tornando assim os critérios de seleção de caminho iguais até a etapa MED do processo de seleção de rota), 172.16.6.0/24 é anunciado pelo Dispositivo R2 em direção ao Dispositivo R3.then local-preference 200
path-selection as-path-ignore
Para configurar a declaração em um refletor de rota, você deve desabilitar a reflexão intracluster com a declaração, e o cluster do cliente deve estar totalmente em malha para evitar o envio de anúncios de rota redundantes.advertise-external
no-client-reflect
Quando um dispositivo de roteamento é configurado como um refletor de rota para um cluster, uma rota anunciada pelo refletor de rota é considerada interna se for recebida de um peer interno com o mesmo identificador de cluster ou se ambos os pares não tiverem nenhum identificador de cluster configurado. Uma rota recebida de um peer interno que pertence a outro cluster, ou seja, com um identificador de cluster diferente, é considerada externa.
Topologia
Figura 1 mostra a rede de amostra.
Configuração rápida da CLI mostra a configuração de todos os dispositivos em Figura 1.
A seção descreve as etapas do dispositivo R2.#configuration148__policy-advertise-external-st
Configuração
Configuração rápida da CLI
Para configurar este exemplo rapidamente, copie os seguintes comandos, cole-os em um arquivo de texto, remova qualquer quebra de linha, altere os detalhes necessários para combinar com a configuração da sua rede e, em seguida, copie e cole os comandos no CLI no nível de hierarquia.[edit]
Dispositivo R1
set interfaces fe-1/2/0 unit 0 description to-R2 set interfaces fe-1/2/0 unit 0 family inet address 10.0.0.1/30 set interfaces lo0 unit 0 family inet address 192.168.0.1/32 set protocols bgp group ext type external set protocols bgp group ext export send-static set protocols bgp group ext peer-as 200 set protocols bgp group ext neighbor 10.0.0.2 set policy-options policy-statement send-static term 1 from protocol static set policy-options policy-statement send-static term 1 from route-filter 172.16.6.0/24 exact set policy-options policy-statement send-static term 1 then accept set policy-options policy-statement send-static term 2 then reject set routing-options static route 172.16.6.0/24 reject set routing-options router-id 192.168.0.1 set routing-options autonomous-system 100
Dispositivo R2
set interfaces fe-1/2/0 unit 0 description to-R1 set interfaces fe-1/2/0 unit 0 family inet address 10.0.0.2/30 set interfaces fe-1/2/1 unit 0 description to-R3 set interfaces fe-1/2/1 unit 0 family inet address 10.0.0.5/30 set interfaces lo0 unit 0 family inet address 192.168.0.2/32 set protocols bgp group ext type external set protocols bgp group ext peer-as 100 set protocols bgp group ext neighbor 10.0.0.1 set protocols bgp group int type internal set protocols bgp group int local-address 192.168.0.2 set protocols bgp group int advertise-external set protocols bgp group int neighbor 192.168.0.3 set protocols ospf area 0.0.0.0 interface fe-1/2/1.0 set protocols ospf area 0.0.0.0 interface lo0.0 passive set routing-options router-id 192.168.0.2 set routing-options autonomous-system 200
Dispositivo R3
set interfaces fe-1/2/0 unit 6 family inet address 10.0.0.6/30 set interfaces lo0 unit 0 family inet address 192.168.0.3/32 set protocols bgp group int type internal set protocols bgp group int local-address 192.168.0.3 set protocols bgp group int export send-static set protocols bgp group int neighbor 192.168.0.2 set protocols ospf area 0.0.0.0 interface fe-1/2/0.6 set protocols ospf area 0.0.0.0 interface lo0.0 passive set policy-options policy-statement send-static term 1 from protocol static set policy-options policy-statement send-static term 1 then local-preference 200 set policy-options policy-statement send-static term 1 then accept set routing-options static route 172.16.6.0/24 reject set routing-options static route 0.0.0.0/0 next-hop 10.0.0.5 set routing-options autonomous-system 200
Procedimento
Procedimento passo a passo
O exemplo a seguir exige que você navegue por vários níveis na hierarquia de configuração. Para obter informações sobre como navegar na CLI, consulte Usando o Editor de CLI no modo de configuração no Guia de usuário do Junos OS CLI.Use o editor de CLI no modo de configuraçãohttps://www.juniper.net/documentation/en_US/junos/information-products/pathway-pages/junos-cli/junos-cli.html
Para configurar o dispositivo R2:
Configure as interfaces do dispositivo.
[edit interfaces] user@R2# set fe-1/2/0 unit 0 description to-R1 user@R2# set fe-1/2/0 unit 0 family inet address 10.0.0.2/30 user@R2# set fe-1/2/1 unit 0 description to-R3 user@R2# set fe-1/2/1 unit 0 family inet address 10.0.0.5/30 user@R2# set lo0 unit 0 family inet address 192.168.0.2/32
Configure o OSPF ou outro protocolo de gateway interior (IGP).
[edit protocols ospf area 0.0.0.0] user@R2# set interface fe-1/2/1.0 user@R2# set interface lo0.0 passive
Configure a conexão EBGP com o dispositivo R1.
[edit protocols bgp group ext] user@R2# set type external user@R2# set peer-as 100 user@R2# set neighbor 10.0.0.1
Configure a conexão IBGP com o dispositivo R3.
[edit protocols bgp group int] user@R2# set type internal user@R2# set local-address 192.168.0.2 user@R2# set neighbor 192.168.0.3
Adicione a declaração à sessão de peering do grupo IBGP.
advertise-external
[edit protocols bgp group int] user@R2# set advertise-external
Configure o número do sistema autônomo (AS) e o ID do roteador.
[edit routing-options ] user@R2# set router-id 192.168.0.2 user@R2# set autonomous-system 200
Resultados
A partir do modo de configuração, confirme sua configuração entrando no, e comandos.show interfaces
show protocols
show policy-options
show routing-options
Se a saída não exibir a configuração pretendida, repita as instruções neste exemplo para corrigir a configuração.
user@R2# show interfaces fe-1/2/0 { unit 0{ description to-R1; family inet { address 10.0.0.2/30; } } } fe-1/2/1 { unit 0 { description to-R3; family inet { address 10.0.0.5/30; } } } lo0 { unit 0 { family inet { address 192.168.0.2/32; } } }
user@R2# show protocols bgp { group ext { type external; peer-as 100; neighbor 10.0.0.1; } group int { type internal; local-address 192.168.0.2; advertise-external; neighbor 192.168.0.3; } } ospf { area 0.0.0.0 { interface fe-1/2/1.0; interface lo0.0 { passive; } } }
user@R2# show routing-options router-id 192.168.0.2; autonomous-system 200;
Se você terminar de configurar o dispositivo, entre no modo de configuração.commit
Verificação
Confirme se a configuração está funcionando corretamente.
- Verificando o caminho ativo do BGP
- Verificando o anúncio da rota externa
- Verificação da rota no dispositivo R3
- Experimentar a opção condicional
Verificando o caminho ativo do BGP
Propósito
No dispositivo R2, certifique-se de que o prefixo 172.16.6.0/24 esteja na tabela de roteamento e tenha o caminho ativo esperado.
Ação
user@R2> show route 172.16.6 inet.0: 8 destinations, 9 routes (8 active, 1 holddown, 0 hidden) + = Active Route, - = Last Active, * = Both 172.16.6.0/24 *[BGP/170] 00:00:07, localpref 200, from 192.168.0.3 AS path: I, validation-state: unverified > to 10.0.0.6 via fe-1/2/1.0 [BGP/170] 03:23:03, localpref 100 AS path: 100 I, validation-state: unverified > to 10.0.0.1 via fe-1/2/0.0
Significado
O dispositivo R2 recebe a rota 172.16.6.0/24 tanto do dispositivo R1 quanto do dispositivo R3. A rota do Dispositivo R3 é o caminho ativo, conforme designado pelo asterisco (*). O caminho ativo tem a mais alta preferência local. Mesmo que as preferências locais das duas rotas fossem iguais, a rota do Dispositivo R3 permaneceria ativa porque tem o caminho AS mais curto.
Verificando o anúncio da rota externa
Propósito
No dispositivo R2, certifique-se de que a rota 172.16.6.0/24 seja anunciada em direção ao dispositivo R3.
Ação
user@R2> show route advertising-protocol bgp 192.168.0.3 inet.0: 8 destinations, 9 routes (8 active, 1 holddown, 0 hidden) Prefix Nexthop MED Lclpref AS path 172.16.6.0/24 10.0.0.1 100 100 I
Significado
O dispositivo R2 está anunciando a rota 172.16.6.0/24 em direção ao Dispositivo R3.
Verificação da rota no dispositivo R3
Propósito
Certifique-se de que o prefixo 172.16.6.0/24 esteja na tabela de roteamento do dispositivo R3.
Ação
user@R3> show route 172.16.6.0/24 inet.0: 7 destinations, 8 routes (7 active, 0 holddown, 0 hidden) + = Active Route, - = Last Active, * = Both 172.16.6.0/24 *[Static/5] 03:34:14 Reject [BGP/170] 06:34:43, localpref 100, from 192.168.0.2 AS path: 100 I, validation-state: unverified > to 10.0.0.5 via fe-1/2/0.6
Significado
O dispositivo R3 tem a rota estática e a rota BGP para 172.16.6.0/24.
Observe que a rota BGP está oculta no Dispositivo R3 se a rota não for acessível ou se o próximo salto não puder ser resolvido. Para atender a esse requisito, este exemplo inclui uma rota padrão estática no dispositivo R3 ().static route 0.0.0.0/0 next-hop 10.0.0.5
Experimentar a opção condicional
Propósito
Veja como a opção funciona no contexto do algoritmo de seleção de caminhos BGP.conditional
Ação
No dispositivo R2, adicione a opção .
conditional
[edit protocols bgp group int] user@R2# set advertise-external conditional user@R2# commit
No dispositivo R2, verifique se a rota 172.16.6.0/24 é anunciada em direção ao Dispositivo R3.
user@R2> show route advertising-protocol bgp 192.168.0.3
Como esperado, a rota não é mais anunciada. Você pode precisar esperar alguns segundos para ver esse resultado.
No dispositivo R3, desativar a ação da política.
then local-preference
[edit policy-options policy-statement send-static term 1] user@R3# deactivate logical-systems R3 then local-preference user@R3# commit
No dispositivo R2, garanta que as preferências locais dos dois caminhos sejam iguais.
user@R2> show route 172.16.6.0/24 inet.0: 8 destinations, 9 routes (8 active, 0 holddown, 0 hidden) + = Active Route, - = Last Active, * = Both 172.16.6.0/24 *[BGP/170] 08:02:59, localpref 100 AS path: 100 I, validation-state: unverified > to 10.0.0.1 via fe-1/2/0.0 [BGP/170] 00:07:51, localpref 100, from 192.168.0.3 AS path: I, validation-state: unverified > to 10.0.0.6 via fe-1/2/1.0
No dispositivo R2, adicione a declaração.
as-path-ignore
[edit protocols bgp] user@R2# set path-selection as-path-ignore user@R2# commit
No dispositivo R2, verifique se a rota 172.16.6.0/24 é anunciada em direção ao Dispositivo R3.
user@R2> show route advertising-protocol bgp 192.168.0.3 inet.0: 8 destinations, 9 routes (8 active, 0 holddown, 0 hidden) Prefix Nexthop MED Lclpref AS path * 172.16.6.0/24 10.0.0.1 100 100 I
Como esperado, a rota agora é anunciada porque o comprimento do caminho AS é ignorado e porque as preferências locais são iguais.