Ajude-nos a melhorar a sua experiência.

Conte-nos a sua opinião.

Tem dois minutos para uma pesquisa?

Announcement: Try the Ask AI chatbot for answers to your technical questions about Juniper products and solutions.

close
header-navigation
keyboard_arrow_up
close
keyboard_arrow_left
list Table of Contents
keyboard_arrow_right

Esta tradução automática foi útil?

starstarstarstarstar
Go to English page
ISENÇÃO DE RESPONSABILIDADE:

Esta página será traduzida com software de tradução por máquina de terceiros. Embora esforços razoáveis tenham sido feitos para fornecer uma tradução de qualidade, a Juniper Networks não pode garantir sua exatidão. Se houver dúvidas sobre a exatidão das informações contidas nesta tradução, consulte a versão em inglês. O PDF para download está disponível apenas em inglês.

Exemplo: Teste de uma política de roteamento com expressões regulares complexas

date_range 18-Jan-25

Este exemplo mostra como testar uma política de roteamento usando o test policy comando para garantir que a política produza os resultados que você espera antes de aplicá-la em um ambiente de produção. Expressões regulares, especialmente as complexas, podem ser complicadas de acertar. Este exemplo mostra como usar o test policy comando para garantir que suas expressões regulares tenham o efeito desejado.

Requisitos

Nenhuma configuração especial além da inicialização do dispositivo é necessária antes de configurar este exemplo.

Visão geral

Este exemplo mostra dois dispositivos de roteamento com uma conexão BGP (EBGP) externa entre eles. O Dispositivo R2 usa a sessão BGP para enviar rotas de clientes ao Dispositivo R1. Essas rotas estáticas têm vários valores de comunidade conectados.

content_copy zoom_out_map
user@R2> show route match-prefix 172.16.* detail

inet.0: 7 destinations, 7 routes (7 active, 0 holddown, 0 hidden)
172.16.1.0/24 (1 entry, 1 announced)
        *Static Preference: 5
                Next hop type: Reject
                Address: 0x8fd0dc4
                Next-hop reference count: 8
                State: <Active Int Ext>
                Local AS: 64511 
                Age: 21:32:13 
                Validation State: unverified 
                Task: RT
                Announcement bits (1): 0-KRT 
                AS path: I
                Communities: 64510:1 64510:10 64510:11 64510:100 64510:111

172.16.2.0/24 (1 entry, 1 announced)
        *Static Preference: 5
                Next hop type: Reject
                Address: 0x8fd0dc4
                Next-hop reference count: 8
                State: <Active Int Ext>
                Local AS: 64511 
                Age: 21:32:13 
                Validation State: unverified 
                Task: RT
                Announcement bits (1): 0-KRT 
                AS path: I
                Communities: 64510:2 64510:20 64510:22 64510:200 64510:222

172.16.3.0/24 (1 entry, 1 announced)
        *Static Preference: 5
                Next hop type: Reject
                Address: 0x8fd0dc4
                Next-hop reference count: 8
                State: <Active Int Ext>
                Local AS: 64511 
                Age: 21:32:13 
                Validation State: unverified 
                Task: RT
                Announcement bits (1): 0-KRT 
                AS path: I
                Communities: 64510:3 64510:30 64510:33 64510:300 64510:333

172.16.4.0/24 (1 entry, 1 announced)
        *Static Preference: 5
                Next hop type: Reject   
                Address: 0x8fd0dc4
                Next-hop reference count: 8
                State: <Active Int Ext>
                Local AS: 64511 
                Age: 21:32:13 
                Validation State: unverified 
                Task: RT
                Announcement bits (1): 0-KRT 
                AS path: I
                Communities: 64510:4 64510:40 64510:44 64510:400 64510:444

Para testar uma expressão regular complexa, o Dispositivo R2 tem uma política chamada test-regex que localiza rotas. A política está configurada assim:

content_copy zoom_out_map
policy-statement test-regex {
    term find-routes {
        from community complex-regex;
        then accept;
    }
    term reject-the-rest {
        then reject;
    }
}
community complex-regex members "^64510:[13].*$";

Essa expressão regular corresponde aos valores da comunidade a partir de 1 ou 3.

Topologia

Figura 1 mostra a rede de amostra.

Figura 1: Teste de política de roteamento para expressões regulares complexasTeste de política de roteamento para expressões regulares complexas

Configuração rápida da CLI mostra a configuração de todos os dispositivos em Figura 1.

A seção #configuration271__policy-test-regex-st descreve as etapas do dispositivo R2.

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

content_copy zoom_out_map
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 peer-as 64511
set protocols bgp group ext neighbor 10.0.0.2
set routing-options router-id 192.168.0.1
set routing-options autonomous-system 64510

Dispositivo R2

content_copy zoom_out_map
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.2/32
set protocols bgp group ext type external
set protocols bgp group ext peer-as 64510
set protocols bgp group ext 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 policy-options policy-statement send-static term 2 then reject
set policy-options policy-statement test-regex term find-routes from community complex-regex
set policy-options policy-statement test-regex term find-routes then accept
set policy-options policy-statement test-regex term reject-the-rest then reject
set policy-options community complex-regex members "^64510:[13].*$"
set routing-options static route 172.16.1.0/24 reject
set routing-options static route 172.16.1.0/24 community 64510:1
set routing-options static route 172.16.1.0/24 community 64510:10
set routing-options static route 172.16.1.0/24 community 64510:11
set routing-options static route 172.16.1.0/24 community 64510:100
set routing-options static route 172.16.1.0/24 community 64510:111
set routing-options static route 172.16.2.0/24 reject
set routing-options static route 172.16.2.0/24 community 64510:2
set routing-options static route 172.16.2.0/24 community 64510:20
set routing-options static route 172.16.2.0/24 community 64510:22
set routing-options static route 172.16.2.0/24 community 64510:200
set routing-options static route 172.16.2.0/24 community 64510:222
set routing-options static route 172.16.3.0/24 reject
set routing-options static route 172.16.3.0/24 community 64510:3
set routing-options static route 172.16.3.0/24 community 64510:30
set routing-options static route 172.16.3.0/24 community 64510:33
set routing-options static route 172.16.3.0/24 community 64510:300
set routing-options static route 172.16.3.0/24 community 64510:333
set routing-options static route 172.16.4.0/24 reject
set routing-options static route 172.16.4.0/24 community 64510:4
set routing-options static route 172.16.4.0/24 community 64510:40
set routing-options static route 172.16.4.0/24 community 64510:44
set routing-options static route 172.16.4.0/24 community 64510:400
set routing-options static route 172.16.4.0/24 community 64510:444
set routing-options router-id 192.168.0.2
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, consulte Usando o Editor de CLI no modo de configuração no Guia do usuário da CLI.

Para configurar o dispositivo R2:

  1. Configure as interfaces.

    content_copy zoom_out_map
    [edit interfaces]
    user@R2# set fe-1/2/0 unit 0 family inet address 10.0.0.2/30
    user@R2# set lo0 unit 0 family inet address 192.168.0.2/32
    
  2. Configure BGP.

    Aplique a política de importação na sessão de peering BGP com o Dispositivo R2.

    content_copy zoom_out_map
    [edit protocols bgp group ext]
    user@R2# set type external
    user@R2# set peer-as 64510
    user@R2# set neighbor 10.0.0.1
    
  3. Configure a política de roteamento que envia rotas estáticas.

    content_copy zoom_out_map
    [edit policy-options policy-statement send-static]
    user@R2# set term 1 from protocol static
    user@R2# set term 1 then accept
    user@R2# set term 2 then reject
    
  4. Configure a política de roteamento que testa uma expressão regular.

    content_copy zoom_out_map
    [edit policy-options policy-statement test-regex]
    user@R2# set term find-routes from community complex-regex
    user@R2# set term find-routes then accept
    user@R2# set term reject-the-rest then reject
    [edit policy-options community]
    user@R2# set complex-regex members "^64510:[13].*$"
    
  5. Configure as rotas estáticas e anexe os valores da comunidade.

    content_copy zoom_out_map
    [edit routing-options static route 172.16.1.0/24]
    user@R2# set reject
    user@R2# set community [ 64510:1 64510:10 64510:11 64510:100 64510:111 ]
    [edit routing-options static route 172.16.2.0/24]
    user@R2# set reject
    user@R2# set community [ 64510:2 64510:20 64510:22 64510:200 64510:222 ]
    [edit routing-options static route 172.16.3.0/24]
    user@R2# set reject
    user@R2# set community [ 64510:3 64510:30 64510:33 64510:300 64510:333 ]
    [edit routing-options static route 172.16.4.0/24]
    user@R2# set reject
    user@R2# set community [ 64510:4 64510:40 64510:44 64510:400 64510:444 ]
    
  6. Configure o número do sistema autônomo (AS) e o ID do roteador.

    Isso afeta a tabela de roteamento do Dispositivo R2 e, como nenhum impacto no dispositivo R1 e no dispositivo R3.

    content_copy zoom_out_map
    [edit routing-options ]
    user@R2# set router-id 192.168.0.2
    user@R2# set autonomous-system 64511
    

Resultados

A partir do modo de configuração, confirme sua configuração entrando noshow interfaces, show protocolsshow policy-optionse 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.

content_copy zoom_out_map
user@R2# show interfaces
fe-1/2/0 {
    unit 0 {
        family inet {
            address 10.0.0.2/30;
        }
    }
}
lo0 {
    unit 0 {
        family inet {
            address 192.168.0.2/32;
        }
    }
}
content_copy zoom_out_map
user@R2# show protocols
bgp {
    group ext {
        type external;
        peer-as 64510;
        neighbor 10.0.0.1;
    }
}
content_copy zoom_out_map
user@R2# show policy-options
policy-statement send-static {
    term 1 {
        from protocol static;
        then accept;
    }
    term 2 {
        then reject;
    }
}
policy-statement test-regex {
    term find-routes {
        from community complex-regex;
        then accept;
    }
    term reject-the-rest {
        then reject;
    }
}
community complex-regex members "^64510:[13].*$";
content_copy zoom_out_map
user@R2# show routing-options
static {
    route 172.16.1.0/24 {
        reject;
        community [ 64510:1 64510:10 64510:11 64510:100 64510:111 ];
    }
    route 172.16.2.0/24 {
        reject;
        community [ 64510:2 64510:20 64510:22 64510:200 64510:222 ];
    }
    route 172.16.3.0/24 {
        reject;
        community [ 64510:3 64510:30 64510:33 64510:300 64510:333 ];
    }
    route 172.16.4.0/24 {
        reject;
        community [ 64510:4 64510:40 64510:44 64510:400 64510:444 ];
    }
}
router-id 192.168.0.2;
autonomous-system 64511;

Se você terminar de configurar o dispositivo, entre no commit modo de configuração.

Verificação

Confirme se a configuração está funcionando corretamente.

Teste para ver quais comunidades combinam com a expressão regular

Propósito

Você pode testar a expressão regular e sua política usando o test policypolicy-name comando.

Ação

  1. No dispositivo R2, execute o test policy test-regex 0/0 comando.

    content_copy zoom_out_map
    user@R2> test policy test-regex 0/0
    
    
    inet.0: 7 destinations, 7 routes (7 active, 0 holddown, 0 hidden)
    + = Active Route, - = Last Active, * = Both
    
    172.16.1.0/24      *[Static/5] 1d 00:32:50
                          Reject
    172.16.3.0/24      *[Static/5] 1d 00:32:50
                          Reject
    
    Policy test-regex: 2 prefix accepted, 5 prefix rejected
    
  2. No Dispositivo R2, altere a expressão regular para corresponder a um valor de comunidade contendo qualquer número de instâncias do dígito 2.

    content_copy zoom_out_map
    [edit policy-options community complex-regex]
    user@R2# delete members "^64510:[13].*$"
    user@R2# set members "^65020:2+$"
    user@R2# commit
    
  3. No dispositivo R2, reprise o test policy test-regex 0/0 comando.

    content_copy zoom_out_map
    user@R2> test policy test-regex 0/0
    
    inet.0: 7 destinations, 7 routes (7 active, 0 holddown, 0 hidden)
    + = Active Route, - = Last Active, * = Both
    
    172.16.2.0/24      *[Static/5] 1d 00:31:36
                          Reject
    
    Policy test-regex: 1 prefix accepted, 6 prefix rejected

Significado

As rotas 172.16.1.0 /24 e 172.16.3.0/24 têm comunidades anexadas que correspondem à expressão ^64510:[13].*$ A rota 172.16.2.0/24 tem comunidades que correspondem à expressão ^65020:2+$.

footer-navigation