Nesta página
Exemplo: Configuração de listas de prefixo de políticas de roteamento
No Junos OS, as listas de prefixo fornecem um método de definição de um conjunto de rotas. O Junos OS fornece outros métodos de realização da mesma tarefa, como filtros de rota. Uma lista de prefixos é uma lista de prefixos IP que representam um conjunto de rotas que são usadas como critérios de correspondência em uma política aplicada. Essa lista pode ser útil para representar uma lista de rotas de clientes em seu sistema autônomo (AS). Uma lista de prefixo recebe um nome e está configurada dentro da hierarquia de [edit policy-options]
configuração.
Requisitos
Nenhuma configuração especial além da inicialização do dispositivo é necessária antes de configurar este exemplo.
Atualizado e validado novamente usando o Junos OS Release 22.1R1.
Visão geral
As listas de prefixo são semelhantes a uma lista de filtros de rota. A diferença funcional entre filtros de rota e listas de prefixo é que você não pode especificar um intervalo usando uma lista de prefixo. Você pode simular um intervalo usando uma lista de prefixos incluindo prefixos adicionais na lista, ou usando duas listas de prefixo, uma mais curta e outra mais longa, configurando uma para aceitar e a outra para rejeitar. Você também pode filtrar uma lista de prefixo usando a condição de prefix-list-filter
correspondência. Suas escolhas são exact
, longer
e orlonger
.
O benefício de uma lista de prefixos em uma lista de filtros de rota é visto quando os prefixos são mencionados em vários locais diferentes. Por exemplo, uma lista de prefixo pode ser mencionada em uma política de importação BGP, uma política de exportação, uma política de RPF, em filtros de firewall, em filtros de loopback, na configuração de um escopo multicast e assim por diante.
Quando sua lista de prefixos muda, em vez de tentar lembrar os muitos locais diferentes que os prefixos estão configurados, você pode atualizar a lista de prefixos, alterando o prefixo uma vez em vez de várias vezes. Isso ajuda a reduzir a probabilidade de erros de configuração, como mistyping do endereço em um local ou esquecer de atualizar um ou mais locais.
As listas de prefixo também ajudam no gerenciamento de um grande número de dispositivos. Você pode escrever os vários filtros e políticas da forma mais genérica possível, fazendo referência a listas de prefixos em vez de endereços IP específicos. A lógica mais complexa nos filtros e políticas precisa ser escrita apenas uma vez, com personalizações mínimas por dispositivo e por site.
Como mostrado, Figura 1cada router no AS 650 00tem rotas de clientes. O dispositivo R1 atribui rotas aos clientes na sub-rede 172.16.1.0/24. O Dispositivo R2 e o Dispositivo R3 atribuem rotas aos clientes nas sub-redes 172.16.2.0/24 e 172.16.3.0/24, respectivamente. O dispositivo R1 foi designado como o ponto central em AS 6500 0para manter uma lista completa de rotas de clientes. O dispositivo R1 tem uma lista de prefixo chamada customers
, da seguinte forma:
user@R1# show policy-options prefix-list customers { 172.16.1.16/28; 172.16.1.32/28; 172.16.1.48/28; 172.16.1.64/28; 172.16.2.16/28; 172.16.2.32/28; 172.16.2.48/28; 172.16.2.64/28; 172.16.3.16/28; 172.16.3.32/28; 172.16.3.48/28; 172.16.3.64/28; }
Como você pode ver, a lista de prefixo não contém um tipo de correspondência para cada rota (como você veria com um filtro de rota). Este é um ponto importante ao usar uma lista de prefixo em uma política. As rotas são compatíveis apenas se corresponderem exatamente a um dos prefixos da lista. Em outras palavras, cada rota da lista deve aparecer na tabela de roteamento exatamente como está configurada na lista de prefixos.
Você faz referência à lista de prefixo como critério de correspondência em uma política como esta:
user@R1# show policy-options policy-statement customer-routes { term get-routes { from { prefix-list customers; } then accept; } term others { then reject; } }
Neste exemplo, todas as rotas da lista de customers
prefixo aparecem na tabela de roteamento do dispositivo R1. O dispositivo R2 e o Dispositivo R3 exportam para rotas estáticas do dispositivo R1 para seus clientes.
Como mencionado anteriormente, você pode usar a condição de prefix-list-filter
correspondência com o exact
tipo, longer
ou orlonger
tipo de correspondência. Isso fornece uma maneira de evitar a limitação exata da lista de prefixo das listas de prefixo. Por exemplo:
user@R1# show policy-options policy-statement customer-routes { term get-routes { from { prefix-list-filter customers orlonger; } then accept; } term others { then reject; } }
O exemplo demonstra os efeitos da condição da prefix-list
partida e da condição da prefix-list-filter
partida.
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 #configuration449__policy-prefix-list-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 ge-0/0/0 unit 0 description to_R2 set interfaces ge-0/0/0 unit 0 family inet address 10.0.0.1/30 set interfaces ge-0/0/1 unit 0 description to_R3 set interfaces ge-0/0/1 unit 0 family inet address 10.0.0.5/30 set interfaces ge-0/0/2 unit 0 description to_R4 set interfaces ge-0/0/2 unit 0 family inet address 10.1.0.5/30 set interfaces lo0 unit 0 family inet address 192.168.0.1/32 set policy-options prefix-list customers 172.16.1.16/28 set policy-options prefix-list customers 172.16.1.32/28 set policy-options prefix-list customers 172.16.1.48/28 set policy-options prefix-list customers 172.16.1.64/28 set policy-options prefix-list customers 172.16.2.16/28 set policy-options prefix-list customers 172.16.2.32/28 set policy-options prefix-list customers 172.16.2.48/28 set policy-options prefix-list customers 172.16.2.64/28 set policy-options prefix-list customers 172.16.3.16/28 set policy-options prefix-list customers 172.16.3.32/28 set policy-options prefix-list customers 172.16.3.48/28 set policy-options prefix-list customers 172.16.3.64/28 set policy-options policy-statement customer-routes term get-routes from prefix-list customers set policy-options policy-statement customer-routes term get-routes then accept set policy-options policy-statement customer-routes term others then reject set routing-options router-id 192.168.0.1 set routing-options autonomous-system 65000 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 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_65001 type external set protocols bgp group to_65001 export customer-routes set protocols bgp group to_65001 neighbor 10.1.0.6 peer-as 65001 set protocols ospf area 0.0.0.0 interface ge-0/0/0.0 set protocols ospf area 0.0.0.0 interface ge-0/0/1.0 set protocols ospf area 0.0.0.0 interface lo0.0 passive
Dispositivo R2
set interfaces ge-0/0/0 unit 0 description to_R1 set interfaces ge-0/0/0 unit 0 family inet address 10.0.0.2/30 set interfaces ge-0/0/1 unit 0 description to_R3 set interfaces ge-0/0/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 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 router-id 192.168.0.2 set routing-options autonomous-system 65000 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 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 ge-0/0/0.0 set protocols ospf area 0.0.0.0 interface ge-0/0/1.0 set protocols ospf area 0.0.0.0 interface lo0.0 passive
Dispositivo R3
set interfaces ge-0/0/0 unit 0 description to_R1 set interfaces ge-0/0/0 unit 0 family inet address 10.0.0.6/30 set interfaces ge-0/0/1 unit 0 description to_R2 set interfaces ge-0/0/1 unit 0 family inet address 10.1.0.2/30 set interfaces lo0 unit 0 family inet address 192.168.0.3/32 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 router-id 192.168.0.3 set routing-options autonomous-system 65000 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 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 ge-0/0/0.0 set protocols ospf area 0.0.0.0 interface ge-0/0/1.0 set protocols ospf area 0.0.0.0 interface lo0.0 passive
Dispositivo R4
set interfaces ge-0/0/0 unit 0 description to_R1 set interfaces ge-0/0/0 unit 0 family inet address 10.1.0.6/30 set interfaces lo0 unit 0 family inet address 192.168.0.4/32 set routing-options autonomous-system 65001 set protocols bgp group ext type external set protocols bgp group ext peer-as 65000 set protocols bgp group ext neighbor 10.1.0.5
Procedimento
Procedimento passo a passo
Estamos mostrando o procedimento passo a passo para configurar o R1. Os outros roteadores têm um processo passo a passo semelhante. 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 R1:
-
Configure as interfaces.
[edit] user@R1# set interfaces ge-0/0/0 unit 0 description to_R2 user@R1# set interfaces ge-0/0/0 unit 0 family inet address 10.0.0.1/30 user@R1# set interfaces ge-0/0/1 unit 0 description to_R3 user@R1# set interfaces ge-0/0/1 unit 0 family inet address 10.0.0.5/30 user@R1# set interfaces ge-0/0/2 unit 0 description to_R4 user@R1# set interfaces ge-0/0/2 unit 0 family inet address 10.1.0.5/30 user@R1# set interfaces lo0 unit 0 family inet address 192.168.0.1/32
-
Configure os peerings BGP (IBGP) internos para R2 e R3.
[edit] user@R1# set protocols bgp group int type internal user@R1# set protocols bgp group int local-address 192.168.0.1 user@R1# set protocols bgp group int neighbor 192.168.0.2 user@R1# set protocols bgp group int neighbor 192.168.0.3
-
Configure o peering BGP externo (EBGP) para R4. A configuração da política de exportação é mostrada em uma etapa posterior.
[edit] user@R1# set protocols bgp group to_65001 type external user@R1# set protocols bgp group to_65001 export customer-routes user@R1# set protocols bgp group to_65001 neighbor 10.1.0.6 peer-as 65001
-
Configure os peerings OSPF para R2 e R3. O protocolo OSPF fornece o aprendizado do endereço de loopback para cada dispositivo que permite que os peerings do IBGP estabeleçam.
[edit] user@R1# set protocols ospf area 0.0.0.0 interface ge-0/0/0.0 user@R1# set protocols ospf area 0.0.0.0 interface ge-0/0/1.0 user@R1# set protocols ospf area 0.0.0.0 interface lo0.0 passive
-
Configure a lista de prefixos.
[edit] user@R1# set policy-options prefix-list customers 172.16.1.16/28 user@R1# set policy-options prefix-list customers 172.16.1.32/28 user@R1# set policy-options prefix-list customers 172.16.1.48/28 user@R1# set policy-options prefix-list customers 172.16.1.64/28 user@R1# set policy-options prefix-list customers 172.16.2.16/28 user@R1# set policy-options prefix-list customers 172.16.2.32/28 user@R1# set policy-options prefix-list customers 172.16.2.48/28 user@R1# set policy-options prefix-list customers 172.16.2.64/28 user@R1# set policy-options prefix-list customers 172.16.3.16/28 user@R1# set policy-options prefix-list customers 172.16.3.32/28 user@R1# set policy-options prefix-list customers 172.16.3.48/28 user@R1# set policy-options prefix-list customers 172.16.3.64/28
-
Configure a política de roteamento que faz referência à lista de prefixo como critério de correspondência.
[edit] user@R1# set policy-options policy-statement customer-routes term get-routes from prefix-list customers user@R1# set policy-options policy-statement customer-routes term get-routes then accept user@R1# set policy-options policy-statement customer-routes term others then reject
-
Configure a rota estática para o 172.16.Rede 1.0/24. Estamos usando rotas estáticas para emular as rotas dos clientes.
[edit] user@R1# set routing-options static route 172.16.1.16/28 discard user@R1# set routing-options static route 172.16.1.32/28 discard user@R1# set routing-options static route 172.16.1.48/28 discard user@R1# set routing-options static route 172.16.1.64/28 discard
-
Configure o número do sistema autônomo (AS) e o ID do roteador.
[edit] user@R1# set routing-options router-id 192.168.0.1 user@R1# set routing-options autonomous-system 65000
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 ge-0/0/0 { unit 0 { description to_R2; family inet { address 10.0.0.1/30; } } } ge-0/0/1 { unit 0 { description to_R3; family inet { address 10.0.0.5/30; } } } ge-0/0/2 { 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_65001 { type external; export customer-routes; neighbor 10.1.0.6 { peer-as 65001; } } } ospf { area 0.0.0.0 { interface ge-0/0/0.0; interface ge-0/0/1.0; interface lo0.0 { passive; } } }
user@R1# show policy-options prefix-list customers { 172.16.1.16/28; 172.16.1.32/28; 172.16.1.48/28; 172.16.1.64/28; 172.16.2.16/28; 172.16.2.32/28; 172.16.2.48/28; 172.16.2.64/28; 172.16.3.16/28; 172.16.3.32/28; 172.16.3.48/28; 172.16.3.64/28; } policy-statement customer-routes { term get-routes { from { prefix-list customers; } then accept; } term others { then reject; } }
user@R1# show routing-options static { route 172.16.1.16/28 discard; route 172.16.1.32/28 discard; route 172.16.1.48/28 discard; route 172.16.1.64/28 discard; } router-id 192.168.0.1; autonomous-system 65000;
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 R1
- Verificando o anúncio de rota para R4
- Experimento com a Declaração de filtro de lista de prefixo
Verificação das rotas no R1
Propósito
No R1, verifique as rotas na tabela de roteamento.
Ação
user@R1> show route terse 172.16/16 inet.0: 30 destinations, 30 routes (30 active, 0 holddown, 0 hidden) + = Active Route, - = Last Active, * = Both A V Destination P Prf Metric 1 Metric 2 Next hop AS path * ? 172.16.1.16/28 S 5 Discard * ? 172.16.1.32/28 S 5 Discard * ? 172.16.1.48/28 S 5 Discard * ? 172.16.1.64/28 S 5 Discard * ? 172.16.2.16/28 B 170 100 I unverified >10.0.0.2 * ? 172.16.2.32/28 B 170 100 I unverified >10.0.0.2 * ? 172.16.2.48/28 B 170 100 I unverified >10.0.0.2 * ? 172.16.2.64/28 B 170 100 I unverified >10.0.0.2 * ? 172.16.3.16/28 B 170 100 I unverified >10.0.0.6 * ? 172.16.3.32/28 B 170 100 I unverified >10.0.0.6 * ? 172.16.3.48/28 B 170 100 I unverified >10.0.0.6 * ? 172.16.3.64/28 B 170 100 I unverified >10.0.0.6
Significado
O Dispositivo R1 aprendeu suas próprias rotas estáticas (S) e as rotas BGP dos dispositivos R2 e R3 (B).
Verificando o anúncio de rota para R4
Propósito
No R1, certifique-se de que as rotas do cliente sejam anunciadas para R4.
Ação
user@R1> show route advertising-protocol bgp 10.1.0.6 inet.0: 30 destinations, 30 routes (30 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
Significado
Como esperado, apenas as rotas da lista de prefixo do cliente são anunciadas para R4.
Experimento com a Declaração de filtro de lista de prefixo
Propósito
Veja o que pode acontecer quando você usa prefix-list-filter
em vez de prefix-list
.
Ação
-
Na R3, adicione uma rota estática que é mais longa do que uma das rotas estáticas existentes.
[edit routing-options static] user@R3# set route 172.16.3.65/32 discard user@R3# commit
-
No R1, desative a lista de prefixos e configure um filtro de lista de prefixo com o
orlonger
tipo de correspondência.[edit policy-options policy-statement customer-routes term get-routes] user@R1# deactivate from prefix-list customers user@R1# set from prefix-list-filter customers orlonger user@R1# commit
-
No R1, verifique quais rotas são anunciadas para R4.
user@R1> show route advertising-protocol bgp 10.1.0.6 inet.0: 31 destinations, 31 routes (31 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 * 172.16.3.65/32 Self I
Significado
Como esperado, o R1 está anunciando o 172.16.3,65/32 rota para R4, embora 172.16.3,65/32 não está na lista de prefixo.