EN ESTA PÁGINA
Ejemplo: Reenvío de paquetes a la interfaz de descarte
En este ejemplo se muestra cómo usar el enrutamiento de descarte para mitigar los ataques de denegación de servicio (DoS), proteger recursos de red vitales de ataques externos, proporcionar servicios de protección a los clientes para que cada cliente pueda iniciar su propia protección, y registrar y realizar un seguimiento de los intentos de DoS.
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 enrutamiento de descarte, los enrutadores están configurados con reglas que impiden que millones de solicitudes en un corto período de tiempo se envíen a la misma dirección. Si se reciben demasiadas solicitudes en un corto período de tiempo, el enrutador simplemente descarta las solicitudes sin reenviarlas. Las solicitudes se envían a un enrutador que no reenvía los paquetes. Las rutas problemáticas a veces se denominan rutas de descarte o rutas con agujeros negros. Los tipos de rutas que deben descartarse se identifican como ataques a clientes de pares u otros clientes, ataques de clientes a pares u otros clientes, controladores de ataque, que son hosts que proporcionan instrucciones de ataque, y espacios de direcciones no asignados, conocidos como bogons o direcciones IP no válidas.
Después de identificar el intento de ataque, los operadores pueden implementar una configuración para mitigar el ataque. Una forma de configurar el enrutamiento de descarte en Junos OS es crear una ruta estática de descarte para cada próximo salto utilizado para las rutas de descarte. Una ruta estática de descarte utiliza la discard
opción.
Por ejemplo:
user@host# show routing-options
static {
route 192.0.2.101/32 discard;
route 192.0.2.103/32 discard;
route 192.0.2.105/32 discard;
}
user@host> show route protocol static terse inet.0: 3 destinations, 3 routes (3 active, 0 holddown, 0 hidden) + = Active Route, - = Last Active, * = Both A V Destination P Prf Metric 1 Metric 2 Next hop AS path * ? 192.0.2.101/32 S 5 Discard * ? 192.0.2.103/32 S 5 Discard * ? 192.0.2.105/32 S 5 Discard
Otra estrategia, que es el enfoque principal de este ejemplo, es usar la política de enrutamiento y la interfaz de descarte. En este enfoque, la interfaz de descarte contiene el siguiente salto que está asignando a las rutas de ruta nula. Una interfaz de descarte sólo puede tener una unidad lógica (unidad 0), pero puede configurar varias direcciones IP en la unidad 0.
Por ejemplo:
user@host# show interfaces dsc
unit 0 {
family inet {
address 192.0.2.102/32 {
destination 192.0.2.101;
}
address 192.0.2.104/32 {
destination 192.0.2.103;
}
address 192.0.2.106/32 {
destination 192.0.2.105;
}
}
}
user@host> show interfaces terse dsc b Interface Admin Link Proto Local Remote dsc up up dsc.0 up up inet 192.0.2.102 --> 192.0.2.101 192.0.2.104 --> 192.0.2.103 192.0.2.106 --> 192.0.2.105
La ventaja de usar una interfaz de descarte en lugar de usar rutas estáticas de descarte es que la interfaz de descarte le permite configurar y asignar filtros a la interfaz para contar, registrar y muestrear el tráfico. Esto se demuestra en este ejemplo.
Para descartar paquetes realmente, se requiere una política de enrutamiento adjunta a las sesiones BGP. Para localizar rutas aptas para descartar, puede usar un filtro de ruta, una lista de acceso o un valor de comunidad BGP.
Por ejemplo, así es como usaría un filtro de ruta:
Filtro de ruta
protocols { bgp { import blackhole-by-route; } } policy-options { policy-statement blackhole-by-route { term specific-routes { from { route-filter 10.10.10.1/32 exact; route-filter 10.20.20.2/32 exact; route-filter 10.30.30.3/32 exact; route-filter 10.40.40.4/32 exact; } then { next-hop 192.0.2.101 } } } }
Figura 1 muestra la red de ejemplo.

El ejemplo incluye tres enrutadores con sesiones de BGP externas (EBGP) establecidas.
El dispositivo R1 representa el dispositivo atacante. El dispositivo R3 representa el enrutador más cercano al dispositivo que está siendo atacado. El dispositivo R2 mitiga el ataque reenviando paquetes a la interfaz de descarte.
En el ejemplo se muestra un filtro de salida aplicado a la interfaz de descarte.
Un problema con el uso de un solo filtro de ruta nula es la visibilidad. Todos los paquetes descartados incrementan el mismo contador. Para ver qué categorías de paquetes se están descartando, use el uso de clase de destino (DCU) y asocie una clase definida por el usuario con cada comunidad de ruta nula. A continuación, haga referencia a las clases DCU en un filtro de firewall. Para ver ejemplos relacionados, consulte Ejemplo: Agrupar prefijos de origen y destino en una clase de reenvío y Ejemplo: Configuración de un filtro de limitación de velocidad basado en la clase de destino.
En comparación con el uso de filtros de ruta y listas de acceso, el uso de un valor de comunidad es el enfoque menos difícil administrativamente y el más escalable. Por lo tanto, este es el enfoque que se muestra en este ejemplo.
De forma predeterminada, el siguiente salto debe ser igual a la dirección del par BGP externo (EBGP). La modificación del siguiente salto para servicios de ruta nula requiere que la característica multisalto esté configurada en las sesiones de EBGP.
Configuración rápida de CLI muestra la configuración de todos los dispositivos en Figura 1.
En la sección #configuration756__policy-discard-st se describen los pasos del dispositivo R2.
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, 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 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 200 set protocols bgp group ext neighbor 10.0.0.2 set routing-options autonomous-system 100
Dispositivo R2
set interfaces fe-1/2/0 unit 0 family inet address 10.0.0.2/30 set interfaces fe-1/2/1 unit 0 family inet address 10.1.0.1/30 set interfaces dsc unit 0 family inet filter output log-discard set interfaces dsc unit 0 family inet address 192.0.2.102/32 destination 192.0.2.101 set interfaces lo0 unit 0 family inet address 192.168.0.2/32 set protocols bgp import blackhole-policy set protocols bgp group ext type external set protocols bgp group ext multihop set protocols bgp group ext export dsc-export 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 blackhole-policy term blackhole-communities from community blackhole-all-routers set policy-options policy-statement blackhole-policy term blackhole-communities then next-hop 192.0.2.101 set policy-options policy-statement dsc-export from route-filter 192.0.2.101/32 exact set policy-options policy-statement dsc-export from route-filter 192.0.2.102/32 exact set policy-options policy-statement dsc-export then community set blackhole-all-routers set policy-options policy-statement dsc-export then accept set policy-options community blackhole-all-routers members 100:5555 set routing-options static route 192.0.2.102/32 next-hop 192.0.2.101 set routing-options autonomous-system 200 set firewall filter log-discard term one then count counter set firewall filter log-discard term one then log
Dispositivo R3
set interfaces fe-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 192.0.2.102/32 set protocols bgp group ext type external set protocols bgp group ext peer-as 200 set protocols bgp group ext neighbor 10.1.0.1 set routing-options autonomous-system 300
Procedimiento paso a paso
En el ejemplo siguiente, debe explorar por varios niveles en la jerarquía de configuración. Para obtener instrucciones sobre cómo hacerlo, consulte Usar el editor de CLI en el modo de configuración la Guía del usuario de la CLI de Junos OS.
Para configurar el dispositivo R2:
Cree las interfaces del enrutador.
[edit interfaces] user@R2# set fe-1/2/0 unit 0 family inet address 10.0.0.2/30 user@R2# set fe-1/2/1 unit 0 family inet address 10.1.0.1/30 user@R2# set lo0 unit 0 family inet address 192.168.0.2/32
Configure un filtro de firewall que coincida con todos los paquetes y cuente y registre los paquetes.
[edit firewall filter log-discard term one] user@R2# set then count counter user@R2# set then log
Cree una interfaz de descarte y aplique el filtro de firewall de salida.
Los filtros de firewall de entrada no tienen ningún impacto en este contexto.
[edit interfaces dsc unit 0 family inet] user@R2# set filter output log-discard user@R2# set address 192.0.2.102/32 destination 192.0.2.101
Configure una ruta estática que envíe el siguiente salto a la dirección de destino especificada en la interfaz de descarte.
[edit routing-options static] user@R2# set route 192.0.2.102/32 next-hop 192.0.2.101
Configure el emparejamiento BGP.
[edit protocols bgp ] user@R2# set group ext type external user@R2# set group ext multihop user@R2# set group ext neighbor 10.0.0.1 peer-as 100 user@R2# set group ext neighbor 10.1.0.2 peer-as 300
Configure las directivas de enrutamiento.
[edit policy-options policy-statement blackhole-policy term blackhole-communities] user@R2# set from community blackhole-all-routers user@R2# set then next-hop 192.0.2.101 [edit policy-options policy-statement dsc-export] user@R2# set from route-filter 192.0.2.101/32 exact user@R2# set from route-filter 192.0.2.102/32 exact user@R2# set then community set blackhole-all-routers user@R2# set then accept [edit policy-options community blackhole-all-routers] user@R2# set members 100:5555
Aplique las directivas de enrutamiento.
[edit protocols bgp ] user@R2# set import blackhole-policy user@R2# set group ext export dsc-export
Configure el número de sistema autónomo (AS).
[edit routing-options] user@R2# set autonomous-system 200
Resultados
Desde el modo de configuración, confirme la configuración emitiendo los show interfaces
comandos , show protocols
, show policy-options
show routing-options
, y show firewall
. Si el resultado no muestra la configuración deseada, repita las instrucciones en este ejemplo para corregir la configuración.
[edit] user@R2# show interfaces fe-1/2/0 { unit 0 { family inet { address 10.0.0.2/30; } } } fe-1/2/1 { unit 0 { family inet { address 10.1.0.1/30; } } } dsc { unit 0 { family inet { filter { output log-discard; } address 192.0.2.102/32 { destination 192.0.2.101; } } } } lo0 { unit 0 { family inet { address 192.168.0.2/32; } } }
user@R2# show protocols bgp { import blackhole-policy; group ext { type external; multihop; export dsc-export; neighbor 10.0.0.1 { peer-as 100; } neighbor 10.1.0.2 { peer-as 300; } } }
user@R2# show policy-options policy-statement blackhole-policy { term blackhole-communities { from community blackhole-all-routers; then { next-hop 192.0.2.101; } } } policy-statement dsc-export { from { route-filter 192.0.2.101/32 exact; route-filter 192.0.2.102/32 exact; } then { community set blackhole-all-routers; accept; } } community blackhole-all-routers members 100:5555;
user@R2# show routing-options static { route 192.0.2.102/32 next-hop 192.0.2.101; } autonomous-system 200;
user@R2# show firewall filter log-discard { term one { then { count counter; log; } } }
Cuando termine de configurar el dispositivo, ingrese commit
en el modo de configuración.
Verificación
Confirme que la configuración funcione correctamente.
- Borrar los contadores del firewall
- Hacer ping a la dirección 192.0.2.101
- Comprobación del filtro de salida
- Comprobación del atributo Community
Borrar los contadores del firewall
Propósito
Borre los contadores para asegurarse de que está comenzando desde un estado cero (0) conocido.
Acción
Desde el dispositivo R2, ejecute el
clear firewall
comando.user@R2> clear firewall filter log-discard
Desde el dispositivo R2, ejecute el
show firewall
comando.user@R2> show firewall filter log-discard Filter: /log-discard Counters: Name Bytes Packets counter 0 0
Hacer ping a la dirección 192.0.2.101
Propósito
Enviar paquetes a la dirección de destino.
Acción
Desde el dispositivo R1, ejecute el ping
comando.
user@R1> ping 192.0.2.101 PING 192.0.2.101 (192.0.2.101): 56 data bytes ^C --- 192.0.2.101 ping statistics --- 4 packets transmitted, 0 packets received, 100% packet loss
Significado
Como era de esperar, la solicitud de ping falla y no se envía ninguna respuesta. Los paquetes están siendo descartados.
Comprobación del filtro de salida
Propósito
Compruebe que el filtro de firewall del dispositivo R2 funciona correctamente.
Acción
En el dispositivo R2, escriba el show firewall filter log-discard
comando.
user@R2> show firewall filter log-discard Filter: log-discard Counters: Name Bytes Packets counter 336 4
Significado
Como era de esperar, el contador se está incrementando.
El paquete ping lleva 20 bytes adicionales de sobrecarga IP, así como 8 bytes de encabezado ICMP.
Comprobación del atributo Community
Propósito
Compruebe que la ruta se está etiquetando con el atributo community.
Acción
Desde el dispositivo R1, ingrese el show route extensive
comando utilizando la dirección del vecino del dispositivo R2, 192.0.2.101.
user@R1> show route 192.0.2.101 extensive inet.0: 4 destinations, 4 routes (4 active, 0 holddown, 0 hidden) 192.0.2.101/32 (1 entry, 1 announced) TSI: KRT in-kernel 192.0.2.101/32 -> {10.0.0.2} *BGP Preference: 170/-101 Next hop type: Router, Next hop index: 684 Address: 0x94141d8 Next-hop reference count: 2 Source: 10.0.0.2 Next hop: 10.0.0.2 via fe-1/2/0.0, selected Session Id: 0x8000a State: <Active Ext> Local AS: 100 Peer AS: 200 Age: 53:03 Validation State: unverified Task: BGP_200.10.0.0.2+63097 Announcement bits (1): 2-KRT AS path: 200 I Communities: 100:5555 Accepted Localpref: 100 Router ID: 192.168.0.2
Significado
Como era de esperar, cuando el dispositivo R2 anuncia la ruta 192.0.2.101 al dispositivo R1, el dispositivo R2 agrega la etiqueta de comunidad 100:5555.