Nesta página
Exemplo: Configuração de uma subrotina de políticas
Este exemplo demonstra o uso de uma subrotina de política em uma condição de correspondência de política de roteamento.
Requisitos
Nenhuma configuração especial além da inicialização do dispositivo é necessária antes de configurar este exemplo.
Visão geral
No dispositivo R1, uma política chamada main
está configurada.
user@R1# show policy-options policy-statement main { term subroutine-as-a-match { from policy subroutine; then accept; } term nothing-else { then reject; } }
Essa política principal chama de subroutine chamada subroutine
.
user@R1# show policy-options policy-statement subroutine { term get-routes { from protocol static; then accept; } term nothing-else { then reject; } }
O roteador avalia a lógica de main
uma maneira definida. O critério de correspondência permite que o dispositivo de from policy subroutine
roteamento localize a subroutina. Todos os termos da subroutina são avaliados, em ordem, seguindo as regras normais de processamento de políticas. Neste exemplo, todas as rotas estáticas na tabela de roteamento correspondem à subroutina com uma ação de aceitação. Isso devolve um resultado real à política original, ou chamada, que informa ao dispositivo que ocorreu uma correspondência positiva. As ações na política de chamada são executadas e a rota é aceita. Todas as outras rotas da tabela de roteamento não correspondem à subroutina e devolvem um resultado falso à política de chamada. O dispositivo avalia o segundo termo main
e rejeita as rotas.
As ações na subroutina não aceitam nem rejeitam uma rota específica. As ações subroutinas são traduzidas apenas em um resultado verdadeiro ou falso. Ações que modificam os atributos de uma rota, no entanto, são aplicadas à rota, independentemente do resultado da subroutina.
O dispositivo R1 no AS 64510 tem várias rotas de clientes, algumas das quais são rotas estáticas configuradas localmente, e algumas das quais são recebidas do Dispositivo R2 e do Dispositivo R3 através do BGP interno (IBGP). O AS 64510 está conectado ao dispositivo R4 em AS 64511. A política main
é aplicada como uma política de exportação na sessão de peering BGP do Dispositivo R1 com o Dispositivo R4. Isso faz com que o Dispositivo R1 envie apenas suas próprias rotas estáticas para o dispositivo R4. Por causa da política main
, o dispositivo R1 não envia as rotas recebidas de seus pares internos, o Dispositivo R2 e o Dispositivo R3.
Quando você está trabalhando com subroutines de políticas, é importante lembrar que a política de exportação de EBGP padrão é anunciar todas as rotas BGP aprendidas para todos os pares de EBGP. Essa política padrão está em vigor na política principal e também na subroutina. Portanto, como mostrado neste exemplo, se você não quiser que a política de exportação de EBGP padrão entre em vigor, você deve configurar uma then reject
ação terminante como termo final tanto na política principal quanto na subroutine da política. Este exemplo demonstra o que acontece quando o termo final then reject
está ausente, seja da política principal ou da subroutina da política.
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 #configuration318__policy-subroutine-st descreve as etapas do dispositivo R1.
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 [edit]
hierarquia.
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 fe-1/2/2 unit 0 description to_R3 set interfaces fe-1/2/2 unit 0 family inet address 10.0.0.5/30 set interfaces fe-1/2/3 unit 0 description to_R4 set interfaces fe-1/2/3 unit 0 family inet address 10.1.0.5/30 set interfaces lo0 unit 0 family inet address 192.168.0.1/32 set protocols bgp group int type internal set protocols bgp group int local-address 192.168.0.1 set protocols bgp group int neighbor 192.168.0.2 set protocols bgp group int neighbor 192.168.0.3 set protocols bgp group to_64511 type external set protocols bgp group to_64511 export main set protocols bgp group to_64511 neighbor 10.1.0.6 peer-as 64511 set protocols ospf area 0.0.0.0 interface fe-1/2/0.0 set protocols ospf area 0.0.0.0 interface fe-1/2/2.0 set protocols ospf area 0.0.0.0 interface lo0.0 passive set policy-options policy-statement main term subroutine-as-a-match from policy subroutine set policy-options policy-statement main term subroutine-as-a-match then accept set policy-options policy-statement main term nothing-else then reject set policy-options policy-statement subroutine term get-routes from protocol static set policy-options policy-statement subroutine term get-routes then accept set policy-options policy-statement subroutine term nothing-else then reject set routing-options static route 172.16.1.16/28 discard set routing-options static route 172.16.1.32/28 discard set routing-options static route 172.16.1.48/28 discard set routing-options static route 172.16.1.64/28 discard set routing-options router-id 192.168.0.1 set routing-options autonomous-system 64510
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.1.0.1/30 set interfaces lo0 unit 0 family inet address 192.168.0.2/32 set protocols bgp group int type internal set protocols bgp group int local-address 192.168.0.2 set protocols bgp group int neighbor 192.168.0.1 export send-static set protocols bgp group int neighbor 192.168.0.3 set protocols ospf area 0.0.0.0 interface fe-1/2/0.0 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 policy-options policy-statement send-static term 1 from protocol static set policy-options policy-statement send-static term 1 then accept set routing-options static route 172.16.2.16/28 discard set routing-options static route 172.16.2.32/28 discard set routing-options static route 172.16.2.48/28 discard set routing-options static route 172.16.2.64/28 discard set routing-options router-id 192.168.0.2 set routing-options autonomous-system 64510
Dispositivo R3
set interfaces fe-1/2/1 unit 0 description to_R2 set interfaces fe-1/2/1 unit 0 family inet address 10.1.0.2/30 set interfaces fe-1/2/2 unit 0 description to_R1 set interfaces fe-1/2/2 unit 0 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 neighbor 192.168.0.1 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/2.6 set protocols ospf area 0.0.0.0 interface fe-1/2/0.4 set protocols ospf area 0.0.0.0 interface lo0.0 passive set policy-options policy-statement send-static from protocol static set policy-options policy-statement send-static then accept set routing-options static route 172.16.3.16/28 discard set routing-options static route 172.16.3.32/28 discard set routing-options static route 172.16.3.48/28 discard set routing-options static route 172.16.3.64/28 discard set routing-options router-id 192.168.0.3 set routing-options autonomous-system 64510
Dispositivo R4
set interfaces fe-1/2/3 unit 0 description to_R1 set interfaces fe-1/2/3 unit 0 family inet address 10.1.0.6/30 set interfaces lo0 unit 0 family inet address 192.168.0.4/32 set protocols bgp group ext type external set protocols bgp group ext peer-as 64510 set protocols bgp group ext neighbor 10.1.0.5 set routing-options autonomous-system 64511
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, veja Use o editor de CLI no modo de configuração no Guia de usuário do Junos OS CLI.
Para configurar o dispositivo R1:
Configure as interfaces do dispositivo.
[edit interfaces] user@R1# set fe-1/2/0 unit 0 description to_R2 user@R1# set fe-1/2/0 unit 0 family inet address 10.0.0.1/30 user@R1# set fe-1/2/2 unit 0 description to_R3 user@R1# set fe-1/2/2 unit 0 family inet address 10.0.0.5/30 user@R1# set fe-1/2/3 unit 0 description to_R4 user@R1# set fe-1/2/3 unit 0 family inet address 10.1.0.5/30 user@R1# set lo0 unit 0 family inet address 192.168.0.1/32
Configure as conexões BGP internas (IBGP) ao dispositivo R2 e ao dispositivo R3.
[edit protocols bgp group int] user@R1# set type internal user@R1# set local-address 192.168.0.1 user@R1# set neighbor 192.168.0.2 user@R1# set neighbor 192.168.0.3
Configure a conexão EBGP com o dispositivo R4.
[edit protocols bgp group to_64511] user@R1# set type external user@R1# set export main user@R1# set neighbor 10.1.0.6 peer-as 64511
Configure conexões OSPF com o dispositivo R2 e o dispositivo R3.
[edit protocols ospf area 0.0.0.0] user@R1# set interface fe-1/2/0.0 user@R1# set interface fe-1/2/2.0 user@R1# set interface lo0.0 passive
Configure a política
main
.[edit policy-options policy-statement main term subroutine-as-a-match] user@R1# set from policy subroutine user@R1# set then accept [edit policy-options policy-statement main term nothing-else] user@R1# set then reject
Configure a política
subroutine
.[edit policy-options policy-statement subroutine term get-routes] user@R1# set from protocol static user@R1# set then accept [edit policy-options policy-statement subroutine term nothing-else] user@R1# set then reject
Configure a rota estática para a rede 172.16.5.0/24.
[edit routing-options static] user@R1# set route 172.16.1.16/28 discard user@R1# set route 172.16.1.32/28 discard user@R1# set route 172.16.1.48/28 discard user@R1# set route 172.16.1.64/28 discard
Configure o número do sistema autônomo (AS) e o ID do roteador.
[edit routing-options] user@R1# set router-id 192.168.0.1 user@R1# set autonomous-system 64510
Resultados
A partir do modo de configuração, confirme sua configuração entrando noshow interfaces
, show protocols
show policy-options
e show routing-options
comandos. Se a saída não exibir a configuração pretendida, repita as instruções neste exemplo para corrigir a configuração.
user@R1# show interfaces fe-1/2/0 { unit 0 { description to_R2; family inet { address 10.0.0.1/30; } } } fe-1/2/2 { unit 0 { description to_R3; family inet { address 10.0.0.5/30; } } } fe-1/2/3 { unit 0 { description to_R4; family inet { address 10.1.0.5/30; } } } lo0 { unit 0 { family inet { address 192.168.0.1/32; } } }
user@R1# show protocols bgp { group int { type internal; local-address 192.168.0.1; neighbor 192.168.0.2; neighbor 192.168.0.3; } group to_64511 { type external; export main; neighbor 10.1.0.6 { peer-as 64511; } } } ospf { area 0.0.0.0 { interface fe-1/2/0.0; interface fe-1/2/2.0; interface lo0.0 { passive; } } }
user@R1# show policy-options policy-statement main { term subroutine-as-a-match { from policy subroutine; then accept; } term nothing-else { then reject; } } policy-statement subroutine { term get-routes { from protocol static; then accept; } term nothing-else { then reject; } }
user@R1# show routing-options static { route 172.6.1.16/28 discard; route 172.6.1.32/28 discard; route 172.6.1.48/28 discard; route 172.6.1.64/28 discard; } router-id 192.168.0.1; autonomous-system 64510;
Se você terminar de configurar o dispositivo, entre no commit
modo de configuração.
Verificação
Confirme se a configuração está funcionando corretamente.
- Verificação das rotas no dispositivo R1
- Verificando o anúncio de rota para o dispositivo R4
- Experimentar a política de exportação BGP padrão
Verificação das rotas no dispositivo R1
Propósito
No dispositivo R1, verifique as rotas estáticas na tabela de roteamento.
Ação
user@R1> show route protocol static inet.0: 23 destinations, 23 routes (23 active, 0 holddown, 0 hidden) + = Active Route, - = Last Active, * = Both 172.16.1.16/28 *[Static/5] 1d 02:02:13 Discard 172.16.1.32/28 *[Static/5] 1d 02:02:13 Discard 172.16.1.48/28 *[Static/5] 1d 02:02:13 Discard 172.16.1.64/28 *[Static/5] 1d 02:02:13 Discard
Significado
O dispositivo R1 tem quatro rotas estáticas.
Verificando o anúncio de rota para o dispositivo R4
Propósito
No dispositivo R1, certifique-se de que as rotas estáticas sejam anunciadas para o dispositivo R4.
Ação
user@R1> show route advertising-protocol bgp 10.1.0.6 inet.0: 23 destinations, 23 routes (23 active, 0 holddown, 0 hidden) Prefix Nexthop MED Lclpref AS path * 172.16.1.16/28 Self I * 172.16.1.32/28 Self I * 172.16.1.48/28 Self I * 172.16.1.64/28 Self I
Significado
Como esperado, o Dispositivo R1 anuncia apenas suas rotas estáticas para o dispositivo R4.
Experimentar a política de exportação BGP padrão
Propósito
Veja o que pode acontecer quando você remove o termo final then reject
da política main
ou da política subroutine
.
Ação
No dispositivo R1, desativar o termo final da política
main
.[edit policy-options policy-statement main] user@R1# deactivate term nothing-else user@R1# commit
No dispositivo R1, verifique quais rotas são anunciadas para o dispositivo R4.
user@R1> show route advertising-protocol bgp 10.1.0.6 inet.0: 23 destinations, 23 routes (23 active, 0 holddown, 0 hidden) Prefix Nexthop MED Lclpref AS path * 172.16.1.16/28 Self I * 172.16.1.32/28 Self I * 172.16.1.48/28 Self I * 172.16.1.64/28 Self I * 172.16.2.16/28 Self I * 172.16.2.32/28 Self I * 172.16.2.48/28 Self I * 172.16.2.64/28 Self I * 172.16.3.16/28 Self I * 172.16.3.32/28 Self I * 172.16.3.48/28 Self I * 172.16.3.64/28 Self I
Agora, todas as rotas BGP do Dispositivo R1 são enviadas para o dispositivo R4. Isso ocorre porque, após o retorno do processamento à política
main
, a política de exportação BGP padrão entra em vigor.No dispositivo R1, reativar o termo final da política
main
e desativar o termo final na políticasubroutine
.[edit policy-options policy-statement main] user@R1# activate term nothing-else [edit policy-options policy-statement subroutine] user@R1# deactivate term nothing-else user@R1# commit
No dispositivo R1, verifique quais rotas são anunciadas para o dispositivo R4.
user@R1> show route advertising-protocol bgp 10.1.0.6 inet.0: 23 destinations, 23 routes (23 active, 0 holddown, 0 hidden) Prefix Nexthop MED Lclpref AS path * 172.16.1.16/28 Self I * 172.16.1.32/28 Self I * 172.16.1.48/28 Self I * 172.16.1.64/28 Self I * 172.16.2.16/28 Self I * 172.16.2.32/28 Self I * 172.16.2.48/28 Self I * 172.16.2.64/28 Self I * 172.16.3.16/28 Self I * 172.16.3.32/28 Self I * 172.16.3.48/28 Self I * 172.16.3.64/28 Self I
Agora, todas as rotas BGP do Dispositivo R1 são enviadas para o dispositivo R4. Isso ocorre porque antes que o processamento seja devolvido à política
main
, a política de exportação BGP padrão entra em vigor na políticasubroutine
.
Significado
Para evitar que a política de exportação BGP padrão entre em vigor, você deve incluir um termo final then reject
na política principal e em todas as subroutines mencionadas.