Filtrado selectivo basado en clases en enrutadores PTX
Filtrado selectivo basado en clases en enrutadores PTX
Para los enrutadores y tarjetas de línea de la serie PTX compatibles, puede filtrar el tráfico IPv4 e IPv6 según la clasificación de origen o destino (uso de clase de origen, SCU) y (uso de clase de destino, DCU). Esto es útil porque significa que puede aplicar un filtro selectivamente, en un subconjunto de paquetes de una clase, en lugar de todos los paquetes de la clase. Además, el flujo de paquetes a través del motor de reenvío de paquetes (PFE) está optimizado y el filtrado es más eficiente.
Para los proveedores de servicios, el filtrado basado en clases le permite proporcionar servicios avanzados como:
-
Manipulación del comportamiento por salto mediante el ajuste de la clase de reenvío del paquete en función de la clase del paquete de origen o destino y otros criterios de filtro.
-
Limitación de la tasa de tráfico hacia ciertas interfaces de clientes, con un alto volumen de tráfico que debe caer (por ejemplo, bajo ataque DDoS). Normalmente, implementaría un filtro de interfaz saliente para limitar la velocidad del tráfico. Sin embargo, esto puede ser ineficaz porque el tráfico sigue cruzando la estructura en los sistemas distribuidos y consume un ancho de banda limitado de la estructura. La ineficiencia se hace aún más visible en un sistema de cola de salida virtual, como PTX, donde la admisión en la cola de salida ocurre antes de que se ejecute el filtro de salida y cualquier acción de caída posterior en el filtro de salida requiere compensación: se debe admitir más tráfico en la cola, lo que requiere más ancho de banda de estructura y más espacio de búfer en chip de salida (que es un recurso limitado). Los filtros basados en clases se ejecutan en la canalización de entrada antes de la admisión de los paquetes en la cola de salida. Este mecanismo se recomienda sobre los filtros de interfaz de salida regulares, si espera dejar caer grandes volúmenes de tráfico hacia ciertos destinos.
El filtrado basado en clases también es efectivo para ataques DoS "bajos y lentos" que se dirigen a los recursos de aplicaciones y servidores imitando patrones de tráfico normales.
Para admitir el filtrado basado en clases, se introducen dos nuevos puntos de enlace en la tabla de reenvío para enrutadores PTX: source-class
y destination-class
.
Aquí se muestra la jerarquía de la CLI, donde src-class-name o dest-class-name es el nombre del filtro definido en la política correspondiente.
routing-options forwarding-table source-class src-class-name family [inet | inet6] filter <filter-name>
routing-options forwarding-table destination-class dest-class-name family [inet | inet6] filter <filter-name>
También puede configurar filtros específicos de la instancia en varias clases de SCU y DCU. De forma predeterminada, solo se crea una instancia de un conjunto de contadores y aplicadores para un filtro. En el filtro específico de la instancia, se crea un conjunto separado de contadores y aplicadores de políticas para cada punto de conexión del filtro.
firewall family [inet | inet6] filter <filter name> instance-specific
Descripción del filtrado basado en clases en enrutadores PTX
Inicialmente, se introdujo la característica de uso de clase de origen (SCU) para proporcionar un desglose estadístico del tráfico enviado hacia una interfaz específica por prefijo de origen (identificado por la clase de origen). El uso de clase de destino (DCU) se introdujo originalmente para proporcionar un desglose estadístico del tráfico recibido en una interfaz por prefijo de destino (identificado por la clase de destino).
Ambas clases de origen o destino se asignan al paquete en el proceso de búsqueda de origen o destino. Por lo tanto, las condiciones de coincidencia del filtro de origen y destino solo se pueden evaluar si el filtro se ejecuta después de la búsqueda.
Los enrutadores Juniper admiten múltiples puntos de enlace de filtro, aquellos que pueden aprovechar el resultado de la clasificación de origen y destino se enumeran a continuación, con pautas de uso:
-
Filtro de interfaz de salida (establecer interfaces <nombre de interfaz> familia inet filter <output>. Compatible con cualquier plataforma PTX, pero no se recomienda si se espera descartar grandes volúmenes de tráfico en estado estable (por ejemplo, al implementar un filtro de mitigación de ataques DDoS). Es posible que el tráfico de ataque DDoS descartado no sea compensado por otro tráfico que no coincida con los criterios de ataque DDoS debido al ancho de banda limitado de la estructura y al espacio de búfer en el chip de salida limitado.
-
Filtrar después de reenviar la tabla de búsqueda de filtro (establecer opciones de reenvío de la familia de filtros inet filter <filter-name> salida). Compatible con plataformas Express 2 (PE) y Express 3 (ZX). Sin embargo, los filtros se instancian en la canalización de salida, por lo tanto, el comportamiento de descarte es similar al filtro de interfaz de salida normal.
-
Punto de enlace específico de la clase de origen o destino (set routing-options-forwarding-table source-class src-class-name family [inet | inet6] filter <filter-name>). Compatible con las plataformas Express 2 (PE), Express 3 (ZX) y Express 4 (BT). Se crea una instancia de este filtro en la canalización de entrada. Esta es la opción recomendada para descartar grandes volúmenes de tráfico. Esta opción también se recomienda si necesita anular la clase de reenvío y, posteriormente, la asignación de cola de salida. En un sistema de cola de salida virtual, la cola se selecciona en la canalización de entrada y cualquier anulación también debe ocurrir en la canalización de entrada.
-
Tenga en cuenta que estas acciones de filtro no se admiten en el filtro enlazado al punto de enlace específico de la clase de origen o destino:
-
instancia de enrutamiento
-
Siguiente IP
-
interfaz siguiente
-
desencapsular
-
encapsular
-
-
Los filtros selectivos basados en clases no se pueden aplicar a paquetes enlazados al host.
-
Los paquetes que no superan las búsquedas de uRPF, pero que se restauran mediante filtros de error de uRPF, no están sujetos a búsquedas de SCU/DCU. Por lo tanto, no se pueden aplicar filtros selectivos basados en clases en dichos paquetes.
-
Los filtros sólo se aplican a los paquetes que ingresan en interfaces que tienen habilitada la función SCU/DCU. Esto significa que los filtros se aplicarían independientemente de si SCU está configurada en interfaces de salida o no.
-
Los paquetes a los que se debe aplicar un filtro selectivo basado en clases pueden provocar una caída en el rendimiento. La caída del rendimiento estaría en función de la tasa de tráfico entrante, el tamaño promedio de los paquetes y la cantidad de tráfico sujeto a los filtros. Sin embargo, los paquetes en los que no se aplican filtros selectivos basados en clases no afectan al rendimiento.
-
La contabilidad de DCU es aplicable a los paquetes caídos por filtros.
-
La contabilidad de salida de SCU no es aplicable a los paquetes descartados por filtros.
-
Los filtros selectivos basados en clases no se pueden usar con una perilla específica de la interfaz, ya que esta perilla solo se aplica a los filtros conectados a la interfaz.
-
No se admiten listas (listas de entrada/salida) de filtros selectivos basados en clases.
-
No se admiten sistemas lógicos.
-
Solo IPv4 e IPv6 son los protocolos de carga compatibles. MPLS no es compatible.
-
Si un paquete coincide con los filtros selectivos basados en clases SCU y DCU, solo se aplica el último filtro (es decir, el filtro DCU) al paquete pero no ambos filtros.
Ejemplo: Filtrado selectivo basado en clases (enrutadores PTX)
En este ejemplo se muestra cómo aplicar acciones de firewall (descartar, rechazar o vigilar) a los flujos de tráfico IPv4 e IPv6 en función de la clasificación de origen o destino. Se aplica a enrutadores PTX10001-36MR, PTX10003-160C, PTX10003-80C, PTX10004 y PTX10008 que ejecutan Junos Evolved OS versión 21.2, enrutadores PTX10016 que ejecutan JUNOS Evolved OS versión 21.4 o enrutadores PTX3000, PTX-5000, PTX1000, PTX10002, PTX10008 PTX10016 que ejecutan software Junos OS versión 21.2 o posterior.
Requisitos
En este ejemplo se usa BGP porque BGP se puede usar para intercambiar rutas entre dispositivos en una topología de red que consta de borde del cliente, borde del proveedor y enrutadores del proveedor. Consulte Descripción general de la configuración de BGP para obtener más información.
Descripción general
En este ejemplo se utilizan tres dispositivos de enrutamiento: un dispositivo perimetral del cliente (CE), un dispositivo perimetral del proveedor (PE) y un dispositivo núcleo del proveedor (P). Se muestra la configuración del tráfico IPv4, que incluye dos conjuntos de clases SCU y DCU, además de los filtros de firewall. En la siguiente figura, los prefijos IP /32 representan hosts conectados a los enrutadores perimetral del cliente (CE) y proveedor (P), respectivamente.

En este ejemplo, definimos dos clases de tráfico: SCU-1 y SCU-2, el primero se asigna a los prefijos de la subred 172.16.2.0/24 y el segundo se asigna a los prefijos de la subred 172.16.3.0/24. Otros prefijos no tienen ninguna asignación de clase. Como se muestra en el siguiente fragmento de CLI, la directiva de enrutamiento se define en el enrutador de PE para asignar prefijos a source-class scu-1 y source-class scu-2.
show policy-options policy-statement scu-class { term gold { from { route-filter 172.16.2.0/24 orlonger; } then source-class scu-1; accept; term silver { from { route-filter 172.16.3.0/24 orlonger; } then source-class scu-2; accept; }
Para tener en cuenta el tráfico que ingresa a las interfaces de PE desde CE, la política llamada dcu-class definida en el enrutador PE utiliza filtros de ruta para colocar el tráfico en dcu-1, otros prefijos no tienen asignaciones de clase.
show policy-options policy-statement dcu-class { term gold { from { route-filter 172.16.5.0/24 orlonger; } then destination-class dcu-1; accept; }
A continuación, las directivas se aplican a la tabla de reenvío.
forwarding-table { export [ dcu_class scu_class ]; }
En el siguiente paso, configuramos un filtro en el enrutador PE.
show firewall { family inet { filter f1 { term t1 { from { protocol icmp; } then { count c1; } } } } }
Y adjunte ese filtro a los puntos de enlace de clase de origen y destino específicos en el enrutador PE.
show routing-options forwarding-table source-class scu-1 { family inet { filter { f1; } } } destination-class dcu-1 { family inet { filter { f1; } } }
Configuración
Procedimiento
Configuración rápida de CLI
Para configurar rápidamente este ejemplo, copie los siguientes comandos, péguelos en un archivo de texto, quite 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 ejemplo se utilizan rutas estáticas para proporcionar conectividad y direcciones de interfaz de circuito cerrado para probar la operación.
Dispositivo CE
set interfaces et-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 interfaces lo0 unit 0 family inet address 172.16.0.1/32 set protocols bgp group ext type external set protocols bgp group ext export send-direct set protocols bgp group ext export send-static set protocols bgp group ext peer-as 200 set protocols bgp group ext neighbor 10.0.0.2 set policy-options policy-statement send-direct term 1 from protocol direct set policy-options policy-statement send-direct term 1 then accept 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.1.0.0/30 next-hop 10.0.0.2 set routing-options autonomous-system 100
PE del dispositivo
set interfaces et-1/2/0 unit 0 family inet address 10.0.0.2/30 set interfaces et-1/2/1 unit 0 family inet accounting source-class-usage input set interfaces et-1/2/1 unit 0 family inet accounting destination-class-usage set interfaces et-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 ext type external set protocols bgp group ext export send-direct set protocols bgp group ext neighbor 10.0.0.1 peer-as 100 set protocols bgp group ext neighbor 10.1.0.2 peer-as 300 set policy-options policy-statement dcu_class term gold from route-filter 172.16.5.0/24 orlonger set policy-options policy-statement dcu_class term gold then destination-class dcu-1 set policy-options policy-statement scu_class term gold from route-filter 172.16.2.0/24 orlonger set policy-options policy-statement scu_class term gold then source-class scu-1 set policy-options policy-statement scu_class term silver from route-filter 172.16.3.0/24 orlonger set policy-options policy-statement scu_class term silver then source-class scu-1 set policy-options policy-statement send-direct term 1 from protocol direct set policy-options policy-statement send-direct term 1 then accept set firewall family inet filter f1 term 0 from protocol icmp set firewall family inet filter f1 term 0 then count c1 set firewall family inet filter f1 term 0 then accept set routing-options autonomous-system 200 set routing-options forwarding-table export dcu_class set routing-options forwarding-table export scu_class
Dispositivo P
set interfaces et-1/2/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 interfaces lo0 unit 0 family inet address 172.16.0.3/32 set interfaces lo0 unit 0 family inet address 172.16.0.3/32 set interfaces lo0 unit 0 family inet address 172.16.0.3/32 set interfaces lo0 unit 0 family inet address 172.16.0.3/32 set interfaces lo0 unit 0 family inet address 172.16.0.3/32 set interfaces lo0 unit 0 family inet address 172.16.0.3/32 set protocols bgp group ext type external set protocols bgp group ext export send-direct set protocols bgp group ext export send-static set protocols bgp group ext peer-as 200 set protocols bgp group ext neighbor 10.1.0.1 set policy-options policy-statement send-direct term 1 from protocol direct set policy-options policy-statement send-direct term 1 then accept 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.0.0.0/30 next-hop 10.1.0.1 set routing-options static route 172.16.2.0/24 discard set routing-options static route 172.16.3.0/24 discard set routing-options static route 172.16.4.0/24 discard set routing-options static route 172.16.5.0/24 discard set routing-options static route 172.16.6.0/24 discard set routing-options static route 172.16.7.0/24 discard set routing-options autonomous-system 300
Procedimiento paso a paso
Para agrupar prefijos de origen y destino en una clase de reenvío:
-
Cree las interfaces del enrutador en el enrutador PE.
[edit interfaces] set et-1/2/0 unit 0 family inet accounting source-class-usage output set et-1/2/0 unit 0 family inet address 10.0.0.2/30 set et-1/2/1 unit 0 family inet accounting source-class-usage input set et-1/2/1 unit 0 family inet accounting destination-class-usage set et-1/2/1 unit 0 family inet address 10.1.0.1/30 set lo0 unit 0 family inet address 192.168.0.2/32
-
Configure BGP en el enrutador PE.
[edit] set protocols bgp group ext type external set protocols bgp group ext export send-direct set protocols bgp group ext neighbor 10.0.0.1 peer-as 100 set protocols bgp group ext neighbor 10.1.0.2 peer-as 300
-
Configure el número de sistema autónomo (AS) del enrutador de PE.
[edit] set routing-options autonomous-system 200
-
Configure la directiva DCU en el enrutador PE.
[edit] set policy-options policy-statement dcu_class term class-1 from route-filter 172.16.5.0/24 orlonger set policy-options policy-statement dcu_class term class-1 then destination-class dcu-1
-
Configure la directiva de SCU en el enrutador de PE.
[edit] set policy-options policy-statement scu_class term class-1 from route-filter 172.16.2.0/24 orlonger set policy-options policy-statement scu_class term class-1 then source-class scu-1
-
Aplique las políticas a la tabla de reenvío del enrutador PE.
[edit] set routing-options forwarding-table export dcu_class set routing-options forwarding-table export scu_class
-
Cree el filtro en el enrutador de PE.
[edit] set firewall family inet filter f1 from protocol icmp then count c1
-
Enlazar el filtro a la clase de origen y a los puntos de enlace de clase de destino del enrutador de PE.
Enlazar el filtro al uso de la clase de destino.
[edit] set routing-options forwarding-table destination-class dcu-1 family inet filter f1
Enlazar el filtro al uso de la clase de origen.
[edit] set routing-options forwarding-table source-class scu-1 family inet filter f1
-
(Opcional) Configure una política de enrutamiento que anuncie rutas directas en el enrutador de PE.
[edit] set policy-options policy-statement send-direct term 1 from protocol direct set policy-options policy-statement send-direct term 1 then accept
Resultados
Desde el modo de configuración, confirme la configuración emitiendo los show interfaces
comandos , show protocols
, show policy-options
y show routing-options
en el enrutador PE. Si el resultado no muestra la configuración deseada, repita las instrucciones en este ejemplo para corregir la configuración.
show interfaces et-1/2/0 { unit 0 { family inet { address 10.0.0.2/30; } } } et-1/2/1 { unit 0 { family inet { accounting { source-class-usage { input; } } address 10.1.0.1/30; } } } lo0 { unit 0 { family inet { address 192.168.0.2/32; } } }
show interface statistics et-1/2/0 Physical interface: et-1/2/0:0, Enabled, Physical link is Up Interface index: 1087, SNMP ifIndex: 622 Link-level type: Ethernet, MTU: 1514, LAN-PHY mode, Speed: 10Gbps, BPDU Error: None, Loop Detect PDU Error: None, MAC-REWRITE Error: None, Loopback: Disabled, Source filtering: Disabled, Flow control: Enabled, Media type: Fiber Device flags : Present Running Interface flags: SNMP-Traps CoS queues : 8 supported, 8 maximum usable queues Current address: e4:5d:37:4e:e8:40, Hardware address: e4:5d:37:4e:e8:40 Last flapped : 2021-03-16 09:33:43 PDT (03:39:51 ago) Statistics last cleared: 2021-03-16 13:13:01 PDT (00:00:33 ago) Input rate : 0 bps (0 pps) Output rate : 0 bps (0 pps) Input errors: 0, Output errors: 0 Active alarms : None Active defects : None PCS statistics Seconds Bit errors 0 Errored blocks 0 PRBS Mode : Disabled Interface transmit statistics: Disabled Link Degrade : Link Monitoring : Disable Logical interface et-1/2/0:0.0 (Index 1047) (SNMP ifIndex 673) Flags: Up SNMP-Traps Encapsulation: ENET2 Input packets : 14 Output packets: 6 Protocol inet, MTU: 1500 Flags: Sendbcast-pkt-to-re, SCU-out Packets Bytes Source class (packet-per-second) (bits-per-second) scu-1 6 504 ( 0)( 0) Addresses, Flags: Is-Preferred Is-Primary Destination: 44.4.4/24, Local: 44.4.4.4, Broadcast: 44.4.4.255 Protocol inet6, MTU: 1500 Flags: None, SCU-out Packets Bytes Source class (packet-per-second) (bits-per-second) scu-1 0 0 ( 0) ( 0) Addresses, Flags: Is-Preferred Is-Primary Destination: 4001::/64, Local: 4001::4001 Addresses, Flags: Is-Preferred Destination: fe80::/64, Local: fe80::e65d:37ff:fe4e:e840 Protocol multiservice, MTU: Unlimited Flags: None
show firewall Filter: f1 Counters: Name Bytes Packets c1 0 0 Filter: v4_instance_new-scu-scu-1 Counters: Name Bytes Packets c_v4_instance_new-scu-scu-1 504 6 Filter: v6_instance_new-scu-scu-1 Counters: Name Bytes Packets c_v6_instance_new-scu-scu-1 0 0
show policy-options policy-statement dcu_class { term class-1 { from { route-filter 172.16.5.0/24 orlonger; } then destination-class dcu-1; } } policy-statement scu_class { term class-1 { from { route-filter 172.16.2.0/24 orlonger; } then source-class scu-1; } } policy-statement send-direct { term 1 { from protocol direct; then accept; } }
show routing-options autonomous-system 200; forwarding-table { export [ dcu_class scu_class ]; }
Cuando haya terminado de configurar el dispositivo, escriba confirmar desde el modo de configuración.