Nesta página
Exemplo: Usando expressões regulares do caminho AS
Um caminho de sistema autônomo (AS) é um atributo de rota usado pelo BGP. O caminho AS é usado tanto para a seleção de rotas quanto para evitar loops de roteamento potenciais. Este exemplo mostra como usar expressões regulares com números de caminho AS para localizar um conjunto de rotas.
Requisitos
Nenhuma configuração especial além da inicialização do dispositivo é necessária antes de configurar este exemplo.
Visão geral
Figura 1 mostra vários ASs conectados por meio de sessões de peering BGP (EBGP) externas. Cada dispositivo está gerando rotas de clientes em seu espaço de endereço atribuído.
Topologia
Figura 1 mostra a rede de amostra.
Os administradores do AS 64516 querem rejeitar todas as rotas originárias do AS 64513 e AS 64514. Duas expressões regulares de caminho AS chamadas orig-in-64513
e orig-in-64514
criadas e referenciadas em uma política chamada reject-some-routes
. A política de roteamento é então aplicada como uma política de importação no dispositivo R6.
Configuração rápida da CLI mostra a configuração de todos os dispositivos em Figura 1.
A seção #configuration488__policy-as-path-regex-st descreve as etapas do Dispositivo R2 e do Dispositivo R6. Verificação mostra como usar a opção aspath-regex
com o show route
comando no Dispositivo R2 para localizar rotas usando expressões regulares.
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/2 unit 0 description to-R2 set interfaces fe-1/2/2 unit 0 family inet address 10.2.0.2/30 set interfaces fe-1/2/3 unit 0 description to-R3 set interfaces fe-1/2/3 unit 0 family inet address 10.2.0.6/30 set interfaces fe-1/2/0 unit 0 description to-R5 set interfaces fe-1/2/0 unit 0 family inet address 10.0.0.2/30 set interfaces lo0 unit 0 family inet address 192.168.0.1/32 set protocols bgp export send-static set protocols bgp group 64512 type external set protocols bgp group 64512 peer-as 64512 set protocols bgp group 64512 neighbor 10.2.0.1 set protocols bgp group 64513 type external set protocols bgp group 64513 peer-as 64513 set protocols bgp group 64513 neighbor 10.2.0.5 set protocols bgp group 64515 type external set protocols bgp group 64515 peer-as 64515 set protocols bgp group 64515 neighbor 10.0.0.1 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 10.10.1.0/24 reject set routing-options static route 10.10.2.0/24 reject set routing-options static route 10.10.3.0/24 reject set routing-options autonomous-system 64511
Dispositivo R2
set interfaces fe-1/2/2 unit 0 description to-R1 set interfaces fe-1/2/2 unit 0 family inet address 10.2.0.1/30 set interfaces lo0 unit 0 family inet address 192.168.0.2/32 set protocols bgp export send-static set protocols bgp group 64511 type external set protocols bgp group 64511 peer-as 64511 set protocols bgp group 64511 neighbor 10.2.0.2 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 10.20.1.0/24 reject set routing-options static route 10.20.2.0/24 reject set routing-options static route 10.20.3.0/24 reject set routing-options autonomous-system 64512
Dispositivo R3
set interfaces fe-1/2/3 unit 0 description to-R1 set interfaces fe-1/2/3 unit 0 family inet address 10.2.0.5/30 set interfaces fe-1/2/2 unit 0 description to-R4 set interfaces fe-1/2/2 unit 0 family inet address 10.3.0.42/30 set interfaces lo0 unit 0 family inet address 192.168.0.3/32 set protocols bgp export send-static set protocols bgp group 64511 type external set protocols bgp group 64511 peer-as 64511 set protocols bgp group 64511 neighbor 10.2.0.6 set protocols bgp group 64514 type external set protocols bgp group 64514 peer-as 64514 set protocols bgp group 64514 neighbor 10.3.0.41 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 10.30.1.0/24 reject set routing-options static route 10.30.2.0/24 reject set routing-options static route 10.30.3.0/24 reject set routing-options autonomous-system 64513
Dispositivo R4
set interfaces fe-1/2/2 unit 0 description to-R3 set interfaces fe-1/2/2 unit 0 family inet address 10.3.0.41/30 set interfaces lo0 unit 0 family inet address 192.168.0.4/32 set protocols bgp export send-static set protocols bgp group 64513 type external set protocols bgp group 64513 peer-as 64513 set protocols bgp group 64513 neighbor 10.3.0.42 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 10.40.1.0/24 reject set routing-options static route 10.40.2.0/24 reject set routing-options static route 10.40.3.0/24 reject set routing-options autonomous-system 64514
Dispositivo R5
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.1/30 set interfaces fe-1/2/1 unit 0 description to-R6 set interfaces fe-1/2/1 unit 0 family inet address 10.0.0.9/30 set interfaces lo0 unit 0 family inet address 192.168.0.5/32 set protocols bgp export send-static set protocols bgp group 64511 type external set protocols bgp group 64511 peer-as 64511 set protocols bgp group 64511 neighbor 10.0.0.2 set protocols bgp group 64516 type external set protocols bgp group 64516 peer-as 64516 set protocols bgp group 64516 neighbor 10.0.0.10 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 10.50.1.0/24 reject set routing-options static route 10.50.2.0/24 reject set routing-options static route 10.50.3.0/24 reject set routing-options autonomous-system 64515
Dispositivo R6
set interfaces fe-1/2/1 unit 0 description to-R5 set interfaces fe-1/2/1 unit 0 family inet address 10.0.0.10/30 set interfaces lo0 unit 0 family inet address 192.168.0.6/32 set protocols bgp export send-static set protocols bgp group 64515 type external set protocols bgp group 64515 import reject-some-routes set protocols bgp group 64515 peer-as 64515 set protocols bgp group 64515 neighbor 10.0.0.9 set policy-options policy-statement send-static term 1 from protocol static set policy-options policy-statement send-static term 1 then accept set policy-options policy-statement reject-some-routes term find-routes from as-path orig-in-64513 set policy-options policy-statement reject-some-routes term find-routes from as-path orig-in-64514 set policy-options policy-statement reject-some-routes term find-routes then reject set policy-options as-path orig-in-64513 ".* 64513" set policy-options as-path orig-in-64514 ".* 64514" set routing-options static route 10.60.1.0/24 reject set routing-options static route 10.60.2.0/24 reject set routing-options static route 10.60.3.0/24 reject set routing-options autonomous-system 64516
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 R2:
Configure as interfaces do dispositivo.
[edit interfaces] user@R2# set fe-1/2/2 unit 0 description to-R1 user@R2# set fe-1/2/2 unit 0 family inet address 10.2.0.1/30 user@R2# set lo0 unit 0 family inet address 192.168.0.2/32
Configure a conexão EBGP com o dispositivo R1.
[edit protocols bgp] user@R2# set export send-static user@R2# set group 64511 type external user@R2# set group 64511 peer-as 64511 user@R2# set group 64511 neighbor 10.2.0.2
Configure a política de roteamento.
[edit policy-options policy-statement send-static term 1] user@R2# set from protocol static user@R2# set then accept
Configure as rotas estáticas.
[edit routing-options static] user@R2# set route 10.20.1.0/24 reject user@R2# set route 10.20.2.0/24 reject user@R2# set route 10.20.3.0/24 reject
Configure o número AS.
[edit routing-options] user@R2# set autonomous-system 64512
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 R6:
Configure as interfaces do dispositivo.
[edit interfaces] user@R6# set fe-1/2/1 unit 0 description to-R5 user@R6# set fe-1/2/1 unit 0 family inet address 10.0.0.10/30 user@R6# set lo0 unit 0 family inet address 192.168.0.6/32
Configure a conexão EBGP com o dispositivo R5.
[edit protocols bgp] user@R6# set export send-static user@R6# set group 64515 type external user@R6# set group 64515 import reject-some-routes user@R6# set group 64515 peer-as 64515 user@R6# set group 64515 neighbor 10.0.0.9
Configure a política de roteamento que envia rotas estáticas.
[edit policy-options policy-statement send-static term 1] user@R6# set from protocol static user@R6# set then accept
Configure a política de roteamento que rejeita determinadas rotas.
[edit policy-options policy-statement reject-some-routes term find-routes] user@R6# set from as-path orig-in-64513 user@R6# set from as-path orig-in-64514 user@R6# set then reject [edit policy-options] user@R6# set as-path orig-in-64513 ".* 64513" user@R6# set as-path orig-in-64514 ".* 64514"
Configure as rotas estáticas.
[edit routing-options static] user@R6# set route 10.60.1.0/24 reject user@R6# set route 10.60.2.0/24 reject user@R6# set route 10.60.3.0/24 reject
Configure o número AS.
[edit routing-options] user@R6# set autonomous-system 64516
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.
Dispositivo R2
user@R2# show interfaces fe-1/2/0 { unit 0 { description to-R1; family inet { address 10.2.0.1/30; } } } lo0 { unit 0 { family inet { address 192.168.0.2/32; } } }
user@R2# show protocols bgp { export send-static; group 64511 { type external; peer-as 64511; neighbor 10.2.0.2; } }
user@R2# show policy-options policy-statement send-static { term 1 { from protocol static; then accept; } }
user@R2# show routing-options static { route 10.20.1.0/24 reject; route 10.20.2.0/24 reject; route 10.20.3.0/24 reject; } autonomous-system 64512;
Dispositivo R6
user@R6# show interfaces fe-1/2/0 { unit 0 { description to-R5; family inet { address 10.0.0.10/30; } } } lo0 { unit 0 { family inet { address 192.168.0.6/32; } } }
user@R6# show protocols bgp { export send-static; group 64515 { type external; import reject-some-routes; peer-as 64515; neighbor 10.0.0.9; } }
user@R6# show policy-options policy-statement reject-some-routes { term find-routes { from as-path [ orig-in-64513 orig-in-64514 ]; then reject; } } policy-statement send-static { term 1 { from protocol static; then accept; } } as-path orig-in-64513 ".* 64513"; as-path orig-in-64514 ".* 64514";
user@R6# show routing-options static { route 10.60.1.0/24 reject; route 10.60.2.0/24 reject; route 10.60.3.0/24 reject; } autonomous-system 64516;
Se você terminar de configurar os dispositivos, entre no commit
modo de configuração.
Verificação
Confirme se a configuração está funcionando corretamente.
- Encontrando rotas no dispositivo R2
- Certificando-se de que as rotas estão excluídas no dispositivo R6
Encontrando rotas no dispositivo R2
Propósito
No dispositivo R2, use o show route aspath-regex
comando para localizar rotas usando expressões regulares.
Ação
Procure rotas originadas pelo dispositivo R6 no AS 64516.
user@R2> show route terse aspath-regex ".* 64516" inet.0: 21 destinations, 21 routes (21 active, 0 holddown, 0 hidden) + = Active Route, - = Last Active, * = Both A V Destination P Prf Metric 1 Metric 2 Next hop AS path * ? 10.60.1.0/24 B 170 100 64511 64515 64516 I unverified >10.2.0.2 * ? 10.60.2.0/24 B 170 100 64511 64515 64516 I unverified >10.2.0.2 * ? 10.60.3.0/24 B 170 100 64511 64515 64516 I unverified >10.2.0.2
Procure rotas originadas em AS 64514 ou AS 64516.
user@R2> show route terse aspath-regex ".* (64514|64516)" inet.0: 21 destinations, 21 routes (21 active, 0 holddown, 0 hidden) + = Active Route, - = Last Active, * = Both A V Destination P Prf Metric 1 Metric 2 Next hop AS path * ? 10.40.1.0/24 B 170 100 64511 64513 64514 I unverified >10.2.0.2 * ? 10.40.2.0/24 B 170 100 64511 64513 64514 I unverified >10.2.0.2 * ? 10.40.3.0/24 B 170 100 64511 64513 64514 I unverified >10.2.0.2 * ? 10.60.1.0/24 B 170 100 64511 64515 64516 I unverified >10.2.0.2 * ? 10.60.2.0/24 B 170 100 64511 64515 64516 I unverified >10.2.0.2 * ? 10.60.3.0/24 B 170 100 64511 64515 64516 I unverified >10.2.0.2
Procure rotas que usem o AS 64513 como uma rede de trânsito.
user@R2> show route terse aspath-regex ".* 64513 .+" inet.0: 21 destinations, 21 routes (21 active, 0 holddown, 0 hidden) + = Active Route, - = Last Active, * = Both A V Destination P Prf Metric 1 Metric 2 Next hop AS path * ? 10.40.1.0/24 B 170 100 64511 64513 64514 I unverified >10.2.0.2 * ? 10.40.2.0/24 B 170 100 64511 64513 64514 I unverified >10.2.0.2 * ? 10.40.3.0/24 B 170 100 64511 64513 64514 I unverified
Significado
A saída mostra as entradas da tabela de roteamento que correspondem às expressões regulares de caminho AS especificadas.
Certificando-se de que as rotas estão excluídas no dispositivo R6
Propósito
No dispositivo R6, use os show route and show route hidden
comandos para garantir que as rotas originárias do AS 64513 e AS 64514 sejam excluídas da tabela de roteamento do Dispositivo R6.
Ação
user@R6> show route 10.30.0/22 inet.0: 21 destinations, 21 routes (15 active, 0 holddown, 6 hidden)
user@R6> show route 10.40.0/22 inet.0: 21 destinations, 21 routes (15 active, 0 holddown, 6 hidden)
user@R6> show route hidden inet.0: 21 destinations, 21 routes (15 active, 0 holddown, 6 hidden) + = Active Route, - = Last Active, * = Both 10.30.1.0/24 [BGP ] 02:24:47, localpref 100 AS path: 64515 64511 64513 I, validation-state: unverified > to 10.0.0.9 via fe-1/2/1.0 10.30.2.0/24 [BGP ] 02:24:47, localpref 100 AS path: 64515 64511 64513 I, validation-state: unverified > to 10.0.0.9 via fe-1/2/1.0 10.30.3.0/24 [BGP ] 02:24:47, localpref 100 AS path: 64515 64511 64513 I, validation-state: unverified > to 10.0.0.9 via fe-1/2/1.0 10.40.1.0/24 [BGP ] 02:24:47, localpref 100 AS path: 64515 64511 64513 64514 I, validation-state: unverified > to 10.0.0.9 via fe-1/2/1.0 10.40.2.0/24 [BGP ] 02:24:47, localpref 100 AS path: 64515 64511 64513 64514 I, validation-state: unverified > to 10.0.0.9 via fe-1/2/1.0 10.40.3.0/24 [BGP ] 02:24:47, localpref 100 AS path: 64515 64511 64513 64514 I, validation-state: unverified > to 10.0.0.9 via fe-1/2/1.0
Significado
A saída mostra que as rotas 10.30.0/22 e 10.40.0/22 são recusadas no Dispositivo R6.