Ayúdenos a mejorar su experiencia.

Háganos saber su opinión.

¿Podría dedicar dos minutos de su tiempo a completar una encuesta?

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

¿Fue útil esta traducción automática?

starstarstarstarstar
Go to English page
DESCARGO DE RESPONSABILIDAD:

Esta página será traducida por software de traducción automática de terceros. Si bien nos hemos esforzado por proporcionar una traducción de calidad, Juniper Networks no puede garantizar su corrección. En caso de duda respecto a la exactitud de la información que ofrece esta traducción, consulte la versión en inglés. El PDF descargable está disponible solo en inglés.

Ejemplo: Probar una política de enrutamiento con expresiones regulares complejas

date_range 18-Jan-25

En este ejemplo se muestra cómo probar una directiva de enrutamiento mediante el comando para asegurarse de test policy que la directiva produce los resultados esperados antes de aplicarla en un entorno de producción. Las expresiones regulares, especialmente las complejas, pueden ser difíciles de hacer bien. En este ejemplo se muestra cómo utilizar el comando para asegurarse de test policy que las expresiones regulares tienen el efecto deseado.

Requisitos

No se requiere ninguna configuración especial más allá de la inicialización del dispositivo antes de configurar este ejemplo.

Descripción general

En este ejemplo se muestran dos dispositivos de enrutamiento con una conexión BGP externa (EBGP) entre ellos. El dispositivo R2 utiliza la sesión BGP para enviar rutas del cliente al dispositivo R1. Estas rutas estáticas tienen varios valores de comunidad adjuntos.

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 probar una expresión regular compleja, el dispositivo R2 tiene una directiva llamada test-regex que localiza rutas. La directiva se configura de la siguiente manera:

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].*$";

Esta expresión regular coincide con los valores de la comunidad que comienzan con 1 o 3.

Topología

Figura 1 muestra la red de ejemplo.

Figura 1: Prueba de directiva de enrutamiento para expresiones regulares complejasPrueba de directiva de enrutamiento para expresiones regulares complejas

Configuración rápida de CLI muestra la configuración de todos los dispositivos en Figura 1.

En la sección #configuration271__policy-test-regex-st se describen los pasos del dispositivo R2.

Configuración

Configuración rápida de CLI

Para configurar rápidamente este ejemplo, copie los siguientes comandos, péguelos en un archivo de texto, elimine los saltos de línea, cambie los detalles necesarios para que coincidan con su configuración de red y, a continuación, copie y pegue los comandos en la CLI en el nivel de [edit] jerarquía.

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

Procedimiento

Procedimiento paso a paso

El ejemplo siguiente requiere que navegue por varios niveles en la jerarquía de configuración. Para obtener información acerca de cómo navegar por la CLI, consulte Uso del editor de CLI en modo de configuración en la Guía del usuario de CLI.

Para configurar el dispositivo R2:

  1. Configure las 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 la política de importación a la sesión de emparejamiento BGP con el 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 la directiva de enrutamiento que envía rutas 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 la directiva de enrutamiento que prueba una expresión 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 las rutas estáticas y adjunte valores de comunidad.

    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 el número de sistema autónomo (AS) y el ID del enrutador.

    Esto afecta a la tabla de enrutamiento del dispositivo R2 y no afecta a los dispositivos R1 y 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

Desde el modo de configuración, ingrese los comandos show interfaces, show protocols, show policy-options y show routing-options para confirmar la configuración. Si el resultado no muestra la configuración deseada, repita las instrucciones en este ejemplo para corregir la configuración.

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;

Cuando termine de configurar el dispositivo, ingrese commit en el modo de configuración.

Verificación

Confirme que la configuración funcione correctamente.

Prueba para ver qué comunidades coinciden con la expresión regular

Propósito

Puede probar la expresión regular y su directiva mediante el test policypolicy-name comando.

Acción

  1. En el dispositivo R2, ejecute el 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. En el dispositivo R2, cambie la expresión regular para que coincida con un valor de comunidad que contenga cualquier número de instancias del 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. En el dispositivo R2, vuelva a ejecutar el 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

Las rutas 172.16.1.0 /24 y 172.16.3.0/24 tienen comunidades adjuntas que coinciden con la expresión ^64510:[13].*$. La ruta 172.16.2.0/24 tiene comunidades que coinciden con la expresión ^65020:2+$.

footer-navigation