EN ESTA PÁGINA
Ejemplo: Configuración de una subrutina de directivas
En este ejemplo se muestra el uso de una subrutina de directiva en una condición de coincidencia de directiva de enrutamiento.
Requisitos
No se necesita ninguna configuración especial más allá de la inicialización del dispositivo antes de configurar este ejemplo.
Descripción general
En el dispositivo R1, se configura una política llamada main
.
user@R1# show policy-options policy-statement main { term subroutine-as-a-match { from policy subroutine; then accept; } term nothing-else { then reject; } }
Esta política principal llama a una subrutina llamada subroutine
.
user@R1# show policy-options policy-statement subroutine { term get-routes { from protocol static; then accept; } term nothing-else { then reject; } }
El enrutador evalúa la lógica de main
una manera definida. El criterio de coincidencia de from policy subroutine
permite que el dispositivo de enrutamiento localice la subrutina. Todos los términos de la subrutina se evalúan en orden, siguiendo las reglas normales de procesamiento de políticas. En este ejemplo, todas las rutas estáticas de la tabla de enrutamiento coinciden con la subrutina con una acción de aceptación. Esto devuelve un resultado verdadero a la política original o de llamada que informa al dispositivo de que se ha producido una coincidencia positiva. Se ejecutan las acciones de la política de llamadas y se acepta la ruta. Todas las demás rutas de la tabla de enrutamiento no coinciden con la subrutina y devuelven un resultado falso a la política de llamadas. El dispositivo evalúa el segundo término de main
y rechaza las rutas.
Las acciones de la subrutina no aceptan ni rechazan realmente una ruta específica. Las acciones de la subrutina solo se traducen en un resultado verdadero o falso. Sin embargo, las acciones que modifican los atributos de una ruta se aplican a la ruta independientemente del resultado de la subrutina.
El dispositivo R1 del AS 64510 tiene varias rutas de cliente, algunas de las cuales son rutas estáticas configuradas localmente y otras se reciben de los dispositivos R2 y R3 a través de un BGP interno (IBGP). EL AS 64510 está conectado al dispositivo R4 en AS 64511. La política main
se aplica como una política de exportación en la sesión de emparejamiento BGP del dispositivo R1 con el dispositivo R4. Esto hace que el dispositivo R1 envíe solo sus propias rutas estáticas al dispositivo R4. Debido a la directiva main
, el dispositivo R1 no envía las rutas recibidas de sus pares internos, los dispositivos R2 y R3.
Cuando trabaje con subrutinas de directivas, es importante recordar que la política de exportación de EBGP predeterminada es anunciar todas las rutas de BGP aprendidas a todos los pares de EBGP. Esta política predeterminada está vigente en la política principal y también en la subrutina. Por lo tanto, como se muestra en este ejemplo, si no desea que la directiva de exportación de EBGP predeterminada surta efecto, debe configurar una then reject
acción de finalización como término final tanto en la directiva principal como en la subrutina de la directiva. En este ejemplo se muestra lo que sucede cuando falta el término final then reject
en la directiva principal o en la subrutina de la directiva.
Topología
Figura 1 muestra la red de ejemplo.
Configuración rápida de CLI muestra la configuración de todos los dispositivos en Figura 1.
En la sección #configuration318__policy-subroutine-st se describen los pasos del dispositivo R1.
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
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
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 Usar el editor de CLI en el modo de configuración el Manual del usuario de la CLI de Junos OS.
Para configurar el dispositivo R1:
Configure las interfaces del 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 las conexiones BGP internas (IBGP) con los dispositivos R2 y 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 la conexión EBGP con el 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 las conexiones OSPF con los dispositivos R2 y 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 la directiva
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 la directiva
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 la ruta estática a la red 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 el número de sistema autónomo (AS) y ID del enrutador.
[edit routing-options] user@R1# set router-id 192.168.0.1 user@R1# set autonomous-system 64510
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.
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;
Cuando termine de configurar el dispositivo, ingrese commit
en el modo de configuración.
Verificación
Confirme que la configuración funcione correctamente.
- Verificación de las rutas en el dispositivo R1
- Verificación del anuncio de ruta al dispositivo R4
- Experimentar con la directiva de exportación predeterminada de BGP
Verificación de las rutas en el dispositivo R1
Propósito
En el dispositivo R1, compruebe las rutas estáticas en la tabla de enrutamiento.
Acción
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
El dispositivo R1 tiene cuatro rutas estáticas.
Verificación del anuncio de ruta al dispositivo R4
Propósito
En el dispositivo R1, asegúrese de que las rutas estáticas se anuncien en el dispositivo R4.
Acción
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 era de esperar, el dispositivo R1 solo anuncia sus rutas estáticas al dispositivo R4.
Experimentar con la directiva de exportación predeterminada de BGP
Propósito
Vea lo que puede suceder cuando elimina el término final then reject
de la póliza main
o la política subroutine
.
Acción
En el dispositivo R1, desactive el término final de la política
main
.[edit policy-options policy-statement main] user@R1# deactivate term nothing-else user@R1# commit
En el dispositivo R1, compruebe qué rutas se anuncian para el 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
Ahora, todas las rutas BGP del dispositivo R1 se envían al dispositivo R4. Esto se debe a que, una vez devuelto el procesamiento a la directiva
main
, la directiva de exportación predeterminada de BGP surte efecto.En el dispositivo R1, reactive el último término de la directiva
main
y desactive el último plazo de la directivasubroutine
.[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
En el dispositivo R1, compruebe qué rutas se anuncian para el 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
Ahora, todas las rutas BGP del dispositivo R1 se envían al dispositivo R4. Esto se debe a que, antes de que el procesamiento se devuelva a la directiva
main
, la directiva de exportación BGP predeterminada surte efecto en la directivasubroutine
.
Significado
Para evitar que la directiva de exportación de BGP predeterminada surta efecto, debe incluir un término final then reject
en la política principal y en todas las subrutinas a las que se hace referencia.